数值插值方法

数值插值方法

基本目标是根据函数的离散数据构造一个简单易于计算的函数P(x)来代替原有的复杂函数。应用十分广泛,比如根据离散数据绘制光滑曲线、图形放大算法等等。

拉格朗日插值

定义域D上的f(x) 对于 n+1个点 ( ( x 0 , f ( x 0 ) ) , ( x 1 , f ( x 1 ) ) , . . . , ( x n , f ( x n ) ) ) ((x_0,f(x_0)),(x_1,f(x_1)),...,(x_n,f(x_n))) ((x0,f(x0)),(x1,f(x1)),...,(xn,f(xn)))的拉格朗日插值
L n ( x ) = ∑ i = 0 n f ( x i ) ∏ j ≠ i , 0 ≤ j ≤ n x − x j x i − x j L_n(x) = \sum_{i=0}^n f(x_i)\prod_{j\neq i, 0\le j\le n}\frac {x-x_j}{x_i-x_j} Ln(x)=i=0nf(xi)j=i,0jnxixjxxj
定义余项
R ( x ) = f ( x ) − L n ( x ) R(x) = f(x) - L_n(x) R(x)=f(x)Ln(x)
假设f(x) n+1 阶连续可导,则对于固定的一个x,存在ξ,使得
R ( x ) = 1 ( n + 1 ) ! f ( n + 1 ) ( ξ ) ∏ j = 0 n ( x − x j ) R(x) = \frac 1{(n+1)!}f^{(n+1)}(ξ)\prod_{j=0}^n(x-x_j) R(x)=(n+1)!1f(n+1)(ξ)j=0n(xxj)

证明

任取取一个 x ′ ∈ D , 且 x ′ ≠ x i x'\in D, 且x'\neq x_i xD,x=xi
k = R ( x ′ ) / ∏ j = 1 n ( x ′ − x j ) k = R(x')/\prod_{j=1}^n(x'-x_j) k=R(x)/j=1n(xxj)
定义函数
g ( x ) = R ( x ) − 1 ( n + 1 ) ! k ∏ j = 0 n ( x − x j ) g(x) = R(x) - \frac 1{(n+1)!}k\prod_{j=0}^n(x-x_j) g(x)=R(x)(n+1)!1kj=0n(xxj)
显然 g(x) 也n+1 阶连续可导, 因为g(x)有n+2个零点(包括x’), 运用n+1次罗尔定理,则存在ξ,使得 g ( n + 1 ) ( ξ ) = 0 g^{(n+1)}(ξ) = 0 g(n+1)(ξ)=0.而 R ( n + 1 ) ( x ) = f ( n + 1 ) ( ξ ) R^{(n+1)}(x)= f^{(n+1)}(ξ) R(n+1)(x)=f(n+1)(ξ), ( ∏ j = 0 n ( x − x j ) ) ( n + 1 ) = ( n + 1 ) ! (\prod_{j=0}^n(x-x_j))^{(n+1)} = (n+1)! (j=0n(xxj))(n+1)=(n+1)!, 所以(n+1)!k = f^{(n+1)}(ξ)。

所以对于固定的一个x,存在ξ,使得
R ( x ) = 1 ( n + 1 ) ! f ( n + 1 ) ( ξ ) ∏ j = 0 n ( x − x j ) R(x) = \frac 1{(n+1)!}f^{(n+1)}(ξ)\prod_{j=0}^n(x-x_j) R(x)=(n+1)!1f(n+1)(ξ)j=0n(xxj)

牛顿插值

定义域D上的f(x) 对于 n+1个点 ( ( x 0 , f ( x 0 ) ) , ( x 1 , f ( x 1 ) ) , . . . , ( x n , f ( x n ) ) ) ((x_0,f(x_0)),(x_1,f(x_1)),...,(x_n,f(x_n))) ((x0,f(x0)),(x1,f(x1)),...,(xn,f(xn)))的牛顿插值
N n ( x ) = a 0 + a 1 ( x − x 0 ) + . . . + a n ∏ i = 0 n − 1 ( x − x 0 ) N_n(x) =a_0+a_1(x-x_0)+...+a_n\prod_{i=0}^{n-1}(x-x_0) Nn(x)=a0+a1(xx0)+...+ani=0n1(xx0)
定义差商函数族 g ( i 0 ) , g ( i 0 , i 1 ) , . . . , g ( i 0 , i 1 , . . . , i n ) g(i_0),g(i_0,i_1),...,g(i_0,i_1,...,i_n) g(i0),g(i0,i1),...,g(i0,i1,...,in)
g ( i 0 ) = f ( x i 0 ) g(i_0) = f(x_{i_0}) g(i0)=f(xi0)
g ( i 0 , i 1 ) = g ( i 0 ) − g ( i 1 ) x i 0 − x i 1 g(i_0,i_1) = \frac {g(i_0) - g(i_1)}{x_{i_0}-x_{i_1}} g(i0,i1)=xi0xi1g(i0)g(i1)
g ( i 0 , i 1 , . . . , i n ) = g ( i 0 , i 1 , . . . , i n − 1 ) − g ( i 1 , i 2 , . . . , i n ) x i 0 − x i n g(i_0,i_1,...,i_n) = \frac {g(i_0,i_1,...,i_{n-1}) - g(i_1,i_2,...,i_n)}{x_{i_0}-x_{i_n}} g(i0,i1,...,in)=xi0xing(i0,i1,...,in1)g(i1,i2,...,in)
a 0 = g ( 0 ) , a 1 = g ( 0 , 1 ) , . . . , a n = g ( 0 , 1 , . . . , n ) a_0=g(0), a_1 = g(0,1), ... , a_n = g(0,1,...,n) a0=g(0),a1=g(0,1),...,an=g(0,1,...,n)
牛顿插值本质上和拉格朗日插值一致,只是形式上不同, 方便后续加入点。

证明

引理1

g ( i 0 , i 1 , . . . , i m ) = ∑ p = 0 m f ( x i p ) / ∏ q ≠ p , 0 ≤ q ≤ m ( x i p − x i q )      ( m = 0 , . . . , n ) g(i_0,i_1,...,i_m) = \sum_{p=0}^m f(x_{i_p})/\prod_{q\neq p, 0\le q\le m}(x_{i_p}-x_{i_q})\ \ \ \ (m=0,...,n) g(i0,i1,...,im)=p=0mf(xip)/q=p,0qm(xipxiq)    (m=0,...,n)

引理1证明

对m使用数学归纳法证明

1° 当m=0时,显然成立

2° 假设当m=k时成立。当m=k+1时

g ( i 0 , i 1 , . . . , i k ) = ∑ p = 0 k f ( x i p ) / ∏ q ≠ p , 0 ≤ q ≤ k ( x i p − x i q ) = f ( x i 0 ) / ∏ 1 ≤ q ≤ k ( x i 0 − x i q ) + ∑ p = 1 k f ( x i p ) / ( x i p − x i 0 ) / ∏ q ≠ p , 1 ≤ q ≤ k ( x i p − x i q ) \begin{aligned} g(i_0,i_1,...,i_k) &= \sum_{p=0}^k f(x_{i_p})/\prod_{q\neq p, 0\le q\le k}(x_{i_p}-x_{i_q})\\ &= f(x_{i_0})/\prod_{1\le q\le k}(x_{i_0}-x_{i_q}) + \sum_{p=1}^k f(x_{i_p})/(x_{i_p} - x_{i_0})/\prod_{q\neq p, 1\le q\le k}(x_{i_p}-x_{i_q}) \end{aligned} g(i0,i1,...,ik)=p=0kf(xip)/q=p,0qk(xipxiq)=f(xi0)/1qk(xi0xiq)+p=1kf(xip)/(xipxi0)/q=p,1qk(xipxiq)
g ( i 1 , i 2 , . . . , i k + 1 ) = ∑ p = 1 k + 1 f ( x i p ) / ∏ q ≠ p , 1 ≤ q ≤ k + 1 ( x i p − x i q ) = f ( x i k + 1 ) / ∏ 1 ≤ q ≤ k ( x i k + 1 − x i q ) + ∑ p = 1 k f ( x i p ) / ( x i p − x i k + 1 ) / ∏ q ≠ p , 1 ≤ q ≤ k ( x i p − x i q ) \begin{aligned} g(i_1,i_2,...,i_{k+1}) &= \sum_{p=1}^{k+1} f(x_{i_p})/\prod_{q\neq p, 1\le q\le k+1}(x_{i_p}-x_{i_q})\\ &= f(x_{i_{k+1}})/\prod_{1\le q\le k}(x_{i_{k+1}}-x_{i_q}) + \sum_{p=1}^k f(x_{i_p})/(x_{i_p} - x_{i_{k+1}})/\prod_{q\neq p, 1\le q\le k}(x_{i_p}-x_{i_q}) \end{aligned} g(i1,i2,...,ik+1)=p=1k+1f(xip)/q=p,1qk+1(xipxiq)=f(xik+1)/1qk(xik+1xiq)+p=1kf(xip)/(xipxik+1)/q=p,1qk(xipxiq)
g ( i 0 , i 1 , . . . , i k + 1 ) = g ( i 0 , i 1 , . . . , i k ) − g ( i 1 , i 2 , . . . , i k + 1 ) x i 0 − x i k + 1 = f ( x i 0 ) / ∏ 1 ≤ q ≤ k + 1 ( x i 0 − x i q ) + f ( x i k + 1 ) / ∏ 0 ≤ q ≤ k ( x i k + 1 − x i q ) + ∑ p = 1 k f ( x i p ) / ( x i p − x i k + 1 ) / ∏ q ≠ p , 0 ≤ q ≤ k + 1 ( x i p − x i q ) = ∑ p = 0 k + 1 f ( x i p ) / ∏ q ≠ p , 0 ≤ q ≤ k + 1 ( x i p − x i q ) \begin{aligned} g(i_0,i_1,...,i_{k+1}) &= \frac {g(i_0,i_1,...,i_k) - g(i_1,i_2,...,i_{k+1})}{x_{i_0}-x_{i_{k+1}}} \\ &= f(x_{i_0})/\prod_{1\le q\le k+1}(x_{i_0}-x_{i_q}) + f(x_{i_{k+1}})/\prod_{0\le q\le k}(x_{i_{k+1}}-x_{i_q}) + \sum_{p=1}^k f(x_{i_p})/(x_{i_p} - x_{i_{k+1}})/\prod_{q\neq p, 0\le q\le k+1}(x_{i_p}-x_{i_q}) \\ &=\sum_{p=0}^{k+1} f(x_{i_p})/\prod_{q\neq p, 0\le q\le k+1}(x_{i_p}-x_{i_q}) \end{aligned} g(i0,i1,...,ik+1)=xi0xik+1g(i0,i1,...,ik)g(i1,i2,...,ik+1)=f(xi0)/1qk+1(xi0xiq)+f(xik+1)/0qk(xik+1xiq)+p=1kf(xip)/(xipxik+1)/q=p,0qk+1(xipxiq)=p=0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值