Thiele's interpolation formula: Difference between revisions
Content added Content deleted
m (→{{header|Phix}}: added syntax colouring the hard way) |
Alextretyak (talk | contribs) |
||
Line 30: | Line 30: | ||
{{trans|Python}} |
{{trans|Python}} |
||
<lang 11l>F thieleInterpolator(x, y |
<lang 11l>F thieleInterpolator(x, y) |
||
V ρ = enumerate(y).map((i, yi) -> [yi] * (@y.len - i)) |
V ρ = enumerate(y).map((i, yi) -> [yi] * (@y.len - i)) |
||
L(i) 0 .< ρ.len - 1 |
L(i) 0 .< ρ.len - 1 |
||
Line 40: | Line 40: | ||
F t(xin) |
F t(xin) |
||
V a = 0.0 |
V a = 0.0 |
||
L(i) (@ρ0.len - 1 .< 1).step(-1) |
L(i) (@=ρ0.len - 1 .< 1).step(-1) |
||
a = (xin - @x[i - 1]) / (@ρ0[i] - @ρ0[i - 2] + a) |
a = (xin - @=x[i - 1]) / (@=ρ0[i] - @=ρ0[i - 2] + a) |
||
R @y[0] + (xin - @x[0]) / (@ρ0[1] + a) |
R @=y[0] + (xin - @=x[0]) / (@=ρ0[1] + a) |
||
R t |
R t |
||
V xVal = (0.<32).map(i -> i * 0.05) |
V xVal = (0.<32).map(i -> i * 0.05) |
||
Line 49: | Line 49: | ||
V tCos = xVal.map(x -> cos(x)) |
V tCos = xVal.map(x -> cos(x)) |
||
V tTan = xVal.map(x -> tan(x)) |
V tTan = xVal.map(x -> tan(x)) |
||
V iSin = thieleInterpolator(tSin, xVal |
V iSin = thieleInterpolator(tSin, xVal) |
||
V iCos = thieleInterpolator(tCos, xVal |
V iCos = thieleInterpolator(tCos, xVal) |
||
V iTan = thieleInterpolator(tTan, xVal |
V iTan = thieleInterpolator(tTan, xVal) |
||
print(‘#.14’.format(6 * iSin)) |
print(‘#.14’.format(6 * iSin(0.5))) |
||
print(‘#.14’.format(3 * iCos)) |
print(‘#.14’.format(3 * iCos(0.5))) |
||
print(‘#.14’.format(4 * iTan))</lang> |
print(‘#.14’.format(4 * iTan(1)))</lang> |
||
{{out}} |
{{out}} |