Implement a function with the signature
vector broyden(Func<vector,double> f, vector x, double acc)
that takes the function f and runs the quasi-Newton algorithm
from the starting point x, using the Broyden's update of
the Hessian matrix until the accuracty goal acc is reached
(see the book for the details).
Test your implementation on some functions with known minima.
Apply your implementation to a more complicated problem
Implement also the symmetrized Broyden's update and check whether it is any better.