IonicWind Software

Creative Basic => Console Programs => Topic started by: GWS on December 04, 2019, 01:08:50 PM

Title: Square Root by Iteration Method
Post by: GWS on December 04, 2019, 01:08:50 PM
Here's another oldie which is probably not really needed these days. :)

We have an inbuilt SQRT() function which is probably faster and more accurate.

However, it's interesting to see how the iteration is used.

Note that it needs Double precision to work correctly ..

' Square Root by Iteration ..
openconsole
cls
' Calculating a Square Root using Iteration ..

def x,y,z:double
def i:int

setprecision 10

print

' Example:
z = 27 :' positive real number whose Square root is required

print
print "Square Root of ",z:print:print STRING$(30, "_" )
print:print:print "Iterations: ":print

x = z/2 :' arbitrary start value for the iteration

do
x = 0.5 * (x + z/x)
print x
until ((x*x - z)/z <= 1.e-11) :' the test for convergence

print
print "The Square Root of ",z, " is  ", x

' Compare with the inbuilt Sqrt() function ..
print:print
print "Using the CB Sqrt() Function, the result is .. ":print
print sqrt(z)
print:print STRING$(30, "_" )

do:until inkey$<>""
closeconsole
end


Best wishes, :)

Graham