stopping a function after 30 iterations

2 ビュー (過去 30 日間)
David bondi
David bondi 2012 年 4 月 20 日
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 件のコメント
Walter Roberson
Walter Roberson 2012 年 4 月 20 日
What problems do you observe for the other functions?
David bondi
David bondi 2012 年 4 月 20 日
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)

サインインしてコメントする。

採用された回答

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

その他の回答 (1 件)

Hossein
Hossein 2012 年 4 月 21 日
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 件のコメント
David bondi
David bondi 2012 年 4 月 21 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeNewton-Raphson Method についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by