# Math Help - Matlab- Newton's method

1. ## 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.

2. 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

3. 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

4. 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

5. 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!