作业帮 > 综合 > 作业

matlab一点到几个点最短距离程序

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/10 03:12:11
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一点到几个点最短距离程序
首先编写函数的.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为最小值.最后运行结果如图:
再问: 我要一个程序就好,求程序!
再答: 直接运行然后在命令窗口看结果即可。