本帖由Matlab技術論壇原創(chuàng),原帖參見 http://www.matlabsky.com/thread-249-1-3.html
MATLAB和maple語言均未直接提供求解fourier級數(shù)的系數(shù)的直接函數(shù),好我們自己動手豐衣足食,下面提供了一個代碼,大家可以參照下給個例子說明下:將函數(shù)y=x*(x-pi)*(x-2*pi),在(0,2*pi)的范圍內(nèi)傅里葉級數(shù)展開syms x
fx=x*(x-pi)*(x-2*pi);
[an,bn,f]=fseries(fx,x,12,0,2*pi)%前12項展開
![[轉載]【原創(chuàng)】傅里葉級數(shù)(fourierseries)展開的Matlab實現(xiàn) 二重傅里葉級數(shù)展開](http://img.aihuau.com/images/02111102/02122939t01fb9386d52aecab24.png)
latex(f)%將f轉換成latex代碼
an =
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
bn =
[ -12,3/2,-4/9,3/16,-12/125,1/18,-12/343, 3/128,-4/243, 3/250, -12/1331, 1/144]
f =
12*sin(x)+3/2*sin(2*x)+4/9*sin(3*x)+3/16*sin(4*x)+12/125*sin(5*x)+1/18*sin(6*x)+12/343*sin(7*x)+3/128*sin(8*x)+4/243*sin(9*x)+3/250*sin(10*x)+12/1331*sin(11*x)+1/144*sin(12*x)
ans =
12,sin left( x right) +3/2,sin left( 2,x right) +4/9,sinleft( 3,x right) +3/16,sin left( 4,x right) +{frac{12}{125}},sin left( 5,x right) +1/18,sin left( 6,xright) +{frac {12}{343}},sin left( 7,x right) +{frac{3}{128}},sin left( 8,x right) +{frac {4}{243}},sin left(9,x right) +{frac {3}{250}},sin left( 10,x right) +{frac{12}{1331}},sin left( 11,x right) +{frac {1}{144}},sinleft( 12,x right)
function [an,bn,f]=fseries(fx,x,n,a,b)
%傅里葉級數(shù)展開
%
%an為fourier余弦項系數(shù)
%bn為fourier正弦項系數(shù)
%f為展開表達式
%f為給定函數(shù)
%x為自變量
%n為展開系數(shù)
%a,b為x的區(qū)間,默認為[-pi,pi]
%
% by dynamic of Matlab技術論壇
% see also http://www.matlabsky.com
% contact me matlabsky@gmail.com
% 2009-08-27 10:37:25if nargin==3
a=-pi;
b=pi;
end
l=(b-a)/2;
if a+b
fx=subs(fx,x,x+l+a);
end
an=int(fx,x,-l,l)/l;
bn=[];
f=an/2;
for ii=1:n
ann=int(fx*cos(ii*pi*x/l),x,-l,l)/l;
bnn=int(fx*sin(ii*pi*x/l),x,-l,l)/l;
an=[an,ann];
bn=[bn,bnn];
f=f+ann*cos(ii*pi*x/l)+bnn*sin(ii*pi*x/l);
end
if a+b
f=subs(f,x,x-l-a);
end
disp('MatlabSky--打造最優(yōu)、專業(yè)和權威的Matlab技術交流平臺!更多信息參見:<ahref="matlab:web http://www.matlabsky.cn">http://www.matlabsky.cn</a>')
愛華網(wǎng)


