主要内容

理性目标函数,基于问题

基于问题的优化方法包括创建优化变量,并根据这些变量表达目标和约束条件。

有理函数是多项式的商。当目标函数是优化变量的有理函数或其他支持函数时,可以直接从变量中创建目标函数表达式。相比之下,当你的目标函数不是一个受支持的函数时,你必须创建一个代表目标的MATLAB®函数,然后通过使用将函数转换为表达式fcn2optimexpr。看到优化变量和表达式的支持操作将非线性函数转化为优化表达式

例如,写目标函数

f = ( x - y ) 2 4 + ( x + y ) 4 x + y 2 1 + y 2

就两个优化变量而言xy

x = optimvar (“x”);y = optimvar (“y”);f = (x - y) ^ 2 / (4 + (x + y) ^ 4) * (x + y ^ 2) / (1 + y ^ 2);

为了找到这个目标函数的最小值,创建一个优化问题f作为目标,设置一个初始点,并调用解决

概率= optimproblem (“目标”f);x0。x=-1; x0.y = 1; [sol,fval,exitflag,output] = solve(prob,x0)
使用fminunc解决问题。局部最小值。优化完成,因为梯度的大小小于最优公差的值。
索尔=结构体字段:X: -2.1423 y: 0.7937
fval = -1.0945
exitflag = OptimalSolution
输出=结构体字段:迭代:9 funcCount: 10 stepsize: 1.7073e-06 lssteplength: 1 firstorderopt: 1.4999e-07算法:'准牛顿'消息:'Local minimum found....' objectivederivative: "reverse-AD" solver: 'fminunc'

退出标志表明报告的解决方案是局部最小值。输出结构显示,求解器只需要30次函数求值就能达到最小值。

另请参阅

相关的话题

Baidu
map