Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Topic: Newton Raphson for nxn system using symbolic toolbox
Replies: 7   Last Post: Nov 16, 2011 5:09 AM

 Messages: [ Previous | Next ]
 Uwe Brauer Posts: 91 Registered: 12/7/04
Re: Newton Raphson for nxn system using symbolic toolbox
Posted: Nov 15, 2011 5:15 AM

Christopher Creutzig <Christopher.Creutzig@mathworks.com> wrote in message <4EC235EE.9040108@mathworks.com>...
> On 11.11.11 16:17, Uwe Brauer wrote:
>

> > I can perfectly write matlab code for solving Newton Raphson for any nxn system, since Matlab uses dynamic memory,
> > and I have to use as a entry variable the system I want to solve and its jacobian.
> >
> > However when i only want to have the system and use Matlabs symbolic tool to calculate the jacobian I do not know how to do that since I don't know the size of the jacobian in advance.

>
> I still don't understand the problem. Something like the following
> sketch should work, no?
>
> ...
> J = jacobian(expression, vars);
> ...
> % within some loop:
> ...
> Fval = double(subs(expression, vars, values));
> Jac = double(subs(J, vars, values));
> ...
>
>
>
> Christopher

right, after thinking about it I came up with a similar solution,
BTW why do you use double?

function xvec=newtoniteratesymb(f,e,x0,TOL,nmax)

n=x0;
fev=subs(f,e,n);
jac=jacobian(f,e);
jacev=subs(jac,e,n);
xvec=x0;
k=1;
diff=100;

while diff>TOL & k<nmax
fev=subs(f,e,xvec(:,k));
jacev=subs(jac,e,xvec(:,k));
xvec(:,k+1)=xvec(:,k)- jacev\fev;
diff=max(max(xvec(:,k+1)-xvec(:,k)));
k=k+1;
end

thanks

Uwe

Date Subject Author
11/1/11 Uwe Brauer
11/1/11 Alan Weiss
11/9/11 Christopher Creutzig
11/11/11 Uwe Brauer
11/15/11 Christopher Creutzig
11/15/11 Uwe Brauer
11/15/11 Mircea Anghel
11/16/11 Christopher Creutzig