- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种有效的计算2的m次方被一个名叫YATES的人介
一个关于复杂傅里叶序列的机器运算的算法
魏婉婷3090101745
一种有效的计算2^m个因子交叉影响的实验被一个名叫YATES 的人介绍并广泛的为人所知。3的m次方的推广被Box等人给出。Good总结了这些方法并给出了针对每一中类型一个精确的算法。在他们全面的总结中,Good的方法对于某些问题时使用的,那些问题必须可以分解成m个稀有矩阵的n*n矩阵乘以一个n向量的很有效,其中m与logN成正比。它所产生的过程,其所需要的操作次数不再于N的平方成比例而与NlogN成比例。这个方法在这里被应用于复数傅里叶序列的计算。当数据个数是,或者可以被设定为一个合成度很高合数时,这些方法非常有效。这里提出的计算方法是由上述演变而来,并且以一种不一样的形式表示。这种方法更多的关注于N的选择。这也显示了,在使用二进制的时候,我们能得到十分特殊的优势,并展示了只需要N列的数据存储空间来存储的整个计算过程。并且整个计算过程定的傅里叶系数。
考虑如下复数傅里叶序列
(1)
其中所给傅里叶系数A(k)为复数,W是
(2)
一个直接使用(1)的计算需要N^2次操作,其中操作在本文中指一次复数乘法与一次复数加法。
这里描述的算法在此申明所给复数傅里叶幅度数组并在少于2NlogN次操作数内得到结果且不需要比已经要求的数列A更多的数据储存。要延伸这个算法,假设N是一个合数,即N=r1*r2,将(1)中的系数表示如下:
(3)
于是有
(4)
因为
(5)
内部和,关于 k,仅仅决定于j0和k0,并且可以定义为一个新的数组
(6)
结果可写作
(7)
在数组A1中有N个元素,每个都需要r1次操作,共需要Nr1次操作才能获得A1.类似的,需要N2次操作来用A1计算X。因此,(6)(7)所给出的两步算法总共需要
(8)
次操作。
很容易看出,连续应用以上从(6)的以上过程,是如何给出一个m步的算法,需要
(9)
次操作,其中
(10)
如果,其中,那么,除非,当时。
总体来说,用尽可能多的分解因数可以提供(9)的最小值,但是用二的因数可以以对的形式结合而不造成任何损失。如果我们能选择N使之有尽量多的约数,我们可能有很多获益。如果所有都等于r,那么有(10)我们可知
(11)
操作的总次数为
(12)
如果,那么我们发现
(13)
于是
是以下各量的加权平均数。
其值如下所示:
理论上,的用法是最有效率的,但是其收益仅仅比2或者4时高6%,二后者还有其他优势。如果有必要,rj增大到10会增加计算量,但是增加量不会超过50%。由此可得,我们可以在一定的百分比的范围内,得到任何给定的大数的N的“高度复合”数值。
在有可能的情况下其中r=2或4。提供了一个对于使用二进制的电脑很重要的,在寻址方面与相乘优势两方面上的经济性的优势。
r=2的算法有以下表示系数的形式延伸而来
(14)
此处jv和kv等于0或1,是二进制表示中各自字节位置的j或k。所有的数组会被写作他们系数的二进制数的函数。根据上述原则,(1)被写为
(15)
其中和为.因为
(16)
(15)最内层的和关于 km-1,仅仅之决定于j0,km-2....k0可以写作
(17)
继续看到下一个最内层和,关于 km-2,等等,使用
(18)
得到连续数组
(19)
当l=1,2,....m时.
写出和式所得
(20)
根据编号的管理,其所储存的位置的地址索引为
(21)
从(20)中可以看出,。。。
平行计算是可行的,因为(20)所描述的操作可以被所有j0,....,kl-2和k0,...,km-l-1自发的执行。在某些应用中,用(20)来一句Al-2表示Al是很方便的。
计算的最后一列数组给出了所求的傅里叶和,
(22)
以这样的次序,X的下标的反转二进制数一定与Am的下标相同。
在某些应用中,其中傅里叶和要被求值两次,以上过程可以被编程,这样就不需要位的反转。例如,考虑差分方程的求解
(23)
现有的方法可以首先应用于使用下面的式子用来计算F(j)的傅里叶幅度
(24)
则,其解的热傅里叶幅度为
(25)
BkAk数组顺序为位反转,但是由于(20)的大幅度调制,Ak可以用于得出有正确标定指数的解。
一个在IBM7094上使用的电脑程序已经被开发出来了,它可以使用上述方法计算三位傅里叶和。计算三位 数组的计算时间如下所示:
得分:20
文档评论(0)