资源预览内容
亲,该文档总共2页全部预览完了,如果喜欢就下载吧!
资源描述
1方波的傅立叶级数逼近方波的傅立叶级数逼近 Matlab 程序1fseries.m该函数是一个自定义的傅里叶级数展开函数,意义如下:A,B,y=fseries(f,x,n,a,b)f 为待展开函数,x 为自变量n 为展开项数a,b为展开区间,省略则为A,B 为傅里叶系数y 为返回的展开式程序如下:function A,B,F=fseries(f,x,n,a,b)if nargin=3, a=-pi; b=pi; end %若输入为 3 个参数表示 f(x)在-pi,pi内展开2L=(b-a)/2; A=int(f,x,-L,L)/L; %f(x)在-L,L内积分B=; F=A/2;for i=1:nan=int(f*cos(i*pi*x/L),x,-L,L)/L; %积分求系数 anbn=int(f*sin(i*pi*x/L),x,-L,L)/L; %积分求系数 bnA=A,an; %记录所有 anB=B,bn; %记录所有 bnF=F+an*cos(i*pi*x/L)+bn*sin(i*pi*x/L); %得到 n 阶傅里叶展开式end2实现函数 fourier.msyms x;f=abs(x)/x; %给出待展开函数xx=-pi:pi/200:pi; %给出所有要作图的点xx=xx(xx=0); %去掉为 0 的点yy=subs(f,x,xx); %计算 f(x)的值plot(xx,yy); %作 f(x)图hold on n=7; %给出展开的阶数a,b,f1=fseries(f,x,n);% 求 n 阶展开 y1=subs(f1,x,xx); %计算 n 阶展开在各点的函数值plot(xx,y1); %作图
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号