一个优化问题
优化原问题贴出希望xjzuo大哥帮我看看。如果调试出来!烦请发到我信箱!实在感谢!信箱:chendanyanmin@163.com
[ 本帖最后由 eight 于 2007-5-19 15:50 编辑 ] 我看了一下,虽然用Matlab也可以计算,
但我觉得可能用1stOpt计算此类问题更合适一些.
计算结果如下:
另:希望不要在帖子里提到某个具体的人名,否则别人可能知道,也不太会参与讨论.
%%%%%%%%%%%%%%%%%%%
目标函数值(最小): 74.1162705016051
x1: 16.3524924850841
x2: 13.1524423763854
%%%%%%%%%%%%%%%%%%% 我还是将Matlab的解也一并贴出吧,作个比较:
只是要注意将你原程序中的初值改一下:x0=; 因为你的模型决定了x1>x2.
x =
16.3524423763924613.15244237639246
fval =
74.11627049899573 所以基本上现在可以肯定地说:优化后,"环的面积"为74.11627,
"内、外直径"分别为13.15244, 16.35244.
[ 本帖最后由 xjzuo 于 2007-5-19 16:42 编辑 ]
多谢楼上!
谢谢!你用的程序还是我先贴出来这个吗?首先建立目标函数M文件,fminconc.m
function f=myfun(x)
f=0.785*(x(1)^2-x(2)^2)
再建立非线性约束M文件,fmincono.m
function=mycon(x)
c(1)=6292.99/(x(1)^3*(1-(x(2)/x(1))^4))-61320*((x(1)-x(2))/x(1))^(2/3)
c(2)=152.353*((x(1)^2+x(2)^2))^(1/2)-8000
c(3)=5197452/(x(1)^4-x(2)^4)-125
cep=0
设置线性约束,
A=[-1 1
1 0];
b=[-3.2;100];
设置初始值,变量下限值,调用优化程序
x0=;
lb=zeros(2,1);
=fmincon(@fmincono,x0,A,b,[],[],lb,[],@fminconc)
就是吧X0=改为就可以运行了吗?请帮我改一下我原先的程序,并指出哪些地方出了问题!以便我处理更多的问题!谢谢 不是。你的原程序有些问题。
几个问题如下:(你自己修改一下,问题即可解决)
%%%%%%%%%%%%%%%%%%%%%%%%
1. 函数名不统一,要修改.
2. cep=0 改为 ceq=[];
3.可以作如下修改:
A=[-1 1];
b=[-3.2];
lb=;
ub=; =fmincon(@fmincono,x0,A,b,[],[],lb,[],@fminconc)
最后这句有错误吗?刚刚按照你的改还是出现以下提示:
??? Error using ==> fmincon
FMINCON cannot continue because user supplied nonlinear constraint function
failed with the following error:
One or more output arguments not assigned during call to 'e:\MATLAB701\work\fminconc.m (fminconc)'.
函数名统一需要改哪啊? 麻烦你把正确的程序贴出来一下!我好对照修改!谢谢! 是不是在fmincon上使用格式有错误啊? 斑竹!能把你优化出来得到
x =
16.3524423763924613.15244237639246
fval =
74.11627049899573
这个结果的程序贴出来吗?
我对照一下!看什么地方出了问题!谢谢!在线等!急
===================================
有时候一个问题提示到一定程度,是应该自己多思考一下的.
By xjzuo
===================================
[ 本帖最后由 xjzuo 于 2007-5-20 23:10 编辑 ]
页:
[1]