matlab如何取线中最大值,matlab三元二次函数如何求取得最大值时自变量的值y=0.026662*(0.000867*x1^2+0.004667*x1)+5.593748*(-0.0001846...

这是非线性规划问题.目标函数为非线性,没有等式和不等式约束条件,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

关于非线性规划问题的具体用法可以自行百度之.这里警告提示可能使用的优化方法不合适.

作业帮用户

2016-12-16

举报

6c0a0adef10d1043fa4f41a7897345ed.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值