齿轮论坛 www.gearbbs.net

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 1562|回复: 1
收起左侧

[其他] MATLAB样条插值计算

[复制链接]
发表于 2017-4-19 09:38 | 显示全部楼层 |阅读模式

本帖子中包含更多资源。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 刀疤五 于 2017-4-20 13:44 编辑

问题:N个顺序点坐标X(I),Y(I)构成的样条曲线,求X为某值时,Y=?
方法是构造三次样条进行插值, 书本上讲了三种构造方法.
1.自然样条(通用做法.把首尾点的二阶导数强行定为0).
2.固支样条(已知首尾点导数或者说已知首尾点的方向切矢).
3.周期样条
近来发现MATLAB还有一种非扭结样条,而且把非扭结样条当成默认的插值计算方法.

采用 函数 Y=SIN(X)  X范围0度到270度,点数N=55,X变步长,即按:
X1=0

X2=2.5
X3=10...
用这55个点分别用自然样条,固支样条,非扭结样条进行插值计算.X的取值范围从-20到290度,可以发现固支样条最准,非扭结样条也很可靠,自然样条不可靠.(图片中灰色线是用函数来计算出的值)
1701.png

1702.png

1703.png


固支样条的前提是必须知道首尾点的一阶导数,在实际中,已知条件只是一系列点.根本不知道首尾点导数.因此,按MATLAB做法选扭结样条.从图形中可以发现,三种方法,在区间(0,270)度内,且不靠近端点的区域,插值计算均是可靠的.具体计算结果与原函数的误差如下(放大了10000倍).


1704.png

如果曲线封闭,采用周期样条,是最准的. 函数 Y=SIN(X)  X范围0度到360度,点数N=73,X变步长.结果如下:

1704.png
剃增步长,渐开线曲率半径的计算

1706.png









发表于 2021-5-16 23:19 | 显示全部楼层
谢谢,介绍!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|齿轮论坛

GMT+8, 2024-5-4 06:14 , Processed in 0.245824 second(s), 12 queries , MemCache On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表