永发信息网

怎样求一点使它到各点的距离之和最短?

答案:2  悬赏:0  手机版
解决时间 2021-12-31 17:39
  • 提问者网友:嘚啵嘚啵
  • 2021-12-31 07:40
在一个直角坐标系中,有n个点(A1,B1),(A2,B2),......,(An,Bn),求一点(A,B)使它到以上各点距离之和最短?可不可以用matlab解决?
最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-12-31 08:59
clc;clear;
n=4,s=0
syms X Y
%A=rand(n,2)
A=[0 0;2 0;2 1;0 1]
for k=1:n
s=s+sqrt((A(k,1)-X)^2+(A(k,2)-Y)^2);
end
s1=subs(s,Y,'x(2)');
s2=inline(subs(s1,X,'x(1)'))
X=fminsearch(s2,[0.5 0.5])
plot(A(:,1),A(:,2),'o',X(1),X(2),'*')

结果:
n = 4
s = 0
A =
0 0
2 0
2 1
0 1

s2 =
Inline function:
s2(x) = (x(1).^2+x(2).^2).^(1./2)+(4-4.*x(1)+x(1).^2+x(2).^2).^(1./2)+(5-4.*x(1)+x(1).^2-2.*x(2)+x(2).^2).^(1./2)+(x(1).^2+1-2.*x(2)+x(2).^2).^(1./2)

X = 1.0000 0.5000
全部回答
  • 1楼网友:妄饮晩冬酒
  • 2021-12-31 09:15
连接直线外的两点为一条线段,找到该线段的中点,在中点上画一条垂直于该线段的直线,这条直线与最初的直线相交的点,就是你想要的那个点。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯