您的位置:首页 > 编程语言 > MATLAB

Matlab中的傅里叶级数展开函数

2014-03-23 14:22 155 查看
今天在用Matlab(2012b)计算的时候发现其中的函数库没有直接提供傅里叶级数展开的函数,就自己搞了一个

function [A,B,F]=fseries(f,x,n,a,b)
%用于求解函数的傅里叶级数展开
if nargin==3, a=-pi; b=pi; end
L=(b-a)/2;
if a+b, f=subs(f,x,x-L-a); end %变量区域互换
A=int(f,x,-L,L)/L; B=[]; F=A/2; %计算a0
for i=1:n
an=int(f*cos(i*pi*x/L),x,-L,L)/L;
bn=int(f*sin(i*pi*x/L),x,-L,L)/L;
A=[A, an];
B=[B, bn];
F=F+an*cos(i*pi*x/L)+bn*sin(i*pi*x/L);
end
if a+b, F=subs(F,x,x+L+a); end %换回变量区域
end

仅供参考哦~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息