最优化方法实验之变尺度法DFP
最优化实验之变尺度法 double f (double coe[], double x[])//返回函数值待求函数的函数值 { return coe[0]*pow(x[0],2)+coe[1]*pow(x[1],2)+coe[2]*x[0]*x[1]+coe[3]*x[0]+coe[4]*x[1]+coe[5]; } void grads (double coe[], double x[],double grads_x[]) //二维函数梯度函数定义 { grads_x[0] = 2*coe[0]*x[0]+coe[2]*x[1]+coe[3]; grads_x[1] = 2*coe[1]*x[1]+coe[2]*x[0]+coe[4]; } void SD(double h[],double grads_x[],double s[])//定义搜索方向向量函数 { s[0]=-(h[0]*grads_x[0]+h[1]*grads_x[1]); s[1]=-(h[2]*grads_x[0]+h[3]*grads_x[1]); } double findlambda (double coe[], double x[], double s[]) //求解lambda { return(-(2*coe[0]*x[0]*s[0]+2*coe[1]*x[1]*s[1]+coe[2]*x[0]*s[1]+coe[2]*x[1]*s[0]+coe[3]*s[0]+coe[4]*s[1])/(2*coe[0]*s[0]*s[0]+2*coe[1]*s[1]*s[1]+2*coe[2]*s[0]*s[1])); } void H (double h[],double x[],double temp_x[],double grads_x[],double temp_g[] )//求解变化矩阵H
用户评论
只有一个程序啊。。。。。有说明文档就好了
用函数调用实现的 ,挺好 顶一下