博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速傅里叶变换
阅读量:6039 次
发布时间:2019-06-20

本文共 1262 字,大约阅读时间需要 4 分钟。

关于复数

2次方程的求根公式

$$ax^2+bx+c=0(a\neq0)$$

$$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$

3次方程(无2次项)的求根公式

$$x^3=mx+n$$

$$x=\sqrt[3]{\frac{n}{2}+\sqrt{({\frac{n}{2}})^2-({\frac{m}{3}})^3}}+\sqrt[3]{\frac{n}{2}-\sqrt{({\frac{n}{2}})^2-({\frac{m}{3}})^3}}$$

复数定义

形如$z=a+bi$的数就是复数

记作:$a=Re(z),b=Im(z)$

复数的计算

46536.png

复数的几何形式

复平面,x轴为实轴,y轴为虚轴。

虚数的模,$|z|=\sqrt{a^2+b^2}$
极坐标,$z(r,\theta)$
极坐标的复数相乘,$(r1,\theta1)(r2,\theta2)=(r1r2,\theta1+\theta2)$

关于DFT

点值表示法

把这个多项式理解成一个函数,用这个函数上的若干个点的坐标来描述这个多项式。

f(x)={(x0,f(x0)),(x1,f(x1)),(x2,f(x2)),...,(xn−1,f(xn−1))}
你会得到n+1个方程,其中x[0~n]和y[0~n]是已知的, a[0~n]是未知的。
n+1的未知数, n+1个方程所组成的方程组为“n+1元一次方程”,因为它是“一次方程”,所以(一般情况下,不考虑无解和无数解)可以通过“高斯消元”解得所有未知数唯一确定的值。
也就是说,用点值表示法可以确定出唯一确定的系数表示法中的每一位的系数。

傅里叶变换

这种把一个多项式转化成“离散的点”表示的方法就叫做“DFT”(离散傅里叶变换)

“离散的点”还原回多项式的方法就叫做“IDFT” (离散傅里叶反变换)

多项式乘法

46765.png

单位根

46766.png

这里选择单位根(模为1的点的集合)上的点是因为$x^2=1$
46768.png
46769.png

关于FFT

46808.png

这里便是利用奇偶性进行分治,通过下面的公式推导使运算加快。
46809.png
46810.png
46812.png
这是FFT分治的重点,他利用前面提到的单位根的性质,将每次计算的时间变成了一半,这边是FFT分治的关键。
伪代码:

FFT(a){    n=a.length;    if(n==1)    {        return a;    }    e=(a[0],a[2],...,a[n-2]);    o=(a[1],a[3],...,a[n-1]);    y_e=FFT(e);    y_o=FFT(o);    for(int k=0;k<=n/2-1;++k)    {        w=e^(2*π*i*k/n);        y[k]=y_e[k]+w*y_o[k];        y[k+n/2]=y_e[k]-w*y_o[k];    }}

关于IDFT

……(未完待续)

转载于:https://www.cnblogs.com/Point-King/p/10159024.html

你可能感兴趣的文章
windows Yii框架的安装
查看>>
RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍
查看>>
因子和与因子个数 (乘性函数)
查看>>
Protocol Buffer技术详解(语言规范)
查看>>
Java设计模式之从[暗黑破坏神存档点]分析备忘录(Memento)模式
查看>>
OSG第一个Demo
查看>>
C# 加密解密(DES,3DES,MD5,Base64) 类
查看>>
弹出保存文件、打开文件对话框
查看>>
ThinkPHP 获取配置文件中的值
查看>>
js正則表達式语法
查看>>
Android 测试工具集02
查看>>
【CF】148D Bag of mice
查看>>
Wi-Fi万能钥匙:说是破解,其实有危险(转)
查看>>
微软历史最高市值是多少?
查看>>
Boost中的智能指针(转)
查看>>
EntityFramework 实体拆分和表拆分
查看>>
web应用程序访问串口
查看>>
简介数据库日志文件的增长
查看>>
Weblogic
查看>>
Don't Repeat Yourself (不要重复你自己)
查看>>