حتما می دانید که سری فوریه هر تابع، تقریبی از آن تابع است.هرچه چملات سری بیشتر باشد مقدار سری به مقدار واقعی تابع نزدیک تر است.
یکی از راه های بدست آوردن سری فوریه یک تابع استفاده از دستور fit است.این دستور توانایی محاسبه سری فوریه با حداکثر 8 جمله را دارد.
x=[-pi:.1:pi]';
y=sin(x);
f=fit(x,y,'fourier1')
به جای fourier1 می توان fourier2...fourier8 را قرار داد.
توابع زیر هم نیاز معرفی ندارند/
تابع گاما
Y = gamma(A)
تابع خطا
Y = erf(X)
سری فوریه
سری فوریه
فرض کنید تابع f به صورت زیر تعریف شده یاشد.

تابع f یک تابع تناوبی با دوره 2L می باشد و ثابتهای بسط فوریه این تابع از روایط زیر بدست می آیند



برای محاسبه این ثوابت از دستور int استفاده می کنیم
R = int(S)
R = int(S,v)
R = int(S,a,b)
R = int(S,v,a,b)
استفاده از این دستور ببسیار ساده است.S عبارتی است که می خواهیم از آن انتگرال بگیریم، v متغیر مستقل است و a,b حدود انتگرال گیری هستند
اولین قدم برای استفاده از این دستور تعریف متغیرهاست
syms w A t n
و بعد از آن محاسبه ثوابت
a0= w/pi*int('A*sin(w*t)','t',0,pi/w)
an=w/pi*int('A*sin(w*t)*cos(n*w*t)','t',0,pi/w)
bn=w/pi*int('A*sin(w*t)*sin(n*w*t)','t',0,pi/w)
قدم بعدی یافتن مقدار ثوابت در n های مختلف است.برای این کار از دستور subs استفاده می کنیم
subs(bn,n,3)
دستور بالا مقدار bn را به ازای n=3 محاسبه می کند
مقدار an را در n=1 مبهم است چون صورت و مخرج an صفر می شود .با استفاده از دستور limit حد این عبارت را در n=1 می توان بدست آورد.
limit(an,n,1,'right')
limit(an,n,1,'left')
برچسبها: محاسبه سری فوریه به صورت عددی, symbolic, متلب, MATLAB
قبلا درمورد محاسبه سری فوریه به کمک جعبه ابزار تحلیلی (symbolic) توضیحاتی را داده بودم،امروز نحوه محاسبه سری فوریه به صورت عددی را توضیح میدهم.
سری فوریه به شکلهای گوناگون قابل تعریف است، برای راحتی کار فرم ساده زیر را در بازهی 0< t < 1 را در نظر بگیرید

و ضرایب سری فوریه را می توان به این صورت تعریف کرد

اگر در این قسمت مشکلی دارید به کتابهای ریاضی مهندسی مراجعه کنید.
فرض کنید

برای محاسبهی سری فوریه تنها باید ضرایب آن را حساب کرد، برای محاسبه هرکدام از ضرایب یابدهرکدام از انتگرالهای فوق را حساب کنیم. برای نمونه من مقدار an را حساب می کنم
functiony = anfunc(t)
y = 2*sin(2*pi*t).*sin(2*n*pi*t);
همانطور می دانید هرکدام از این ضرایب یک دنباله از اعدادهستند و با توجه به مقدار n مقدار آنها تغییر می کند. برای محاسبهی تغییرات anfuncبا n 2 راه وجود دارد (مبحث مربوط به ParameterizingFunctions Called by Function Functions را در راهنمای متلبمطالعه کنید). من از تابع تودرتو (nested function) استفاده میکنم.
functionmyfunc
forn = 1:10
an(n) = quad(@anfunc,0,1);
end
an
function y = anfunc(t)
y = 2*sin(2*pi*t).*sin(2*n*pi*t);
end
end
در ادامهکافی است که ابتدا دیگر ضرایب را حساب کردهو سپس مقدار سری را از جمع کردن آنها محاسبه کنیم.
برچسبها: محاسبه سری فوریه به صورت عددی, symbolic, متلب, MATLAB
