پدیده گیبس – Mathematica

قبل از اینکه این برنامه رو ببینید اول برید برنامه ای که برای سری فوریه گزاشتمو ببینید ، چون پدیده ی گیبس حالت خاصی از سری فوریه هست .

تو سری فوریه متوجه شدیم که اگر بخایم یه تابع رو برحسب مجموعه ای از توابع سینوس و کسینوس بسط بدیم تا شکل موجگونه پیدا کنه ، از سری فوریه استفاده می‌کنیم . سری فوریه یکی از قوی ترین مباحث ریاضی هستش که به قول خودمون مو لا درزش نمیره ، اما خواهید دید که این تبدیلات هم دارای کاستی هست !

سری فوریه برای تمام توابع به خوبی و بدون خطا جواب میده و همون طور که تو برنامه ای که برای سری فوریه گزاشتم میبینید اگر مقدار n رو به اندازه ی کافی بالا ببرید شکل تابع اصلی و شکل سری فوریه اون ، کاملاً روی هم منطبق میشن . اما اگر تابع شما دارای این خواص باشه سری فوریه دچار خطا میشه :

هموار ، دوره ای ، پیوسته و تکه ای

حالا اینا یعنی چی ؟؟ ؛ بیاد با مثال ببینیم این توابع چه جورین ؛ توابع دندان اَره ای ، یا تابع موج مربعی از این دسته توابع‌ان .

تابع موج مربعی و تابع دندان اره ای

اتفاقی که برای سری فوریه ی این توابع میوفته اینه که در نقاط ناپیوستگی این نوع توابع ، سری فوریه ی اونها دارای یک مقدار اضافه میشه که به این مقدار اضافه "جهش" میگن در اصطلاح و حتی با افزایش n هم این مقدار اضافه از بین نمیره .

همون طور که تو برنامه میبینید ، مثلاً برای موج مربعی در نقاطی که عدد صحیح هستند شکل بسط فوریه ی تابه دارای یک بالا رفتگی یا پایین رفتگی هستش .

تابع موج مربعی و تابع دندان اره ای

این باعث این میشه که سری فوریه مقدار واقعی تابع رو نده و ایجاد خطا بکنه . این کاستی سری فوریه تو مخابرات و الکترونیک خیلی خوب شناخته شده هستش و برای از بین بردن اثرات اون تا اونجایی که من میدونم از خازن های ته چین و سر چین (صافی خازنی) استفاده میکنن .

خب بریم سراغ برنامه نویسی این پدیده ی جالب ؛ همون طور که گفتم شما اول باید به برنامه ای که برای سری فوریه گزاشتم تسلط پیدا کنید ، چون این برنامه یک حالت خاصی از همون برنامه هست ، با این تفاوت که چون ما میدونیم با چه تابعی سروکار داریم از قبل  a[n] و b[n] رو حساب میکنیم ، مثلا برای تابع موج مربعی چون این تابع فرد هست ، a[n]= 0 و b[n] هم از قبل محاسبه شده که تو برنامه میتونید مقدارشو ببینید .

تو برنامه ی مربوط به تابع موج مربعی معنای مقدار عبارت b[n_] این هست : اگر مقدار n زوج بود مقدار عبارت رو صفر بده ، در غیر این صورت مقدار عبارت رو 4/(n Pi) بده و محاسبه کن . دلیلشم گفتم چرا از این عبارت استفاده کردم ، چون از قبل مقدار b[n] رو جای دیگه محاسبه کرده بودم و دیدم که عبارت بدست اومده این شرایطی که گفتمو داره و به زوج یا فرد بودن n بستگی داره . برای موج دندان اره ای هم همین طور .

توضیح بیشتری فکر نکنم نیاز باشه چون مسائل مهم و اصل کاری تو برنامه مربوط به سری فوریه گفته شده ؛ تنها چیزی که تو این پدیده (گیبس) مهمه اینه که وقتی تابع شرایطی رو که گفتم داشته باشه ، بسط فوریه ی اون مقداری ناصحیح رو میده که شما میتونید این رو تو برنامه به شکل مصور ببنید .

نکته ی دیگه اینکه این مقدار جهش به سادگی قابل اندازه گیریه و تقریباً برابر 18درصد مقدار تابع در نقطه ی ناپیوستگیه . بعدها برنامه ای برای اندازه گیری این مقدار هم براتون میزارم .

البته اجرای بعضی از دستورات این برنامه به دلیل محاسبات سنگین کمی طول میکشه که پیشاپیش صبر ایوب رو براتون آرزو میکنم .

راستی ، از متمتیکا 6 یا 7 برای اجرای برنامه ها استفاده کنید .

/ 1 نظر / 241 بازدید
علیرضا

سلام. خواستم بنویسم ممنون از وقتی که گذاشتید . اما دیدم بیام کامنت طولانی تر بنویسم شاید برای شما جذاب تر باشه. واقعیتش من هم وبلاگ آموزشی شبکه دارم که مثل شما به صورت رایگان مطالب رو در اختیار بچه ها قرار میدم و می دونم چه وقت و زحمتی از شما بیان این مطالب گرفته. از نیت پاکتون تشکر می کنم و مطمئنم این نیت پاک در باقی عرصه های زندگی اثرش رو میگذاره. موفق باشید.