注册 登录
编程论坛 Matlab

刚修改的

wr171903566 发布于 2007-06-30 13:50, 589 次点击
function [f,c]=fun(x)
f=x(1)*(x(2)+x(3)*20)/2
c(1)=2-x(1);
c(2)=x(1)-10;
c(3)=6-x(2);
c(4)=x(2)-25;
c(5)=1-x(3);
c(6)=x(3)-4;
c(7)=1.949*10^6*exp(-1.7762*2*x(2)/(x(2)+20*x(3)))*(1/(x(1)^3*(x(2)+20*x(3))^3))^0.5-244;
c(8)=114800/(x(1)^3*x(3)*(0.5+(x(2)+1)^0.5))-45.08;
c(9)=((118552/(x(1)*x(2)))^2+(34519/(x(1)*x(3)))^2)^0.5*(1.179*10^(-8)*x(1)^3*x(3)^3)/(x(1)*x(2)-2*x(1)-0.4)^4-0.001*x(1)*x(2);


x0=[8,10,2];
options=[];
[x,options]=constr('fun',x0,options);
[f,c]=fun(x)
x(1)
x(2)
x(3)
刚修改后程序 可以运行就是 结果 不对 估计是把一个约束条件给编错了 15度≤atandx(3)/x(2)≤30度
这个约束条件怎么编啊 谢谢
1 回复
#2
abingchem2007-06-30 20:54

你还是描述你的问题吧,把目标函数和约束条件写出来,看代码好费劲

1