# Matlab- Newton's method

• Apr 22nd 2008, 09:09 PM
Rui
Matlab- Newton's method
1. Use Newton's method to compute 10th root of 2 accurate to eight decimal places.
I don't know how to use Newton's method... I tried nthroot(2,10)and it gets the right answer, but it's not newton's method.

2. Find all the roots correct to six decimal places of the equation
x^2(4-x^2) =4/(x^2+1)
making some stage of newton_iteration and ezplot.
No idea on how to do this one.

• Apr 23rd 2008, 12:17 AM
CaptainBlack
Quote:

Originally Posted by Rui
1. Use Newton's method to compute 10th root of 2 accurate to eight decimal places.
I don't know how to use Newton's method... I tried nthroot(2,10)and it gets the right answer, but it's not newton's method.

We want to find $x$ such that $x^{10}=2$, that is we want roots of $f(y)=y^{10}-2$.

Newtons method is the itteration:

$
x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}
$

So in this case it is:

$
x_{n+1}=x_n-\frac{x_n^{10}-2}{10x^9_n}
$

The Matlab code will look something like:

Code:

function xn=tenthroot(n,x0) % %  n is the number we want the 10-th root of %  x0 is an initial guess %     xn=x0;del=100   while del>1e-12       xo=xn;       xn=xo-(xo^10-n)/(10*xo^9);       del=abs(xn-xo);   end %while
This is untested code, so try it first in the debugger or whatever

RonL
• Apr 23rd 2008, 12:21 AM
CaptainBlack
Quote:

Originally Posted by Rui
2. Find all the roots correct to six decimal places of the equation
x^2(4-x^2) =4/(x^2+1)
making some stage of newton_iteration and ezplot.
No idea on how to do this one.

You want the roots of:

$f(x)=x^2(4-x^2) - 4/(x^2+1)=0$

Plot this over an appropriate range to locate them approximately to serve as initial guesses in the iteration.

The other post gives the form of Newton iteration, so you should be able to adapt what is in that post.

RonL
• Apr 23rd 2008, 03:58 AM
CaptainBlack
Quote:

Originally Posted by CaptainBlack
We want to find $x$ such that $x^{10}=2$, that is we want roots of $f(y)=y^{10}-2$.

Newtons method is the itteration:

$
x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}
$

So in this case it is:

$
x_{n+1}=x_n-\frac{x_n^{10}-2}{10x^9_n}
$

The Matlab code will look something like:

Code:

function xn=tenthroot(n,x0) % %  n is the number we want the 10-th root of %  x0 is an initial guess %     xn=x0;del=100   while del>1e-12       xo=xn;       xn=xo-(xo^10-n)/(10*xo^9);       del=abs(xn-xo);   end %while
This is untested code, so try it first in the debugger or whatever

RonL

Now I don't have Matlab on this machine, but the algorithm can be tested on other systems, so here is the EuMathT version:

Code:

 Processing configuration file. Done. > >function tenth(n,x0) $xn=x0;del=100;$  repeat $xo=xn;$    xn=xo-(xo^10-n)/(10*xo^9); $del=abs(xn-xo);$    if del<1e-12 $break$    endif $end ..repeat$  return xn \$endfunction > >tt=tenth(20,1)       1.34928 >tt^10           20 >
RonL
• Mar 31st 2010, 06:50 PM
Anonymous1
Quote:

Originally Posted by CaptainBlack
We want to find $x$ such that $x^{10}=2$, that is we want roots of $f(y)=y^{10}-2$.

Newtons method is the itteration:

$
x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}
$

So in this case it is:

$
x_{n+1}=x_n-\frac{x_n^{10}-2}{10x^9_n}
$

The Matlab code will look something like:

Code:

function xn=tenthroot(n,x0) % %  n is the number we want the 10-th root of %  x0 is an initial guess %     xn=x0;del=100   while del>1e-12       xo=xn;       xn=xo-(xo^10-n)/(10*xo^9);       del=abs(xn-xo);   end %while
This is untested code, so try it first in the debugger or whatever

RonL

What do you know, this post came in handy years later. Thanks!