请教MATLAB一个问题
我有许多的二维点例如(1,3),(4,6)等等这些都已知,我现在要求出一个点,这个点到已知的所有点的距离之和(欧氏距离)是最小的。这个程序该如何编写?...
我有许多的二维点例如(1,3),(4,6)等等这些都已知,我现在要求出一个点,这个点到已知的所有点的距离之和(欧氏距离)是最小的。这个程序该如何编写?
展开
4个回答
展开全部
一楼的回答思路是正确的,但有个最大的错误就是你怎么知道这个点的坐标就是整数值呢?
对于这个问题,你可以在数学上分析一下:
假设只有两个点,那到这两个点的距离之和最短的点就是这两个点的中点。对于三个点来说,就是这三个点组成三角形的外心。
所以你的问题变的很简单,这个点的坐标就是所有点坐标的平均值。即
A_x=mean(x);
A_y=mean(y);
这个是可以证明的,假设这些点分别是(x1,y1)、(x2,y2)……(xn,yn)
那么平面内一点到这点的距离之和的平方为
L^2=(x-x2)^2+(x-x2)^2+……+(y-y1)^2+(y-y2)^2+……
求它的最值就是求它的两个偏导数都为零的点。
这样可得到
x=(x1+x2+……+xn)/n
y=(y1+y2+……+yn)/n
从这个问题可以看出,对于一个问题的数学分析是最主要的!
祝你学习愉快!
对于这个问题,你可以在数学上分析一下:
假设只有两个点,那到这两个点的距离之和最短的点就是这两个点的中点。对于三个点来说,就是这三个点组成三角形的外心。
所以你的问题变的很简单,这个点的坐标就是所有点坐标的平均值。即
A_x=mean(x);
A_y=mean(y);
这个是可以证明的,假设这些点分别是(x1,y1)、(x2,y2)……(xn,yn)
那么平面内一点到这点的距离之和的平方为
L^2=(x-x2)^2+(x-x2)^2+……+(y-y1)^2+(y-y2)^2+……
求它的最值就是求它的两个偏导数都为零的点。
这样可得到
x=(x1+x2+……+xn)/n
y=(y1+y2+……+yn)/n
从这个问题可以看出,对于一个问题的数学分析是最主要的!
祝你学习愉快!
展开全部
设有n个点,其x,y坐标记录到矩阵A=[x1,y1;x2,y2;……xn,yn]中
%%
A=[x1,y1;x2,y2;……xn,yn]; %记录坐标点
n=length(A); %返回A中记录的点数
for i=1:n %第i个点
for j=1:n %第j个点
d(j)=sqrt((A(i,1)-A(j,1))^2+(A(i,2)-A(j,2))^2); %第i点到第j点的距离
end
sumd(i)=sum(d); %第i点到到所有点的距离和
end
[D N]=min(sumd); %结果,即第N个点到所有点的距离和最小,最小距离为D
%%
A=[x1,y1;x2,y2;……xn,yn]; %记录坐标点
n=length(A); %返回A中记录的点数
for i=1:n %第i个点
for j=1:n %第j个点
d(j)=sqrt((A(i,1)-A(j,1))^2+(A(i,2)-A(j,2))^2); %第i点到第j点的距离
end
sumd(i)=sum(d); %第i点到到所有点的距离和
end
[D N]=min(sumd); %结果,即第N个点到所有点的距离和最小,最小距离为D
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
读入图片
调整图片大小得I2
对图像作开运算得I3(膨胀)
用I3-I2,求出图像边缘
显示I3图像
对I3二值化处理,变成黑白图像BW
显示
对BW中值滤波
显示
这句应该是对图像去毛刺
最后存储修改后图片
你可以拿张图片试试,边缘提取的程序有很多种
调整图片大小得I2
对图像作开运算得I3(膨胀)
用I3-I2,求出图像边缘
显示I3图像
对I3二值化处理,变成黑白图像BW
显示
对BW中值滤波
显示
这句应该是对图像去毛刺
最后存储修改后图片
你可以拿张图片试试,边缘提取的程序有很多种
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用无约束非线性规划指令fminunc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询