27 lines
624 B
Plaintext
27 lines
624 B
Plaintext
rem - return the nth root of 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
|
|
var x = real.double
|
|
|
|
x = 144
|
|
print "Finding the nth root of"; x; " to 8 decimal places"
|
|
print " x n root"
|
|
print "------------------------"
|
|
for i = 2 to 8
|
|
print using "### #### ###.########"; x; i; nthroot(i, x, 1E-9)
|
|
next i
|
|
|
|
end
|