matlab多元函数求极值
若已知x∈[0,10],y∈[0,5],z=2*x1*y1+3*x2*y2+x3*y3+5*x4*y4求minz在matlab里可以实现吗,如果可以的话怎么实现?谢谢了,...
若已知 x∈[0,10],y∈[0,5], z=2*x1*y1+3*x2*y2+x3*y3+5*x4*y4 求minz 在matlab里可以实现吗,如果可以的话怎么实现?谢谢了,新手,麻烦稍微详细一点。 谢谢了,好心人帮忙啊,很急,不胜感激
展开
1个回答
展开全部
_1.m
输入:
function
y=zhidao_1(x)
y=x(3)*sqrt((x(1)-0)^2+(x(2)-4)^2)+x(4)*sqrt((x(1)-1)^2+(x(2)-5)^2)+x(5)*sqrt((x(1)-2)^2+(x(2)-4)^2)+x(6)*sqrt((x(1)-3)^2+(x(2)-4)^2)+x(7)*sqrt((x(1)-4)^2+(x(2)-1)^2)+x(8)*sqrt((x(1)-5)^2+(x(2)-2)^2)+(10-x(3)*sqrt((x(9)-0)^2+(x(10)-4)^2)+(11-x(4))*sqrt((x(9)-1)^2)+(x(10)-5)^2)+(8-x(5)*sqrt((x(9)-2)^2+(x(10)-4)^2)+(15-x(6))*sqrt(x(9)-3)^2+(x(10)+4)^2)+(8-x(7))*sqrt((x(9)-4)^2+(x(10)-1)^2)+(22-x(8))*sqrt((x(9)-5)^2+(x(10)-2)^2);
保存
然后返回matlab主窗口,
输入:
xmin=zeros(10,1);
xmax=[5;5;10;11;8;15;8;22;5;5];
[x,fopt,flag,c]=fmincon('zhidao_1',zeros(10,1),[],[],[],[],xmin,xmax)
输出的x,fopt就是x以及y的最小值。
你如果想求出最大值,那么在zhidao_1.m中,最后一行加入:y=-y
然后得到的fopt加一个负,就是最大值。
输入:
function
y=zhidao_1(x)
y=x(3)*sqrt((x(1)-0)^2+(x(2)-4)^2)+x(4)*sqrt((x(1)-1)^2+(x(2)-5)^2)+x(5)*sqrt((x(1)-2)^2+(x(2)-4)^2)+x(6)*sqrt((x(1)-3)^2+(x(2)-4)^2)+x(7)*sqrt((x(1)-4)^2+(x(2)-1)^2)+x(8)*sqrt((x(1)-5)^2+(x(2)-2)^2)+(10-x(3)*sqrt((x(9)-0)^2+(x(10)-4)^2)+(11-x(4))*sqrt((x(9)-1)^2)+(x(10)-5)^2)+(8-x(5)*sqrt((x(9)-2)^2+(x(10)-4)^2)+(15-x(6))*sqrt(x(9)-3)^2+(x(10)+4)^2)+(8-x(7))*sqrt((x(9)-4)^2+(x(10)-1)^2)+(22-x(8))*sqrt((x(9)-5)^2+(x(10)-2)^2);
保存
然后返回matlab主窗口,
输入:
xmin=zeros(10,1);
xmax=[5;5;10;11;8;15;8;22;5;5];
[x,fopt,flag,c]=fmincon('zhidao_1',zeros(10,1),[],[],[],[],xmin,xmax)
输出的x,fopt就是x以及y的最小值。
你如果想求出最大值,那么在zhidao_1.m中,最后一行加入:y=-y
然后得到的fopt加一个负,就是最大值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询