整理一下数值分析的笔记~
目录:1. 误差
2. 多项式插值与样条插值(THIS)
3. 函数逼近
4. 数值积分与数值微分
5. 线性方程组的直接解法
6. 线性方程组的迭代解法
7. 非线性方程求根
8. 特征值和特征向量的计算
9. 常微分方程初值问题的数值解
1. 埃尔米特插值多项式
定义:设 f ( x ) f(x) f(x)在节点 a ≤ x 0 , x 1 , . . . , x n ≤ b a\leq x_0,x_1,...,x_n \leq b a≤x0,x1,...,xn≤b处的函数值为 y 0 , y 1 , . . . , y n y_0,y_1,...,y_n y0,y1,...,yn,设 P ( x ) 为 f ( x ) P(x)为f(x) P(x)为f(x)在区间[a,b]上具有一阶导数的插值函数,
(1) 若要求 P ( x ) P(x) P(x)在区间[a,b]上具有一阶导数(一阶光滑度),显然 P ( x ) P(x) P(x)在节点 x 0 , x 1 , . . . , x n x_0,x_1,...,x_n x0,x1,...,xn处必须满足:
P ( x i ) = f ( x i ) = y i , i = 0 , 1 , . . . , n P ′ ( x i ) = f ′ ( x i ) = y i ′ , i = 0 , 1 , . . . , n P(x_i)=f(x_i)=y_i,i=0,1,...,n\\ P'(x_i)=f'(x_i)=y'_i,i=0,1,...,n P(xi)=f(xi)=yi,i=0,1,...,nP′(xi)=f′(xi)=yi′,i=0,1,...,n
共2n+2个方程解出2n+2个待定的系数,因此P(x)可以是最高次数为2n+1次的多项式,两个节点就是三次多项式作为插值函数。
(2) 若要求P(x)在[a,b]上具有m阶导数(m阶光滑度),显示P(x)在节点 x 0 , x 1 , . . . , x n x_0,x_1,...,x_n x0,x1,...,xn处必须满足:
P ( x i ) = f ( x i ) = y i P ′ ( x i ) = f ′ ( x i ) = y i ′ P ′ ′ ( x i ) = f ′ ′ ( x i ) = y i ′ ′ , i = 0 , 1 , . . . n . . . P m ( x i ) = f m ( x i ) = y i m P(x_i)=f(x_i)=y_i\\ P'(x_i)=f'(x_i)=y'_i\\ P''(x_i)=f''(x_i)=y''_i,i=0,1,...n\\ ... P^{m}(x_i)=f^{m}(x_i)=y^{m}_i P(xi)=f(xi)=yiP′(xi)=f′(xi)=yi′P′′(xi)=f′′(xi)=yi′′,i=0,1,...n...Pm(xi)=fm(xi)=yim
称满足(1)(2)的插值多项式为诶尔米特插值多项式,记为 H k ( x ) H_k(x) Hk(x),k为多项式次数。(k过大会影响收敛性和稳定性)
2. 重节点均差
设 f ∈ C n [ a , b ] , x 0 , x 1 , . . . , x n f \in C^n[a,b],x_0,x_1,...,x_n f∈Cn[a,b],x0,x1,...,xn为[a,b]上的相异节点,则 f [ x 0 , x 1 , . . . , x n ] f[x_0,x_1,...,x_n] f[x0,x1,...,xn]是其变量的连续函数,根据均差定义,若 f ∈ C 1 [ a , b ] f\in C^1[a,b] f∈C1[a,b],则有:
l i m x → x 0 f [ x 0 , x ] = l i m x → x 0 f ( x ) − f ( x 0 ) x − x 0 = f ′ ( x 0 ) lim_{x \rarr x_0}f[x_0,x]=\\ lim_{x \rarr x_0}\frac{f(x)-f(x_0)}{x-x_0}=f'(x_0) limx→x0f[x0,x]=limx→x0x−x0f(x)−f(x0)=f′(x0)
由此定义一阶重节点均差:
f [ x 0 , x 0 ] = l i m x → x 0 f [ x 0 , x ] = f ′ ( x 0 ) f[x_0,x_0]=lim_{x \rarr x_0} f[x_0,x]=f'(x_0) f[x0,x0]=limx→x0f[x0,x]=f′(x0)
类似地可以定义重节点的n阶均差:
f [ x 0 , x 0 , . . . , x 0 ( 共 n 个 ) ] = l i m x i → x 0 f [ x 0 , x 1 , . . . , x n ] = 1 n ! f ( n ) ( x 0 ) f[x_0,x_0,...,x_0{(共n个)}]=\\ lim_{x_i \rarr x_0}f[x_0,x_1,...,x_n]=\\ \frac{1}{n!}f^{(n)}(x_0) f[x0,x0,...,x0(共n个)]=limxi→x0f[x0,x1,...,xn]=n!1f(n)(x0)
3. 两点三次Hermite插值
x x x | x 0 x_0 x0 | x 1 x_1 x1 |
---|---|---|
f ( x ) f(x) f(x) | y 0 y_0 y0 | y 1 y_1 y1 |
f ′ ( x ) f'(x) f′(x) | y 0 ′ y_0' y0′ | y 1 ′ y_1' y1′ |
两个节点最高可用三次Hermite多项式 H 3 ( x ) H_3(x) H3(x)作为插值函数,满足:
H 3 ( x i ) = y i , H 3 ′ ( x i ) = y i ′ ( i = 0 , 1 ) H_3(x_i)=y_i,H'_3(x_i)=y'_i(i=0,1) H3(xi)=yi,H3′(xi)=yi′(i=0,1)
直接设 H 3 ( x ) = a x 3 + b x 2 + c x + d H_3(x)=ax^3+bx^2+cx+d H3(x)=ax3+bx2+cx+d,待定系数使计算复杂,不易推广到高次,可以引入四个基函数:
α 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)
使之满足:
α 0 ( x 0 ) = 1 , α 1 ( x 0 ) = 0 , β 0 ( x 0 ) = 0 , β 1 ( x 0 ) = 0 α 0 ( x 1 ) = 0 , α 1 ( x 1 ) = 1 , β 0 ( x 1 ) = 0 , β 1 ( x 1 ) = 0 α 0 ′ ( x 0 ) = 0 , α 1 ′ ( x 0 ) = 0 , β 0 ′ ( x 0 ) = 1 , β 1 ′ ( x 0 ) = 0 α 0 ′ ( x 1 ) = 0 , α 1 ′ ( x 1 ) = 0 , β 0 ′ ( x 1 ) = 0 , β 1 ′ ( x 1 ) = 1 \alpha_0(x_0)=1,\alpha_1(x_0)=0,\beta_0(x_0)=0,\beta_1(x_0)=0\\ \alpha_0(x_1)=0,\alpha_1(x_1)=1,\beta_0(x_1)=0,\beta_1(x_1)=0\\ \alpha'_0(x_0)=0,\alpha'_1(x_0)=0,\beta'_0(x_0)=1,\beta'_1(x_0)=0\\ \alpha'_0(x_1)=0,\alpha'_1(x_1)=0,\beta'_0(x_1)=0,\beta'_1(x_1)=1 α0(x0)=1,α1(x0)=0,β0(x0)=0,β1(x0)=0α0(x1)=0,α1(x1)=1,β0(x1)=0,β1(x1)=0α0′(x0)=0,α1′(x0)=0,β0′(x0)=1,β1′(x0)=0α0′(x1)=0,α1′(x1)=0,β0′(x1)=0,β1′(x1)=1
又插值函数应满足:
H 3 ( x 0 ) = y 0 , H 3 ( x 1 ) = y 1 H 3 ′ ( x 0 ) = y 0 ′ , H 3 ′ ( x 1 ) = y 1 ′ H_3(x_0)=y_0,H_3(x_1)=y_1\\ H_3'(x_0)=y_0',H_3'(x_1)=y_1' H3(x0)=y0,H3(x1)=y1H3′(x0)=y0′,H3′(x1)=y1′
H 3 ( x ) H_3(x) H3(x)用四个插值基函数表示,假设:
H 3 ( x ) = y 0 α 0 ( x ) + y 1 α 1 ( x ) + y 0 ′ β 0 ( x ) + y 1 ′ β 1 ( x ) H 3 ′ ( x ) = y 0 α 0 ′ ( x ) + y 1 α 1 ′ ( x ) + y 0 ′ β 0 ′ ( x ) + y 1 ′ β 1 ′ ( x ) H_3(x)=y_0\alpha_0(x)+y_1\alpha_1(x)+y_0'\beta_0(x)+y_1'\beta_1(x)\\ H_3'(x)=y_0\alpha_0'(x)+y_1\alpha_1'(x)+y_0'\beta_0'(x)+y_1'\beta_1'(x) H3(x)=y0α0(x)+y1α1(x)+y0′β0(x)+y1′β1(x)H3′(x)=y0α0′(x)+y1α1′(x)+y0′β0′(x)+y1′β1′(x)
由上面的插值基函数的函数值和导函数值可知: x 1 x_1 x1是 α 0 ( x ) \alpha_0(x) α0(x)的二重零点{ x 1 x_1 x1处函数值导函数值均为0},即可假设:
α 0 ( x ) = ( x − x 1 ) 2 ( a x + b ) \alpha_0(x)=(x-x_1)^2(ax+b) α0(x)=(x−x1)2(ax+b)
由 α 0 ( x 0 ) = 1 , α 0 ′ ( x 0 ) = 0 \alpha_0(x_0)=1,\alpha_0'(x_0)=0 α0(x0)=1,α0′(x0)=0得:
a = − 2 ( x 0 − x 1 ) 3 , b = 1 ( x 0 − x 1 ) 2 + 2 x 0 ( x 0 − x 1 ) 3 a=-\frac{2}{(x_0-x_1)^3},\\ b=\frac{1}{(x_0-x_1)^2}+\frac{2x_0}{(x_0-x_1)^3} a=−(x0−x1)32,b=(x0−x1)21+(x0−x1)32x0
使用类似方法可得:
α 0 ( x ) = ( 1 + 2 l 1 ( x ) ) ⋅ l 0 2 ( x ) = ( 1 + 2 x − x 0 x 1 − x 0 ) ( x − x 1 x 0 − x 1 ) 2 \alpha_0(x)=(1+2l_1(x))\cdot l^2_0(x)=\\ \left(1+2\frac{x-x_0}{x_1-x_0}\right)\left(\frac{x-x_1}{x_0-x_1}\right)^2 α0(x)=(1+2l1(x))⋅l02(x)=(1+2x1−x0x−x0)(x0−x1x−x1)2
α 1 ( x ) = ( 1 + 2 l 0 ( x ) ) ⋅ l 1 2 ( x ) = ( 1 + 2 x − x 1 x 0 − x 1 ) ( x − x 0 x 1 − x 0 ) 2 \alpha_1(x)=(1+2l_0(x))\cdot l^2_1(x)=\\ \left(1+2\frac{x-x_1}{x_0-x_1}\right)\left(\frac{x-x_0}{x_1-x_0}\right)^2 α1(x)=(1+2l0(x))⋅l12(x)=(1+2x0−x1x−x1)(x1−x0x−x0)2
β 0 ( x ) = ( x − x 0 ) ⋅ l 0 2 ( x ) = ( x − x 0 ) ( x − x 1 x 0 − x 1 ) 2 \beta_0(x)=(x-x_0) \cdot l^2_0(x)=\\ (x-x_0)\left(\frac{x-x_1}{x_0-x_1}\right)^2 β0(x)=(x−x0)⋅l02(x)=(x−x0)(x0−x1x−x1)2
β 1 ( x ) = ( x − x 1 ) ⋅ l 1 2 ( x ) = ( x − x 1 ) ( x − x 0 x 1 − x 0 ) 2 \beta_1(x)=(x-x_1) \cdot l^2_1(x)=\\ (x-x_1)\left(\frac{x-x_0}{x_1-x_0}\right)^2 β1(x)=(x−x1)⋅l12(x)=(x−x1)(x1−x0x−x0)2
由此可得两点三次Hermite插值公式:
H 3 ( x ) = y 0 α 0 ( x ) + y 1 α 1 ( x ) + y 0 ′ β 0 ( x ) + y 1 ′ β 1 ( x ) y 0 ( 1 + 2 l 1 ( x ) ) ⋅ l 0 2 ( x ) + y 1 ( 1 + 2 l 0 ( x ) ) ⋅ l 1 2 ( x ) + y 0 ′ ( x − x 0 ) ⋅ l 0 2 ( x ) + y 1 ′ ( x − x 1 ) ⋅ l 1 2 ( x ) = y 0 ( 1 + 2 x − x 0 x 1 − x 0 ) ( x − x 1 x 0 − x 1 ) 2 + y 1 ( 1 + 2 x − x 1 x 0 − x 1 ) ( x − x 0 x 1 − x 0 ) 2 + y 0 ′ ( x − x 0 ) ( x − x 1 x 0 − x 1 ) 2 + y 1 ′ ( x − x 1 ) ( x − x 0 x 1 − x 0 ) 2 H_3(x)=y_0\alpha_0(x)+y_1\alpha_1(x)+y_0'\beta_0(x)+y_1'\beta_1(x)\\y_0(1+2l_1(x))\cdot l^2_0(x)+y_1(1+2l_0(x))\cdot l^2_1(x)\\ +y_0'(x-x_0) \cdot l^2_0(x)+y_1'(x-x_1) \cdot l^2_1(x)\\ =y_0\left(1+2\frac{x-x_0}{x_1-x_0}\right)\left(\frac{x-x_1}{x_0-x_1}\right)^2\\ +y_1\left(1+2\frac{x-x_1}{x_0-x_1}\right)\left(\frac{x-x_0}{x_1-x_0}\right)^2\\ +y_0'(x-x_0)\left(\frac{x-x_1}{x_0-x_1}\right)^2\\ +y_1'(x-x_1)\left(\frac{x-x_0}{x_1-x_0}\right)^2 H3(x)=y0α0(x)+y1α1(x)+y0′β0(x)+y1′β1(x)y0(1+2l1(x))⋅l02(x)+y1(1+2l0(x))⋅l12(x)+y0′(x−x0)⋅l02(x)+y1′(x−x1)⋅l12(x)=y0(1+2x1−x0x−x0)(x0−x1x−x1)2+y1(1+2x0−x1x−x1)(x1−x0x−x0)2+y0′(x−x0)(x0−x1x−x1)2+y1′(x−x1)(x1−x0x−x0)2
两点三次Hermite插值的余项:
R 3 ( x ) = f ( 4 ) ( ξ ) 4 ! ( x − x 0 ) 2 ( x − x 1 ) 2 , x 0 ≤ ξ ≤ x 1 R_3(x)=\frac{f^{(4)}(\xi)}{4!}(x-x_0)^2(x-x_1)^2,\\x_0 \leq \xi \leq x_1 R3(x)=4!f(4)(ξ)(x−x0)2(x−x1)2,x0≤ξ≤x1
eg.求作二次多项式使其满足:
φ 2 ( 0 ) = y 0 , φ 2 ′ ( 0 ) , φ 1 ( 1 ) = y 1 \varphi_2(0)=y_0,\varphi_2'(0),\varphi_1(1)=y_1 φ2(0)=y0,φ2′(0),φ1(1)=y1
解:
先求基函数 α 0 ( x ) , α 1 ( x ) , β 0 ( x ) \alpha_0(x),\alpha_1(x),\beta_0(x) α0(x),α1(x),β0(x)满足:
α 0 ( 0 ) = 1 , α 1 ( 0 ) = 0 , β 0 ( 0 ) = 0 α 0 ( 1 ) = 0 , α 1 ( 1 ) = 1 , β 0 ( 1 ) = 0 , α 0 ′ ( 0 ) = 0 , α 1 ′ ( 0 ) = 0 , β 0 ′ ( 0 ) = 1 \alpha_0(0)=1,\alpha_1(0)=0,\beta_0(0)=0\\ \alpha_0(1)=0,\alpha_1(1)=1,\beta_0(1)=0,\\ \alpha'_0(0)=0,\alpha'_1(0)=0,\beta'_0(0)=1 α0(0)=1,α1(0)=0,β0(0)=0α0(1)=0,α1(1)=1,β0(1)=0,α0′(0)=0,α1′(0)=0,β0′(0)=1
可令:
α 0 ( x ) = ( a + b x ) ( x − 1 ) α 1 ( x ) = c x 2 β 0 ( x ) = d x ( x − 1 ) \alpha_0(x)=(a+bx)(x-1)\\ \alpha_1(x)=cx^2\\ \beta_0(x)=dx(x-1) α0(x)=(a+bx)(x−1)α1(x)=cx2β0(x)=dx(x−1)
可得a=b=-1,c=1,d=-1,则:
φ 2 ( x ) = y 0 ( 1 − x ) 2 + y 1 x 2 + y 0 ′ x ( 1 − x ) \varphi_2(x)=y_0(1-x)^2+y_1x^2+y_0'x(1-x) φ2(x)=y0(1−x)2+y1x2+y0′x(1−x)
{持续更新}
欢迎扫描二维码关注微信公众号 深度学习与数学 [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]