stopping a function after 30 iterations

I have been working all day on this coding, i can not figure out how to stop it after 30 iterations
function root %finds the root of the equation F0fX(x) using newton-raphson method
clear all;
clc;
x=.8;
x=newton(x);
fprintf('root found at x= %10.8f\n',x);
function [y]=FofX(x)
%nonlinear function
y= x^2+1;
function [y]=derofF(x)
%derivative of the function
y=2*x;
function [x]=newton(x)
%code for finding with newton-raphson method
TOL=5e-09;
error=10*TOL;
%Top of the loop
iterations=0;
while(error>TOL)
delta=-FofX(x)/derofF(x);
x=x+delta;
iterations=iterations+1;
%check for the relative error condition:
%If too big, loop again;if small enough, end.
error=abs(delta/x);
end
fprintf('after%4.0f iterations\n',iterations)
thanks for any help

2 Commenti

What problems do you observe for the other functions?
the program just runs and will not stop unless i stop it and it errors in the delta=-FofX(x)/derofF(x) and x=newton(x)

Accedi per commentare.

 Risposta accettata

David bondi
David bondi il 21 Apr 2012
adding this to the correct line fixed the issue while(error>TOL&& (iteration<=30)
thank you

Più risposte (1)

Hossein
Hossein il 21 Apr 2012
Hi, The function that you are using doesn't have any real root. If you change the function to x^2-1 it works perfectly fine.

1 Commento

Thank you, However the equation i have to use is the x^2-1, the point of the exercise is to stop the program after 30 iterations

Accedi per commentare.

Categorie

Scopri di più su Numerical Integration and Differential Equations in Centro assistenza e File Exchange

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by