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!