matlab 非线性优化问题

非线性函数:function[c,ceq]=ss(x)i=1;forl=0.313:0.057/9:0.37m(i)=333.984*sin(x(11))*((2*x(1... 非线性函数 :function [c,ceq]=ss(x)i=1;for l=0.313:0.057/9:0.37 m(i)=333.984*sin(x(11))*((2*x(12)*l-l^2)^2)/(l^2-3*x(12)*l+3*x(12)^2)-1.47*x(i)*((0.0006342*l/(34.08*l+0.005))^0.4)*((1/(19.6*x(12)*(2*x(12)-l)*sin(x(11))/(l^2-3*x(12)*l+3*x(12)^2))^0.2)+(1/((7.92232*x(12)*(2*x(12)-l)*sin(x(11))/(l^2-3*x(12)*l+3*x(12)^2))^0.2))); i=i+1;endc=[];ceq=m';主函数:clear;clc;fun='x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8)+x(9)+x(10)';x0=[5;5;5;5;5;5;5;5;5;5;0.5;0.25];A=[];b=[];Aeq=[];beq=[];lb=[0;0;0;0;0;0;0;0;0;0;0;0.185];%l的变化导致a的范围缩小ub=[11.3;11.3;11.3;11.3;11.3;11.3;11.3;11.3;11.3;11.3;0.898;0.313];[x,fval,exitflag]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@ss)运行结果: 展开
 我来答
百度网友a31acbf371
2016-08-31 · TA获得超过5871个赞
知道小有建树答主
回答量:1630
采纳率:30%
帮助的人:342万
展开全部
方法/步骤

此题的问题描如下图。由于本经验主要是谈非线性约束下的最优化问题,对于其他线性约束就不再考虑。

然后启动matlab。新建一个函数文件,用来写目标函数。

在编辑器窗口中写入我们要求的目标函数,并保存,注意使函数名与文件名相同。

然后再新建一个函数文件,用来编写非线性约束条件。步骤及其注意事项同上。额外需要注意的是,需要将两个函数文件放在同一个文件夹中。

最后,在命令行窗口处写入fmincon命令。此处需要注意的是,对于没有的线性约束条件的位置药用空矩阵代替,并且初始条件需要满足非线性约束条件(本例中写的是[1,2])。

敲下键盘上的enter建,结果得出。可以发现exitflag=1是大于0的,所以结果正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
我行我素850915
2016-08-31 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1770万
展开全部
你的目标函数变量是10个,约束函数中变量是12个,这是不允许的。另外,约束函数中的for循环有问题。
更多追问追答
追问
目标函数这个有什么解决办法吗       for循环问题在哪   求指教
追答
目标函数是由你的题目要求来定的,最好再检查下原题的要求。for循环的问题在于:i=1到i=i+1,最终是多少?没有结束的地方,是无限增加。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式