Hallo Fabi,
da du nicht verrätst, nach welchem Ausdruck du den Effektivzins berechnest, konzentriere ich mich wunschgemäß auf das Newtonverfahren zur Lösung einer Gleichung.
Seien e der gesuchte Effektivzins und z(e) = 0 eine Gleichung, aus der e bestimmt werden kann und die nur von e abhängt (feste Parameter wie Kapital, Zinssatz, Laufzeit etc sind natürlich möglich). Das wäre die Formel, die ich gebraucht hätte, wenn ich ein fertiges Programm erzeugen sollte. Dann lautet die Iteration e_i+1 = e_i - z(e_i) / z'(e_i), wobei z' die erste Ableitung nach von z nach e ist.
Der Code lautet dann z.B.
f=false
e_1=0:e_2=0:d=.00001'z.B.! d = Genauigkeit des Ergebnisses
do
e_1=e_2
if z'(e_1)<>0 then'hier muss die o.a. Formel eingefügt werden
e_2=e_1- z(e_1) / z'(e_1) 'hier muss die o.a. Formel eingefügt werden
else
e_2=e_1-1
if f=true then exit do
f=true
end if
loop until abs(e_2-e_1)<d
iif(f=true,msgbox "Effektivzins kann nicht bestimmt werden.",msgbox "Effektivzins = "+cstr(e_2)
Gruß
Holger
|