Quasi-Newton mininization with SR1 (symmetric rank-1) update of the Hessian matrix

Task

Implement a function with the signature

vector SR1(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 SR1 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

Is this method any better than your Newton's minimization routine from the homework?