目标函数:T=5〖((86-y)^2+x^2)〗^(1/2)+3〖((89-y)^2+〖(100-x)〗^2)〗^(1/2)+2〖((100-x)^2+y^2)〗^(1/2),约束条件:0≤x≤100,0≤y≤89,求T的最小值,取初始点为(50,50),步长0.1即可。除了函数程序,运行命令也请给出,谢谢!请详细,因为Matlab基本0基础。另:请画出搜索过程的图形
2 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
clear all
close all
x=0:0.1:100;y=0:0.1:89;
lx=length(x);ly=length(y);
for k=1:1:lx
for j=1:1:ly
T(k,j)=5*((86-y(j))^2+x(k)^2)^0.5+3*((89-y(j))^2+(100-x(k))^2)^0.5+2*((100-x(k))^2+y(j)^2)^0.5;
end
end
Tmin=min(min(T));
[m,n]=find(T==Tmin);
Tmincr=[x(m) y(n)];
其中Tmin就是你想要的最小值;Tmincr是最小值对应的x,y坐标;
还有你的初始点(50,50)是什么意思?如果是x,y都从50计算的话,把x=0:0.1:100;y=0:0.1:89;
改为:x=50:0.1:100;y=50:0.1:89;
“请画出搜索过程的图形”这句话什么意思?
添加回答
举报
0/150
提交
取消
