ebook archive
Login Form
آمار کلی
بازدیدکنندگان : 1494616Who's Online
ما 32 مهمان و 3 عضو آنلاین داریمآخرين ارسالهاي تالار
-
- حرکت یک شی بر روی یک منحنی
- 1 ساعت, 47 دقيقه پيش
-
- مقایسه چند برنامه در متلب
- 10 ساعت, 7 دقيقه پيش
-
- چگونگی ساخت فایل exe در متلب
- 12 ساعت, 16 دقيقه پيش
-
- دستور مطلب
- 13 ساعت, 12 دقيقه پيش
-
- سوال: حاصل معادله Ax2+Bx+C با استفاده از متلب
- 13 ساعت, 15 دقيقه پيش
| معادلات دیفرانسیل معمولی – کار با ode |
|
|
|
| نوشته شده توسط saeed | ||||||||||||||||||||||||||||||||||||||||
| پنجشنبه, 05 فروردین 1389 ساعت 08:38 | ||||||||||||||||||||||||||||||||||||||||
|
توابع ODE در متلب بمنظور حل معادلات دیفرانسیل معمولی با شرایط اولیه تدارک دیده شده اند ویژگی که برای آنها در راهنمای متلب ذکر شده است، Solve initial value problems for ordinary differential equations بسته به نوع اصطلاحا سخت (stiff) و غیر سخت (Nonstiff) معادلات و نیز اهمیت دقت، odeهای متفاوتی بکار می روند. اصطلاح سخت (stiff) برای آندسته از معادلاتی بکار می رود که برای مثال در مقابل متغیر مستقلی همچون t چند متغیر وابسته همچون x وy و ... وجود دارد بگونه ای که اندازه مشتقات متغیرهای وابسته نسبت به متغیر مستقل بطور قابل ملاحظه ای متفاوت است در غیر اینصورت معادله غیرسخت (Nonstiff) نامیده می شود. برای توضیحات بیشتر در مورد ode ها باید به راهنمای متلب مراجعه نمایید. متلب نوع و محل بکارگیر آنها را در جدول زیر خلاصه کرده است.
می خواهیم در اینجا به ode45 بپردازیم که برای معادلات غیر سخت تدارک دیده شده و اساس آن روش رانگ کوتاست. برای آموزش نحوه استفاده از ode45 نوسانگر واندرپل تحت نیروی واداشته را در نظر می گیریم که معادله دیفرانسیل آن بصورت زیر نوشته می شود:
http://en.wikipedia.org/wiki/Van_der_Pol_oscillator http://mathworld.wolfram.com/vanderPolEquation.html
گام اول- بازنویسی مسئله بشکل مجموعه ای از معادلات مرتبه یک. در مورد نوسانگر واندرپل با تغییر متغیر y1'=y2 دو معادله دیفرانسیل مرتبه یک حاصل میشود،
گام دوم- کد نمودن ODE های مرتبه یک، پس از بازنویسی معادلات مطابق گام اول باید ان معادلات را برای بکارگیری ode45 کد نماییم. تابع باید بشکل زیر باشد،
دقت کنید که تابع حتما باید دو آرگومان یکی مربوط به متغیر مستقل (در اینجا t) و دیگری مربوط به متغیرهای وابسته (در اینجا y) داشته باشد حتی اگر هیچکدام در تابع های مرتبه یک ظاهر نشوند. کد زیر سیستم واندپل را تحت عنوان تابع vdp1 نشان میدهد. y(1) و y(2) ورودی های بردار دوعنصری y هستند.
گام سوم- استفاده از یک حل کننده (solver) برای مسئله، همانگونه که گفته شد میخواهیم از ode45 استفاده نماییم. تابع ode45 سه ورودی یا آرگومان دارد. اولین آرگومان تابعی است که آنرا گام دوم خلق کردیم، دومین آرگومان بازه مربوط به متغیر مستقل است که در مورد مسئله ما همان بازه زمانی t است و نهایتا آرگومان سوم بردار شرایط اولیه است. در این مثال بازه زمانی [0 100] و مقادیر اولیه y(1)=1.2 و y(2)=0 را مطابق زیر در ode45 قرار می دهیم،
در این مثال برای پذرفتن vdp1 بعنوان یک تابع ا @ استفاده شده است. خروجی ode45 برداری از زمان t و ماتریس پاسخ y اس. هر سر y مطابق با زمانیست که توسط سطر متناظر در t معرفی میشود. نخستین ستون y متناظر با y(1) و ستون دوم آن متناظر با y(2) است. گام چهارم- مشاهده خروجی، اینکار را براحتی با استفاده از plot می توان انجام داد.
با این توضیحات برنامه vdp1 با فرم نهایی و ساده زیر نوسانگر واندپل را در فضای فاز شبیه سازی میکند.
نظر ها (13)
Powered by !JoomlaComment 4.0 beta2
|
||||||||||||||||||||||||||||||||||||||||
| آخرین بروز رسانی در جمعه, 10 اردیبهشت 1389 ساعت 04:06 |









