作业帮 > 综合 > 作业

matlab多元函数求极值(10个未知数)难度!

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/28 08:07:28
matlab多元函数求极值(10个未知数)难度!
fun=x(3)*sqr((x(1)-0)^2+(x(2)-4)^2)+x(4)*sqr((x(1)-1)^2+(x(2)-5)^2)+x(5)*sqr((x(1)-2)^2+(x(2)-4)^2)+x(6)*sqr((x(1)-3)^2+(x(2)-4)^2)+x(7)*sqr((x(1)-4)^2+(x(2)-1)^2)+x(8)*sqr((x(1)-5)^2+(x(2)-2)^2)+(10-x(3)*sqr((x(9)-0)^2+(x(10)-4)^2)+(11-x(4))*sqr((x(9)-1)^2)+(x(10)-5)^2)+(8-x(5)*sqr((x(9)-2)^2+(x(10)-4)^2)+(15-x(6))*sqr(x(9)-3)^2+(x(10)+4)^2)+(8-x(7))*sqr((x(9)-4)^2+(x(10)-1)^2)+(22-x(8))*sqr((x(9)-5)^2+(x(10)-2)^2)
0
在matlab里面中输入:edit zhidao_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加一个负,就是最大值.