数值分析重难点总结「二」

数值分析重难点总结「二」

六、插值法

在工程应用中,常用一个简单的函数 y = y ( x ) y=y(x) y=y(x) 来近似代替函数 y = f ( x ) y=f(x) y=f(x),使得
y ( x i ) = f ( x i ) , i = 0 , 1 , 2 , ⋯   , n y(x_i)=f(x_i),\quad i=0,1,2,\cdots,n y(xi)=f(xi),i=0,1,2,,n
称函数 y = y ( x ) y=y(x) y=y(x) 为函数 y = f ( x ) y=f(x) y=f(x) 在点 x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,,xn 处的插值函数。

1. Lagrange 插值

引进记号 P n + 1 ( x ) = ∏ i = 0 n ( x − x i ) = ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n ) P_{n+1}(x)=\prod\limits_{i=0}^n(x-x_i)=(x-x_0)(x-x_1)\cdots(x-x_n) Pn+1(x)=i=0n(xxi)=(xx0)(xx1)(xxn),则有 P n + 1 ′ ( x j ) = ∏ i = 0 , i ≠ j n ( x j − x i ) = ( x j − x 0 ) ⋯ ( x j − x j − 1 ) ( x j − x j + 1 ) ⋯ ( x j − x n ) P'_{n+1}(x_j)=\prod\limits_{i=0,i\ne j}^n(x_j-x_i)=(x_j-x_0)\cdots(x_j-x_{j-1})(x_j-x_{j+1})\cdots(x_j-x_n) Pn+1(xj)=i=0,i=jn(xjxi)=(xjx0)(xjxj1)(xjxj+1)(xjxn)

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)=\dfrac{(x-x_0)\cdots(x-x_{j-1})(x-x_{j+1})\cdots(x-x_n)}{(x_j-x_0)\cdots(x_j-x_{j-1})(x_j-x_{j+1})\cdots(x_j-x_n)} lj(x)=(xjx0)(xjxj1)(xjxj+1)(xjxn)(xx0)(xxj1)(xxj+1)(xxn)

  = ∏ i = 0 , i ≠ j n x − x i x j − x i = P n + 1 ( x ) ( x − x j ) P n + 1 ′ ( x j ) , j = 0 , 1 , 2 , ⋯   , n \qquad\quad\ =\prod\limits_{i=0,i\ne j}^n\dfrac{x-x_i}{x_j-x_i}=\dfrac{P_{n+1}(x)}{(x-x_j)P'_{n+1}(x_j)},\quad j=0,1,2,\cdots,n  =i=0,i=jnxjxixxi=(xxj)Pn+1(xj)Pn+1(x),j=0,1,2,,n

l j ( x ) l_j(x) lj(x) n n n 次多项式,且 l j ( x i ) = { 1 ,   j = i , 0 ,   j ≠ i , l_j(x_i) =\begin{cases} 1,\ j=i,\\0,\ j\ne i,\end{cases} lj(xi)={1, j=i,0, j=i, l 0 ( x ) , l 1 ( x ) , ⋯   , l n ( x ) l_0(x),l_1(x),\cdots,l_n(x) l0(x),l1(x),,ln(x) 为 Lagrange 插值基函数。令

y ( x ) = ∑ j = 0 n l j ( x ) f ( x j ) y(x) =\sum\limits_{j=0}^nl_j(x)f(x_j) y(x)=j=0nlj(x)f(xj)

y ( x i ) = f ( x i ) y(x_i)=f(x_i) y(xi)=f(xi),称之为 Lagrange 插值多项式,记为 L n ( x ) L_n(x) Ln(x).

n = 1 n=1 n=1 时, L 1 ( x ) L_1(x) L1(x) 为线性插值 L 1 ( x ) = x − x 1 x 0 − x 1 f ( x 0 ) + x − x 0 x 1 − x 0 f ( x 1 ) . L_1(x)=\dfrac{x-x_1}{x_0-x_1}f(x_0)+\dfrac{x-x_0}{x_1-x_0}f(x_1). L1(x)=x0x1xx1f(x0)+x1x0xx0f(x1).

n = 2 n=2 n=2 时, L 2 ( x ) L_2(x) L2(x) 为二次插值,即抛物线插值

L 2 ( x ) = ( x − x 1 ) ( x − x 2 ) ( x 0 − x 1 ) ( x 0 − x 2 ) f ( x 0 ) + ( x − x 0 ) ( x − x 2 ) ( x 1 − x 0 ) ( x 1 − x 2 ) f ( x 1 ) + ( x − x 0 ) ( x − x 1 ) ( x 2 − x 0 ) ( x 2 − x 1 ) f ( x 2 ) L_2(x)=\dfrac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}f(x_0)+ \dfrac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}f(x_1)+ \dfrac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}f(x_2) L2(x)=(x0x1)(x0x2)(xx1)(xx2)f(x0)+(x1x0)(x1x2)(xx0)(xx2)f(x1)+(x2x0)(x2x1)(xx0)(xx1)f(x2)

Lagrange 插值的插值余项为:

E ( x ) = f ( x ) − y ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! P n + 1 ( x ) , ∀ x ∈ [ a , b ] E(x) =f(x)-y(x) =\dfrac{f^{(n+1)}(\xi)}{(n+1)!}P_{n+1}(x),\quad\forall x \in[a,b] E(x)=f(x)y(x)=(n+1)!f(n+1)(ξ)Pn+1(x),x[a,b]

其中 P n + 1 ( x ) = ∏ i = 0 n ( x − x i ) P_{n+1}(x)=\prod\limits_{i=0}^n(x-x_i) Pn+1(x)=i=0n(xxi) ξ ∈ [ a , b ] \xi\in[a,b] ξ[a,b] 且与 x x x 有关。

2. Newton 插值

一阶差商: f [ x 0 , x 1 ] = f ( x 0 ) − f ( x 1 ) x 0 − x 1 f[x_0,x_1]=\dfrac{f(x_0)-f(x_1)}{x_0-x_1} f[x0,x1]=x0x1f(x0)f(x1)

二阶差商: f [ x 0 , x 1 , x 2 ] = f [ x 0 , x 1 ] − f [ x 1 , x 2 ] x 0 − x 2 f[x_0,x_1,x_2]=\dfrac{f[x_0,x_1]-f[x_1,x_2]}{x_0-x_2} f[x0,x1,x2]=x0x2f[x0,x1]f[x1,x2]

k k k 阶差商: f [ x 0 , x 1 , ⋯   , x k − 1 , x k ] = f [ x 0 , x 1 , … , x k − 1 ] − f [ x 1 , x 2 , … , x k ] x 0 − x k f[x_0,x_1,\cdots,x_{k-1},x_k]=\dfrac{f [x_0,x_1,\dots,x_{k-1}]-f [x_1,x_2,\dots,x_k]}{x_0-x_k} f[x0,x1,,xk1,xk]=x0xkf[x0,x1,,xk1]f[x1,x2,,xk]

差商有以下性质:

1) k k k 阶差商可表示为 f ( x 0 ) , f ( x 1 ) , ⋯   , f ( x n ) f(x_0),f(x_1),\cdots,f(x_n) f(x0),f(x1),,f(xn) 的线性组合,即: f [ x 0 , x 1 , ⋯   , x k ] = ∑ i = 0 k f ( x i ) P k + 1 ′ ( x i ) . f[x_0,x_1,\cdots,x_k]=\sum\limits_{i=0}^k\dfrac{f(x_i)}{P'_{k+1}(x_i)}. f[x0,x1,,xk]=i=0kPk+1(xi)f(xi).

2) 差商有对称性: f [ x 0 , x 1 , ⋯   , x k ] = f [ x 1 , x 0 , ⋯   , x k ] = f [ x 1 , x 2 , … , x k , x 0 ] . f[x_0,x_1,\cdots,x_k]=f[x_1,x_0,\cdots,x_k]=f[x_1,x_2,\dots,x_k,x_0]. f[x0,x1,,xk]=f[x1,x0,,xk]=f[x1,x2,,xk,x0].

3) f [ x 0 , x 1 , ⋯   , x k ] = f ( k ) ( ξ ) k ! f[x_0,x_1,\cdots,x_k]=\dfrac{f^{(k)}(\xi)}{k!} f[x0,x1,,xk]=k!f(k)(ξ),其中 ξ \xi ξ 与节点 x 0 , x 1 , ⋯   , x k x_0,x_1,\cdots,x_k x0,x1,,xk 有关。

Newton 插值多项式为:
N n ( x ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) + f [ x 0 , x 1 , x 2 ] ( x − x 0 ) ( x − x 1 ) + ⋯ + f [ x 0 , x 1 , ⋯   , x n ] ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n − 1 ) \begin{aligned} N_n(x)=&f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+\cdots+\\ &f[x_0,x_1,\cdots,x_n](x-x_0)(x-x_1)\cdots(x-x_{n-1}) \end{aligned} Nn(x)=f(x0)+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)++f[x0,x1,,xn](xx0)(xx1)(xxn1)

计算差商时,可以作如下差商表:

x i x_i xi f ( x i ) f(x_i) f(xi)一阶差商二阶差商三阶差商
x 0 x_0 x0 f ( x 0 ) f(x_0) f(x0)
x 1 x_1 x1 f ( x 1 ) f(x_1) f(x1) f [ x 0 , x 1 ] f[x_0,x_1] f[x0,x1]
x 2 x_2 x2 f ( x 2 ) f(x_2) f(x2) f [ x 1 , x 2 ] f[x_1,x_2] f[x1,x2] f [ x 0 , x 1 , x 2 ] f[x_0,x_1,x_2] f[x0,x1,x2]
x 3 x_3 x3 f ( x 3 ) f(x_3) f(x3) f [ x 2 , x 3 ] f[x_2,x_3] f[x2,x3] f [ x 1 , x 2 , x 3 ] f[x_1,x_2,x_3] f[x1,x2,x3] f [ x 0 , x 1 , x 2 , x 3 ] f[x_0,x_1,x_2,x_3] f[x0,x1,x2,x3]
⋮ \vdots ⋮ \vdots ⋮ \vdots ⋮ \vdots ⋮ \vdots

其余项

E ( x ) = f ( x ) − N n ( x ) = f [ x , x 0 , x 1 , ⋯   , x n ] P n + 1 ( x ) E(x) =f(x)-N_n(x)=f[x,x_0,x_1,\cdots,x_n]P_{n+1}(x) E(x)=f(x)Nn(x)=f[x,x0,x1,,xn]Pn+1(x)

根据插值多项式的唯一性,虽然 Lagrange 插值多项式与 Newton 插值多项式的构造方式不同,但必有 N n ( x ) ≡ L n ( x ) N_n(x)\equiv L_n(x) Nn(x)Ln(x),因此

f [ x 0 , x 1 , ⋯   , x n ] = ∑ i = 0 n f ( x i ) P n + 1 ′ ( x i ) , f [ x , x 0 , x 1 , ⋯   , x n ] = f ( n + 1 ) ( ξ ) ( n + 1 ) ! f[x_0,x_1,\cdots,x_n]=\sum\limits_{i=0}^n\dfrac{f(x_i)}{P'_{n+1}(x_i)},\quad f[x,x_0,x_1,\cdots,x_n]=\dfrac{f^{(n+1)}(\xi)}{(n+1)!} f[x0,x1,,xn]=i=0nPn+1(xi)f(xi),f[x,x0,x1,,xn]=(n+1)!f(n+1)(ξ)

3. Hermite 插值

给定的函数关系中含有导数的插值即称为 Hermite 插值。

待定系数法:

求满足 P ( x 0 ) = f ( x 0 ) , P ( x 1 ) = f ( x 1 ) P(x_0)=f(x_0),P(x_1)=f(x_1) P(x0)=f(x0),P(x1)=f(x1) 及 $ P’(x_0)=f’(x_0)$ 的次数不超过2次的插值多项式 P ( x ) P(x) P(x).

也即求 Hermite 两点两次插值,令 H 2 ( x ) = h 0 ( x ) f ( x 0 ) + h 1 ( x ) f ( x 1 ) + h ‾ 0 ( x ) f ′ ( x 0 ) H_2(x)=h_0(x)f(x_0)+h_1(x)f(x_1)+\overline{h}_0(x)f'(x_0) H2(x)=h0(x)f(x0)+h1(x)f(x1)+h0(x)f(x0).

可知
{ H 2 ( x 0 ) = f ( x 0 ) ⇒ h 0 ( x 0 ) = 1 ,   h 1 ( x 0 ) = 0 ,   h ‾ 0 ( x 0 ) = 0 H 2 ( x 1 ) = f ( x 1 ) ⇒ h 0 ( x 1 ) = 0 ,   h 1 ( x 1 ) = 1 ,   h ‾ 0 ( x 1 ) = 0 H 2 ′ ( x 0 ) = f ′ ( x 0 ) ⇒ h 0 ′ ( x 0 ) = 0 ,   h 1 ′ ( x 0 ) = 0 ,   h ‾ 0 ′ ( x 0 ) = 1 \begin{cases} H_2(x_0)=f(x_0)&\Rarr h_0(x_0)=1,\ h_1(x_0)=0,\ \overline{h}_0(x_0)=0\\ H_2(x_1)=f(x_1)&\Rarr h_0(x_1)=0,\ h_1(x_1)=1,\ \overline{h}_0(x_1)=0\\ H'_2(x_0)=f'(x_0)&\Rarr h'_0(x_0)=0,\ h'_1(x_0)=0,\ \overline{h}'_0(x_0)=1\\ \end{cases} H2(x0)=f(x0)H2(x1)=f(x1)H2(x0)=f(x0)h0(x0)=1, h1(x0)=0, h0(x0)=0h0(x1)=0, h1(x1)=1, h0(x1)=0h0(x0)=0, h1(x0)=0, h0(x0)=1
求解,得
h 0 ( x ) = 1 − ( x − x 0 ) 2 ( x 1 − x 0 ) 2 ,   h 1 ( x ) = ( x − x 0 ) 2 ( x 1 − x 0 ) 2 ,   h ‾ 0 ( x ) = ( x − x 0 ) ( x − x 1 ) ( x 0 − x 1 ) h_0(x)=1-\dfrac{(x-x_0)^2}{(x_1-x_0)^2},\ h_1(x)=\dfrac{(x-x_0)^2}{(x_1-x_0)^2},\ \overline{h}_0(x)=\dfrac{(x-x_0)(x-x_1)}{(x_0-x_1)} h0(x)=1(x1x0)2(xx0)2, h1(x)=(x1x0)2(xx0)2, h0(x)=(x0x1)(xx0)(xx1)
P ( x ) = H 2 ( x ) = [ 1 − ( x − x 0 ) 2 ( x 1 − x 0 ) 2 ] f ( x 0 ) + ( x − x 0 ) 2 ( x 1 − x 0 ) 2 f ( x 1 ) + ( x − x 0 ) ( x − x 1 ) ( x 0 − x 1 ) f ′ ( x 0 ) P(x)=H_2(x)=[1-\dfrac{(x-x_0)^2}{(x_1-x_0)^2}]f(x_0)+\dfrac{(x-x_0)^2}{(x_1-x_0)^2}f(x_1)+\dfrac{(x-x_0)(x-x_1)}{(x_0-x_1)}f'(x_0) P(x)=H2(x)=[1(x1x0)2(xx0)2]f(x0)+(x1x0)2(xx0)2f(x1)+(x0x1)(xx0)(xx1)f(x0)

两点三次插值:
H 3 ( x ) = ( 1 + 2 x − x 0 x 1 − x 0 ) ( x − x 1 x 0 − x 1 ) 2 f ( x 0 ) + ( 1 + 2 x − x 1 x 0 − x 1 ) ( x − x 0 x 1 − x 0 ) 2 f ( x 1 ) + ( x − x 0 ) ( x − x 1 x 0 − x 1 ) 2 f ′ ( x 0 ) + ( x − x 1 ) ( x − x 0 x 1 − x 0 ) 2 f ′ ( x 1 ) \begin{aligned} H_3(x)=&(1+2\dfrac{x-x_0}{x_1-x_0})(\dfrac{x-x_1}{x_0-x_1})^2f(x_0)+ (1+2\dfrac{x-x_1}{x_0-x_1})(\dfrac{x-x_0}{x_1-x_0})^2f(x_1)+\\[8pt] &(x-x_0)(\dfrac{x-x_1}{x_0-x_1})^2f'(x_0)+(x-x_1)(\dfrac{x-x_0}{x_1-x_0})^2f'(x_1) \end{aligned} H3(x)=(1+2x1x0xx0)(x0x1xx1)2f(x0)+(1+2x0x1xx1)(x1x0xx0)2f(x1)+(xx0)(x0x1xx1)2f(x0)+(xx1)(x1x0xx0)2f(x1)

*带重节点的差商表:

首先明确一个定义,之前提到差商的性质时,有一条性质为: f [ x 0 , x 1 , … , x n ] = f ( n ) ( ξ ) n ! f[x_0,x_1,\dots,x_n]=\dfrac{f^{(n)}(\xi)}{n!} f[x0,x1,,xn]=n!f(n)(ξ).

因此,利用这条性质可以得到: f [ x i , x i , … , x i ] = f ( n ) ( x i ) n ! f[x_i,x_i,\dots,x_i]=\dfrac{f^{(n)}(x_i)}{n!} f[xi,xi,,xi]=n!f(n)(xi).

例如,给定了 f ′ ( x 1 ) = y 1 ′ f^{'} ( x_1 ) =y_1^{'} f(x1)=y1 ,则作出的重差商表为:

x i x_i xi f ( x i ) f(x_i) f(xi)一阶差商二阶差商三阶差商
x 0 x_0 x0 f ( x 0 ) f(x_0) f(x0)
x 1 x_1 x1 f ( x 1 ) f(x_1) f(x1) f [ x 0 , x 1 ] f[x_0,x_1] f[x0,x1]
x 1 x_1 x1 f ( x 1 ) f(x_1) f(x1) f [ x 1 , x 1 ] f[x_1,x_1] f[x1,x1] f [ x 0 , x 1 , x 1 ] f[x_0,x_1,x_1] f[x0,x1,x1]
x 2 x_2 x2 f ( x 2 ) f(x_2) f(x2) f [ x 1 , x 2 ] f[x_1,x_2] f[x1,x2] f [ x 1 , x 1 , x 2 ] f[x_1,x_1,x_2] f[x1,x1,x2] f [ x 0 , x 1 , x 1 , x 2 ] f[x_0,x_1,x_1,x_2] f[x0,x1,x1,x2]
⋮ \vdots ⋮ \vdots ⋮ \vdots ⋮ \vdots ⋮ \vdots

利用此法要比书上所说的待定系数求得插值多项式的方法简单很多。

七、函数逼近与曲线拟合

1. 函数的内积与范数

定义 7.2 f ( x ) , g ( x ) ∈ C [ a , b ] f(x),g(x)\in C[a,b] f(x),g(x)C[a,b],称
( f , g ) = ∫ a b ρ ( x ) f ( x ) g ( x ) d x (f,g)=\int_a^b\rho(x)f(x)g(x){\rm d}x (f,g)=abρ(x)f(x)g(x)dx
为函数 f ( x ) , g ( x ) f(x),g(x) f(x),g(x) [ a , b ] [a,b] [a,b] 上的内积,其中 ρ ( x ) \rho(x) ρ(x) 为有权函数,计算时一般不带权,其取值恒为 1.

定义 7.3 f ( x ) f(x) f(x) C [ a , b ] C[a,b] C[a,b] 上的范数定义为
∣ ∣ f ∣ ∣ 1 = ∫ a b ∣ f ( x ) ∣ d x ∣ ∣ f ∣ ∣ 2 = [ ∫ a b f 2 ( x ) d x ] 1 2 ∣ ∣ f ∣ ∣ ∞ = max ⁡ a ∈ [ a , b ] ∣ f ( x ) ∣ \begin{aligned} ||f||_1=&\int_a^b|f(x)|{\rm d}x\\ ||f||_2=&\left[\int_a^bf^2(x){\rm d}x\right]^{\frac{1}{2}}\\ ||f||_\infin=&\max_{a\in[a,b]}|f(x)|\\ \end{aligned} ∣∣f1=∣∣f2=∣∣f=abf(x)dx[abf2(x)dx]21a[a,b]maxf(x)

2. 最佳平方逼近

函数的最佳平方逼近,列出法方程,也称为正则方程:
[ ( φ 0 , φ 0 ) ( φ 0 , φ 1 ) ⋯ ( φ 0 , φ m ) ( φ 1 , φ 0 ) ( φ 1 , φ 1 ) ⋯ ( φ 1 , φ m ) ⋮ ⋮ ⋱ ⋮ ( φ m , φ 0 ) ( φ m , φ 1 ) ⋯ ( φ m , φ m ) ] [ a 0 a 1 ⋮ a m ] = [ ( f , φ 0 ) ( f , φ 1 ) ⋮ ( f , φ m ) ] \begin{bmatrix} (\varphi_0,\varphi_0) & (\varphi_0,\varphi_1) & \cdots & (\varphi_0,\varphi_m)\\ (\varphi_1,\varphi_0) & (\varphi_1,\varphi_1) & \cdots & (\varphi_1,\varphi_m)\\ \vdots & \vdots & \ddots & \vdots\\ (\varphi_m,\varphi_0) & (\varphi_m,\varphi_1) & \cdots & (\varphi_m,\varphi_m)\\ \end{bmatrix} \begin{bmatrix} a_0\\ a_1\\\vdots\\ a_m \end{bmatrix} = \begin{bmatrix} (f,\varphi_0)\\ (f,\varphi_1)\\ \vdots\\ (f,\varphi_m) \end{bmatrix} (φ0,φ0)(φ1,φ0)(φm,φ0)(φ0,φ1)(φ1,φ1)(φm,φ1)(φ0,φm)(φ1,φm)(φm,φm) a0a1am = (f,φ0)(f,φ1)(f,φm)

方程组存在一组唯一解 a 0 ∗ , a 1 ∗ , ⋯   , a m ∗ a_0^*,a_1^*,\cdots,a_m^* a0,a1,,am,平方误差为

∣ ∣ E ( x ) ∣ ∣ 2 2 = ∣ ∣ f ∣ ∣ 2 2 − ∑ j = 0 m ( f , φ j ) a j ∗ ||E(x)||_2^2=||f||_2^2-\sum\limits_{j=0}^m(f,\varphi_j)a_j^* ∣∣E(x)22=∣∣f22j=0m(f,φj)aj

若取基函数空间 Φ m = span { 1 , x , x 2 , ⋯   , x n } ,   ρ ( x ) ≡ 1 ,   f ( x ) ∈ C [ 0 , 1 ] \Phi_m=\text{span}\{1,x,x^2,\cdots,x^n\},\ \rho(x)\equiv 1,\ f(x)\in C[0,1] Φm=span{1,x,x2,,xn}, ρ(x)1, f(x)C[0,1] ,则有:

[ 1 1 2 ⋯ 1 n 1 2 1 3 ⋯ 1 n + 1 ⋮ ⋮ ⋱ ⋮ 1 n 1 n + 1 ⋯ 1 2 n − 1 ] [ a 0 a 1 ⋮ a n ] = [ ( f , φ 0 ) ( f , φ 1 ) ⋮ ( f , φ n ) ] \begin{bmatrix} 1 & \dfrac12 & \cdots & \dfrac1n\\[8pt] \dfrac12 & \dfrac13 & \cdots & \dfrac1{n+1}\\[8pt] \vdots & \vdots & \ddots & \vdots\\[8pt] \dfrac1n & \dfrac1{n+1} & \cdots & \dfrac1{2n-1}\\ \end{bmatrix} \begin{bmatrix} a_0\\[8pt] a_1\\[8pt] \vdots\\[8pt] a_n \end{bmatrix}= \begin{bmatrix} (f,\varphi_0)\\[8pt] (f,\varphi_1)\\[8pt] \vdots\\[8pt] (f,\varphi_n) \end{bmatrix} 121n12131n+11n1n+112n11 a0a1an = (f,φ0)(f,φ1)(f,φn)

3. 数据拟合与最小二乘法

列出法方程,也称为正则方程的矩阵形式为:

[ ( φ 0 , φ 0 ) ( φ 0 , φ 1 ) ⋯ ( φ 0 , φ m ) ( φ 1 , φ 0 ) ( φ 1 , φ 1 ) ⋯ ( φ 1 , φ m ) ⋮ ⋮ ⋱ ⋮ ( φ m , φ 0 ) ( φ m , φ 1 ) ⋯ ( φ m , φ m ) ] [ a 0 a 1 ⋮ a m ] = [ ( f , φ 0 ) ( f , φ 1 ) ⋮ ( f , φ m ) ] \begin{bmatrix} (\varphi_0,\varphi_0) & (\varphi_0,\varphi_1) & \cdots & (\varphi_0,\varphi_m)\\ (\varphi_1,\varphi_0) & (\varphi_1,\varphi_1) & \cdots & (\varphi_1,\varphi_m)\\ \vdots & \vdots & \ddots & \vdots\\ (\varphi_m,\varphi_0) & (\varphi_m,\varphi_1) & \cdots & (\varphi_m,\varphi_m)\\ \end{bmatrix} \begin{bmatrix} a_0\\ a_1\\\vdots\\ a_m \end{bmatrix} = \begin{bmatrix} (f,\varphi_0)\\ (f,\varphi_1)\\ \vdots\\ (f,\varphi_m) \end{bmatrix} (φ0,φ0)(φ1,φ0)(φm,φ0)(φ0,φ1)(φ1,φ1)(φm,φ1)(φ0,φm)(φ1,φm)(φm,φm) a0a1am = (f,φ0)(f,φ1)(f,φm)

方程组存在一组唯一解 a 0 ∗ , a 1 ∗ , ⋯   , a m ∗ a_0^*,a_1^*,\cdots,a_m^* a0,a1,,am,数据拟合的平方误差为

∣ ∣ E ( x ) ∣ ∣ 2 2 = ∣ ∣ f ∣ ∣ 2 2 − ∑ j = 0 m a j ∗ ( f , φ j ) ||E(x)||_2^2=||f||_2^2-\sum\limits_{j=0}^ma_j^*(f,\varphi_j) ∣∣E(x)22=∣∣f22j=0maj(f,φj)

Φ m = span { 1 , x , x 2 , ⋯   , x m } ,   ω i ( x ) ≡ 1 , m < n \Phi_m=\text{span}\{1,x,x^2,\cdots,x^m\},\ \omega_i(x)\equiv 1,m<n Φm=span{1,x,x2,,xm}, ωi(x)1,m<n,法方程为:

[ n + 1 ∑ i = 0 n x i ⋯ ∑ i = 0 n x i m ∑ i = 0 N x i ∑ i = 0 n x i 2 ⋯ ∑ i = 0 n x i m + 1 ⋮ ⋮ ⋱ ⋮ ∑ i = 0 n x i m ∑ i = 0 n x i m + 1 ⋯ ∑ i = 0 n x i 2 m ] [ a 0 a 1 ⋮ a n ] = [ ∑ i = 0 n f i ∑ i = 0 n f i x i ⋮ ∑ i = 0 n f i x i m ] \begin{bmatrix} n+1 & \sum\limits_{i=0}^nx_i & \cdots & \sum\limits_{i=0}^nx_i^m\\[8pt] \sum\limits_{i=0}^Nx_i & \sum\limits_{i=0}^nx_i^2 & \cdots & \sum\limits_{i=0}^nx_i^{m+1}\\[8pt] \vdots & \vdots & \ddots & \vdots\\[8pt] \sum\limits_{i=0}^nx_i^m & \sum\limits_{i=0}^nx_i^{m+1} & \cdots & \sum\limits_{i=0}^nx_i^{2m}\\[8pt] \end{bmatrix} \begin{bmatrix} a_0\\[9pt] a_1\\[9pt] \vdots\\[9pt] a_n \end{bmatrix} = \begin{bmatrix} \sum\limits_{i=0}^nf_i\\[8pt] \sum\limits_{i=0}^nf_ix_i\\[8pt] \vdots\\[8pt] \sum\limits_{i=0}^nf_ix_i^m \end{bmatrix} n+1i=0Nxii=0nximi=0nxii=0nxi2i=0nxim+1i=0nximi=0nxim+1i=0nxi2m a0a1an = i=0nfii=0nfixii=0nfixim

八、数值积分与数值微分

1. 代数精度

定义 8.1 对于 ∫ a b f ( x ) d x ≈ ∑ k = 0 n A k f ( x k ) \int_a^bf(x){\rm d}x\approx\sum\limits_{k=0}^nA_kf(x_k) abf(x)dxk=0nAkf(xk) 的数值求积公式近似表示求积结果, x k x_k xk 为求积节点, A k A_k Ak 为求积系数。
若该求积公式对于任意 f ( x ) = P r ( x ) f(x)=P_r(x) f(x)=Pr(x) 精确成立,即 ∫ a b P r ( x ) d x = ∑ k = 0 n A k P r ( x k ) \int_a^bP_r(x)dx=\sum\limits_{k=0}^nA_kP_r(x_k) abPr(x)dx=k=0nAkPr(xk) ,但是至少有一个 f ( x ) = P r + 1 ( x ) f(x)=P_{r+1}(x) f(x)=Pr+1(x) 不精确成立,即 ∫ a b P r + 1 ( x ) d x ≠ ∑ k = 0 n A k P r + 1 ( x k ) \int_a^bP_{r+1}(x)dx\ne\sum\limits_{k=0}^nA_kP_{r+1}(x_k) abPr+1(x)dx=k=0nAkPr+1(xk) ,则称该求积公式具有 r r r 次代数精度,其中 P r ( x ) P_r(x) Pr(x) 表示 r r r 次多项式。

定理 8.1 对任意给定的 n + 1 n+1 n+1 个相异节点 a ⩽ x 0 < x 1 < ⋯ < x n ⩽ b a\leqslant x_0<x_1<\cdots<x_n\leqslant b ax0<x1<<xnb,总存在相应的求积系数 A 0 , A 1 , ⋯   , A n A_0,A_1,\cdots,A_n A0A1,,An 使求积公式至少具有 n 次代数精度。

2. 求解求积公式的节点或系数

列线性方程组

{ A 0 + A 1 + ⋯ + A n = ∫ a b 1 d x = b − a A 0 x 0 + A 1 x 1 + ⋯ + A n x n = ∫ a b x d x = 1 2 ( b 2 − a 2 ) A 0 x 0 2 + A 1 x 1 2 + ⋯ + A n x n 2 = ∫ a b x 2 d x = 1 3 ( b 3 − a 3 ) ⋯ ⋯ ⋯ A 0 x 0 n + A 1 x 1 n + ⋯ + A n x n n = ∫ a b x n d x = 1 n + 1 ( b n + 1 − a n + 1 ) \begin{cases} A_0&+A_1&+\cdots&+A_n&=\int_a^b1{\rm d}x&=b-a\\[2ex] A_0x_0&+A_1x_1&+\cdots&+A_nx_n&=\int_a^bx{\rm d}x&=\dfrac{1}{2}(b^2-a^2)\\[2ex] A_0x_0^2&+A_1x_1^2&+\cdots&+A_nx_n^2&=\int_a^bx^2{\rm d}x&=\dfrac{1}{3}(b^3-a^3)\\[2ex] & &\cdots&\cdots&\cdots\\ A_0x_0^n&+A_1x_1^n&+\cdots&+A_nx_n^n&=\int_a^bx^n{\rm d}x&=\dfrac{1}{n+1}(b^{n+1}-a^{n+1}) \end{cases} A0A0x0A0x02A0x0n+A1+A1x1+A1x12+A1x1n+++++An+Anxn+Anxn2+Anxnn=ab1dx=abxdx=abx2dx=abxndx=ba=21(b2a2)=31(b3a3)=n+11(bn+1an+1)

3. Newton-Cotes求积公式

将区间 [ a , b ]   n [a,b]\ n [a,b] n 等分,步长 h = b − a n h=\dfrac{b-a}{n} h=nba.

易知, n = 1 n=1 n=1 时,求积公式为梯形公式:

∫ a b f ( x ) d x ≈ b − a 2 [ f ( a ) + f ( b ) ] \int_a^bf(x){\rm d}x\approx\frac{b-a}{2}\left[f(a)+f(b)\right] abf(x)dx2ba[f(a)+f(b)]

余项为:

E [ f ] = − h 3 12 f ′ ′ ( η ) , η ∈ ( a , b ) E[f]=-\frac{h^3}{12}f''(\eta),\quad\eta\in(a,b) E[f]=12h3f′′(η),η(a,b)

n = 2 n=2 n=2 时,求积公式为 Simpson 公式

∫ a b f ( x ) d x ≈ b − a 6 [ f ( a ) + 4 f ( a + b 2 ) + f ( b ) ] \int_a^bf(x){\rm d}x\approx \frac{b-a}6\left[f(a)+4f\left(\frac{a+b}{2}\right)+f(b) \right] abf(x)dx6ba[f(a)+4f(2a+b)+f(b)]

余项为:

E [ f ] = − h 5 90 f ( 4 ) ( η ) , η ∈ ( a , b ) E[f]=-\frac{h^5}{90}f^{(4)}(\eta),\quad\eta\in(a,b) E[f]=90h5f(4)(η),η(a,b)

n = 4 n=4 n=4 时,求积公式为 Cotes 公式

∫ a b f ( x ) d x = b − a 90 [ 7 f ( x 0 ) + 32 f ( x 1 ) + 12 f ( x 2 ) + 32 f ( x 3 ) + 7 f ( x 4 ) ] − 8 h 7 945 f ( 6 ) ( η ) \int_a^bf(x){\rm d}x=\frac{b-a}{90}\left[7f(x_0)+32f(x_1)+12f(x_2)+32f(x_3)+7f(x_4)\right]- \frac{8h^7}{945}f^{(6)}(\eta) abf(x)dx=90ba[7f(x0)+32f(x1)+12f(x2)+32f(x3)+7f(x4)]9458h7f(6)(η)

其中, x i = a + i b − a 4 ( i = 0 , 1 , 2 , 3 , 4 ) . x_i=a+i\dfrac{b-a}{4}(i=0,1,2,3,4). xi=a+i4ba(i=0,1,2,3,4).

4. 复化求积公式

将积分区间 [ a , b ] [a,b] [a,b] 划分为 n n n 等分,步长 h = b − a n h=\dfrac{b-a}n h=nba ,分点为 x i = a + i h , i = 0 , 1 , 2 , ⋯   , n x_i=a+ih,\quad i=0,1,2,\cdots,n xi=a+ih,i=0,1,2,,n . 所谓复化求积法,是指先用低阶的 Newton-Cotes 公式求得每个子区间 [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1] 上的积分值 I i I_i Ii ,然后再求和,用 ∑ i = 0 n − 1 I i \sum\limits_{i=0}^{n-1}I_i i=0n1Ii 作为所求积分 I I I 的近似值.则有:

复化梯形公式:

T n = ∑ i = 0 n − 1 h 2 [ f ( x i ) + f ( x i + 1 ) ] = h 2 [ f ( a ) + 2 ∑ i = 1 n − 1 f ( x i ) + f ( b ) ] T_n=\sum\limits_{i=0}^{n-1}\frac h2\left[f(x_i)+f(x_{i+1})\right]=\frac h2\left[f(a)+2\sum\limits_{i=1}^{n-1}f(x_i)+f(b)\right] Tn=i=0n12h[f(xi)+f(xi+1)]=2h[f(a)+2i=1n1f(xi)+f(b)]

余项为:

E [ f ] = I − T n = − b − a 12 h 2 f ′ ′ ( η ) , η ∈ ( a , b ) E[f]=I-T_n=-\frac{b-a}{12}h^2f''(\eta),\quad\eta\in(a,b) E[f]=ITn=12bah2f′′(η),η(a,b)

复化Simpson公式:

S n = ∑ i = 0 n − 1 h 6 [ f ( x i ) + 4 f ( x i + 1 2 ) + f ( x i + 1 ) ] = h 6 [ f ( a ) + 4 ∑ i = 0 n − 1 f ( x i + 1 2 ) + 2 ∑ i = 1 n f ( x i + 1 ) + f ( b ) ] \begin{aligned} S_n&=\sum_{i=0}^{n-1}\frac h6\left[f(x_i)+4f\left(x_{i+\frac12}\right)+f(x_{i+1})\right]\\&=\frac h6\left[f(a)+4\sum_{i=0}^{n-1}f\left(x_{i+\frac12}\right)+2\sum_{i=1}^{n}f\left(x_{i+1}\right)+f(b)\right] \end{aligned} Sn=i=0n16h[f(xi)+4f(xi+21)+f(xi+1)]=6h[f(a)+4i=0n1f(xi+21)+2i=1nf(xi+1)+f(b)]

余项为:

E [ f ] = I − S n = − b − a 2880 h 4 f ( 4 ) ( η ) , η ∈ ( a , b ) E[f]=I-S_n=-\frac{b-a}{2880}h^4f^{(4)}(\eta),\quad\eta\in(a,b) E[f]=ISn=2880bah4f(4)(η),η(a,b)

5. Romberg 求积公式

实际计算中,一般并不需要使用 Simpson 公式与 Cotes 公式,而是可以由递推技巧,仅需计算梯形公式就能一步一步推导得到 Romberg 公式结果,其推导公式为

{ S n = 4 3 T 2 n − 1 3 T n C n = 16 15 S 2 n − 1 15 S n R n = 64 63 C 2 n − 1 63 C n ⋯ \begin{cases} S_n=\dfrac{4}{3}T_{2n}-\dfrac{1}{3}T_{n}\\[2ex] C_n=\dfrac{16}{15}S_{2n}-\dfrac{1}{15}S_{n}\\[2ex] R_n=\dfrac{64}{63}C_{2n}-\dfrac{1}{63}C_{n}\\ \cdots \end{cases} Sn=34T2n31TnCn=1516S2n151SnRn=6364C2n631Cn

其中, T n T_n Tn 为复化梯形公式的求积结果, n = 1 , 2 , ⋯   , n n=1,2,\cdots,n n=1,2,,n. 故要计算 R 1 R_1 R1,仅需计算 T 1 , T 2 , T 4 , T 8 T_1,T_2,T_4,T_8 T1,T2,T4,T8 即可。一般可以列出如下的表格进行计算:

T n T_n Tn S n S_n Sn C n C_n Cn R n R_n Rn
T 1 T_1 T1
T 2 T_2 T2 S 1 S_1 S1
T 4 T_4 T4 S 2 S_2 S2 C 1 C_1 C1
T 8 T_8 T8 S 4 S_4 S4 C 2 C_2 C2 R 1 R_1 R1

6. Gauss 型求积公式

定义 8.3 若求积公式

∫ a b f ( x ) d x = ∑ j = 0 n A j f ( x j ) + E ( f ) \int_a^bf(x){\rm d}x=\sum\limits_{j=0}^nA_jf(x_j)+E(f) abf(x)dx=j=0nAjf(xj)+E(f)

具有 2 n + 1 2n+1 2n+1 次的代数精度,则称此求积公式为 Gauss 型求积公式,相应的求积节点 x j x_j xj 称为 Gauss 点。

Gauss_Legendre 求积公式:

节点数 x j x_j xj A j A_j Aj
1 1 1 0 0 0 2 2 2
2 2 2 ± 0.5773502692 \pm0.5773502692 ±0.5773502692 1 1 1
3 3 3 ± 0.7745966692 0 \pm0.7745966692\\0 ±0.77459666920 0.5555555556 0.8888888889 0.5555555556\\0.8888888889 0.55555555560.8888888889

7. 数值微分

插值型数值微分:

两点公式 ( n = 1 ) (n=1) (n=1)

{ f ′ ( x 0 ) = 1 h [ f ( x 1 ) − f ( x 0 ) ] − h 2 f ′ ′ ( ξ 1 ) f ′ ( x 1 ) = 1 h [ f ( x 1 ) − f ( x 0 ) ] + h 2 f ′ ′ ( ξ 2 ) \begin{cases} f'(x_0)=\dfrac{1}{h}[f(x_1)-f(x_0)]-\dfrac{h}{2}f''(\xi_1)\\[2ex] f'(x_1)=\dfrac{1}{h}[f(x_1)-f(x_0)]+\dfrac{h}{2}f''(\xi_2) \end{cases} f(x0)=h1[f(x1)f(x0)]2hf′′(ξ1)f(x1)=h1[f(x1)f(x0)]+2hf′′(ξ2)

三点公式 ( n = 2 ) (n=2) (n=2)

{ f ′ ( x 0 ) = 1 2 h [ − 3 f ( x 0 ) + 4 f ( x 1 ) − f ( x 2 ) ] + h 2 3 f ′ ′ ′ ( ξ 1 ) f ′ ( x 1 ) = 1 2 h [ f ( x 2 ) − f ( x 0 ) ] − h 2 6 f ′ ′ ′ ( ξ 2 ) (中心公式) f ′ ( x 2 ) = 1 2 h [ f ( x 0 ) − 4 f ( x 1 ) + 3 f ( x 2 ) ] + h 2 3 f ′ ′ ′ ( ξ 3 ) \begin{cases} f'(x_0)=\dfrac{1}{2h}[-3f(x_0)+4f(x_1)-f(x_2)]+\dfrac{h^2}{3}f'''(\xi_1)\\[2ex] f'(x_1)=\dfrac{1}{2h}[f(x_2)-f(x_0)]-\dfrac{h^2}{6}f'''(\xi_2)\quad\text{(中心公式)}\\[2ex] f'(x_2)=\dfrac{1}{2h}[f(x_0)-4f(x_1)+3f(x_2)]+\dfrac{h^2}{3}f'''(\xi_3) \end{cases} f(x0)=2h1[3f(x0)+4f(x1)f(x2)]+3h2f′′′(ξ1)f(x1)=2h1[f(x2)f(x0)]6h2f′′′(ξ2)(中心公式)f(x2)=2h1[f(x0)4f(x1)+3f(x2)]+3h2f′′′(ξ3)

用差商代替微商:

1) 向前差商: f ′ ( x ) = f ( x + h ) − f ( x ) h − h 2 f ′ ′ ( ξ ) f'(x)=\dfrac{f(x+h)-f(x)}{h}-\dfrac{h}{2}f''(\xi) f(x)=hf(x+h)f(x)2hf′′(ξ)

2) 向后差商: f ′ ( x ) = f ( x ) − f ( x − h ) h + h 2 f ′ ′ ( ξ ) f'(x)=\dfrac{f(x)-f(x-h)}{h}+\dfrac{h}{2}f''(\xi) f(x)=hf(x)f(xh)+2hf′′(ξ)

3) 中心差商: f ′ ( x ) = f ( x + h ) − f ( x − h ) 2 h − h 2 6 f ′ ′ ′ ( ξ ) f'(x)=\dfrac{f(x+h)-f(x-h)}{2h}-\dfrac{h^2}{6}f'''(\xi) f(x)=2hf(x+h)f(xh)6h2f′′′(ξ)

4) 二阶中心差商: f ′ ′ ( x ) = f ( x + h ) − 2 f ( x ) + f ( x − h ) h 2 − h 2 12 f ( 4 ) ( ξ ) f''(x)=\dfrac{f(x+h)-2f(x)+f(x-h)}{h^2}-\dfrac{h^2}{12}f^{(4)}(\xi) f′′(x)=h2f(x+h)2f(x)+f(xh)12h2f(4)(ξ)

九、常微分方程的数值解法

主要考虑微分方程的初值问题

{ d y d x = f ( x , y ) , a ⩽ x ⩽ b y ( a ) = y 0 \begin{cases} \dfrac{{\rm d}y}{{\rm d}x}=f(x,y),\quad a\leqslant x\leqslant b\\[2ex] y(a)=y_0 \end{cases} dxdy=f(x,y),axby(a)=y0

1. Euler 方法

y ( x i + 1 ) ≈ y ( x i ) + h f ( x i , y ( x i ) ) y(x_{i+1})\approx y(x_i)+hf(x_i,y(x_i)) y(xi+1)y(xi)+hf(xi,y(xi))

2. Euler 预测-校正法

{ y ‾ i + 1 = y i + h f ( x i , y i ) y i + 1 = y i + h 2 [ f ( x i , y i ) + f ( x i + 1 , y ‾ i + 1 ) ] \begin{cases} \overline{y}_{i+1}=y_i+hf(x_i,y_i)\\[2ex] y_{i+1}=y_i+\dfrac{h}{2}[f(x_i,y_i)+f(x_{i+1},\overline{y}_{i+1})] \end{cases} yi+1=yi+hf(xi,yi)yi+1=yi+2h[f(xi,yi)+f(xi+1,yi+1)]

3. 四阶经典 Runge-Kutta 公式

y i + 1 = y i + 1 6 ( K 1 + 2 K 2 + 2 K 3 + K 4 ) { K 1 = h f ( x i , y i ) K 2 = h f ( x i + h 2 , y i + K 1 2 ) K 3 = h f ( x i + h 2 , y i + K 2 2 ) K 4 = h f ( x i + h , y i + K 3 ) y_{i+1}=y_i+\dfrac{1}{6}(K_1+2K_2+2K_3+K_4)\\[2ex] \begin{cases} K_1=hf(x_i,y_i)\\[2ex] K_2=hf(x_i+\dfrac{h}{2},y_i+\dfrac{K_1}{2})\\[2ex] K_3=hf(x_i+\dfrac{h}{2},y_i+\dfrac{K_2}{2})\\[2ex] K_4=hf(x_i+h,y_i+K_3)\\[2ex] \end{cases} yi+1=yi+61(K1+2K2+2K3+K4) K1=hf(xi,yi)K2=hf(xi+2h,yi+2K1)K3=hf(xi+2h,yi+2K2)K4=hf(xi+h,yi+K3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值