Newton's Method Help

6 ビュー (過去 30 日間)
Kaeden Beaty
Kaeden Beaty 2021 年 2 月 12 日
コメント済み: Alan Stevens 2021 年 2 月 12 日
I have a code that works for Newton's method, but I am trying to make it into an algorithm that takes an imput from the interval [a, b] instead of x0. In other words I guess the initial point is calculated inside of the cody using x0=(a+b)/2. Another thing I would like to do is insert an if statement into the main loop that breaks out of the loop if the x is outside of [a, b]. This is the original that works, but uses an input of x0.
function x=mynewton(f,df,x0,tol,maxiter)
x=x0;
xold=x
for i=1:maxiter
x=x-f(x)/df(x)
err(1)=abs(x-xold)
xold=x
if err(1)<tol
break
end
end
And then this is what I tried to do but there is an error
function x=mynewton2(f,df,x0,tol,maxiter)
x=(a+b)/2;
xold=x
for i=1:maxiter
x=x-f(x)/df(x)
err(1)=abs(x-xold)
xold=x
if err(1)<tol
break
end
if x<a
break
end
if x>b
break
end
end
end
I am really sorry if this is a stupid question, I am just very new to MATLAB and am not the best with technology. Any help would be much appreciated!

採用された回答

Alan Stevens
Alan Stevens 2021 年 2 月 12 日
Assuming you make
x0 = [a, b];
before you pass it to the function, then replace
x = (a+b)/2;
by
x = (x0(1) + x0(2))/2;
within mynewton2.
  2 件のコメント
Kaeden Beaty
Kaeden Beaty 2021 年 2 月 12 日
ohh thank you so much! so x0(1) refers to the x value of x0. So if I wrote x0=[a,b,c] then x0(3) would refer to the value of c right?
Alan Stevens
Alan Stevens 2021 年 2 月 12 日
Yes. (though x0(1) refers to the first value of x0).

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by