正在加载图片...
for 1=0: N-1 z(i+1)=0 for j=0: i z(i+1)=z(i+1)+x(j+1) end z(i+1)=z(i+1)+x(j+1)*y(N+i-j+1); end end t1=toc;%计时 xl=fft(x, N) yl=fft(y, N) zl=ifft(xl. *y1) t2=toc t=[t1,t2] 分析 计算所化时间与使用的计算机性能有关,由于计算机计时器的最 小单位较大,对于较新的计算机,即使对于N=128,所化时间几乎为 0。而且由于卷积采用代码解释执行速度较慢, Fourier变换采用内部 函数速度很快,用FFT计算速度要快得多 3.用FFT计算多项式∑x和∑x的乘积,并与2的 1)!m=0(2n Taylor级数的相应项比较 解源程序为 function [z, maxerror]=ex1603(m) %z:乘积, maxerror:最大误差,m:阶数 len=4*m+2 a= zeros(len,1);%被乘式系数 fori=4:2:2*m+2 a(i)=1*a(i-2)/(i-2)/(i-1) dfor i=0:N-1 z(i+1)=0; for j=0:i z(i+1)=z(i+1)+x(j+1)*y(i-j+1); end for j=i+1:N-1 z(i+1)=z(i+1)+x(j+1)*y(N+i-j+1); end end t1=toc;%计时 tic; x1=fft(x,N); y1=fft(y,N); z1=ifft(x1.*y1); t2=toc; t=[t1,t2]; 分析: 计算所化时间与使用的计算机性能有关,由于计算机计时器的最 小单位较大,对于较新的计算机,即使对于 N=128,所化时间几乎为 0。而且由于卷积采用代码解释执行速度较慢,Fourier 变换采用内部 函数速度很快,用 FFT 计算速度要快得多。 ⒊ 用 FFT 计算多项式 ( ) ( )! − + + = ∑ 1 2 1 2 1 0 n n n m x n 和 ( ) ( )! − = ∑ 1 2 2 0 n n n m x n 的乘积,并与 sin 2 2 x 的 Taylor 级数的相应项比较。 解 源程序为 function [z,maxerror]=ex1603(m); % z:乘积,maxerror:最大误差,m:阶数 len=4*m+2; a=zeros(len,1);%被乘式系数 a(2)=1; for i=4:2:2*m+2 a(i)=-1*a(i-2)/(i-2)/(i-1); end 8
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有