切换科目
重点科目
主要科目
次要科目
科数网
首页
刷题
学习
VIP会员
赞助
组卷
集合
教材
VIP
写作
游客,
登录
注册
在线学习
数值分析
第三篇 数据插值方法
三次样条插值(1)
最后
更新:
2026-06-22 15:38
查看:
3
次
纠错
评论(0)
课件
开VIP
三次样条插值(1)
5.6 三次样条插值 分段线性插值导数不连续,连接点处有尖点,分段三次埃尔米特插值虽具有较好的光滑性,但是只有当被插值函数在插值节点处的函数值和导数值已知时才能使用,这在实际问题中是不现实的,因为一般情况下不可能也没有必要知道函数在插值节点处的导数值.样条插值方法克服了上述缺点,只需要在插值区间端点多加两个边界条件,就可以构造出光滑性更好的插值函数. 样条插值的思想来源于工程实际问题.在早期工程师制图时,把富有弹性的细长木条用压铁固定在样点上,其他地方自然弯曲,然后画下长条的曲线,称为样条曲线。样条曲线本质上是由一段一段的三次多项式拼合而成的,在拼接处,不仅函数是连续的,且一阶和二阶导数也是连续的. 1946 年,勋伯格(Schoenberg)将样条的概念引入数学,即所谓的样条函数. 5.6.1 三次样条插值函数的定义 给定区间 $[a, b]$ 上的一个划分 $$ a \leqslant x_0<x_1<\cdots<x_n \leqslant b $$ 已知函数 $f(x)$ 在节点 $x_i$ 处的函数值为 $$ y_j=f\left(x_j\right), \quad j=0,1,2, \cdots, n, $$ 如果存在分段函数 $$ S(x)=\left\{\begin{align*} S_1(x), & x \in\left[x_0, x_1\right], \tag{5.26}\\ S_2(x), & x \in\left[x_1, x_2\right], \\ & \ldots \ldots \\ S_n(x), & x \in\left[x_{n-1}, x_n\right], \end{align*}\right. $$ 其中 $S_j(x)(j=1,2, \cdots, n)$ 是三次多项式,且 $S(x)$ 在每一个内接点 $x_j(j=1,2, \cdots, n-1)$ 上具有直到二阶的连续导数,则称 $S(x)$ 为节点 $x_0, x_1, \cdots, x_n$ 上的三次样条函数。 若在节点 $x_0, x_1, \cdots, x_n$ 上还满足插值条件 $$ \begin{equation*} S\left(x_j\right)=y_j, \quad j=0,1,2, \cdots, n, \tag{5.27} \end{equation*} $$ 则称 $S(x)$ 为三次样条插值函数。 5.6.2 三次样条插值函数的确定 由于 $S(x)$ 在每个小区间 $\left[x_{j-1}, x_j\right]$ 上是一个三次多项式,可将该区间上的多项式记为 $S_j(x)$ ,设 $$ S_j(x)=a_j x^3+b_j x^2+c_j x+d_j, \quad x \in\left[x_{j-1}, x_j\right], \quad i=1,2, \cdots, n, $$ 则分段函数 $S(x)$ 有 $4 n$ 个待定系数. 分析三次样条插值函数的条件,由于 $S(x)$ 在每一个内接点 $x_j(j=1,2, \cdots, n-1)$ 上具有直到二阶的连续导数,即 $S(x), S^{\prime}(x), S^{\prime \prime}(x)$ 在 $x_1, x_2, \cdots, x_{n-1}$ 处连续,则 $$ \begin{aligned} & S\left(x_j-0\right)=S\left(x_j+0\right), \\ & S^{\prime}\left(x_j-0\right)=S^{\prime}\left(x_j+0\right), \quad j=1,2, \cdots, n-1 \\ & S^{\prime \prime}\left(x_j-0\right)=S^{\prime \prime}\left(x_j+0\right), \end{aligned} $$ 共有 $3 n-3$ 个条件. 又由 $S(x)$ 在节点 $x_0, x_1, \cdots, x_n$ 上满足插值条件 $S\left(x_i\right)=y_i, i=0,1,2, \cdots, n$ ,可得 $n+1$个条件,共有 $4 n-2$ 个条件,需要确定 $4 n$ 个未知数,为了保证样条插值问题求解的唯一性,需要添加两个约束条件.在实际应用中,通常规定插值函数在区间 $[a, b]$ 的左右端点处满足某种条件,称边界条件.常见的边界条件有三类. 第一类:转角边界条件,即给定端点处的一阶导数值, $$ S^{\prime}\left(x_0+0\right)=f^{\prime}\left(x_0\right), \quad S^{\prime}\left(x_n-0\right)=f^{\prime}\left(x_n\right) . $$ 第二类:弯矩边界条件,即给定端点处的二阶导数值, $$ S^{\prime \prime}\left(x_0+0\right)=f^{\prime \prime}\left(x_0\right), \quad S^{\prime \prime}\left(x_n-0\right)=f^{\prime \prime}\left(x_n\right) . $$ 第三类:周期边界条件,即当 $f(x)$ 是以 $b-a$ 为周期的周期函数时,则要求 $S(x)$也是周期函数,这时边界条件应满足当 $f(a)=f(b)$(即 $f\left(x_0\right)=f\left(x_n\right)$ )时, $$ S^{\prime}\left(x_0\right)=S^{\prime}\left(x_n\right), \quad S^{\prime \prime}\left(x_0\right)=S^{\prime \prime}\left(x_n\right) . $$ 加上边界条件,即可得 $4 n$ 个方程,可唯一地确定 $4 n$ 个待定系数. 在第二类边界条件中,当 $S^{\prime \prime}\left(x_0+0\right)=S^{\prime \prime}\left(x_n-0\right)=0$ 时称为自然边界条件,工程中常用自然边界条件求样条插值函数,这类插值函数称为自然样条. 利用样条函数的插值条件和连续性条件列出线性方程组并求解,是一种构造样条的原始方法. 例 5.4 取函数 $f(x)=x^2$ 的三个函数值 $f(-1)=1, f(0)=0, f(1)=1$ ,求 $f(x)$ 在 $[-1,1]$ 上的三次自然样条插值函数,并比较两个函数的曲线. 解 设 $$ S(x)= \begin{cases}a_1 x^3+b_1 x^2+c_1 x+d_1, & x \in[-1,0], \\ a_2 x^3+b_2 x^2+c_2 x+d_2, & x \in[0,1],\end{cases} $$ 由插值条件 $S(-1)=1, S(0)=0, S(1)=1$ 可得 $$ -a_1+b_1-c_1+d_1=1, \quad d_1=0, \quad d_2=0, \quad a_2+b_2+c_2+d_2=1 $$ 由 $S(x)$ 在 $x=0$ 处一阶和二阶导数连续,$S^{\prime}\left(0^{-}\right)=S^{\prime}\left(0^{+}\right), S^{\prime \prime}\left(0^{-}\right)=S^{\prime \prime}\left(0^{+}\right)$可得 $$ c_1=c_2, \quad b_1=b_2 $$ 由自然边界条件 $S^{\prime \prime}\left(-1^{+}\right)=S^{\prime \prime}\left(1^{-}\right)=0$ 得 $$ -6 a_1+2 b_1=0, \quad 6 a_2+2 b_2=0 $$ 联立上面的 8 个方程,可得 $$ a_1=\frac{1}{2}, \quad a_2=-\frac{1}{2}, \quad b_1=\frac{3}{2}, \quad b_2=\frac{3}{2}, \quad c_1=c_2=d_1=d_2=0 $$ 代入 $S(x)$ 的表达式,得 $$ S(x)= \begin{cases}\frac{1}{2} x^3+\frac{3}{2} x^2, & x \in[-1,0], \\ -\frac{1}{2} x^3+\frac{3}{2} x^2, & x \in[0,1] .\end{cases} $$ 被插值函数和样条函数的图形比较如图 5.3 所示.  5.6.3 三次样条插值函数的构造 1.用一阶导数值构造三次样条插值函数(三转角算法) 设样条插值函数在插值节点处的导数值为 $$ S^{\prime}\left(x_j\right)=m_j, \quad j=0,1,2, \cdots, n . $$ 若计算出一阶导数值 $m_j(j=0,1,2, \cdots, n)$ ,即可通过分段两点三次埃尔米特插值得到分段三次样条插值多项式。 不妨设插值节点是等距节点,步长为 $h$ ,即 $x_{j+1}-x_j=h, j=0,1,2, \cdots, n-1$ ,当 $x \in\left[x_j, x_{j+1}\right]$ 时,利用分段三次埃尔米特插值多项式表示 $S(x)$ 可得 $$ \begin{equation*} S_{j+1}(x)=y_j \alpha_j(x)+y_{j+1} \alpha_{j+1}(x)+m_j \beta_j(x)+m_{j+1} \beta_{j+1}(x) \tag{5.28} \end{equation*} $$ 其中 $$ \begin{gathered} \alpha_j(x)=\left(1+2 \frac{x-x_j}{x_{j+1}-x_j}\right)\left(\frac{x-x_{j+1}}{x_j-x_{j+1}}\right)^2, \\ \alpha_{j+1}(x)=\left(1+2 \frac{x-x_{j+1}}{x_j-x_{j+1}}\right)\left(\frac{x-x_j}{x_{j+1}-x_j}\right)^2, \\ \beta_j(x)=\left(x-x_j\right)\left(\frac{x-x_{j+1}}{x_j-x_{j+1}}\right)^2, \end{gathered} $$ $$ \beta_{j+1}(x)=\left(x-x_{j+1}\right)\left(\frac{x-x_j}{x_{j+1}-x_j}\right)^2 $$ 可利用样条插值函数的二阶连续性 $$ S^{\prime \prime}\left(x_j-0\right)=S^{\prime \prime}\left(x_j+0\right) $$ 即 $$ S_j^{\prime \prime}\left(x_j\right)=S_{j+1}^{\prime \prime}\left(x_j\right) $$ 建立 $m_j(j=0,1,2, \cdots, n)$ 满足的方程.首先在小区间 $\left[x_j, x_{j+1}\right]$ 的左端点 $x_j$ 处,有 $$ \left\{\begin{array}{l} \alpha_j^{\prime \prime}\left(x_j\right)=\left[\frac{-8}{h^3}\left(x_{j+1}-x\right)+\left(1+2 \frac{x-x_j}{h}\right) \frac{2}{h^2}\right]_{x=x_j}=-\frac{6}{h^2} \\ \alpha_{j+1}^{\prime \prime}\left(x_j\right)=\left[\frac{-8}{h^3}\left(x-x_j\right)+\left(1+2 \frac{x_{j+1}-x}{h}\right) \frac{2}{h^2}\right]_{x=x_j}=\frac{6}{h^2} \end{array}\right. $$ $$ \left\{\begin{array}{l} \beta_j^{\prime \prime}\left(x_j\right)=\left[\frac{4}{h^2}\left(x-x_{j+1}\right)+\left(x-x_j\right) \frac{2}{h^2}\right]_{x=x_j}=-\frac{4}{h} \\ \beta_{j+1}^{\prime \prime}\left(x_j\right)=\left[\frac{4}{h^2}\left(x-x_j\right)+\left(x-x_{j+1}\right) \frac{2}{h^2}\right]_{x=x_j}=\frac{2}{h} \end{array}\right. $$ 故 $$ \begin{equation*} S_{j+1}^{\prime \prime}\left(x_j\right)=-\frac{6}{h^2} y_j+\frac{6}{h^2} y_{j+1}-\frac{4}{h} m_j-\frac{2}{h} m_{j+1}, \tag{5.29} \end{equation*} $$ 同理可得 $$ \begin{equation*} S_j^{\prime \prime}\left(x_j\right)=\frac{6}{h^2} y_{j-1}-\frac{6}{h^2} y_j+\frac{2}{h} m_{j-1}+\frac{4}{h} m_j, \tag{5.30} \end{equation*} $$ 令式(5.29)和(5.30)右端相等,整理得 $$ \begin{equation*} m_{j-1}+4 m_j+m_{j+1}=\frac{3}{h}\left(y_{j+1}-y_{j-1}\right), \quad j=1,2, \cdots, n-1, \tag{5.31} \end{equation*} $$ 可得 $n-1$ 个方程. 补充自然样条的边界条件,$S^{\prime \prime}\left(x_0\right)=S^{\prime \prime}\left(x_n\right)=0$ ,得 $$ \left\{\begin{array}{l} 2 m_0+m_1=\frac{3}{h}\left(y_1-y_0\right), \tag{5.32}\\ m_{n-1}+2 m_n=\frac{3}{h}\left(y_n-y_{n-1}\right), \end{array}\right. $$ 记 $$ g_0=\frac{3\left(y_1-y_0\right)}{h}, \quad g_n=\frac{3\left(y_n-y_{n-1}\right)}{h}, \quad g_j=\frac{3\left(y_{j+1}-y_{j-1}\right)}{h}, \quad j=1,2, \cdots, n-1 . $$ 将式(5.31)和(5.32)联立,可得关于 $m_j(j=0,1,2, \cdots, n)$ 的 $n+1$ 个方程构成的线性方程组 $$ \left\{\begin{array}{l} 2 m_0+m_1=g_0 \\ m_0+4 m_1+m_2=g_1 \\ \quad \ldots \ldots \\ m_{n-2}+4 m_{n-1}+m_n=g_{n-1} \\ m_{n-1}+2 m_n=g_n \end{array}\right. $$ 其矩阵形式为 $$ \left(\begin{array}{cccccc} 2 & 1 & & & & \\ 1 & 4 & 1 & & & \\ & \ddots & \ddots & \ddots & & \\ & & & 1 & 4 & 1 \\ & & & & 1 & 2 \end{array}\right)\left(\begin{array}{c} m_0 \\ m_1 \\ \vdots \\ m_{n-1} \\ m_n \end{array}\right)=\left(\begin{array}{c} g_0 \\ g_1 \\ \vdots \\ g_{n-1} \\ g_n \end{array}\right) $$ 求解该线性方程组(可用追赶法)可得样条插值函数在插值节点处的一阶导数值 $m_j(j=0,1,2, \cdots, n)$ ,代入式(5.28)便可得到三次样条插值的表达式。 例 5.5 对龙格反例中的函数 $f(x)=\frac{1}{1+x^2}(-5 \leqslant x \leqslant 5)$ 作三次样条插值. 解 取插值节点 $x_k=-5+k(k=0,1, \cdots, 10)$ ,计算函数值 $$ y_k=f\left(x_k\right), \quad k=0,1, \cdots, 10 $$ 利用数据 $\left(x_k, y_k\right)(k=0,1, \cdots, 10)$ 构造三次自然样条函数 $S(x)$ ,计算 $t_k=-5+ 0.01 k(k=0,1, \cdots, 200)$ 处的样条函数值 $u_k=S\left(x_k\right)$ ,利用数据 $\left(t_k, u_k\right)(k=0,1, \cdots, 200)$ 绘图如图 5.4.  从图 5.4 可见,样条插值完全克服了高次多项式插值的振荡现象. 当插值节点不是等距节点时,令 $x_j-x_{j-1}=h_j, j=1,2, \cdots, n$ ,则插值节点处的一阶导数值 $m_j(j=0,1,2, \cdots, n)$ 满足的三对角方程组如下: $$ \frac{1}{h_{j-1}} m_{j-1}+2\left(\frac{1}{h_{j-1}}+\frac{1}{h_j}\right) m_j+\frac{1}{h_j} m_{j+1}=3\left[\frac{y_{j+1}-y_j}{h_j^2}+\frac{y_j-y_{j-1}}{h_{j-1}^2}\right], \quad j=1,2, \cdots, n-1 . $$
科数题库(单机版)
会议室预约系统(book)
今日还可看
0
篇 未注册用户每天查看4篇,
注册
用户每天8篇,
开通VIP
会员无限制查看。
免费注册
《高等数学》难点解析
高数教程
泰勒公式
切线与法线
切平面与法平面
驻点·拐点·极值点·零点
间断点
渐进线
瑕积分
欧拉方程
伯努利方程
Abel 收敛定理
偏导数的几何意义
偏导数的几何意义
梯度
数量场与向量场
多元函数极值
拉格朗日算子
通量与散度
环流量与旋度
格林公式
高斯公式
斯托克斯公式
三大公式比较
傅里叶级数
极坐标微元
点法式方程
变上限定积分
X型计算面积
Y型计算面积
微分的意义
渐近线
间断点
y''+py'+qy=f(x)方程
高斯
黎曼
傅里叶变换(复数)
拉普拉斯变换(复数)
《线性代数》难点解析
线代教程
近世代数对数学的整体思考
线性的意义
矩阵乘法(列视角)
矩阵乘法(行视角)
矩阵左乘
矩阵右乘
逆矩阵求解方程组
阶梯形矩阵的求法
方程组解的判定
四阶行列式的计算
线性变换的意义
线性空间
向量组的等价
线性空间的几何意义
基础解系的求法
施密特正交化
特征值与特征向量的意义
矩阵相似的几何意义
矩阵可对角化的理解
秩的意义(向量版)
秩的意义(方程版)
二次型的意义
《概率论与数理统计》难点解析
概率教程
置信区间与上a分位数
概率中的“取”与“放”
贝叶斯公式
全概率公式
泊松分布
指数分布
伽玛分布
二维密度图的意义
卷积的意义
相关系数的意义
k阶矩是与矩母函数
卡方分布的作用
单正态区间估计理解
假设检验理解
切比雪夫不等式
中心极限定理
上一篇:
埃尔米特插值
下一篇:
三次样条插值(2)
本文对您是否有用?
有用
(
0
)
无用
(
0
)
赞助:
知乎 Mathhub
启明星
商务合作
赞助本站
科数网
是专业的数学网站,为您提供题库与教程 版权所有 禁止镜像
部分内容采用AI辅助生成,请注意识别
如果页面无法显示请联系 18155261033 或 983506039@qq.com