39 lines
930 B
Text
39 lines
930 B
Text
num = 32;
|
|
num2 = num (num - 1)/2;
|
|
step = 0.05;
|
|
ClearAll[\[Rho], Thiele]
|
|
\[Rho][x_List, y_List, i_Integer, n_Integer] := Module[{idx},
|
|
If[n < 0,
|
|
0
|
|
,
|
|
If[n == 0,
|
|
y[[i + 1]]
|
|
,
|
|
idx = (num - 1 - n) (num - n)/2 + i + 1;
|
|
If[r[[idx]] === Null,
|
|
r[[idx]] = (x[[1 + i]] -
|
|
x[[1 + i + n]])/(\[Rho][x, y, i, n - 1] - \[Rho][x, y,
|
|
i + 1, n - 1]) + \[Rho][x, y, i + 1, n - 2];
|
|
];
|
|
r[[idx]]
|
|
]
|
|
]
|
|
]
|
|
Thiele[x_List, y_List, xin_, n_Integer] := Module[{},
|
|
If[n > num - 1,
|
|
1
|
|
,
|
|
\[Rho][x, y, 0, n] - \[Rho][x, y, 0, n - 2] + (xin - x[[n + 1]])/
|
|
Thiele[x, y, xin, n + 1]
|
|
]
|
|
]
|
|
xval = Range[0, num - 1] step;
|
|
funcvals = Sin[xval];
|
|
r = ConstantArray[Null, num2];
|
|
6 Thiele[funcvals, xval, 0.5, 0]
|
|
funcvals = Cos[xval];
|
|
r = ConstantArray[Null, num2];
|
|
3 Thiele[funcvals, xval, 0.5, 0]
|
|
funcvals = Tan[xval];
|
|
r = ConstantArray[Null, num2];
|
|
4 Thiele[funcvals, xval, 1.0, 0]
|