Hallo zusammen,
ich möchte gerne den Effektivzins einer Anleige mithilfe des Newtonverfahrens berechnen.
Dazu habe ich folgenden VBA-Code, der noch fehlerhaft ist, programmiert. Leider kann ich den Fehler nicht finden.
Ich hoffe, dass Ihr mir weiterhelfen könnt.
Besten Dank im Voraus.
lg
Fabi
Option Explicit
Option Base 1
Sub newtonverfahren()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim i_new As Variant, ne As Single, c As Single, pv As Single, T As Single, n As Single, delta As Single, i As Single, bw As Single
Dim bw2 As Single, cf As Single, cf2 As Single, f As Single
ne = 100
c = 0.075
i = 0.1 'Startwert
pv = 103
T = 30
delta = 0.0000001
Do
i = i_new
i_new = i - f / bw2
For n = 1 To T
If n < T Then
cf = (ne * c) / (1 + i) ^ n
Else: n = T
cf = ((1 + c) * ne) / (1 + i) ^ n
End If
bw = bw + (pv - cf)
f = pv - bw
Next n
For n = 1 To T
If n < T Then
cf2 = n * (ne * c) / (1 + i) ^ (n + 1)
Else: n = T
cf2 = n * ((1 + c) * ne) / (1 + i) ^ (n + 1)
End If
bw2 = bw2 + cf2
Next n
Loop Until Abs(i_new - i) < delta
MsgBox "Effektivzins: " & i_new
End Sub
|