2019-02-20 Octave调用高级优化库

《2019-02-20 Octave调用高级优化库》

 

costFunction.m 代价函数文件:

function[jVal, gradient] = costFunction(theta)
    jVal = ( theta(1)-5 )^2 + ( theta(2)-5 )^2;  %代价函数
    gradient = zeros(2,1);                       %梯度就是偏导,就是斜率
    gradient(1) = 2*( theta(1)-5 );              %自己计算代价函数的偏导
    gradient(2) = 2*( theta(2)-5 ); 

调用高级优化函数:

>> %设置高级梯度下降 打开,最大迭代次数 100
>> options = optimset('GradObj', 'on', 'MaxIter', '100');   
>> %根据经验给出初始参数
>> initialTheta = zeros(2,1);   
>> %调用高级优化库
>> [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options)  

optTheta =                  %输出:用高级梯度下降,得出的参数最优值。
   5.0000
   5.0000
functionVal = 1.5777e-30    %代价值几乎等于0了
exitFlag =  1               %exitFlag指示该算法是否已经将代价函数收敛到最优。
>>

 

    原文作者:MeiMeng
    原文地址: https://www.jianshu.com/p/16db6f13b2fd
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞