分段插值法

用多项式作为插值函数来逼近某一函数f(x)f(x)f(x)是最简单易行的一种插值方法,但是插值多项式的次数是随着插值节点的数目而增加的,且次数高的插值多项式往往插值效果并不理想,会出现所谓的Runge现象,即在插值函数pn(x)p_n(x)pn​(x)的两端会发生激烈地震荡(不稳定)。为此,在实际应用中常采用分段插值方法。

所谓分段插值法就是将被插值函数逐段多项式化,构造一个分段多项式作为插值函数。

分段插值:首先,将插值区间划分为若干小段,在每一小段上使用低阶插值;然后,将各小段上的插值多项式拼接在一起作为整个区间上的插值函数。如果使用的低阶插值为线性插值(两点插值),则将拼接成一条折线,用它来逼近函数f(x)f(x)f(x)。

应用低阶插值的关键在于恰当地选择插值节点。由插值余项公式(9)可知,所选节点xix_ixi​离插值点x越近则误差越小。

  1. 分段线性插值

将插值区间[a,b][a,b][a,b]分成
a=x0,x1,x2,⋯,xn=ba=x_0,x_1,x_2,\cdots,x_n=b a=x0​,x1​,x2​,⋯,xn​=b
n个小段,在每一个小段[xi−1,xi](i=1,2,⋯,n)[x_{i-1},x_i](i=1,2,\cdots,n)[xi−1​,xi​](i=1,2,⋯,n)上,其分段线性插值的公式为:
s(x)=yi+yi−yi−1xi−xi−1(x−xi)s(x)=y_i+\frac{y_i-y_{i-1}}{x_i-x_{i-1}}(x-x_i) s(x)=yi​+xi​−xi−1​yi​−yi−1​​(x−xi​)
根据
i={1x≤x0kxk−1<x≤xk时,(1≤k≤n)nx>xni = \begin{cases} 1 \quad x\leq x_0 \\ k \quad x_{k-1}<x\leq x_k时,(1\leq k\leq n) \\ n \quad x>x_n \end{cases} i=⎩⎪⎨⎪⎧​1x≤x0​kxk−1​<x≤xk​时,(1≤k≤n)nx>xn​​
选择插值节点,即当插值节点为x0,x1,x2,⋯,xk−1,xk,⋯,xnx_0,x_1,x_2,\cdots,x_{k-1},x_k,\cdots,x_nx0​,x1​,x2​,⋯,xk−1​,xk​,⋯,xn​时,依次从左至右取出各节点。如果插值点x不超过节点x1x_1x1​(即在[x0,x1][x_0,x_1][x0​,x1​]之间),则取节点x0x_0x0​和x1x_1x1​进行线性插值,否则,再检查x是否超过x2,⋯x_2,\cdotsx2​,⋯,依次逐步检查。一旦发现x不超过某个节点xnx_nxn​,则取它与前面一个节点xn−1x_{n-1}xn−1​进行线性插值。如果x已超过xn−1x_{n-1}xn−1​,则不论是否超过xnx_nxn​,插值节点均取xnx_nxn​和xn−1x_{n-1}xn−1​(也就是一律当成是在[xn−1,xn][x_{n-1},x_n][xn−1​,xn​])范围内取插值点。

在小段[xn−1,xn][x_{n-1},x_n][xn−1​,xn​]上,分段线性插值的误差是:
∣R(x)∣=∣f(x)−s(x)∣≤∣f(2)(ξ)∣8(xn−xn−1)2,ξ∈[xn−1,xn]|R(x)|=|f(x)-s(x)|\leq \frac{|f^{(2)}(\xi)|}{8}(x_n-x_{n-1})^2, \quad \xi \in [x_{n-1},x_n] ∣R(x)∣=∣f(x)−s(x)∣≤8∣f(2)(ξ)∣​(xn​−xn−1​)2,ξ∈[xn−1​,xn​]
可见,当f(2)f^{(2)}f(2)有界时,小段[xn−1,xn][x_{n-1},x_n][xn−1​,xn​]越小,分段线性插值的误差就越小。用分段线性插值方法提高插值精度是有效的。

  1. 分段抛物插值

为了提高插值精度,可以在每一小段取3个节点xi−1,xix_{i-1},x_ixi−1​,xi​和xi+1x_{i+1}xi+1​进行二次插值,从而构成分段抛物插值。其插值公式如下:
y=(x−xi)(x−xi+1)(xi−1−xi)(xi−1−xi+1)⋅yx−1+(x−xi−1)(x−xi+1)(xi−xi−1)(xi−xi+1)⋅yi+(x−xi−1)(x−xi)(xi+1−xi−1)(xi+1−xi)⋅yiy=\frac{(x-x_i)(x-x_{i+1})}{(x_{i-1}-x_i)(x_{i-1}-x_{i+1})}·y_{x-1}+\frac{(x-x_{i-1})(x-x_{i+1})}{(x_i-x_{i-1})(x_i-x_{i+1})}·y_i+\frac{(x-x_{i-1})(x-x_{i})}{(x_{i+1}-x_{i-1})(x_{i+1}-x_i)}·y_i y=(xi−1​−xi​)(xi−1​−xi+1​)(x−xi​)(x−xi+1​)​⋅yx−1​+(xi​−xi−1​)(xi​−xi+1​)(x−xi−1​)(x−xi+1​)​⋅yi​+(xi+1​−xi−1​)(xi+1​−xi​)(x−xi−1​)(x−xi​)​⋅yi​
根据
i={1x<x1k−1xk−1<x<xk且∣x−xk−1∣≤∣x−xk∣,k=2,3,⋯,n−1kxk−1<x<xk且∣x−xk−1∣>∣x−xk∣,k=2,3,⋯,n−1n−1x>xn−1i=\begin{cases} 1 \quad x<x_1 \\ k-1 \quad x_{k-1}<x<x_k 且 |x-x_{k-1}|\leq |x-x_k|, k=2,3,\cdots,n-1 \\ k \quad x_{k-1}<x<x_k 且|x-x_{k-1}|>|x-x_k|,k=2,3,\cdots,n-1 \\ n-1 \quad x>x_{n-1} \end{cases} i=⎩⎪⎪⎪⎨⎪⎪⎪⎧​1x<x1​k−1xk−1​<x<xk​且∣x−xk−1​∣≤∣x−xk​∣,k=2,3,⋯,n−1kxk−1​<x<xk​且∣x−xk−1​∣>∣x−xk​∣,k=2,3,⋯,n−1n−1x>xn−1​​
选择插值节点。即靠近x0x_0x0​取i=1i=1i=1,计算节点为x0,x1,x2x_0,x_1,x_2x0​,x1​,x2​;靠近xk−1x_{k-1}xk−1​取i=k−1i=k-1i=k−1,计算节点为xk−2,xk−1,xkx_{k-2},x_{k-1},x_kxk−2​,xk−1​,xk​;靠近xkx_kxk​取i=ki=ki=k,计算节点为xk−1,xk,xk+1x_{k-1},x_k,x_{k+1}xk−1​,xk​,xk+1​;靠近xnx_nxn​取i=n−1i=n-1i=n−1,计算节点为xn−2,xn−1,xnx_{n-2},x{n-1},x_nxn−2​,xn−1,xn​。

  1. 分段插值方法特点

(1)分段插值方法算法简单,收敛性可以得到保证,只要节点间距充分小,就能达到任何精度的要求。

(2)如需修改某个数据,则插值函数仅在相关的某个局部范围内受影响。

(3)分段抛物插值所拼接成的插值函数曲线不一定光滑。

分段插值法 | 分段线性插值 + 分段抛物插值相关推荐

  1. Matlab实现线性插值、抛物插值、牛顿插值、拉格朗日插值、分段抛物插值、分段线性插值

    目录 线性插值 原理 流程图 代码 抛物插值 原理 流程图 代码 拉格朗日插值 代码 牛顿插值 原理 代码 分段线性插值 代码 线性插值 原理 流程图 单个点的线性插值代码 X=[0.2 0.4]; ...

  2. 线性插值、抛物插值、Lagrange插值 | Lagrange拉格朗日插值法(一)

    Lagrange(拉格朗日)插值法 Lagrange插值法是一种多项式插值方法. 1. 线性插值(两点插值或一次插值) 线性插值就是通过两个采样点 ( x 0 , y 0 ) (x_0,y_0) (x ...

  3. 插值与拟合 (一) : 拉格朗日多项式插值 、Newton插值 、分段线性插值、Hermite插值 、样条插值、 B 样条函数插值、二维插值

    插值:求过已知有限个数据点的近似函数. 拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小. 插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似 ...

  4. 分段二次插值的matlab程序,怎样用matlab进行抛物插值(二次插值)

    4.1问题的提法 一个多项式的幂级数形式可表示为: p(x)= a0xn + a1xn-1 + - + an-1x + an 在MATLAB中,多项式用行向量表示,其元素为多项式的系数,且从左到右按降 ...

  5. 拉格朗日插值、分段线性插值、三次样条插值

    本篇主要介绍在三种插值方法:拉格朗日插值.分段线性插值.三次样条插值,以及这三种方法在matlab中如何实现. 1.拉格朗日插值: 1.1基本原理:先构造一组基函数:               是次 ...

  6. Redis分布式锁 分段加锁思想实现 分段锁

    Redis分布式锁 分段加锁思想实现 分段锁 一.前言 ​ 这里我简单说一下,代码可能没那么完美.希望各位大佬可以多多指点!!!要是有测试能力的兄弟可以帮我测一下,我这个分段加锁我是全部都在Redis ...

  7. 数值计算之 插值法(1)多项式插值——拉格朗日插值法

    数值计算之 插值法(1)多项式插值--拉格朗日插值法 前言 什么是插值 多项式插值法 拉格朗日插值法 总结 前言 移动机器人有一个非常重要的任务,轨迹规划.轨迹规划需要满足运动学原理,即在路径规划给出 ...

  8. mysql实现线性插值法_向量之间的插值-四元数法VS.旋转矩阵法的性能比较

    问题: 3D空间中,在等长度的两个交角为theta的向量v1(x1,y1,z1),v2(x2,y2,z2)之间进行球面线性插值. 实例: 做一个行星在围绕太阳等速旋转的动画,假设只采样到旋转过程中的两 ...

  9. 分段二次插值函数表达式_【插值】插值方法原理详解

    插值问题详解 1. 我在具体的应用(如数学建模竞赛)中,常常需要根据已知的函数点进行数据.模型的处理和分析,而通常情况下现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,&quo ...

  10. 分段二次插值例题_分段低次插值克服了高次插值多项式可能产生震荡的不足,但分段低次插值函数在整个插值区间上不能保证...

    [单选题]43. ---I heard you had left our Disneyland admission coupons at home. [多选题]下列各式中,其计算结果等于贡献边际率的有 ...

最新文章

  1. Datawhale第九期组队学习计划
  2. 十年后,这款优秀的工具终于给出了不开源的原因
  3. LFS(Linux From Scratch)学习
  4. node --- 使用mongoose连接mongoDB,并初始化所有的Schema
  5. PostgreSQL 简单的查询
  6. Office2021中文零售版的离线安装包下载地址合集
  7. 计算机做减法运算的过程,32位汇编基础_计算机做加减乘除
  8. oa处理会签流程图_OA协同流程管理解决方案
  9. Spring源码之事务(二)
  10. 德语翻译-德语在线批量翻译软件
  11. mac 安装 PyAudio
  12. python爬虫菜鸟驿站_爬30层楼、扛40斤……5万菜鸟驿站春节快递不打烊
  13. 联想服务器加装显卡无显示,标配11201355主板的启天M4330在 Win8系统加装独立显卡“无显无报警”...
  14. android 支付宝快捷支付
  15. 微信小程序wx.chooseImage选择图片并上传避坑/真机上传无效
  16. 盛金公式解一元三次方程_一元三次方程解法(卡尔丹公式法盛金公式法)
  17. 3d Max人物动画学习笔记(一) 骨骼创建
  18. 使用多线程将多个变量导出到目标文件夹
  19. 腾讯最难lua面试题答案及解析
  20. 【航天远景 MapMatrix 精品教程】04 Metashape空三导入MapMatrix

热门文章

  1. Android~adb卸载系统预装应用(亲测有效,android开发框架介绍
  2. Openwrt下电脑已经获得IPv6但网络连接提示“无Internet访问权限”解决方法
  3. 海外媒体稿件内容怎么写更出色
  4. 微信公众号迁移流程和公众号迁移公证书办理步骤
  5. 【VBA】Str与CStr辨析
  6. WiFiDisplay
  7. 正整数变成英文输出c语言,C语言,输入一个正整数,然后从个位开始一次输出每一位数字对应的英文字母...
  8. 操作系统中ESP和MSR分区
  9. 【BZOJ3295】【CQOI2011】动态逆序对(CDQ分治)
  10. 学习笔记(1):FFmpeg打造Android万能音频播放器-实现变速变调功能(二)