关于matlab应用傅立叶变换求函数的一阶矩问题!
关于应用傅立叶变换求函数的一阶矩问题!利用函数的傅立叶变换可以求函数的积分和一阶矩!下面例子结果不是理想,差距较大,请教高手,如何改善! % 利用fft求函数的积分和一阶矩
clear all
intf2=@(t)2*exp(-3*t);%被积函数
intv2=quadgk(intf2,0,3);%积分;
intf1=@(t)2*exp(-3*t).*t;
intv1=quadgk(intf1,0,3);%被积函数的一阶矩;
%数值解
N=2^10;
t=linspace(0,3,N);
f=2*exp(-3*t);%被积函数:intf2=@(t)2*exp(-3*t);
ts=t(2)-t(1);
ws=2*pi/ts;
F=fft(f);
fc=fftshift(F)*ts;%傅立叶变换的数值解;
w=ws*(-N/2:N/2-1)/N;
index=find(w==0);%找零点的索引;
dv=diff(fc)./diff(w);%求导;
disp();%前两项是一阶矩,后两是函数积分值!
复制代码
结果差异比较大,恳请不吝赐教!(本帖曾在仿真论坛发过) {:{40}:}
页:
[1]