matlab一点到几个点最短距离程序一个点(3,4)距离要乘3,一个点(1,7)距离要乘11,一个点(9,3)距离要乘5,例如min=3*根号[(x-3)^2+(x-4)^2]+11*根号[(x-1)^2+(x-7)^2]+5*根号[(x-9)^2+(x-3)^2]
来源:学生作业帮助网 编辑:作业帮 时间:2024/03/29 10:22:25
matlab一点到几个点最短距离程序一个点(3,4)距离要乘3,一个点(1,7)距离要乘11,一个点(9,3)距离要乘5,例如min=3*根号[(x-3)^2+(x-4)^2]+11*根号[(x-1)^2+(x-7)^2]+5*根号[(x-9)^2+(x-3)^2]
matlab一点到几个点最短距离程序
一个点(3,4)距离要乘3,一个点(1,7)距离要乘11,一个点(9,3)距离要乘5,例如min=3*根号[(x-3)^2+(x-4)^2]+11*根号[(x-1)^2+(x-7)^2]+5*根号[(x-9)^2+(x-3)^2]
matlab一点到几个点最短距离程序一个点(3,4)距离要乘3,一个点(1,7)距离要乘11,一个点(9,3)距离要乘5,例如min=3*根号[(x-3)^2+(x-4)^2]+11*根号[(x-1)^2+(x-7)^2]+5*根号[(x-9)^2+(x-3)^2]
首先编写函数的.m文件如下:
function f=myfun(x)
f=3*sqrt((x(1)-3)^2+(x(2)-4)^2)+11*sqrt((x(1)-1)^2+(x(2)-7)^2)+5*sqrt((x(1)-9)^2+(x(2)-3)^2);
end
%将点(x,y)看成二维向量如x=[1 2],其中x(1)、x(2)分别对应横纵坐标.
然后在命令窗口输入:
x0=[0,0];
[x,fval]=fminsearch(@myfun,x0)
%x0为初始值,可自由设定.
%myfun为目标函数.
%fval:返回目标函数在最优解x点的函数值.
%x为最小值.
最后运行结果如图: