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
仅供参考哦~
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
仅供参考哦~
相关文章推荐
- android 代码实现控件之间的间距
- [Android]在代码里运行另一个程序的方法
- 网页恶意代码的预防
- 高手写的Tracer-Flash代码调试类代码下载
- CSS代码缩写技巧
- 非主流Q-zOne代码代码搜集第1/2页
- 修复mysql数据库
- CreateWeb.vbs 代码
- 更有效率的css代码编写第1/3页
- SQL语言查询基础:连接查询 联合查询 代码
- 论坛头像随机变换代码
- 桌面中心(一)创建数据库
- 解析在main函数之前调用函数以及对设计的作用详解
- .NET 常用功能和代码小结
- javascript 面向对象编程 function是方法(函数)
- javascript 面向对象编程 function也是类
- asp编程中常用的javascript辅助代码第1/2页
- IIS下PHP连接数据库提示mysql undefined function mysql_connect()
- C#超实用代码段合集
- IE 当eval遇上function的处理