快速傅里叶变换fft学习笔记

这篇博客详细介绍了如何利用快速傅里叶变换(FFT)来高效地解决多项式卷积问题。从点值表示法开始,阐述了FFT如何将卷积复杂度从O(n^2)降低到O(nlogn)。博客内容涵盖了单位复数根、DFT的计算以及IDFT用于插值的过程,并探讨了如何将递归转换为递推,简化计算流程。
摘要由CSDN通过智能技术生成

问题:给出两个多项式A=a0+a1x+a2x^2+......+anx^n;B=b0+b1x+b2x^2+......+bnx^n;求C=A*B。

可知:c(i)=sigma(a(i)*b(k-i)),我们称之为卷积,对卷积暴力求解的复杂度为O(n^2),FFT可降低到O(nlogn)。

通过补零操作可以将ABC三个多项式都统一为n-1次多项式

一、点值表示

如果x0,x1,x2......xn-1为互不相同的n个数,且A在xi处取值为yi,B在xi处取值为yi'。那么c在xi处的取值为yi*yi'。

两个点确定一次函数,三个点确定二次函数,那么n个点可以确定一个n-1次函数。

可用矩阵形式表示为:

1 x0 x0^2 ......x0^n        a0        y0

1 x1 x1^2 ......x1^n   *    a1  =   y1


1 xn xn^2 ......xn^n        an       y2

前面的矩阵叫做范德蒙矩阵行列式的值为pai(xk-xj)(0<=j<k<=n),所以如果xj与xk不相等的话行列式的值不为零;

如果该矩阵行列式的值不为零的话,则该矩阵存在逆矩阵。

1 x0 x0^2 ......x0^n  -1   y0        a0

1 x1 x1^2 ......x1^n   *    y1  =   a1


1 xn xn^2 ......xn^n        yn       a2

这个过程叫做插值,所以我们可以先DFT求出A,B的点值表示再用插值求出C的系数,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值