Matlab example: Multidimensional Newton’s Method
Here is the textbook example, written out in a couple of files.
First, the function (whose root we are trying to find) is written. The point to notice here is
that we output not just the value of the function, but also its Jacobian matrix:
function [y dy]=myfunction(x)
%Example function to try out Newton’s Method
%
n=length(x);
y=zeros(size(x)); %Not necessary for a small vector
dy=zeros(n,n);
%Not necessary for a small matrix
y(1)=-x(1)^3+x(2);
y(2)=x(1)^2+x(2)^2-1;
dy(1,1)=-3*x(1)^2; dy(1,2)=1;
dy(2,1)=2*x(1);
dy(2,2)=2*x(2);
Next, we write a little Newton’s Method function:
function x=multinewton(f,x,NumIters)
%Performs multidimensional Newton’s method for the function defined in f
%starting with x and running NumIters times.
[y,dy]=f(x);
for j=1:NumIters
s=dy\y;
x=x-s;
[y,dy]=f(x);
end
And here is the output, using a couple of iterations (compare with step 8 of the table on
page 134):
>> format long
>> x=[1;2];
>> y=multinewton(@myfunction,x,7);
>> y’
ans =
0.826031357654187
0.563624162161259