主题:讨论fmincon的优化计算
讨论fmincon的优化计算
假设我的目标函数是f=(c-d)^2,其中c是理论计算值,d是实验测量值
目标函数中c是由a和b通过数值计算方法计算得到的.因此我要优化的参数是a和b。
fmincon在运算时,需要求解hessian矩阵,即需要求解目标函数f对待优化参数a,b的一阶导数,
由于c是通过数值计算方法计算得来的,因此,无法计算目标函数f=(c-d)^2对参数a,b的一阶导数.
如果在Options中设置'Hessian','off'。(是fmincon函数在Medium-Scale Optimization时的默认设置?)
即Options = optimset('LargeScale','off',,'Jacobian','off')
是否此时fmincon函数使用finite-difference approximation来近似hessian矩阵,从而无需求解目标函数f=(c-d)^2的一阶导数?
注:Matlab帮助文件讲到:在fmincon的Medium-Scale Optimization中使用BFGS 公式来近似hessian矩阵,BFGS 公式计算时可以用finite-difference approximation来近似hessian矩阵。
假设我的目标函数是f=(c-d)^2,其中c是理论计算值,d是实验测量值
目标函数中c是由a和b通过数值计算方法计算得到的.因此我要优化的参数是a和b。
fmincon在运算时,需要求解hessian矩阵,即需要求解目标函数f对待优化参数a,b的一阶导数,
由于c是通过数值计算方法计算得来的,因此,无法计算目标函数f=(c-d)^2对参数a,b的一阶导数.
如果在Options中设置'Hessian','off'。(是fmincon函数在Medium-Scale Optimization时的默认设置?)
即Options = optimset('LargeScale','off',,'Jacobian','off')
是否此时fmincon函数使用finite-difference approximation来近似hessian矩阵,从而无需求解目标函数f=(c-d)^2的一阶导数?
注:Matlab帮助文件讲到:在fmincon的Medium-Scale Optimization中使用BFGS 公式来近似hessian矩阵,BFGS 公式计算时可以用finite-difference approximation来近似hessian矩阵。