36 lines
601 B
Lua
36 lines
601 B
Lua
function leftShift(n,p)
|
|
local r = n
|
|
while p>0 do
|
|
r = r * 2
|
|
p = p - 1
|
|
end
|
|
return r
|
|
end
|
|
|
|
-- main
|
|
|
|
local MAX_IT = 13
|
|
local MAX_IT_J = 10
|
|
local a1 = 1.0
|
|
local a2 = 0.0
|
|
local d1 = 3.2
|
|
|
|
print(" i d")
|
|
for i=2,MAX_IT do
|
|
local a = a1 + (a1 - a2) / d1
|
|
for j=1,MAX_IT_J do
|
|
local x = 0.0
|
|
local y = 0.0
|
|
for k=1,leftShift(1,i) do
|
|
y = 1.0 - 2.0 * y * x
|
|
x = a - x * x
|
|
end
|
|
a = a - x / y
|
|
end
|
|
d = (a1 - a2) / (a - a1)
|
|
print(string.format("%2d %.8f", i, d))
|
|
d1 = d
|
|
a2 = a1
|
|
a1 = a
|
|
end
|