Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Newton's Method Issues

Asked by SB on 19 Nov 2012

Hi, I'm having a little trouble with my newton's method code.

One of my biggest issues is that I'm not able to create an output, rHist, which is a vector consisting of x0 and the outputs after every iteration of newton's method and my number of iterations is off by 1.

My code (posted below) also doesn't seem to work when the initial guess, x0 satis fies the stopping criterion.

 % function [r,N,fRoot] = newtonRaphE7(fHan,dfHan,x0,fTol,iterMax) 
k=1;
while k<=iterMax
x=x0-fHan(x0)/dfHan(x0)
if abs(x-x0)<fTol*abs(x)
return
x0=x;
r=x0;
k=k+1;
N=k;
fRoot=abs(fHan(r));
end
end

0 Comments

SB

Products

No products are associated with this question.

1 Answer

Answer by Matt J on 19 Nov 2012

It should contain lines like this somewhere

 rHist=zeros(1,iterMax+1);
....
 rHist(k)=x;

My code (posted below) also doesn't seem to work when the initial guess, x0 satis fies the stopping criterion.

Because you're exiting without updating the outputs r,N, fRoot

4 Comments

Matt J on 19 Nov 2012

It doesn't do any good to put them at the end if the code never reaches the end, and it doesn't, because you call RETURN before it gets there.

SB on 19 Nov 2012

Alright, how would I actually rewrite it, just move the statements after the if?

Matt J on 19 Nov 2012

Hint: MATLAB executes lines of code in order from top to bottom.

Matt J

Contact us