ebook archive
Login Form
آمار کلی
بازدیدکنندگان : 2083921Who's Online
ما 43 مهمان آنلاین داریمآخرين ارسالهاي تالار
-
- انتگرال گیری
- 2 ساعت, 15 دقيقه پيش
-
- کوچک و بزرگ نمودن GUI
- 3 ساعت, 2 دقيقه پيش
-
- فراخوانی مجدد GUI
- 3 ساعت, 13 دقيقه پيش
-
- کمک برای نوشتن برنامه فرمول (خیلی فوری)
- 3 ساعت, 29 دقيقه پيش
-
- مشکل در نصب متلب
- 9 ساعت, 30 دقيقه پيش
| معادلات دیفرانسیل معمولی – مسایل مقدار اولیه |
|
|
|
| نوشته شده توسط saeed | |||||||||
| جمعه, 21 اسفند 1388 ساعت 04:28 | |||||||||
|
معادلات دیفرانسیل معمولی – مسایل مقدار اولیه Ordinary Differential Equation - initial value problems (IVPs) با سلام خدمت تمامی دوستان بخصوص دانشجویان فیزیک. قصد دارم بتدریج به یکسری از مسایل برنامه نویسی عمومی در زمینه فیزیک که غالبا با آن سرو کار داریم بپردازم. اولین گام ( به شرطی که با مقدمات برنامه نویسی در Matlab خصوصا کار با توابع، ماتریسها آشنا باشید) میتواند حل معادلات دیفرانسیل معمولی باشد. معادلات دیفرانسیل معمولی به آندسته از معادلات دیفرانسیل اطلاق می شود که تمامی متغیرهای وابسته ( بعنوان مثال x، y و z ) تنها تابعی از یک متغیر مستقل (برای مثال t) می باشند. مثال آشنا در این مورد میتواند معادله نوسانگر هارمونیک باشد که در آن مکان نوسانگر تنها تابعی از زمان است. در مقابل معادله دیفرانسیل معمولی معادلات دیفرانسیل جزیی قرار می گیرند که نمونه بسیار آشنای آن معادله شرودینگر است که در آن تابع موج (متغیر وابسته) تابعی از مختصات مکانی و زمان (یعنی متغیرهای مستقل ) می باشد. ابتدا به حل مسایل مقدار اولیه (IVP) با معرفی سه روش اویلر (Euler’s method)، رانگ کوتا (Runge–Kutta method) و تابع آماده در متلب بانام ode45 می پردازیم. 1- روش اویلر این ساده ترین روش است. با استفاده از تقریب مشتق عددی پیشرو الگوریتم تکرار بسادگی بدست می آید :
که در آن h طول گام است. کافست با توجه به معادله دیفرانسیل تابع f(x,t) مشخص گردد و در رابطه تکرار بالا جایگذاری شود. مثال ساده زیر را در نظر بگیرید. dy/dt+5y=6 , y(t=0)=2 با توجه به معادله بالا خواهیم داشت : f(x,t)=dy/dt=6-5y بنابراین رابطه تکرار بصورت زیر خواهد بود،
نهایتا برنامه کوتاه زیر را میتوان نوشت :
باید توجه داشته باشیم که هر سه روش بکار گرفته در حل مسایل مقدار اولیه مبتنی بر حل معادله دیفرانسیل مرتبه یک می باشند در حالیکه بسیاری از معادلات دیفرانسیل مهم در فیزیک مرتبه دو هستند. در چنین مواردی با استفاده از تغییر متغیر هر معادله دیفرانسیل مرتبه دو به دو معادله دیفرانسیل مرتبه یک شکافته می شود و هر کدام از این دو معادله بصورت جداگانه با توجه به شرایط اولیه با استفاده از روش اویلر حل میشود. بعنان مثال :
نوسانگر هارمونک ساده با این توضیحات میتوانیم به حل یک مسئله استاندارد یعنی معادله حرکت نوسانگر هارمونیک بپردازیم. جسمی با جرم معین متصل به فنر تحت تاثیر نیروی بازگردانده در یک بعد حرکت نوسانی انجام می دهد با صرفنظر از نیروهای اتلافی (این مورد در روش رانگ کوتا بررسی می شود) معادله حرکت بشکل زیر است :
با تغییر متغیر v=dx/dt جفت روابط زیر خواهیم داشت،
و بنابراین روابط تکرار مطابق مثال قبلی بدست می آیند،
اگر فرض کنیم که نوسانگر در لحظه t=0 بیشترین فاصله از نقطه تعادل را دارد می توانیم شرایط اولیه زیر را در نظر بگیریم،
برنامه زیر (Oscilator1) معادله نوسانگر هارمونیک ساده را به روش اویلر حل می کند. نمودارها x و v برحسب زمان رسم میشوند و در پایان حرکت واقعی نوسانگر نیز بصورت انیمیشن نمایش داده میشود.
در مقابل سادگی روش اویلر خطای آن نسبت به سایر روشها بیشتر است ( از مرتبه 2). در بخش بعدی می خواهم به روش رانگ کوتا ی مرتبه چهار بپردازم (خطا از مرتبه 4) که بسیار دقیقتر از روش اویلر است.
نظر ها (21)
Powered by !JoomlaComment 4.0 beta2
|
|||||||||
| آخرین بروز رسانی در پنجشنبه, 04 آذر 1389 ساعت 14:43 |












