永发信息网

用MATLAB求解以下优化问题

答案:3  悬赏:0  手机版
解决时间 2021-11-07 14:39
用MATLAB求解以下优化问题
最佳答案
clear
clc
%求解优化函数
f=@(x) x(1).*x(1)+x(2).*x(2)+2.*x(3).*x(3)+x(4).*x(4)-5.*x(1)-5.*x(2)-21.*x(3)+7.*x(4)+1;
x0=[1,1,1,1]; %初始解向量
options=optimset('maxfunevals',10000,'algorithm','active-set');
m=fmincon(f,[1,2,2,2],[],[],[],[],[],[],@mycon1,options) %最优解的位置
f(m) %最优解
mycon1(m) %约束

function [c,ceq]=mycon1(x)
%本函数用来保存非线性约束条件
ceq=[];
c(1)=-(-x(1).* x(1)-x(2).* x(2)- x(3).* x(3)- x(4).* x(4)- x(1)+ x(2)- x(3)+x(4)+9);
c(2)=-(-x(1).*x(1)-2.*x(2).*x(2)-x(3).*x(3)-2*x(4).*x(4)+x(1)+x(4)+8);
c(3)=-(-2.*x(1).*x(1)-x(2).*x(2)-x(3).*x(3)-2.*x(1)+x(2)+x(4)+5);
end
我是调用matlab的内部函数求解的。这样很简单很方便。matlab里有很多自带的求解优化的函数,还有优化工具箱,可以自动生成你需要的优化代码。很方便,功能也很强大。希望能 解决你的问题呦~~O(∩_∩)O~
全部回答
你没有说用什么优化算法,我用的模拟退火,而且x1,x2,x3,x4都没有交代多大范围,所以我随便取值在n以内;(这个n你可以随便调节)程序如下:
%% 模拟退火算法进行优化 (起始温度:100; 终止温度:1;退火速率0.9)
clear all;clc;
double startT;
double endT;
double rate;
double bestx1;
double bestx2;
double bestx3;
double bestx4;
double f;
f=0;
startT=100;
endT=1;
rate=0.9;
double n;
n=2.3;
while startT>=endT%开始模拟退火
x1=rand(1,1)*n;%产生n以内随机数
x2=rand(1,1)*n;
x3=rand(1,1)*n;
x4=rand(1,1)*n;
g1=-x1^2-x2^2-x3^2-x4^2-x1+x2-x3+x4+9;%三个约束条件
g2=-x1^2-2*x2^2-x3^2-2*x4^2+x1+x4+8;
g3=-2*x1^2-x2^2-x3^2-2*x1+x2+x4+5;
if g1>=0 & g2>=0 & g3>=0%满足三个约束条件,降温
startT=rate*startT;
tempf=x1^2+x2^2+2*x3^2+x4^2-5*x1-21*x3+7*x4+1;
if tempf f=tempf;
bestx1=x1;
bestx2=x2;
bestx3=x3;
bwstx4=x4;
end
end
end
怎么这么专业的问题啊,这个能有专业人士来回答吗
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
众驰机动车登记服务站地址有知道的么?有点事
做36寸的相片,竖的相片可以做成横型的吗
“先生踽踽独行于世,众乃以为迁也。”翻译成
和师姐谈恋爱是什么感受
3x+4y=5x+3y怎么解?
人到底有多大寿
包子刚蒸出来是白的,凉了再加热就发黄,怎么
怎么解?求大神帮忙! x/20+y/35=9 x
桂林公交2O路万福广埸发车时间
神马都是浮云的下一句是什么?
求柯南零的执行人谢谢
女朋友看不上我了该怎么办
电火花加工中的工作液的选择原则
安恩与奶牛 第二段最后一句表现作者怎么样的
巡津街邮政支局地址在什么地方,想过去办事
推荐资讯
男生送女生东西为什么女生会不要
车放久了不开对车有什么影响?
我是舅爷爷的侄孙女能不能和舅奶奶的侄孙子结
远处的大树上挂着朵朵洁白晶莹的雪花,远远的
求找一个动画片
苹果手机能充着电玩吗
intel i3 M380和AMD Athlon x2 255哪个好,差
用英语扩写静夜思加以联想,成为一个完整的故
刘二妈米皮怎么样
___is,the,booK,A,where,Bwhat,c
在昆山拉一条6M宽带要多少钱…
能尽可能准确的估计下OPPO手机CEO陈明永的身
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?