用matlab通过10个已知点求一未知点坐标,使该未知点点到其他点的距离只和最短

functionzx=fun(xf,yf)x(1)=1340,x(2)=1656,x(3)=2370,x(4)=2339.8,x(5)=1562,x(6)=1948,x(... function zx=fun(xf,yf)
x(1)=1340 ,x(2)=1656, x(3)=2370 ,x(4)=2339.8, x(5)=1562 ,x(6)=1948 ,x(7)=1433, x(8)=1765, x(9)=1275,x(10)=1096;
y(1)=2547 ,y(2)=2667, y(3)=3782 ,y(4)=3600.7, y(5)=4298, y(6)=2074 ,y(7)=3143, y(8)=2924, y(9)=2427 ,y(10)=1893;
for i=1:10
fun(i)=sqrt((x(i)-xf)*(x(i)-xf)+(y(i)-yf)*(y(i)-yf));
end
zx=fun(1)+fun(2)+fun(3)+fun(4)+fun(5)+fun(6)+fun(7)+fun(8)+fun(9)+fun(10)
[xf,yf]=lsqnonlin(@zx,[1430 2547])
总说是错的,我是新手,刚刚上路,还望帮忙啊!!!急!!!
展开
l001d
2011-05-16 · TA获得超过4368个赞
知道大有可为答主
回答量:1296
采纳率:0%
帮助的人:1526万
展开全部
lsqnonlin可以求解带约束的多函数多变量的最小值问题。你的问题没有约束,用一个简单明了的fminumc函数就可以了。具体如下:
先建立函数文件distance.m求距离。
distance.m的内容为:
function zx=distance(x)
xf=x(1); yf=x(2);
x(1)=1340;x(2)=1656; x(3)=2370 ;x(4)=2339.8; x(5)=1562 ;x(6)=1948 ;x(7)=1433; x(8)=1765; x(9)=1275;x(10)=1096;
y(1)=2547 ;y(2)=2667; y(3)=3782 ;y(4)=3600.7; y(5)=4298; y(6)=2074 ;y(7)=3143; y(8)=2924; y(9)=2427 ;y(10)=1893;
fun=zeros(10,1);
for i=1:10
fun(i)=sqrt((x(i)-xf)*(x(i)-xf)+(y(i)-yf)*(y(i)-yf));
end
zx=fun(1)+fun(2)+fun(3)+fun(4)+fun(5)+fun(6)+fun(7)+fun(8)+fun(9)+fun(10);
保存distance.m

在command window中输入(或另建立一个m文件输入):
x0 = [2000,3500]; %随意猜测一个起始值
[x,fval] = fminunc(@distance,x0)

得到结果:
x = 1634.9 2795.2
fval = 7258.1

欢迎交流。
东莞大凡
2024-08-07 广告
作为东莞市大凡光学科技有限公司的一员,我们深知Matlab圆点标定板在相机标定中的重要性。该标定板通过均匀分布的圆点,帮助精确计算相机参数,优化成像效果。Matlab强大的编程功能,使得我们能够灵活设计标定板,调整圆点大小、数量和分布,以满... 点击进入详情页
本回答由东莞大凡提供
731344006
2011-05-16 · 超过14用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:30.3万
展开全部
fun(i)要开方吧,你试一下,这个我才学,最后一条语句没看懂,不能解决问题就当我胡说啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式