# Math 223 Current Assignment

## Comments on Problem 2.7.8 page 245

The program newton.m assumes its first two arguments are vectors (not matrices) of the same length. So iIf you wish to use the newton program in appendix B on page 669, you will need to convert 3 by 3 matrices to 9 by 1 vectors.

The first argument should be a vector of symbolic expressions in the varaibles, x1, x2, etc. These names of variables are hardcoded in the routine, so others are not likely to work.

Entry of symbolic expressions in Matlab is delicate; sometimes an extra space will break the syntax. (Symbolic expressions are often represented as strings.) You can construct a suymbolic 3 by 3 matrix with entries x1, x2, etc. by

```	G = sym('[x1,x2,x3; x4, x5, x6; x7 x8 x9]')
```
Such a matrix could for example be symbolically cubed by G*G*G.

You can reshape a 3 by 3 matrix B into a 9 by 1 vector using the command

```	reshape(B,9,1)
```
or reshape a 9 by 1 matrix C into a vector by
```	reshape(C,3,3)
```

The following text of newton.m is taken from the Student Matlab folder on Ontario and does work. As described in Hubbard and Hubbard, typical usage is

```	syms x1 x2
newton([cos(x1)-x1; sin(x2)], [.1; 3.0], 3)
```

### Text of newton.m

```function [x]=newton(F,x0,iterations)
vars='[';
for i=1:length(F)
iS=num2str(i);
vars=[vars 'x' iS ' '];
eval(['x' iS '=sym(''x' iS ''');']);
end
vars=[vars ']'];
eval(['vars = 'vars ';']);
J=jacobian(F,vars);
x=x0;
for i=1:iterations
JJ=double(subs(J,vars,x.'));
FF=double(subs(F,vars,x.'));
x=x-inv(JJ)*FF
end
```
Last Update: October 30, 1998