分段插值法 | 分段线性插值 + 分段抛物插值
分段插值法
用多项式作为插值函数来逼近某一函数f(x)f(x)f(x)是最简单易行的一种插值方法,但是插值多项式的次数是随着插值节点的数目而增加的,且次数高的插值多项式往往插值效果并不理想,会出现所谓的Runge现象,即在插值函数pn(x)p_n(x)pn(x)的两端会发生激烈地震荡(不稳定)。为此,在实际应用中常采用分段插值方法。
所谓分段插值法就是将被插值函数逐段多项式化,构造一个分段多项式作为插值函数。
分段插值:首先,将插值区间划分为若干小段,在每一小段上使用低阶插值;然后,将各小段上的插值多项式拼接在一起作为整个区间上的插值函数。如果使用的低阶插值为线性插值(两点插值),则将拼接成一条折线,用它来逼近函数f(x)f(x)f(x)。
应用低阶插值的关键在于恰当地选择插值节点。由插值余项公式(9)可知,所选节点xix_ixi离插值点x越近则误差越小。
- 分段线性插值
将插值区间[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−1yi−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≤x0kxk−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]越小,分段线性插值的误差就越小。用分段线性插值方法提高插值精度是有效的。
- 分段抛物插值
为了提高插值精度,可以在每一小段取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<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−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)分段插值方法算法简单,收敛性可以得到保证,只要节点间距充分小,就能达到任何精度的要求。
(2)如需修改某个数据,则插值函数仅在相关的某个局部范围内受影响。
(3)分段抛物插值所拼接成的插值函数曲线不一定光滑。
分段插值法 | 分段线性插值 + 分段抛物插值相关推荐
- Matlab实现线性插值、抛物插值、牛顿插值、拉格朗日插值、分段抛物插值、分段线性插值
目录 线性插值 原理 流程图 代码 抛物插值 原理 流程图 代码 拉格朗日插值 代码 牛顿插值 原理 代码 分段线性插值 代码 线性插值 原理 流程图 单个点的线性插值代码 X=[0.2 0.4]; ...
- 线性插值、抛物插值、Lagrange插值 | Lagrange拉格朗日插值法(一)
Lagrange(拉格朗日)插值法 Lagrange插值法是一种多项式插值方法. 1. 线性插值(两点插值或一次插值) 线性插值就是通过两个采样点 ( x 0 , y 0 ) (x_0,y_0) (x ...
- 插值与拟合 (一) : 拉格朗日多项式插值 、Newton插值 、分段线性插值、Hermite插值 、样条插值、 B 样条函数插值、二维插值
插值:求过已知有限个数据点的近似函数. 拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小. 插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似 ...
- 分段二次插值的matlab程序,怎样用matlab进行抛物插值(二次插值)
4.1问题的提法 一个多项式的幂级数形式可表示为: p(x)= a0xn + a1xn-1 + - + an-1x + an 在MATLAB中,多项式用行向量表示,其元素为多项式的系数,且从左到右按降 ...
- 拉格朗日插值、分段线性插值、三次样条插值
本篇主要介绍在三种插值方法:拉格朗日插值.分段线性插值.三次样条插值,以及这三种方法在matlab中如何实现. 1.拉格朗日插值: 1.1基本原理:先构造一组基函数: 是次 ...
- Redis分布式锁 分段加锁思想实现 分段锁
Redis分布式锁 分段加锁思想实现 分段锁 一.前言 这里我简单说一下,代码可能没那么完美.希望各位大佬可以多多指点!!!要是有测试能力的兄弟可以帮我测一下,我这个分段加锁我是全部都在Redis ...
- 数值计算之 插值法(1)多项式插值——拉格朗日插值法
数值计算之 插值法(1)多项式插值--拉格朗日插值法 前言 什么是插值 多项式插值法 拉格朗日插值法 总结 前言 移动机器人有一个非常重要的任务,轨迹规划.轨迹规划需要满足运动学原理,即在路径规划给出 ...
- mysql实现线性插值法_向量之间的插值-四元数法VS.旋转矩阵法的性能比较
问题: 3D空间中,在等长度的两个交角为theta的向量v1(x1,y1,z1),v2(x2,y2,z2)之间进行球面线性插值. 实例: 做一个行星在围绕太阳等速旋转的动画,假设只采样到旋转过程中的两 ...
- 分段二次插值函数表达式_【插值】插值方法原理详解
插值问题详解 1. 我在具体的应用(如数学建模竞赛)中,常常需要根据已知的函数点进行数据.模型的处理和分析,而通常情况下现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,&quo ...
- 分段二次插值例题_分段低次插值克服了高次插值多项式可能产生震荡的不足,但分段低次插值函数在整个插值区间上不能保证...
[单选题]43. ---I heard you had left our Disneyland admission coupons at home. [多选题]下列各式中,其计算结果等于贡献边际率的有 ...
最新文章
- Datawhale第九期组队学习计划
- 十年后,这款优秀的工具终于给出了不开源的原因
- LFS(Linux From Scratch)学习
- node --- 使用mongoose连接mongoDB,并初始化所有的Schema
- PostgreSQL 简单的查询
- Office2021中文零售版的离线安装包下载地址合集
- 计算机做减法运算的过程,32位汇编基础_计算机做加减乘除
- oa处理会签流程图_OA协同流程管理解决方案
- Spring源码之事务(二)
- 德语翻译-德语在线批量翻译软件
- mac 安装 PyAudio
- python爬虫菜鸟驿站_爬30层楼、扛40斤……5万菜鸟驿站春节快递不打烊
- 联想服务器加装显卡无显示,标配11201355主板的启天M4330在 Win8系统加装独立显卡“无显无报警”...
- android 支付宝快捷支付
- 微信小程序wx.chooseImage选择图片并上传避坑/真机上传无效
- 盛金公式解一元三次方程_一元三次方程解法(卡尔丹公式法盛金公式法)
- 3d Max人物动画学习笔记(一) 骨骼创建
- 使用多线程将多个变量导出到目标文件夹
- 腾讯最难lua面试题答案及解析
- 【航天远景 MapMatrix 精品教程】04 Metashape空三导入MapMatrix
热门文章
- Android~adb卸载系统预装应用(亲测有效,android开发框架介绍
- Openwrt下电脑已经获得IPv6但网络连接提示“无Internet访问权限”解决方法
- 海外媒体稿件内容怎么写更出色
- 微信公众号迁移流程和公众号迁移公证书办理步骤
- 【VBA】Str与CStr辨析
- WiFiDisplay
- 正整数变成英文输出c语言,C语言,输入一个正整数,然后从个位开始一次输出每一位数字对应的英文字母...
- 操作系统中ESP和MSR分区
- 【BZOJ3295】【CQOI2011】动态逆序对(CDQ分治)
- 学习笔记(1):FFmpeg打造Android万能音频播放器-实现变速变调功能(二)