تبلیغات
آموزش مطلب - مطالب حل عددی IVP

معادلات با درجه بالاتر

نویسنده :امین باشی
تاریخ:چهارشنبه 1 شهریور 1385-11:08 ق.ظ

حل عددی معادلات دیفرانسیل با درجات بالاتر از یک

 حتما می دانید که هر معادله دیفرانسیل با درجه n  را می شود به n  معادله درجه اول تبدیل کرد.از این روش برای حل معادلات با درجه بالاتر از یک استفاده می شود.

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

برای حل تحلیلی این معادله کافی است بنویسیم

f=dsolve('D2y =(y-6*Dy)/t/4','y(1)=2','y(2)=3');

 ezplot(f,[1 , 10]);

و اما حل عددی :

فرض کنید

 

در نتیجه خواهیم داشت

 

 

و اگر آن را به شکل ماتریس بنویسیم

حالا باید تابع odefun را بنوسیم

function dy=odefun(t,y)
A = [0 1;1/t/4 -6/t/4];
dy = A*y;

و در خط فرمان مطلب دستور زیر را

[t,y]=ode45('odefun',[1 ,10],[2;3]);

متغییر y دو ستون دارد که ستون اول به y1 و ستون دوم یه y2 اختصاص دارد که y1 جواب معادله و y2 مشتق آن است.

 

 



نوع مطلب : حل عددی IVP 

حل عددی IVP

نویسنده :امین باشی
تاریخ:دوشنبه 30 مرداد 1385-03:08 ق.ظ

حل عددی معادلات دیفرانسیل معمولی (IVP)

روشهای زیادی برای حل عددی معادلات دیفرانسیل وجود دارد که هر کدام از این روشها برای نوعی از معادلات کاربرد دارد در مطلب نیز توابع متفاوتی بر اساس این روشها وجود دارد برای مثال 0de45 بر اساس روش رانگ کوتا عمل می کند.

[t,Y] = solver(odefun,tspan,y0)

فرم کلی حل عددی معادلات دیفرانسیل به این صورت است که به جای solver در دستور بالا نوع ode (برای مثال ode45) مورد نظر باید ذکر شود.

منظور از odefun تابعی است که در آن مادلات دیفرانسیل مورئ نظر تعریف شده است و به شکل  زیر است. t متغیر مستقل  اسکالر  و y متغیر وابسته به صورت بردار ستونی  است.

dydt = odefun(t,y)

منظور از tspan بازه ای است که معادله در آن حل می شود و y0 شرایط اولیه است.

مثال)

کنترل سطح مایع در یک مخزن  یک مثال کلاسیک  است که در اکثر کتابهای کنترل دیده می شود.

معادله دیفرانسیل این فرآیند به این صورت است .

 

 

q دبی حجمی، h ارتفاع، A سطح مقطع و R مقاومت شیر خروجی مخزن است.

برای حل این معادله ابتدا تابع odefun را تشکیل می دهیم.

فرض کنید A=1, R=1 و تغییرات دبی ورودی به صورت سینوسی باشد.

function dy=testode(t,y)
dy=sin(t)-y;

پس از ذخیره کردن نابع ، در خط فرمان مطلب دستور زیر را می نوسییم :

[t,y]=ode45('testode',[0 ,10],0); 



نوع مطلب : حل عددی IVP 





All right reserved©2005 Amin Bashi