搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > ZCLOGS > MATLAB数据分析(上)

MATLAB数据分析(上)

ZCLOGS 2018-03-01

今天利用MATLAB实现了数据分析中几种常用的插值算法,包括插值函数、拉格朗日插值和牛顿插值。


插值函数(一维):

yi=interp1(x,Y,xi,method)

对数据向量x和Y根据选用的方法构造插值函数,并计算xi处的函数值,返回yi。


method指定插值方法,有五种:

‘nearnest’——最邻近插值。

‘linear’——线性插值(默认)。

‘cubic’——三次插值。

‘spline’——三次样条插值。

‘v5cubic’——三次多项式插值。

这几种方法的对比图如图1:

图 1  插值函数不同算法对比图


如图1所示,利用4种插值算法对sin函数进行插值,各种插值算法效果一目了然。如若不惜运算成本(这里指运算速度以及内存占用情况),显然三次样条插值算法效果最好。


下面介绍样条插值函数,在MATLAB中提供了splineppval函数用于样条插值,用法与一维插值函数相同。样条插值效果如图2所示。

MATLAB数据分析(上)

图 2  样条插值函数示例


图2是对一组简单的数据以及圆形数据进行插值,可以看出样条插值对光滑曲线插值效果较好。


除了MATLAB自带的插值函数外,在工程上经常用到拉格朗日插值和牛顿插值。根据拉格朗日插值多项式以及牛顿插值的基本原理,可以分别编写出拉格朗日插值函数和牛顿插值函数。由于拉格朗日插值算法容易理解,只对牛顿插值进行讨论。


为了研究牛顿插值不同阶数对结果的影响,下面结合实例进行讨论:以函数 f(x)=1/(1+10*x^2)为基准函数,分别采用4阶、8阶、10阶进行牛顿插值运算,比较不同阶数的插值误差,结果如图3.1、图3.2 所示。

图 3.1  不同阶数牛顿插值图

图 3.2  不同阶数牛顿插值误差图


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《MATLAB数据分析(上)》的版权归原作者「ZCLOGS」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注ZCLOGS微信公众号

ZCLOGS微信公众号:ZCLOGS

ZCLOGS

手机扫描上方二维码即可关注ZCLOGS微信公众号

ZCLOGS最新文章

精品公众号随机推荐