Initial Matrix: D[0] = Hf(x[0])

> DD := Hf( x0 );

DD := matrix([[0., -4], [-4, 2]])

> 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=magenta,
title="Broyden's Method (D0=Hf(x0)): Function Values" ):
points[B] := plot( [ seq( convert(B[i],list), i=0..k ) ], color=magenta,
title="Broyden's Method (D=Hf(x0)): Iterates" ):
display( array( [values[B],points[B]] ) );

[Maple Plot]

>