快速傅里叶FFT

文章介绍了如何将多项式的系数转换为值表示,通过引入偶函数和奇函数的概念降低计算复杂度。FFT(快速傅里叶变换)利用复数和原根的性质,实现了nlogn的时间复杂度内进行多项式运算,解决了传统方法的效率问题。
摘要由CSDN通过智能技术生成

值表示操作

举例:两个二次多项式相乘使用点值法计算的操作:
在这里插入图片描述
总结:
在这里插入图片描述
给定两个系数表示的d阶多项式,计算两个多项式在2d+1点上的值。然后将函数值一一的相乘起来,得到最后多项式的数值。
最后,最后,我们将对应点的函数值,转换为系数表示,才能得到最后的C(X)表达式。
在这里插入图片描述

值表示的问题

如何将系数转换成值表示,以及如何将值表示成指数?
在这里插入图片描述

系数转换成值表示

传统的思想

在这里插入图片描述
多项式的次数是d,所以我们需要选取d+1个点带入到多项式的进行计算对应的函数值来表示点值。比如x从1取到d+1。这样的话计算的复杂度仍然和O(d^2)比没有优势。

总结:过于复杂。需要更加简单的计算

引入
偶函数

在这里插入图片描述
那么利用偶函数的性质,我们只需要取4个值即可。

奇函数

同理,在奇函数中,也是一半。

一般函数

在这里插入图片描述
所以这里,我们只需要将最后两个多项式,i取值1,2……n/2,就可以得到原多项式的n个值。
在这里插入图片描述
复杂度:T(n)=2T(n/2)+O(n) = O(nlogn)。

存在问题

在这里插入图片描述

引用复数

因为复数是平方之后,正负是成对出现的。
例1:
在这里插入图片描述
例2:
在这里插入图片描述
推广:
在这里插入图片描述
1的n次方跟可以被解释为复平面沿着单位圆等距排布的一系列点。
这些点的表示方法可以用欧拉公式写成复数。
在这里插入图片描述
不同的i取值实际上就代表了不同的单位复n次方根。
在这里插入图片描述

为什么n次方根就可以用于递归过程呢?

  1. 首先要求的点事成正负对子出现的,这里 w^(j+n/2)= -w^j 正好是一对。
  2. 奇偶函数的分布,下图表现了平方之后的再复平面上分布的情况。
    在这里插入图片描述
    在这里插入图片描述
    上图表现了,平方之后,正好得到了n/2个n/2次方根,他们是正负配对的,可以实现完美的递归。
    再次平方,就得到了n/4个n/4次方根,适用于下一层的递归。最终只剩下一个点。

值表示转化为系数

在这里插入图片描述
将求值表示为矩阵向量的乘积。
在这里插入图片描述
转化为DFT形式:
在这里插入图片描述
FFT形式就是DFT和向量乘法的算法。
那么插值就是DFT矩阵求逆。给定位置的函数值,计算函数的系数。

在这里插入图片描述

总结FFT和IFFT

在这里插入图片描述

原根的这几个性质:

在这里插入图片描述
在这里插入图片描述
多项式在nlogn的时间内表示成点值表示法:
在这里插入图片描述

参考:

  1. https://www.bilibili.com/video/BV1za411F76U/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=d49b9f9f9975e09b9a2a18423540d91a
  2. https://www.bilibili.com/video/BV1eT411M7Fp/?spm_id_from=333.880.my_history.page.click&vd_source=d49b9f9f9975e09b9a2a18423540d91a
  3. https://zhuanlan.zhihu.com/p/374489378 (蝶形变换讲的很好)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值