matlab多元函数求极值

学习 时间:2026-04-03 08:33:45 阅读:3580
matlab多元函数求极值若已知x∈[0,10],y∈[0,5],z=2*x1*y1+3*x2*y2+x3*y3+5*x4*y4求minz在matlab里可以实现吗,如果可以的话怎么实现?谢谢了,新手,麻烦稍微详细一点.谢谢了,好心人帮忙啊,很急,不胜感激

最佳回答

负责的火龙果

积极的魔镜

2026-04-03 08:33:45

_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加一个负,就是最大值。

最新回答共有2条回答

  • 高挑的寒风
    回复
    2026-04-03 08:33:45

    _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加一个负,就是最大值。

上一篇 when did you arrive in beijing的同义句?

下一篇 请问用生态板做衣柜好不好