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일

0 개 추천

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개)

카테고리

도움말 센터 및 File Exchange에서 App Building에 대해 자세히 알아보기

질문:

2021년 2월 12일

댓글:

2021년 2월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by