Newton's Method Help
조회 수: 6 (최근 30일)
이전 댓글 표시
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!
댓글 수: 0
채택된 답변
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!