sogooda 发表于 2008-12-30 09:04

回复 15楼 leeking30 的帖子

恩,我理解是采用不同的拟合方式,比如线性拟合、二次拟合、样条拟合。

ChaChing 发表于 2008-12-30 09:39

嘿嘿, 我只在乎自己会不会, 觉得好玩就做做看!
到底如何估计公路长度?

[ 本帖最后由 ChaChing 于 2008-12-30 10:05 编辑 ]

sogooda 发表于 2008-12-30 11:13

回复 17楼 ChaChing 的帖子

线性插值的话,就是每两个点都用直线连接,那公路的长度就是每两个点之间的距离的和——这是最简单、最粗糙的一种估计;如果采用二次或三次插值的话,就需要根据拟合公式来计算曲线的长度了,弧长微元的长度ds=sqrt(1+y'^2)*dx,再对它积分。

ChaChing 发表于 2008-12-30 15:08

回复 18楼 sogooda 的帖子

好像是不能使用interp1函数, 因这例子并非y(x)类型函数!?
所以亦无法得到y'=dy/dx

ChaChing 发表于 2008-12-30 15:41

好像想太多了! 简单就好了
clc; clear
x=[ 03050708090 120 148 170 180, 202 212 230 248 268 271 280 290 300 312, ...
320 340 360 372 382 390 416 430 478 440, 420 380 360 340 320 314 280 240 200];
y=[80644742486680 120 121 138, 160 182 200 208 212 210 200 196 188 186, ...
200 184 188 200 202 240 246 280 296 308, 334 328 334 346 356 360 392 390 400];
n=length(x); nn=;
xx = interp1(,x,nn,'spline'); yy = interp1(,y,nn,'spline');
plot(x,y,'o',xx,yy); grid on;
leng1=sum( sqrt((x(2:end)-x(1:end-1)).^2+(y(2:end)-y(1:end-1)).^2) );
leng2=sum( sqrt((xx(2:end)-xx(1:end-1)).^2+(yy(2:end)-yy(1:end-1)).^2) );


[ 本帖最后由 ChaChing 于 2008-12-30 15:43 编辑 ]

sogooda 发表于 2008-12-30 18:27

回复 19楼 ChaChing 的帖子

精确的y'是无法知道的,但是样条曲线的y'是可以知道的。不过,像20楼那样采用非常小间隔的直线来替代弧线应该也是可以的,而且可以省去很多麻烦。

[ 本帖最后由 sogooda 于 2008-12-30 18:37 编辑 ]
页: 1 [2]
查看完整版本: 已知公路坐标,如何求公路总长?[请详解]