目標函數: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
提交
取消