zjm0184119
2009-04-29, 11:10
我在做一个非线性约束优化,用的是fmincon函数
下面两个是M文件:
function f=fun(x)
f=80*x(1)^2+220*x(2)^2+130*x(3)^2+270*x(4)^2+130*x(5)^2+50*x(6)^2-2027520
上面是目标函数,我要求它的最小值
function[c,ceq]=mycon(x)
c=[5667837663/(x(2)^4-5308416)+21409535793/(x(3)^4-5308416)+119946300159/(x(4)^4-5308416)+239028895561/(x(5)^4-5308416)+10861837323/(x(6)^4-5308416)-26800;8799166/(x(4)^4-5308416)-1629475/(x(6)^4-5308416)-0.3;1822900/(x(5)^3-5308416/x(5))-60];
ceq=[];
上面是约束条件,只有非线性不等式约束
我在matlab命令窗口输入:
x0=[70;75;80;90;110;120];
lb=[0;0;0;0;0;0;0];
ub=[];
[x,fval,exitflag,output,lambda]=fmincon(@fun,x0,[],[],[],[],lb,ub,@mycon)
为什么他给我的一组结果就是我设的初始值啊,但我需要的是不同于初始值的解啊
我没学过matlab,现在做毕业设计要用才刚开始自学的,能不能麻烦各位帮我看一下我错在哪了呀,应该怎么解决啊。
麻烦各位了,谢谢!!
下面两个是M文件:
function f=fun(x)
f=80*x(1)^2+220*x(2)^2+130*x(3)^2+270*x(4)^2+130*x(5)^2+50*x(6)^2-2027520
上面是目标函数,我要求它的最小值
function[c,ceq]=mycon(x)
c=[5667837663/(x(2)^4-5308416)+21409535793/(x(3)^4-5308416)+119946300159/(x(4)^4-5308416)+239028895561/(x(5)^4-5308416)+10861837323/(x(6)^4-5308416)-26800;8799166/(x(4)^4-5308416)-1629475/(x(6)^4-5308416)-0.3;1822900/(x(5)^3-5308416/x(5))-60];
ceq=[];
上面是约束条件,只有非线性不等式约束
我在matlab命令窗口输入:
x0=[70;75;80;90;110;120];
lb=[0;0;0;0;0;0;0];
ub=[];
[x,fval,exitflag,output,lambda]=fmincon(@fun,x0,[],[],[],[],lb,ub,@mycon)
为什么他给我的一组结果就是我设的初始值啊,但我需要的是不同于初始值的解啊
我没学过matlab,现在做毕业设计要用才刚开始自学的,能不能麻烦各位帮我看一下我错在哪了呀,应该怎么解决啊。
麻烦各位了,谢谢!!