using System; using static System.Console; using static System.Math; public static partial class qnewton{ public static readonly double DELTA=Pow(2,-26); public static vector gradient(Funcf, vector x){ vector g=new vector(x.size); double fx=f(x); for(int i=0;if, vector x, double acc=1e-3){ double fx=f(x); vector gx=gradient(f,x); matrix B=matrix.id(x.size); int nsteps=0; while(nsteps<10000){ nsteps++; vector Dx=-B*gx; if(Dx.norm()1e-6){ B.update(u,u,1/uTy); // SR1 update } x=z; gx=gz; fx=fz; } return x; }//SR1 }//class