Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2010-07-23, 15:16   #1
dengchenxy
初级会员
 
dengchenxy 的头像
 
注册日期: 2010-07-23
帖子: 1
声望力: 0
dengchenxy 正向着好的方向发展
默认 请教,约束条件下多元函数最小值的求解

请假各位高手,我的代码的第二个函数,就是那个二元函数g,目前的求解是没有任何约束的,我要在进行求解时,加入约束t1和t2都大于零,并且t1小于t2来进行求解,之前,我参照了一些教材,但是结果错的很离谱,希望各位高手指点,该如何做。
另外还有一个问题。t0设置成其他参数,就报错了,请问它的设置有什么讲究。
a=3000;
A=50;
c=40;
p=50;
h=3;
b=20;
ie=0.02;
ip=0.04;
B=10;
vb=0:0.05:0.7;
i=1;
diff = 0;
result = zeros(1,15);
ans = zeros(2,15);
%f=@(x)m*(x^2)+n*x+a*c+A/x;
%g=@(t)m1*(t(1)^2)+n1*t(1)+B*b*t(2)+a*B+c*a+c*b*t(2)+m2*(t(1)^2)/t(2)+A/t(2)-a*B*t(1)/t(2)+n2*(t(1)^3)/t(2);
for vb = 0:0.05:0.7;
m = 2/3*b*h+c*b*(1.-vb)*ip-1/3*p*b*ie;
n = b*c+1/2*a*h-1/2*p*a*ie+c*a*(1.-vb)*ip;
m1 = (p*b*ie.*((vb.^2)-1)+p*b*ie*(c/p-(vb.^2)));
n1 = (p*a*ie.*(-1.+vb)+p*a*ie.*(c/p-vb));
m2 = (a*ie.*vb.*(p.*vb-c)-(a*p*ie.*((vb.^2)-(0.5)))+((0.5*a*h)-(b*B)));
n2 = (a*ie.*vb.*(p.*(vb.^2)-c)-p*b*ie.*((vb.^3)-(2/3))+2/3*b*h);
f=@(x)m*(x^2)+n*x+a*c+A/x;
[x(i),y(i)]=fminbnd(f,0,5);
g=@(t)m1*(t(1)^2)+n1*t(1)+B*b*t(2)+a*B+c*a+c*b*t(2)+m2*(t(1)^2)/t(2)+A/t(2)-a*B*t(1)/t(2)+n2*(t(1)^3)/t(2);
t0 = [-1,1];
%options = optimset('GradObj','on');
[t,fval]=fminunc(g,t0);
result(i)=fval;
ans(1,i)=t(1);
ans(2,i)=t(2);
i=i+1;
end
ans,x,y,fval
vb = 0:0.05:0.7;
plot(vb,y)
hold on
vb=0:0.05:0.7;
result;
plot(vb,result)
dengchenxy 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:58


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.