各种数值算法

不知道以后这里是不是只有Lagrange插值。很大概率是的。

Lagrange插值

给出n个点(xi,yi),求确定的n1次多项式。

Sol:

利用点值的可加性,先构造出nFi(x)使之满足在x=xi处取yi,在xxi处取0,最终F(x)=i=0n1Fi(x)。(中国剩余定理运用了类似的思想。实际上将中国剩余定理拓展到多项式中便是Lagrange插值。)

考虑构造Fi(x)。为了使Fi(xj)=0ji),Fi(x)中应含有因式ji(xxj),但此时Fi(xi)不一定等于yi,要调整Fi(x)系数,乘上yiFi(xi)即可。

得到:Fi(x)=yijixxjxixj

于是F(x)=i=0n1yijixxjxixj

求原函数或点值O(n2)

一些拓展

连续取值插值

xi的取值连续时可以快速单点插值。这里以xi=i为例。

F(x)=i=0n1yijixjij

分子为i=0n1(xi)挖去一项,经典维护前后缀积,设pi=j=0i1(xj),si=j=i+1n1(xj)

分母对于i>jj=0i1(ij)=i!,对于i<jj=i+1n1(ij)=(1)(2)(in+1)=(1)ni1(ni1)!

于是F(x)=i=0n1yipisii!(1)ni1(ni1)!

预处理一下,O(n)

求连续自然数幂和

i=1nik

Sol:

有第二类斯特林数的做法。

注意到每一项可以看做一个k次多项式,那么前缀和就是一个k+1次多项式。(由于前缀和与差分互逆,一个k+1次多项式差分会得到一个k次多项式即证明了该结论。)

那么求出前缀和的k+2项,然后对前缀和插值就做完了。

重心Lagrange插值

普通插值计算的过程有很多重复,考虑化简式子:

F(x)=i=0n1yijixxjxixj=i=0n1ji(xxj)jiyixixj=(xxj)(i=0n1yiji(xixj)1xxi)

P(x)=(xxj),wi=yiji(xixj),那么:

F(x)=P(x)i=0n1wixxi

预处理和求原函数O(n2),求点值O(n)

posted @   RandomShuffle  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示