作业帮 > 综合 > 作业

matlab多元函数求极值

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 06:19:07
matlab多元函数求极值
若已知
x∈[0,10],y∈[0,5],
z=2*x1*y1+3*x2*y2+x3*y3+5*x4*y4
求minz
在matlab里可以实现吗,如果可以的话怎么实现?谢谢了,新手,麻烦稍微详细一点.
谢谢了,好心人帮忙啊,很急,不胜感激
_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加一个负,就是最大值.