matlab 三元二次函数 如何求 取得最大值时自变量的值

y=0.026662*(0.000867*x1^2+0.004667*x1)+5.593748*(-0.000184675*x2^2+0.0959175*x2-9.881... y = 0.026662*(0.000867*x1^2+0.004667*x1)+ 5.593748*(-0.000184675*x2^2+0.0959175*x2-9.8812) -3.067962*(-0.1*x3^2+x3+1.3)
xyz都有范围。(都大于零)

求教具体的解决此问题的函数,谢谢你!
展开
吓栋栋
2014-02-04 · TA获得超过2831个赞
知道小有建树答主
回答量:386
采纳率:100%
帮助的人:186万
展开全部
这是非线性规划问题。目标函数为非线性,没有等式和不等式约束条件,x的取值范围为(0,inf)
首先建立m函数如下:
function f=fun1(x)
f=0.026662*(0.000867*x(1)^2+0.004667*x(1))+5.593748*(-0.000184675*x(2)^2+0.0959175*x(2)-9.8812)-3.067962*(-0.1*x(3)^2+x(3)+1.3);
f=-f;
注意matlab提供的工具箱只能求解最小值问题,将最大值问题转换为最小值问题加个负号就行。然后在命令空间输入以下内容:
>> x0=[1;1;1];
>> Aeq=[];Beq=[];A=[];B=[];
>> vlb=[0;0;0];vhb=[];
>> [x,fval]=fmincon('fun1',x0,A,B,Aeq,Beq,vlb,vhb)
Warning: Trust-region-reflective method does not currently solve this type of problem,
using active-set (line search) instead.
> In fmincon at 422
Optimization terminated: magnitude of directional derivative in search
direction less than 2*options.TolFun and maximum constraint violation
is less than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
3

x =

1.0831
259.6927
0

fval =

-10.4064
所以最终结果x1到x3分别为:1.0831,259.6927,0.
最大值为-(-10.4064)=10.4064
关于非线性规划问题的具体用法可以自行百度之。这里警告提示可能使用的优化方法不合适。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式