顺的网站建设策划,抚宁区建设局网站,网站建设招标技术要求,北京网站设计公司兴田德润信任高文章目录 前言一、Hermite插值1.两点三次Hermite插值2.两点三次Hermite插值的推广3.非标准型Hermite插值 二、三次样条插值1.概念2.三弯矩方程 前言
之前写过Lagrange插值与Newton插值法的内容#xff0c;这里介绍一些其他的插值方法#xff0c;顺便复习数值分析. 一、Hermi… 文章目录 前言一、Hermite插值1.两点三次Hermite插值2.两点三次Hermite插值的推广3.非标准型Hermite插值 二、三次样条插值1.概念2.三弯矩方程 前言
之前写过Lagrange插值与Newton插值法的内容这里介绍一些其他的插值方法顺便复习数值分析. 一、Hermite插值
实际应用中为了使插值函数更好地切合原函数不仅要求节点的函数值相等还要求导数值相同甚至高阶导数也相等这类插值问题称为Hermite插值
1.两点三次Hermite插值
给定yf(x)在节点x0,x1上的函数值和导数值 y j f ( x j ) , m j f ′ ( x j ) , j 0 , 1. y_jf(x_j),m_jf(x_j),j0,1. yjf(xj),mjf′(xj),j0,1. 求多项式 H 3 ( x ) H_3(x) H3(x)满足插值条件 H 3 ( x j ) y j , H 3 ′ ( x j ) m j , j 0 , 1. H_3(x_j)y_j,H_3(x_j)m_j,j0,1. H3(xj)yj,H3′(xj)mj,j0,1. 类似Lagrange插值多项式我们可以设 H 3 ( x ) y 0 α 0 ( x ) y 1 α 1 ( x ) m 0 β 0 ( x ) m 1 β 1 ( x ) H_3(x)y_0\alpha_0(x)y_1\alpha_1(x)m_0\beta_0(x)m_1\beta_1(x) H3(x)y0α0(x)y1α1(x)m0β0(x)m1β1(x) 为三次Hermite插值多项式其中 α 0 ( x ) , α 1 ( x ) , β 0 ( x ) , β 1 ( x ) \alpha_0(x),\alpha_1(x),\beta_0(x),\beta_1(x) α0(x),α1(x),β0(x),β1(x)称为Hermite插值基函数. 基函数满足如下条件 α j ( x j ) δ j i , α j ′ ( x i ) 0 , β j ( x i ) 0 , β j ′ ( x i ) δ j i , i , j 0 , 1 \alpha_j(x_j)\delta_{ji},\alpha_j(x_i)0,\\\beta_j(x_i)0,\beta_j(x_i)\delta_{ji},\\ i,j0,1 αj(xj)δji,αj′(xi)0,βj(xi)0,βj′(xi)δji,i,j0,1 其中 δ j i { 1 j i 0 j ≠ i \delta_{ji}\begin{cases}1ji\\ 0j\neq i \end{cases} δji{10jiji 我们可以找到唯一的三次Hermite插值多项式推导略即 H 3 ( x ) y 0 [ 1 2 l 1 ( x ) ] l 0 2 ( x ) y 1 [ 1 2 l 0 ( x ) ] l 1 2 ( x ) m 0 ( x − x 0 ) l 0 2 ( x ) m 1 ( x − x 1 ) l 1 2 ( x ) H_3(x)y_0[12l_1(x)]l^2_0(x)y_1[12l_0(x)]l^2_1(x)\\m_0(x-x_0)l^2_0(x)m_1(x-x_1)l^2_1(x) H3(x)y0[12l1(x)]l02(x)y1[12l0(x)]l12(x)m0(x−x0)l02(x)m1(x−x1)l12(x) 这里的 l i l_i li为Lagrange插值基函数 l 0 ( x ) x − x 1 x 0 − x 1 , l 1 ( x ) x − x 0 x 1 − x 0 l_0(x)\frac{x-x_1}{x_0-x_1},l_1(x)\frac{x-x_0}{x_1-x_0} l0(x)x0−x1x−x1,l1(x)x1−x0x−x0
2.两点三次Hermite插值的推广
设 x i ∈ [ a , b ] ( i 0 , 1 , ⋯ , n ) x_i\in[a,b](i0,1,\cdots,n) xi∈[a,b](i0,1,⋯,n)为n1个互异节点给定 y f ( x ) yf(x) yf(x)在节点上的函数值和导数值 y j f ( x j ) , m j f ′ ( x j ) , j 0 , ⋯ , n . y_jf(x_j),m_jf(x_j),j0,\cdots,n. yjf(xj),mjf′(xj),j0,⋯,n.要求插值多项式 H 2 n 1 ( x ) H_{2n1}(x) H2n1(x)满足插值条件 H 2 n 1 ( x j ) y j , H 2 n 1 ′ ( x j ) m j , j 0 , ⋯ , n . H_{2n1}(x_j)y_j,H_{2n1}(x_j)m_j,j0,\cdots,n. H2n1(xj)yj,H2n1′(xj)mj,j0,⋯,n.有n1个函数值和n1个导数值共2n2个条件可确定满足插值条件次数不超过2n1次的多项式 H 2 n 1 ( x ) H_{2n1}(x) H2n1(x). 公式 H 2 n 1 ∑ j 0 n { f ( x j ) [ 1 − 2 ( x − x j ) l j ′ ( x j ) ] l j 2 ( x ) f ′ ( x j ) ( x − x j ) l j 2 ( x ) } H_{2n1}\sum_{j0}^n \{f(x_j)[1-2(x-x_j)l_j(x_j)]l^2_j(x)f(x_j)(x-x_j)l^2_j(x)\} H2n1j0∑n{f(xj)[1−2(x−xj)lj′(xj)]lj2(x)f′(xj)(x−xj)lj2(x)} 其中 l j ( x ) ( x − x 0 ) ⋯ ( x − x j − 1 ) ( x − x j 1 ) ⋯ ( x − x n ) ( x j − x 0 ) ⋯ ( x j − x j − 1 ) ( x j − x j 1 ) ⋯ ( x j − x n ) l_j(x)\frac{(x-x_0)\cdots(x-x_{j-1})(x-x_{j1})\cdots(x-x_n)}{(x_j-x_0)\cdots(x_j-x_{j-1})(x_j-x_{j1})\cdots(x_j-x_n)} lj(x)(xj−x0)⋯(xj−xj−1)(xj−xj1)⋯(xj−xn)(x−x0)⋯(x−xj−1)(x−xj1)⋯(x−xn)
3.非标准型Hermite插值
给出的函数值和导数值不等的情况例题
二、三次样条插值
Hermite只保证函数连续或其一阶导数连续满足不了二阶导数连续的问题. 针对这一问题产生了样条插值.
1.概念
给定区间[a,b]一个划分 a x 0 x 1 ⋯ x n − 1 x n b ax_0x_1\cdots x_{n-1}x_nb ax0x1⋯xn−1xnb 若函数S(x)满足
在每个小区间 [ x i , x i 1 ] [x_i,x_{i1}] [xi,xi1]是分段三次多项式具有二阶连续导数即 S ( x ) ∈ C 2 [ a , b ] S(x)\in C^2[a,b] S(x)∈C2[a,b]还满足插值条件 S ( x i ) f ( x i ) y i , i 0 , 1 , 2 , ⋯ , n S(x_i)f(x_i)y_i,i0,1,2,\cdots,n S(xi)f(xi)yi,i0,1,2,⋯,n
则称S(x)为f(x)在[a,b]上的三次样条插值函数 S ( x ) { s 0 ( x ) , x ∈ [ x 0 , x 1 ] , s 1 ( x ) , x ∈ [ x 1 , x 2 ] , ⋮ s n − 1 ( x ) , x ∈ [ x n − 1 , x n ] , S(x)\begin{cases}s_0(x),x\in [x_0,x_1],\\ s_1(x),x\in [x_1,x_2],\\ \vdots\\s_{n-1}(x),x\in [x_{n-1},x_n],\end{cases} S(x)⎩ ⎨ ⎧s0(x),s1(x),⋮sn−1(x),x∈[x0,x1],x∈[x1,x2],x∈[xn−1,xn], 其中 s i ( x ) s_i(x) si(x)为 [ x i , x i 1 ] ( i 0 , 1 , 2 , ⋯ , n − 1 ) [x_i,x_{i1}](i0,1,2,\cdots,n-1) [xi,xi1](i0,1,2,⋯,n−1)上的三次多项式设 s i ( x ) a i x 3 b i x 2 c i x d i ( i 0 , 1 , ⋯ , n − 1 ) , s_i(x)a_ix^3b_ix^2c_ixd_i(i0,1,\cdots,n-1), si(x)aix3bix2cixdi(i0,1,⋯,n−1), 且满足 s i ( x i ) y i , s i 1 ( x i 1 ) s_i(x_i)y_i,s_{i1}(x_{i1}) si(xi)yi,si1(xi1). 由三次样条函数的定义可知 S ( x ) S(x) S(x)满足下列条件 { S ( x i − 0 ) S ( x i 0 ) ( i 1 , 2 , ⋯ , n − 1 ) , S ′ ( x i − 0 ) S ′ ( x i 0 ) ( i 1 , 2 , ⋯ , n − 1 ) , S ′ ′ ( x i − 0 ) S ′ ′ ( x i 0 ) ( i 1 , 2 , ⋯ , n − 1 ) , S ( x i ) y i ( i 0 , 1 , 2 , ⋯ , n ) \begin{cases}S(x_i-0)S(x_i0)(i1,2,\cdots,n-1),\\ S(x_i-0)S(x_i0)(i1,2,\cdots,n-1),\\ S(x_i-0)S(x_i0)(i1,2,\cdots,n-1),\\ S(x_i)y_i(i0,1,2,\cdots,n) \end{cases} ⎩ ⎨ ⎧S(xi−0)S(xi0)S′(xi−0)S′(xi0)S′′(xi−0)S′′(xi0)S(xi)yi(i1,2,⋯,n−1),(i1,2,⋯,n−1),(i1,2,⋯,n−1),(i0,1,2,⋯,n) 每个 s i ( x ) s_i(x) si(x)有4个待定系数所以S(x)共有4n个待定系数故需4n个方程才能确定. 前面已经得到2n2(n-1)4n-2个方程还缺2个方程. 实际问题通常对样条函数在两个端点处的状态有要求即所谓的边界条件. 常用的边界条件如下 第一类边界条件给定函数在端点处的一阶导数即 S ′ ( x 0 ) f 0 ′ , S ′ ( x n ) f n ′ S(x_0)f_0,S(x_n)f_n S′(x0)f0′,S′(xn)fn′ 第二类边界条件给定函数在端点处的二阶导数即 S ′ ′ ( x 0 ) f 0 ′ ′ , S ′ ′ ( x n ) f n ′ ′ S(x_0)f_0,S(x_n)f_n S′′(x0)f0′′,S′′(xn)fn′′ 第三类边界条件设 f ( x ) f(x) f(x)是周期函数并设 x n − x 0 x_n-x_0 xn−x0是一个周期于是要求 S ( x ) S(x) S(x)满足 S ′ ( x 0 ) S ′ ( x n ) , S ′ ′ ( x 0 ) S ′ ′ ( x n ) S(x_0)S(x_n),S(x_0)S(x_n) S′(x0)S′(xn),S′′(x0)S′′(xn)
2.三弯矩方程
设 S ′ ′ ( x j ) M j , j 0 , 1 , 2 , ⋯ , n S(x_j)M_j,j0,1,2,\cdots,n S′′(xj)Mj,j0,1,2,⋯,n下面计算 S ( x ) S(x) S(x)在 [ x j , x j 1 ] [x_j,x_{j1}] [xj,xj1]的表达式 s j ( x ) s_j(x) sj(x).由于 s j ( x ) s_j(x) sj(x)是三次多项式故 s j ′ ′ ( x ) s_j(x) sj′′(x)为线性函数且 s j ′ ′ ( x j ) M j , s j ′ ′ ( x j 1 ) M j 1 s_j(x_j)M_j,s_j(x_{j1})M_{j1} sj′′(xj)Mj,sj′′(xj1)Mj1.由线性插值公式可得 s j ′ ′ ( x ) x j 1 − x h j M j x − x j h j M j 1 s_j(x)\frac{x_{j1}-x}{h_j}M_j\frac{x-x_j}{h_j}M_{j1} sj′′(x)hjxj1−xMjhjx−xjMj1 其中 h j x j 1 − x j h_jx_{j1}-x_j hjxj1−xj求积分可得 s j ( x ) ( x j 1 − x ) 3 6 h j M j ( x − x j ) 3 6 h j M j 1 c 1 x c 2 s_j(x)\frac{(x_{j1}-x)^3}{6h_j}M_j\frac{(x-x_j)^3}{6h_j}M_{j1}c_1xc_2 sj(x)6hj(xj1−x)3Mj6hj(x−xj)3Mj1c1xc2 将插值条件 s j ( x j ) y j , s j ( x j 1 ) y i 1 s_j(x_j)y_j,s_j(x_{j1})y_{i1} sj(xj)yj,sj(xj1)yi1代入即课确定积分常数 c 1 c_1 c1和 c 2 c_2 c2. 整理后可得 s j ( x ) s_j(x) sj(x)的表达式为 s j ( x ) ( x j 1 − x ) 2 6 h j M j ( x − x j ) 3 6 h j M j 1 ( y j − M j h j 2 6 ) x j 1 − x h j ( y i 1 − M j 1 h j 2 6 ) x − x j h j , j 0 , 1 , ⋯ , n − 1 s_j(x)\frac{(x_{j1}-x)^2}{6h_j}M_j\frac{(x-x_j)^3}{6h_j}M_{j1}\\ \left(y_j-\frac{M_jh_j^2}{6}\right)\frac{x_{j1}-x}{h_j}\left(y_{i1}-\frac{M_{j1}h_j^2}{6}\right)\frac{x-x_j}{h_j},j0,1,\cdots,n-1 sj(x)6hj(xj1−x)2Mj6hj(x−xj)3Mj1(yj−6Mjhj2)hjxj1−x(yi1−6Mj1hj2)hjx−xj,j0,1,⋯,n−1 只需确定 M 0 , M 1 , ⋯ , M n M_0,M_1,\cdots,M_n M0,M1,⋯,Mn的值即可给出 s j ( x ) s_j(x) sj(x)的表达式从而可以得到 S ( x ) S(x) S(x)的表达式 s j ′ ( x ) − ( x j 1 − x ) 2 2 h j M j ( x − x j ) 2 2 h j M j 1 y j 1 − y j h j − h j 6 ( M j 1 − M j ) s_j(x)-\frac{(x_{j1}-x)^2}{2h_j}M_j\frac{(x-x_j)^2}{2h_j}M_{j1}\frac{y_{j1}-y_j}{h_j}-\frac{h_j}{6}(M_{j1}-M_j) sj′(x)−2hj(xj1−x)2Mj2hj(x−xj)2Mj1hjyj1−yj−6hj(Mj1−Mj) 根据条件 s j − 1 ′ ( x j − 0 ) s j ′ ( x j 0 ) s_{j-1}(x_j-0)s_j(x_j0) sj−1′(xj−0)sj′(xj0)可知 h j − 1 6 M j − 1 h j − 1 h j 3 M j h j 6 M j 1 y j 1 − y j h j − y j − y j − 1 h j − 1 , h j − 1 h j − 1 h j M j − 1 2 M j h j h j − 1 h j M j 1 6 f [ x j , x j 1 ] − f [ x j − 1 , x j ] h j − 1 h j , \frac{h_{j-1}}{6}M_{j-1}\frac{h_{j-1}h_j}{3}M_j\frac{h_j}{6}M_{j1}\frac{y_{j1}-y_j}{h_j}-\frac{y_j-y_{j-1}}{h_{j-1}},\\ \frac{h_{j-1}}{h_{j-1}h_j}M_{j-1}2M_j\frac{h_j}{h_{j-1}h_j}M_{j1}6\frac{f[x_j,x_{j1}]-f[x_{j-1},x_j]}{h_{j-1}h_j}, 6hj−1Mj−13hj−1hjMj6hjMj1hjyj1−yj−hj−1yj−yj−1,hj−1hjhj−1Mj−12Mjhj−1hjhjMj16hj−1hjf[xj,xj1]−f[xj−1,xj], 整理后得到关于 M j − 1 , M j , M j 1 M_{j-1},M_j,M_{j1} Mj−1,Mj,Mj1的方程 μ j M j − 1 2 M j λ j M j 1 d j , \mu_jM_{j-1}2M_j\lambda_jM_{j1}d_j, μjMj−12MjλjMj1dj, 其中 μ j h j − 1 h j − 1 h j , λ j h j h j − 1 h j d j 6 f [ x j − 1 , x j , x j 1 ] , μ j λ j 1 j 1 , 2 , ⋯ , n − 1 \mu_j\frac{h_{j-1}}{h_{j-1}h_j},\lambda_j\frac{h_j}{h_{j-1}h_j}\\ d_j6f[x_{j-1},x_j,x_{j1}],\mu_j\lambda_j1\\ j1,2,\cdots,n-1 μjhj−1hjhj−1,λjhj−1hjhjdj6f[xj−1,xj,xj1],μjλj1j1,2,⋯,n−1 这里一共有n-1个方程补充两个方程后可确定 M 0 , M 1 , ⋯ , M n M_0,M_1,\cdots,M_n M0,M1,⋯,Mn共n-1个未知量. 第一类边界条件 S ′ ( x 0 ) f 0 ′ , S ′ ( x n ) f n ′ S(x_0)f_0,S(x_n)f_n S′(x0)f0′,S′(xn)fn′ 直接代入 s j ( x ) s_j(x) sj(x)的一阶导数表达式即得 2 M 0 M 1 6 ( ( y 1 − y 0 ) / h 0 − f 0 ′ ) / h 0 ≡ d 0 , M n − 1 2 M n 6 ( f n ′ − ( y n − y n − 1 ) / h n − 1 ) / h n − 1 ≡ d n . 2M_0M_16((y_1-y_0)/h_0-f_0)/h_0\equiv d_0,\\ M_{n-1}2M_n6(f_n-(y_n-y_{n-1})/h_{n-1})/h_{n-1}\equiv d_n. 2M0M16((y1−y0)/h0−f0′)/h0≡d0,Mn−12Mn6(fn′−(yn−yn−1)/hn−1)/hn−1≡dn. 与上面n-1个方程组联立可得n1阶线性方程组 [ 2 1 μ 1 2 λ 1 μ 2 2 λ 2 ⋱ ⋱ ⋱ μ n − 1 2 λ n − 1 1 2 ] [ M 0 M 1 M 2 ⋮ M n − 1 M n ] [ d 0 d 1 d 2 ⋮ d n − 1 d n ] \begin{bmatrix}21\\ \mu_12\lambda_1\\ \mu_22\lambda_2\\ \ddots\ddots\ddots\\ \mu_{n-1}2\lambda_{n-1}\\ 12\end{bmatrix}\begin{bmatrix}M_0\\M_1\\M_2\\ \vdots \\M_{n-1}\\M_n\end{bmatrix}\begin{bmatrix}d_0\\d_1\\d_2\\ \vdots \\d_{n-1}\\d_n\end{bmatrix} 2μ112μ2λ12⋱λ2⋱μn−1⋱21λn−12 M0M1M2⋮Mn−1Mn d0d1d2⋮dn−1dn 此方程组的系数矩阵严格对角占优因此为非奇异矩阵方程存在唯一解.可用追赶法求出三弯矩方程的解 M j . M_j. Mj.第二类边界条件 M 0 f 0 ′ ′ , M n f n ′ ′ M_0f_0,M_nf_n M0f0′′,Mnfn′′ 此时只需解n-1阶线性方程组 [ 2 λ 1 μ 2 2 λ 2 ⋱ ⋱ ⋱ μ n − 2 2 λ n − 2 μ n − 1 2 ] [ M 1 M 2 ⋮ M n − 1 M n ] [ d 1 − μ 1 f 0 ′ ′ d 2 ⋮ d n − 2 d n − 1 − λ n − 1 f n ′ ′ ] \begin{bmatrix}2\lambda_1\\ \mu_22\lambda_2\\ \ddots\ddots\ddots\\ \mu_{n-2}2\lambda_{n-2}\\ \mu_{n-1}2\end{bmatrix}\begin{bmatrix}M_1\\M_2\\ \vdots \\M_{n-1}\\M_n\end{bmatrix}\begin{bmatrix}d_1-\mu_1f_0\\d_2\\ \vdots \\d_{n-2}\\d_{n-1}-\lambda_{n-1}f_n\end{bmatrix} 2μ2λ12⋱λ2⋱μn−2⋱2μn−1λn−22 M1M2⋮Mn−1Mn d1−μ1f0′′d2⋮dn−2dn−1−λn−1fn′′ 此方程严格对角占优存在唯一解.第三类边界条件 S ′ ( x 0 ) S ′ ( x n ) , S ′ ′ ( x 0 ) S ′ ′ ( x n ) S(x_0)S(x_n),S(x_0)S(x_n) S′(x0)S′(xn),S′′(x0)S′′(xn) 由此边界条件可得 M 0 M n , λ n M 1 μ n M n − 1 2 M n d n , M_0M_n,\\ \lambda_nM_1\mu_nM_{n-1}2M_nd_n, M0Mn,λnM1μnMn−12Mndn, 其中 λ n h 0 / ( h 0 h n − 1 ) , μ n h n − 1 / ( h 0 h n − 1 ) , d n 6 [ ( y 1 − y 0 ) / h 0 − ( y n − y n − 1 ) / h n − 1 ] / ( h 0 h n − 1 ) . \lambda_nh_0/(h_0h_{n-1}),\mu_nh_{n-1}/(h_0h_{n-1}),\\ d_n6[(y_1-y_0)/h_0-(y_n-y_{n-1})/h_{n-1}]/(h_0h_{n-1}). λnh0/(h0hn−1),μnhn−1/(h0hn−1),dn6[(y1−y0)/h0−(yn−yn−1)/hn−1]/(h0hn−1). 与前面n-1个方程联立可得n阶线性方程组 [ 2 λ 1 μ 2 2 λ 2 ⋱ ⋱ ⋱ μ n − 2 2 λ n − 2 λ n μ 2 2 ] [ M 1 M 2 ⋮ M n − 1 M n ] [ d 0 d 1 d 2 ⋮ d n − 1 d n ] \begin{bmatrix}2\lambda_1\\ \mu_22\lambda_2\\ \ddots\ddots\ddots\\ \mu_{n-2}2\lambda_{n-2}\\ \lambda_n\mu_22\end{bmatrix}\begin{bmatrix}M_1\\M_2\\ \vdots \\M_{n-1}\\M_n\end{bmatrix}\begin{bmatrix}d_0\\d_1\\d_2\\ \vdots \\d_{n-1}\\d_n\end{bmatrix} 2μ2λnλ12⋱λ2⋱μn−2⋱2μ2λn−22 M1M2⋮Mn−1Mn d0d1d2⋮dn−1dn 此方程组系数矩阵严格对角占优存在唯一解. 参考书目《数值分析》张雪莹