Re: 2 dimension Newton Raphson
- To: mathgroup at smc.vnet.net
- Subject: [mg71236] Re: 2 dimension Newton Raphson
- From: "Ray Koopman" <koopman at sfu.ca>
- Date: Sat, 11 Nov 2006 03:38:39 -0500 (EST)
- References: <ej1q7l$e2l$1@smc.vnet.net>
ms z wrote:
> I have tried to solve the roots of the simultaneous nonlinear equations
> (x-4)^2 + (y-4)^2 = 5
> x^2 + y^2 = 16
>
> by writing this function:
>
> nr2method[xl1_, xl2_, es1_] :=
> Block[{x1, x2, ea, es, x1new, u, v},
> u = (x1 - 4)^2 + (x2 - 4)^2 - 5;
> v = x1^2 + x2^2 - 16;
> ea = 100; es = es1;
> For[i = 1, ea > es, i++,
> (x1new[x1_, x2_] = x1 - (u*D[
> v, x2] - v*D[u, x2])/(D[u, x1]*D[v, x2] - D[u, x2]*D[v, x1]);
> If[i == 1, x1 = xl1, x1 = b];
> x2 = xl2;
> b = x1new[x1, x2];
> ea = Abs[(b - x1)/b 100];
> Clear[x1, x2, x1new];)];
> ea = 100; es = es1;
> For[i = 1, ea > es, i++,
> (x2new[x1_, x2_] = x2 - (v*D[u, x1] - u*D[v, x1])/(D[u, x1]*D[v, x2] -
> D[u, x2]*D[v, x1]);
> If[i == 1, x2 = xl2, x2 = c];
> x1 = xl1;
> c = x2new[x1, x2];
> ea = Abs[(c - x2)/c 100];
> Clear[x1, x2, x2new];)];
> Print["The value of x1 is ", b];
> Print["The value of x2 is ", c];]
>
> Is this function a good one? Is there a way to make this function simpler?
In[1]:=
Solve[{x^2 + y^2 == 16, (x-4)^2 + (y-4)^2 == 5}, {x,y}]
N@%
Show[Graphics[{Circle[{0,0},4], Circle[{4,4},Sqrt[5]], PointSize[.02],
Point/@Map[Last,%,{2}]}], AspectRatio->Automatic, Axes->True]
Out[1]=
{{x -> (1/16)*(43 - Sqrt[199]), y -> (1/16)*(43 + Sqrt[199])},
{x -> (1/16)*(43 + Sqrt[199]), y -> (1/16)*(43 - Sqrt[199])}}
Out[2]=
{{x -> 1.80583,y -> 3.56917},{x -> 3.56917,y -> 1.80583}}
Out[3]=
-Graphics-