60 Views
2018 Apr 02Training
img

در این آموزش قصد دارم نحوه حل عددی معادلات دیفرانسیل معمولی (ODE) رو توضیح بدم. به طور کلی این توضیحات به سه بخش تقسیم میشن:

بخش اول: آشنایی با روش های حل عددی و پیاده سازی آن ها به طور دستی

بخش دوم: پیاده سازی این روش ها به کمک کد نویسی در نرم افزار MATLAB و

بخش سوم:  استفاده از توابع آماده نرم افزار MATLAB برای حل معادلات دیفرانسیل معمولی


بخش اول: آشنایی با روش های حل عددی و پیاده سازی آن ها به طور دستی

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

معادله دیفرانسیل زیر رو در نظر بگیرید:


اگه از تعریف مشتق استفاده کنیم، می تونیم بنویسیم:

حالا اگه این تعریف رو در معادله اصلی قرار بدیم، داریم:


 در این مرحله فقط کافیه معادله بالا رو برای مقدار تابع در لحظه بعد، حل کنیم:


بنابراین الان می تونیم از روی مقدار تابع در لحظه صفر (شرط اولیه)، مقدار آن را در لحظه بعد (گام زمانی بعد) به دست بیاریم:


با تکرار این روند می تونیم، مقدار تابع رو در گام های بعدی هم پیدا کرد. مثلا:


روشی که در اینجا مطرح شد، روش اویلر (Euler method) هست. همان طور که قبلا هم گفتم، این روش ساده ترین و کم دقت ترین روش برای حل معادلات دیفرانسیل هست. اما به شکل ساده ای می تونه ایده اصلی حل عددی رو توضیح بده.