Newton's Method for Function Minimization

> NewtonM := x -> convert( evalm(
x - inverse( Hf(x) ) &* gradf(x)
), vector ):

>

> n[0] := evalm( x0 ):
for k from 0 to N-1 do
n[k+1] := NewtonM( n[k] );
if norm( n[k+1] - n[k] ) < tol then break end if;
end do:

>

> results[n] := convert( [seq( [ i, evalm(n[i]), f(n[i]) ], i=0..k )] , matrix );

results[n] := matrix([[0, vector([0., 0.]), 0.], [1...

>

> values[n] := plot( [ seq( [i,f(n[i])], i=0..k ) ], color=red,
title="Newton's Method: Function Values" ):
points[n] := plot( [ seq( convert(n[i],list), i=0..k ) ], color=red,
title="Newton's Method: Iterates" ):
display( array( [values[n], points[n]] ) );

[Maple Plot]

>