目前为止并MATLAB并没有求解傅里叶级数的函数,但是可以利用int函数快速得到,详情见代码。
求解傅里叶级数及其图像逼近验证:
syms x n;
a0 = int(2,x,0,2)/2;
a0
an = int(2*cos(n*pi*x/2),x,0,2)/2;
an
bn = int(2*cos(n*pi*x/2),x,0,2)/2;
bn
b = 40;
hold on
Sm = 1;
for n = 1:b
fn = 2*2*sin((2*n-1)*pi*x/2)/(2*n-1)/pi;
Sm =Sm +fn;
clf
subplot(2,1,1)
ezplot(fn,[-6,6])
subplot(2,1,2)
ezplot(Sm,[-6,6])
if n==6
pause
else
pause(5/n)
end
end
注:上述代码中有求解a0、an、bn公式。
输出:
a0 =
2
an =
(2*sin(pi*n))/(n*pi)
bn =
(2*sin(pi*n))/(n*pi)
图像:
可见随着b的增大,Sm图像逐渐逼近f(x)