主要内容

理性目标函数,基于问题

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

有理函数是多项式的商。当目标函数是优化变量的有理函数或其他支持函数时,可以直接从变量中创建目标函数表达式。万博1manbetx相反,当目标函数不是受支持的函数时,必须创建表示目标的MATLAB®函数,然后通过使用将函数转换为表达万博1manbetx式fcn2optimexpr.看到万博1manbetx优化变量和表达式的支持操作而且将非线性函数转化为优化表达式

例如,写出目标函数

f x - y 2 4 + x + y 4 x + y 2 1 + y 2

用两个优化变量表示x而且y

X = optimvar(“x”);Y = optimvar(“y”);F = (x-y)²/(4+(x+y)²)*(x+y²)/(1+y²);

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

问题=优化问题(“目标”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步长:1.7073e-06 lssteplth: 1 firstorderopt: 1.4999e-07算法:'准牛顿'消息:'本地最小值找到....' objecvederivative: ' reverse-AD '求解器:'fminunc'

退出标志显示报告的解决方案是局部最小值。输出结构显示,求解器只计算了30个函数就达到了最小值。

另请参阅

相关的话题