a=[0,pi/2,pi/2,pi];
b=[0,-1,0,0];
plot(a,b)
hold on
n=50;
ao=-pi/4;
T=[0,pi,0,1];
for i=1:length(T)
t=linspace(a(i),b(i));
end
suma=0;
for i=1:n
bn=cos(pi*i)/2/i;
an=(1-cos(pi*i))/4/(i)^2;
suma=suma+(bn.*sin(2.*i.*t))+(an.*cos(2.*i.*t));
end
series=ao/2+suma;
plot(t,series)
我需要绘制两个函数:确定的函数及其傅立叶级数,但是在绘制傅立叶时遇到一些问题,它没有与第一个函数结合。我可以猜测t
或T
中的问题,但不知道如何解决。
答案 0 :(得分:1)
首先,您的系数不正确。您应该得到:
a0 = -.5;
an = -(1/pi)*sin(pi*i)/i + (2/(pi^2*i^2))*sin((pi*i)/2)^2;
bn = -(1/(pi^2*i^2))*sin(pi*i) + 1/(pi*i)*cos(pi*i);
然后,正如其他人指出的那样,您想使用单个长时间向量:
t = linspace(a(1),a(end),1e3);
使用此代码将生成您想要的图形
a = [0,pi/2,pi/2,pi];
b = [0,-1,0,0];
plot(a,b)
hold on
n = 50;
T = [0,pi,0,1];
a0 = -.5;
t = linspace(a(1),a(end),1e3);
suma=0;
for i=1:n
bn = -(1/(pi^2*i^2))*sin(pi*i) + 1/(pi*i)*cos(pi*i);
an = -(1/pi)*sin(pi*i)/i + (2/(pi^2*i^2))*sin((pi*i)/2)^2;
suma = suma+(bn.*sin(2.*i.*t))+(an.*cos(2.*i.*t));
end
series = a0/2 + suma;
plot(t,series)
应该注意的是,由于此函数不平滑(存在跳跃不连续性),因此您会遇到吉布斯现象,并且会在不连续性附近看到尖峰。