matlab 怎么进行傅里叶级数展开?请问这个函数是怎么进行傅里叶级数展开的?syms x;f=(x-abs(x))/2;xx=-pi:.01:pi;yy=subs(f,x,xx);plot(xx,yy,'-'),hold onfor n=4:4:20 [a,b,f1]=f_series(f,x,n); y1=subs(f1,x,xx); pl
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 05:08:47
![matlab 怎么进行傅里叶级数展开?请问这个函数是怎么进行傅里叶级数展开的?syms x;f=(x-abs(x))/2;xx=-pi:.01:pi;yy=subs(f,x,xx);plot(xx,yy,'-'),hold onfor n=4:4:20 [a,b,f1]=f_series(f,x,n); y1=subs(f1,x,xx); pl](/uploads/image/z/8565982-70-2.jpg?t=matlab+%E6%80%8E%E4%B9%88%E8%BF%9B%E8%A1%8C%E5%82%85%E9%87%8C%E5%8F%B6%E7%BA%A7%E6%95%B0%E5%B1%95%E5%BC%80%3F%E8%AF%B7%E9%97%AE%E8%BF%99%E4%B8%AA%E5%87%BD%E6%95%B0%E6%98%AF%E6%80%8E%E4%B9%88%E8%BF%9B%E8%A1%8C%E5%82%85%E9%87%8C%E5%8F%B6%E7%BA%A7%E6%95%B0%E5%B1%95%E5%BC%80%E7%9A%84%3Fsyms+x%3Bf%3D%28x-abs%28x%29%29%2F2%3Bxx%3D-pi%3A.01%3Api%3Byy%3Dsubs%28f%2Cx%2Cxx%29%3Bplot%28xx%2Cyy%2C%26%2339%3B-%26%2339%3B%29%2Chold+onfor+n%3D4%3A4%3A20++++%5Ba%2Cb%2Cf1%5D%3Df_series%28f%2Cx%2Cn%29%3B++++y1%3Dsubs%28f1%2Cx%2Cxx%29%3B++++pl)
matlab 怎么进行傅里叶级数展开?请问这个函数是怎么进行傅里叶级数展开的?syms x;f=(x-abs(x))/2;xx=-pi:.01:pi;yy=subs(f,x,xx);plot(xx,yy,'-'),hold onfor n=4:4:20 [a,b,f1]=f_series(f,x,n); y1=subs(f1,x,xx); pl
matlab 怎么进行傅里叶级数展开?
请问这个函数是怎么进行傅里叶级数展开的?
syms x;
f=(x-abs(x))/2;
xx=-pi:.01:pi;
yy=subs(f,x,xx);
plot(xx,yy,'-'),hold on
for n=4:4:20
[a,b,f1]=f_series(f,x,n);
y1=subs(f1,x,xx);
plot(xx,y1,'-.');
if n= =8
f1
end
end
这个程序又为什么运行不出来?
matlab 怎么进行傅里叶级数展开?请问这个函数是怎么进行傅里叶级数展开的?syms x;f=(x-abs(x))/2;xx=-pi:.01:pi;yy=subs(f,x,xx);plot(xx,yy,'-'),hold onfor n=4:4:20 [a,b,f1]=f_series(f,x,n); y1=subs(f1,x,xx); pl
你上面的程序,f_series函数是否有定义?若无定义,或定义不准确都有可能出错
将傅里叶系数的计算(输出a0,an,bn)以及函数图像的绘制编到m文件中
function [a0,an,bn]=fly(f,l,k)
%f为一个周期内的分段函数(分两段,对分两段以上的函数可类似处理)
%2l为周期
%k为近似展开项数,k≥1
%计算傅里叶系数
syms x n L
a0=1/L*int(f(1),-L,0)+1/L*int(f(2),0,L);
an=1/L*int(f(1)*cos(n*pi*x/L),-L,0)+1/L*int(f(2)*cos(n*pi*x/L),0,L);
bn=1/L*int(f(1)*sin(n*pi*x/L),-L,0)+1/L*int(f(2)*sin(n*pi*x/L),0,L);
%选择作图步长p
if k>=4
p=fix(k/4);
else
p=1;
end
%绘制4个近似子图
for i=1:4
f=a0/2+symsum(an*cos(n*pi*x/L)+bn*sin(n*pi*x/L),n,1,i*p);
f=subs(f,L,l);
subplot(2,2,i),ezplot(f,[-3*l,3*l]),title(['n=',int2str(i*p)])
end
输入:
f=sym('[x,0]');
[a0,an,bn]=fly(f,pi,32)
输出:
a0 =
-1/2*L
an =
-L*(cos(n*pi)+sin(n*pi)*n*pi-1)/n^2/pi^2
bn =
-L*(-sin(n*pi)+cos(n*pi)*n*pi)/n^2/pi^2
显然以上结果并未化简(例如,sin(n*pi)=0)
有了傅里叶系数,利用公式f(x)=a0/2+∑{1,∞}[an*cos(n*pi*x/L)+bn*sin(n*pi*x/L)],即得到展开式
输出图像: