matlab 求助 求参数变化函数的极小值 40

M=40;N=1000;A=50;a=1000;c=(0:0.1:0.7);f=@(x)M*(x^2)+N*x+a.*c+A/x;x=fminbnd(f,0,1000)我... M=40;
N=1000;
A=50;
a=1000;
c=(0:0.1:0.7);
f=@(x)M*(x^2)+N*x+a.*c+A/x;
x=fminbnd(f,0,1000)
我想分别求出函数M*(x^2)+N*x+a.*c+A/x在c为0到0.7这几个值时的极小值,即得到多个极小值,结果显示为c为0到0.7是,这个函数对应的8个极小值

我的目的就是求这个函数,在c取不同值时对应的函数最小值,然后画一条c为横轴,对应的函数最小值为纵轴的曲线
以下代码中,第二个函数g,我想加入约束条件t1,t2都大于零,且t1小于t2,请问各位高手该如何处理。
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);
for vb = 0:0.05:0.7;
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);
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]=fmincon(g,t0,);
result(i)=fval;
ans(1,i)=t(1);
ans(2,i)=t(2);
i=i+1;
end
ans,fval
vb=0:0.05:0.7;
result;
plot(vb,result)
展开
 我来答
unfoxeses
2010-07-22 · TA获得超过609个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:175万
展开全部

这道题不需要用求极值函数

M=40;

N=1000;

A=50;

a=1000;

i=1;

for c=0:0.1:0.7

    f=@(x)M.*(x.^2)+N.*x+a.*c+A./x;

      x=0:1:1000;

      yy(i)=min(f(x));

      i=i+1;

end

     c=0:0.1:0.7;

     plot(c,yy)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式