Hallo zusammen,
ich habe da eine rekursive Programmierung in Mathematica mit der ich nicht ganz zurecht kommen, da ich keine Ahnung von dem Programm habe.
Zwar weiß ich wie rekursive Funktionen implementiert werden, allerdings nur in VBA und C++ und verstehe den Mathematica-Code nicht.
Kann mir bitte jemand erklären, wie der Code der Rekursion zu verstehen ist oder ihn in VBA oder C++ übersetzten? Ich verstehe z. B. nicht, was das „recurse[0, 0]/2^n]“ am Ende noch soll…
Vielen Dank für eure Hilfe!
Hier der Mathematica-Code: (von Benninga und Wiener - 1998)
Clear[discount, pv, r, theta]
theta[1] = 0.19; theta[2] = 0.18;
theta[3] = 0.17;
theta[4] = 0.16; R[1] = 1/1.1;
R[2] = 1/1.11ˆ2; R[3] = 1/1.12ˆ3;
R[4] = 1/1.125ˆ4; R[5] = 1/1.13ˆ5;
r[t_, j_] := r[t]*Exp[2*theta[t]*j];
discount[r_] := 1/(1 + r);
pv[n_] :=
Module[{recurse}, recurse[t_, j_] :=
recurse[t, j] =
If[t == n, 1, discount[r[t, j]]*
(recurse[t + 1, j + 1] +
recurse[t + 1, j])];
recurse[0, 0]/2ˆn]