Stopping my function from doing iteration (infinite while loop)
Ältere Kommentare anzeigen
After achieving the desired result the loop continues, how can i stop this? if truefunction y = mysqrt(x,y0,tol) % this function calculates the square root of a number x as y given the % less appropriate guess y0. The function ceases to iterate when the the % difference between y0 and y is less than 1e-3.
y = (y0 + (x/y0))/2;
y = (y + (x/y))/2;
while abs(y-y0)>tol
y = (y + (x/y))/2
end
Akzeptierte Antwort
Weitere Antworten (1)
John Petersen
am 21 Dez. 2012
Bearbeitet: John Petersen
am 21 Dez. 2012
function y = mysqrt(x,y0,tol)
y = (y0 + (x/y0))/2;
while abs(y-y0)>tol
y0 = y;
y = (y + (x/y))/2;
end
Now I see Azzi's answer which is better because it tests against the desired result.
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!