Initial Matrix: D[0] = I

> DD := matrix( [ [ 1, 0 ], [ 0, 1 ] ] );

DD := matrix([[1, 0], [0, 1]])

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

>

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

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

>

> values[b] := plot( [ seq( [i,f(b[i])], i=0..k ) ], color=blue,
title="Broyden's Method (D0=I): Function Values" ):
points[b] := plot( [ seq( convert(b[i],list), i=0..k ) ], color=blue,
title="Broyden's Method (D0=I): Iterates" ):
display( array( [values[b],points[b]] ) );

[Maple Plot]

>