【笔记】大一下数值分析碎碎念——插值

插值

给定数据点 (xi,yi),要求找到函数满足 f(xi)=yi

线性插值:全局信息维护,光滑性(求导),积分都不太好搞。但是原理简单。

多项式?

指数?变化快。

三角函数?周期性。

多项式插值

Weierstrass 逼近定理:设 fC[a,b],则 ϵ>0,存在多项式 p(x) 满足 |f(x)p(x)|<ϵ over [a,b]

n 个点 (xi,yi),假设多项式是 n1 次的,则正好可以唯一解出所有系数。注意到只要有 xi 两两不等,则必然有解,因为系数矩阵是范德蒙矩阵。

Vandermonde 矩阵的行列式是 j<i(xixj)

证明:

数学归纳法,n=1,n=2 显然。

n>2 时考虑每一行减去上一行的 x1 倍,再按第一行展开,提取公因式,由此可知。

Lagrange 插值

对于每一个点 (xi,yi),构造出多项式函数 li(x) 满足在 xjji)时取 0xi 处取 1。然后我们把所有函数各自乘上 yi 加起来 f(x)=li(x)yi 即得到插值函数。

显然存在构造:

lk(x)=ik(xxi)ik(xkxi)

逐次线性插值(Neville 算法)

Ii1,,in(x) 为满足 (xij,yij) 的多项式,那么我们可以递归计算:

I0,1,,k,l(x)=I0,1,,k(x)+I0,1,,k1,l(x)I0,1,,k(x)xlxk(xxk)

验证一下:显然在 x=x0,,xk 正确。在 x=xl 处显然也正确!每步次数最多 +1

但是直接实现复杂度爆炸,把指标换一下改成:

I0,1,,k,k+1=I0,1,,k(x)+I1,2,,k+1(x)I0,1,,k(x)xk+1x0(xx0)

这下指标一定是连续子段,所以计算过程中被用到的 I 不会超过 O(k2) 级别。

单点求值时,如需增加一个点,复杂度为 O(k),空间复杂度维持 O(k)

优势:可以逐步比较精度。

Newton 插值

求出一组系数 cn 使得:

Pn(x)=i=0ncij=0i1(xxj)

写一些值看看:

Pn(x0)=y0=c0

Pn(x1)=y1=c0+c1(x1x0) 得到 c1=y1y0x1x0

Pn(x2)=y2=c0+c1(x2x0)+c2(x2x0)(x2x1) 得到 c2=y2y0x2x0y1y0x1x0x2x1

我们先记

f[x0,,xk]=f[x0,,xk2,xk]f[x0,,xk2,xk1]xkxk1f[x0]=f(x0)

于是我们就可以递归计算:

f(x)=f(x0)+f[x,x0](xx0)f[x,x0]=f[x0,x1]+f[x,x0,x1](xx1)f[x,x0,x1]=f[x0,x1,x2]+f[x,x0,x1,x2](xx2)

发现 ck=f[x0,,xk]

所以我们需要想办法计算 f[x0,,xk]

可以数学归纳法证明:

f[x0,,xk]=i=0kf(xi)jik(xjxi)

于是可知顺序不会影响差商,故我们可以控制参数一定是一个区间,那么又可以计算了。

另一种证明 ck=f[x0,,xk] 的方法:

首先我们定义 f[x0,,xn] 过这些点的多项式最高次项的系数,最后我们证明这个东西就是我们上面定义的差商。接下来我们证明:

Pn(x)=i=0nf[x0,,xi]j=0i1(xxj)

差分

Δfk=fk+1fk

fk=fkfk1

δfk=fk+12fk12

误差

Rn(x)=f(x)Ln(x)=f(n+1)(ξ)(n+1)!i=0n(xxi)

内差。

龙格现象

Hermite 插值

(x1,y1),,(xn,yn) 且告诉导数 y1,,yn,则得到 2n1 阶插值多项式为 Hermite 插值多项式。构造:

H2n1=j=1nyjHj(x)+j=1nyjH^j(x)Hj(x)=[12(xxj)lj(xj)]lj2(x)H^j(x)=(xxj)lj2(x)

检查一下满足:

  • Hj(xi)=δi,j
  • Hj(xi)=0
  • H^j(xi)=0
  • H^j(xi)=δi,j

分段插值

三次样条插值

分段,每一段是三次函数,且满足最后二阶连续可导。

分段处有 3n3 个条件,过各点有 n+1 个条件,还有两个条件需要自行补充。

  • 自然样条:补充两个端点处二阶导为 0
  • 曲率调整样条:直接指定两个端点处的二阶导。
  • 钳制样条:指定两个断点处的一阶导。

一定有解:考虑写成矩阵,发现对角占优,所以可以求逆!

posted @   Imakf  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示