利用matlab 求解非线性规划问题

利用matlab 求解非线性规划问题,第1张

利用matlab 求解非线性规划问题,其运行代码编写,可以这样来考虑:

1、创建目标函数,myobj(x)

f=-(2*x1+3*x1^2+3*x2+x2^2+x3)

2、创建约束条件函数,mycon(x)

根据给出的条件,来写不等式条件和等式条件

3、使用fmincon()函数,求解x1,x2,x3。即

[x,fval,exitflag]=fmincon(@myobj,x0,[],[],[],[],lb,ub,@mycon)

这里,x0—初值,lb,ub—xi的上下限

4、得到x1,x2,x3,进行验证是否满足约束条件

非线性规划方法求解问题 ,可以用matlab 的最优化工具箱求解,求解过程如下:

1、创建目标函数文件,即 myfun6.m。其内容

y=-x(1).*x(2).*x(3)

2、创建约束条件函数文件,即 mycon6.m。其内容

c(1)=(x(1)-2*x(2)-2*x(3))

c(2)=(x(1)+2*x(2)+2*x(3))-72

c(3)=x(2)-10

c(4)=-x(2)-20

ceq = 10-(x(1)-x(2))

3、点击matlab 主菜单中的APP,再点击Optimization菜单,选择Solver的 fmincon,然后输入相关内容,如图所示。

4、输入后点击Start,可以得到结果。即

x1=20,x2=10,x3=16

最大值约为3200


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7815305.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存