用matlab通过10个已知点求一未知点坐标,使该未知点点到其他点的距离只和最短
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/03 01:54:00
用matlab通过10个已知点求一未知点坐标,使该未知点点到其他点的距离只和最短
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])
总说是错的,我是新手,刚刚上路,
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])
总说是错的,我是新手,刚刚上路,
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
欢迎交流.
先建立函数文件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
欢迎交流.
用matlab通过10个已知点求一未知点坐标,使该未知点点到其他点的距离只和最短
已知1点的坐标X、Y和1点到2点的距离(方位角未知),怎样才可以计算出2点的坐标!
一条直线上已知两个点坐标 算该直线上另外一点,该未知点到另一个点的距离知道
已知一系列点的坐标(x,y),如何通过matlab编程算出任意一点到其他其他各点的距离,并且生成一个距离矩阵.
已知一系列点的坐标(x,y),如何通过matlab编程算出任意一点到其他其他各点的距离.
已知两个坐标点,在第三个未知点架全站仪,
用全站仪测量未知坐标,只给出了一个测站点坐标和一个参照物对应的方位角,如何操作来测得未知点坐标
matlab已知两点的坐标和第三点到两点的距离求第三点坐标怎么编程求解?
已知两点坐标(规划局定建筑角点的),求建筑内未知点坐标,距离可在图纸上计算.
已知坐标1点2点的坐标和距离如何计算其他坐标
未知入射点做镜面反射已知两个到镜面距离不同的点和镜面的位置,如何用尺规做该反射光路图
已知未知双曲线的焦点坐标和双曲线上一个已知点,有无快速求出双曲线方程的办法?