数值分析-插值笔记

1648

函数插值

华中科技大学数值分析课程地址

插值方法

函数逼近问题

有$y_i=f(x_i)(i=0,1,...,n)$,希望使用一个简单函数$p(x)$近似$f(x)$,使$p(x_i)=f(x_i)(i=1,2,...,n)$

通过已知的数据估计$f(x)$

插值法定义:

设函数$y=f(x)$在区间[a,b]上有定义,且$a<=x_0

若存在简单函数$p(x)$,使 $$ p(x_i)=y_i,i=0,1,2...,n $$ 成立,就称$p(x)$$为$$f(x)$$的插值函数,点$$x_i$$称为插值节点,[a,b]称为插值区间 **常用插值法:** 多项式插值:P(x)为多项式函数 分段插值:P(x)为分段多项式函数 三角插值:P(x)为三角函数 ...... **插值多项式的存在唯一性:** 满足$P(x_i)=y_i,i=0,1,...,n$,**次数不超过n**的插值多项式是唯一存在的 证明方法略,hint:范德蒙行列式 **如何构造插值多项式:** 待定系数法: 1.构造插值多项式$P(x)=a_0+a_1x+a_2x^2+...+a_nx^n$,构造时候注意唯一性条件,次数不能超过n 2.带入已知条件求解插值多项式的未知数 ## 拉格朗日插值 待定系数法在线性方程组维数高时很难求解,其优点是基函数简单,缺点是方程组系数难以计算 拉格朗日插值法与待定系数法基函数不同 **拉格朗日多项式:** 为了解决方程组系数难以计算的问题,使方程组系数就等于$y_i$ 求n次多项式$L_n(x)=y_0l_0(x)+y_1l_1(x)+...+y_nl_n(x)$ 使得$L_n(x_i)=y_i,i=0,1,2,...,n$ 条件:无重合节点 $l_i(x)$称为拉氏基函数,使得$l_i(x)$满足条件$l_i(x_j)=\delta_{ij}$时,满足$L_n(x_i)=y_i,i=0,1,2,...,n$ 注:$\delta_{ij}=\begin{cases}0&\text{i$\neq$j}\\\\1&\text{i$=$j}\end{cases}$ $l_{i}(x)=\prod_{\substack{j \neq i \\ j=0}}^{n} \frac{\left(x-x_{j}\right)}{\left(x_{i}-x_{j}\right)}$ $L_{n}(x)=\sum_{i=0}^{n} L_{i}(x) y_{i}$ 注:拉格朗日基函数仅与插值节点有关而与函数无关 **插值余项:** 没听懂 $R_{n}(x)=\frac{f^{(n+1)}\left(\xi_{x}\right)}{(n+1) !} \prod_{i=0}^{n}\left(x-x_{i}\right)$ 误差估计上界为: $\frac{M_{n+1}}{(n+1) !} \prod_{i=0}^{n}\left|x-x_{i}\right|$ 其中$\left|f^{(n+1)}(x)\right|<=M_{n+1}$ 一般用估计上界来估计误差 ## 拉格朗日插值法每新增或者减少一个节点,需要重新计算所有基函数$ l_k(x)$ 为了解决这个问题,设计一种可以逐次生成插值多项式的算法,即为**牛顿插值法** **插商:** 零阶差商 $$f(x)$$ 一阶差商 $$f[x_i,x_j]=\frac{f(x_i)-f(x_j)}{x_i-x_j}(i\neq j,x_i\neq x_j)$$ 二阶差商 $$f[x_i,x_j,x_k]=\frac{f[x_i,x_j]-f[x_j,x_k]}{x_i-x_k}(i\neq k)$$ ... k+1阶差商 $$\begin{aligned} f\left[x_{0}, \ldots, x_{k+1}\right] &=\frac{f\left[x_{0}, x_{1}, \ldots, x_{k}\right]-f\left[x_{1}, \ldots, x_{k}, x_{k+1}\right]}{x_{0}-x_{k+1}} \ &=\frac{f\left[x_{0}, \ldots, x_{k-1}, x_{k}\right]-f\left[x_{0}, \ldots, x_{k-1}, x_{k+1}\right]}{x_{k}-x_{k+1}} \end{aligned}$$ **牛顿插值:** $N_n(x)=c_0+c_1(x-x_0)+c_2(x-x_0(x-x_1)+...+c_n(x-x_0)(x-x_1)...(x-x_n-1)$ $c_k=f[x_0,x_1,...,x_k]$ 等距节点公式: 节点等距分布:$x_i=x_0+ih(i=0,...,n)$ # 函数逼近 一致逼近:$||f(x)-y(x)||_\infty = \mathop{max}\limits_{a\leq x\leq b}|f(x)-y(x)|$ 平方逼近:$||f(x)-y(x)||_2^2=\int_a^b\rho(x)[f(x)-y(x)]^2dx$ Weierstrass逼近定理:闭区间上的连续函数可以用**多项式**一致逼近 ## 内积空间 内积:$(f,g)=\int_a^b\rho(x)f(x)g(x)dx$$称为函数$$f(x)$$和$$g(x)$$在$$[a,b]$$上的内积,$$\rho(x)$$是$$[a,b]$上的权函数 内积空间的四条公理 满足内积定义的函数空间称为内积空间 范数: $||f||_2=\sqrt{\int_a^b\rho(x)f^2(x)dx}+\sqrt{(f,f)}$ 称为$f(x)$的欧式范数 定理: Cauchy-Schwarz不等式$|(f,g)|\leq||f||_2||g||_2$ 三角不等式$||f+g||_2\leq||f||_2+||g||_2$ 平行四边形定律$||f+g||_2^2+||f-g||_2^2=2(||f||_2^2+||g||_2^2)$ 正交函数族 线性无关函数族(与线性代数的线性无关类似) 判断函数族线性无关的充要条件:克莱姆行列式$G_{n-1}\neq 0$ ## 函数的最佳平方逼近 求$a_k^*(k+0,1,...,n)$使 $$||f(x)-s^*(x)||2^2||f(x)-\sum\limits{k=1}^na_k^\phi_k(x)||2^2=\min\limits{s(x)\in\Phi}||f(x)-s(x)||_2^2$$ $f(x)$是要逼近的函数 法方程组: $$\begin{bmatrix}(\phi_0,\phi_0)&(\phi_0,\phi_1)&\cdots&(\phi_0,\phi_n)\(\phi_1,\phi_0)&(\phi_1,\phi_1)&\cdots&(\phi_1,\phi_n)\\vdots&\vdots&\cdots&\vdots\(\phi_n,\phi_0)&(\phi_n,\phi_1)&\cdots&(\phi_n,\phi_n)\end{bmatrix}\begin{bmatrix}a_0\a_1\\vdots\a_n\end{bmatrix}=\begin{bmatrix}(\phi_0,y)\(\phi_1,y)\\vdots\(\phi_n,y)\end{bmatrix}$$ 法方程组的系数矩阵希尔伯特阵(系数矩阵与基函数有关,并不是所有情况都能用希尔伯特阵,只适用于基函数为单项式函数的情况): $$H=\left[\begin{array}{cccc} 1 & \frac{1}{2} & \cdots & \frac{1}{n+1} \ \frac{1}{2} & \frac{1}{3} & \cdots & \frac{1}{n+2} \ \vdots & \vdots & & \vdots \ \frac{1}{n+1} & \frac{1}{n+2} & \cdots & \frac{1}{2 n+1} \end{array}\right]$$

求解过程:

先求法方程等号右边(求内积)

再带入法方程系数矩阵求解法方程

一个求最佳平方逼近的matlab demo:

function [A] = BSapproximation(f,ft)
%BSAPPROXIMATION 求最佳逼近,区间[0,1],基函数为一次多项式
    b1 = integral(f, 0, 1);
    b2 = integral(ft, 0, 1);
    H = [1,1/2;1/2,1/3];
    B = [b1; b2];
    A=mldivide(H,B);
end

只能求解区间[0,1]上的一次多项式最佳平方逼近,作为一个求解过程的示例

基函数为单项式函数$\{1,t,\cdots,t^{n-1}\}$,此时系数矩阵为希尔伯特矩阵

f是要逼近的方程,ft是要逼近的方程*t,用于求解法方程等号右端项

最小二乘拟合

最佳平方逼近的离散版本

引入离散型内积

$\sum\limits_{i=1}^N\omega(x_i)f(x_i)g(x_i)$