24 lines
608 B
Plaintext
24 lines
608 B
Plaintext
rem - return the nth root of real.double value x to stated precision
|
|
function nthroot(n, x, precision = real.double) = real.double
|
|
var x0, x1 = real.double
|
|
x0 = x
|
|
x1 = x / n rem - initial guess
|
|
while abs(x1 - x0) > precision do
|
|
begin
|
|
x0 = x1
|
|
x1 = ((n-1.0) * x1 + x / x1 ^ (n-1.0)) / n
|
|
end
|
|
end = x1
|
|
|
|
rem -- exercise the routine
|
|
|
|
var i = integer
|
|
print "Finding the nth root of 144 to 6 decimal places"
|
|
print " x n root"
|
|
print "------------------------"
|
|
for i = 1 to 8
|
|
print using "### #### ###.######"; 144; i; nthroot(i, 144.0, 1E-7)
|
|
next i
|
|
|
|
end
|