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

来源:百度知道 编辑:UC知道 时间:2024/06/09 12:40:10
在一个直角坐标系中,有n个点(A1,B1),(A2,B2),......,(An,Bn),求一点(A,B)使它到以上各点距离之和最短?可不可以用matlab解决?

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

哦。。。再想一想。。