跳至主要內容

拉格朗日插值/多项式

岁杪二四...大约 2 分钟计算方法/数值分析学习笔记

nn次多项式Ln(x)=y0l0(x)+y1l1(x)++ynln(x)L_n(x)=y_0l_0(x)+y_1l_1(x)+\dots+y_nl_n(x)

使得Ln(xi)=yi,i=0,1,2,,nL_n(x_i)=y_i,i=0,1,2,\dots,n

条件:无重合节点,即ijxixji\neq j \Longrightarrow x_i \neq x_j

如何构造拉格朗日多项式?

n=1\boxed {n=1}时已知x0,x1;y0,y1x_0,x_1;y_0,y_1,求L1(x)=l0(x)y0+l1(x)y1L_1(x)=l_0(x)y_0+l_1(x)y_1,使得L1(x0)=y0,L1(x1)=y1L_1(x_0)=y_0,L_1(x_1)=y_1

可见L1(x)L_1(x)是过(x0,y0)(x_0,y_0)(x1,y1)(x_1,y_1)两点的直线

L1(x)=y0+y1y0x1x0(xx0)=(xx1x0x1)l0(x)y0+(xx0x1x0)l1(x)y1=i=01li(xj)yi \begin{align} L_1(x)&=y_0+\frac{y_1-y_0}{x_1-x_0}(x-x_0) \newline &= \underbrace{\left(\frac{x-x_1}{x_0-x_1}\right)}_{l_0(x)}y_0+\underbrace{\left(\frac{x-x_0}{x_1-x_0}\right)}_{l_1(x)}y_1 = \sum_{i=0}^{1}l_i(x_j)y_i \end{align}

li(x)l_i(x)称为拉氏基函数(Lagrange Basis)满足条件li(xj)=δijl_i(x_j)=\delta_{ij}(Kronecker Delta)

l0(x0)=x0x1x0x1=1l0(x1)=x1x1x0x1=0l0(xi)={1,x=x0,i=00,x=x1,i=1若将0替换为j,则公式可化为:lj(xi)={1,x=x0,i=j0,x=x1,ij \begin{align} l_0(x_0) &= \frac{x_0-x_1}{x_0-x_1}=1 \newline l_0(x_1) &= \frac{x_1-x_1}{x_0-x_1}=0 \newline l_0(x_i) &= \begin{cases}1,x=x_0,i=0 \\ 0,x=x_1,i=1\end{cases} \newline \text{若将0替换为j,则公式可化为:} \newline l_j(x_i) &= \begin{cases}1,x=x_0,i=j \\ 0,x=x_1,i\neq j\end{cases} \end{align}

符合

δij={1,i=j0,ij \delta_{ij} = \begin{cases}1,i=j\\0,i\neq j\end{cases}

n1\boxed {n\ge 1}时,希望找到li(x),i=0,,nl_i(x),i=0,\dots,n使得li(xj)=δijl_i(x_j)=\delta_{ij};然后令Ln(x)=i=0nli(x)yiL_n(x)=\sum_{i=0}^{n}l_i(x)y_i,则显然有Ln(xi)=yiL_n(x_i)=y_i

重要

只有在i=ji=j时,才会得到11,其他都为00,所以求和中的nn项只剩下了11

Ln(xi)=j=0nlj(xi)yj=li(xi)=1yi=yi L_n(x_i) = \sum _{j=0}^{n}l_j(x_i)y_j = \underbrace{l_i(x_i)}_{=1}y_i = y_i

针对每个li\color{red}l_inn个零点,x0...xi^...xn\begin{aligned}\color{blue}x_0...\widehat{x_i}...x_n\end{aligned}

li(x)=Ci(xx0)...(xxi)^...(xxn)=Ciji,j=0n(xxj)li(xi)=1C0=ji1(xixj)li(x)=ji,j=0n(xxj)(xixj)Ln(x)=i=0nli(x)yi \begin{aligned} &\begin{aligned}&{\rightarrow}{\color{red}l_i}(x)=C_i(x-x_0)...\widehat{(x-x_i)}...(x-x_n)=C_i\prod_{j\neq i,j=0}^n(x-x_j)\\&{l_i(x_i)=}1\quad\boldsymbol{\rightarrow}{C_0=}\prod_{j\neq i}\frac{1}{(x_i-x_j)}\end{aligned} \\ &\boxed{l_i(x)=\prod_{j\neq i,j=0}^n\frac{(x-x_j)}{(x_i-x_j)}} \Longrightarrow \boxed{L_n(x)=\sum_{i=0}^nl_i(x)y_i} \end{aligned}

一点零次插值多项式

Ln(x)=y0 L_n(x)=y_0

两点一次插值 (线性插值) 多项式

L1(x)=xx1x0x1y0+xx0x1x0y1 {L_1(x)=\frac{x-x_1}{x_0-x_1}y_0+\frac{x-x_0}{x_1-x_0}y_1}

三点二次插值 (抛物插值) 多项式

L2(x)=(xx1)(xx2)(x0x1)(x0x2)y0+(xx0)(xx2)(x1x0)(x1x2)y1+(xx0)(xx1)(x2x0)(x2x1)y2 L_2(x)=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}y_0+\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}y_1+\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}y_2

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.2.0