حل معادلات دیفرانسیل در مطلب

معادلات ديفرانسيل

 

مقدمه :

دراين فصل به حل عددي معادلات ديفرانسيل در مطلب خواهيم پرداخت ، و شامل موارد زير ميباشد ، حل معادلات ديفرانسيل با شرايط اوليه براي معادلات ديفرايسيل( ODEs) ومعادلات ديفرانسيل جبري( DAEs  ) و حل معادلات ديفرايسيل تعلل ( DDEs ) كه در آن شرايط اوليه از پارامترهاي وابسته گرفته شده و بايستي در معادله حاصله صدق نمايند ، حل معادلات ديفرانيسيل باشرايط مرزي ( ODEs ) ، حل معادلات ديفرانيسل با مشتقات جزئي براي معادلات ديفرانسيل بيضيگون و هذلولوي (PDEs)  در متغيرهاي تابع زمان .

بيان جعبه ابزار حل معادلات ديفرانسيل (pdetool) كه پنجره گرافيكي مخصوص حل معادلات ديفرانسيل ميباشد كه در زير شكل اين پنجره را مشاهده ميكنيد :

 

با استفاده از اين جعبه ابزار شما قادريد مسائل سنگين معادلات ديفرانسيل را همراه با ترسيم ناحيه حل نمائيد .بدين صورت كه بسياري از انواع حالتهاي معادلات ديفرانسيل يصورت آماده دراين جعبه ابزار وجود دارد و شما كافيست فقط با وارد كردن شرايط مسئله و با فشار دادن كليد solve نتيجه را ببينيد

 

مسائل با شرايط اوليه براي ODEs و DAEs  :

در اين بخش نحوه حل مسائل با شرايط اوليه (IVPs )  براي معادلات ديفرانسيل معمولي و معادلات ديفرانسيل جبري  بيان خواهد شد ، آنچه كه در اين بخش مشاهده خواهيد كرد ، عبارت است از :

  • خلاصه اي از توابع حل كننده ODE  با مثال
  • معرفي ODEs و شرايط اوليه مسئله .
  • تشريح حل كننده هاي ODEs و اساس جملات آن .
  • آموزش عمومي براي درك IVP .
  • بيان چگونگي تغيير تنظيمات شرايط انتگرالگيري .
  • مثالهاي از انواع مسائل IVP كه شما بتوانيد حل كنيد و يا با آنها درگير هستيد .
  • پاسخ به تعدادي از سوالهاي تكراري و بيان راه حلهاي مشكل گشا .

 

خلاصه اي از توابع ODE  در مطلب:

 

توابع حل كننده يا Solver   در مطلب:

در جدول زير خلاصه اي از چند تابع حل كننده معادلات ديفرانسيل با شرايط اوليه آورده شده است كه شما با توجه به مسئله خود ميتوانيد هركدام را كه مايل بوديد برگزينيد :

 

حل كننده

         نمونه مسائلي كه ميتوان حل نمود

روش

Ode45

         معادلات ديفرانسيل راحت

رانگ كوتا

Ode23

         معادلات ديفرانسيل راحت

رانگ كوتا

Ode113

         معادلات ديفرانسيل راحت

آدامز

Ode15s

         معادلات ديفرانسيل دشوارو DAEs

روش NDFs(BDFs)

Ode23s

         معادلات ديفرانسيل دشوار

روزنبرگ

Ode23t

        معادلات ديفرانسيل نيمه دشوار و DAEs

قاعده ذوزنقه اي

Ode23tb

        معادلات ديفرانسيل دشوار

قاعده ذوزنقه اي – BDF2

ارزيابي حل ODE در مطلب :

اگر شما يكي از حل كننده هاي ODE را فراخواني نموده و يك آرگومان خروجي داشته باشيد شما ميتوانيد در هر بازه اي انتگرالگيري كه خواستيد تابع خود را ارزيابي نمائيد :

تابع

       توضيح

deval

       ارزيابي حل عددي بكار رفته براي خروجي حل كننده ODE

 

تنظيم دستي شرايط حل كننده ODE  در مطلب :

با بكارگيري توابعي كه در زير نمونه اي از آنرا مشاهده ميكنيد ميتوانيد نحوه شرايط تعريف شده براي حل كننده ها را به دلخواه خود تنظيم نمائيد :

تابع

    توضيح

odeset

    ايجاد تغييرات اختياري در وروديهاي حل كننده ها

odeget

    استخراج جزئيات ساختارهاي اختياري ايجاد شده در odeset

توابع خروجي حل كننده هاي ODE در مطلب :

اگر خروجي شما تحت شرايط خاصي است ، حل كننده شما ميتواند يكسري توابع خاصي را بعد از انجام موفقيت آميز انتگرالگيري فراخواني نمايد. البته شما با استفاده از تابع odeset  ميتوانيد جزئيات خروجي راتنظيم نمائيد .

تابع

   توضيح

odeplot

ترسيم سري  زماني

odephas2

ترسيمه دو بعدي

odephas3

ترسيمه سه بعدي

odeprint

چاپ در پنجره command

 مثالهاي از مسائل با مقادير اوليه ODE :

در اين مثالها نوع مسائلي كه ميتوانيد با مطلب حل كنيد توضيح داده ميشود ، كافيست نام مسئله را در صفحه command تابپ كنيد تا اجرا شود و اگر ميخواهيد خود برنامه را ببينيد در پنجره command عبارت odeexamples را تايپ كنيد .

مثال

توضيح

amp1dae

معادله سخت DAE -  جريان الكتريكي

ballode

پرتاب گلوله

batonode

ODE با زمان و حالت – وابسته به ماتريس جرم- حركت يك باتون

brussode

واكنش شيميائي نفوذ

burgersode

ODE با حالت وابسته به ماتريس جرم-حل معادلات حركت با مش بندي

fem1ode

مسئله مشكل با وابستگي زمان و ماتريس جرم- روش فاينايت المنت

fem2ode

مسئله مشكل با ماتريس جرم ثابت – روش فاينايت المنت

hb1dae

مسئله مشكل DAE

hb1ode

عكس العمل شيميائي روبرت استون

orbitode

مسئله محدود شده به سه جسم

rigidode

معادلات اولر براي حركت يك جسم صلب بدون نيروي خارجي

vdpode

حل معادله ديفرانيسل واندرپول

 

  • معرفي مسائل ODE با مقادير اوليه  در مطلب:

معادلات ديفرانسيل معمولي چه ميباشد :

حل كننده ODE براي حل معادلات ديفرانسيل معمولي طراحي شده است .و يك معادله ديفرانسيل معمولي از تعدادي از مشتقات وابسته y نسبت به يك پارامتر مستقل t  ميباشد ، مشتق اول را با y’ مشتق دوم با y” و ... نشان داده ميشود .اغلب y(t) برداريست شامل المانهاي  .

 

بكارگيري شرايط اوليه براي حل خاص معادله ديفرانسيل :

در حالت عمومي توابع بسياري از y(t) ميتوان يافت كه در رابطه معادله ديفرانسيل صدق نمايد ،بدين جهت براي شرايط خاص بايستي بتوانيم حل مورد نظر را بدست آوريم ،در مسائل با مقادير اوليه ، جواب معادله ديفرانسيل بايستي در شرايط اوليه اعمال شده نيز صدق نمايد ، در لحظه اول)( ما رفتار تابع يا مقدار آنرا)( بدانيم ، شرايط اوليه به صورت زير بيان ميشود :

      y’=f(t,y)

      y(t)=y

در اين حالت اگر f تابعي پيوسته باشد فقط يك جواب منحصربه فرد خواهيم داشت . در حالت كلي چون حل دقيق براي تمامي توابع ممكن نيست و يا دشوار است لذا با استفاده از  روشهاي عدد تقريبي از جواب را بدست مياورند ، حل كنندههايODE براي اين منظور بكار ميروند .

 

كار با  درجات بالاتر ODEs  در مطلب:

حل كننده هاي ODE فقط براي معادلات ديفرانسيل با درجه يك بيان شده اند ولي اغلب معادلات ديفرانسيل ها داراي چندين متغير وابسته و درجه مشتقات بالاتر از يك ميباشند ؛ در اين حالت شمابايستي با استفاده از تكنيكهاي معادلات ديفرانسيل درجه بالاتر از يك را به درجه يك تبديل كنيد (y’=f(t,y) ) .

اين روش معروف به روش هاميلتون ميياشد و نحوه عملكرد آنرا مطابق تعريف زير مشاهده ميكنيد ، فرض كنيد ، معادله ديفرانسيلي از درجه n بصورت زير داشته باشيم :

 

حال دو معادله ديفرانسيل درجه اول داريم كه با توابعي كه بيان شده به راحتي قابل حل ميباشند .

 

حل كننده هاي مسائل با مقادير اوليه در matlab:

حل كننده هاي ODE از ابزار روشها و انتگرالگيري عددي براي حل IVPs براي ODEs استفاده ميكنند . آغاز زمان 

اوليه با شرايط اوليه گام زماني دربازه محاسباتي ، مشخص شده و حل براي  هركدام از اين گام زماني صورت ميگيرد. اگر حل براي هر گام زماني  خطاي محاسباتي اعمال ميگردد .به عبارت ديگر اين عمل توسط حل كننده براي تمامي فيلدها در طول گام اعمال ميگردد .

در اين بخش موارد زير شرح داده ميشود :

  • حل كننده ها براي مسائل ساده و مشكل ODE  .
  • اساس ساختار حل كننده هاي ODE .
  • آرگومانهاي حل كننده ODE  اضافي .
  • بيان ماتريس جرم و جزئيات DAE براي بسط به جهت حل مسائل كلي .

 

حل كننده ها براي مسائل غير سخت در matlab :

سه نوع حل كننده مسائل غير سخت در مطلب طراحي شده اند كه عبارتند از :

Ode45   :  اساس آن رابطه ضمني رانگ كوتا (4,5 ) ميباشد ، آن  اولين گام در محاسبه  ميباشد به عبارت  

                     ديگر تابع فوق براي سعي اول بسياري از توابع ، حل كننده خوبي است .

Ode23   :  بر اساس معادله ضمني رانگ كوتا (2,3) چفت شده با bogacki و shampine . آن سودمند تر

                   از ode45  ميباشد و همانند ode45 براي گام اول حل كننده خوبي است .

Ode113 : براساس روش آدامز ميباشد و ممكن است بسيار موثرتر از ode45 باشد و داراي تلرانس دقيقتري است .

 

حل كننده ها براي مسائل سخت  در matlab:

حل كننده هاي مسائل سخت دست همانند حل كننده هاي مسائل ساده ميتوانند بكار روند ، چهار حل كننده براي مسائل سخت عبارتند از :

ode15s  : روند حل بر اساس مشتقگيري عددي (NDFs  ) ميباشد ، در تنظيمات ميتوان بيان كرد كه از روش

                    backward differentaion   (BDFs )

 نيز استفاده نمايد ، و ميتواند از چندين گام در محاسبات  استفاده نمايد .

ode23s  : بر اساس تغيير يافته رابطه روزنبرگ از درجه خطاي دو ميباشد ، اين حل كننده قادر به حل تعدادي از      مسائل ميباشد كه ode15s  قادر به حل آنها نميباشد .

ode23t  :  براساس روش حل عددي ذوزنقه اي ( TR ) همراه با درونيابي كه به اختيار اعمال ميگردد،از اين حل كننده براي مسائل سختي كه نيازمند  نتايج فوق العاده دقيق استفاده نمائيد .

Ode23tb :  تركيبي از روشهاي عددي TR-BDF2  و رانگ كوتا  را بكار ميبرد .

 

قسمتهاي اساسي حل كننده ODE  در matlab:

تمامي حل كننده هاي ODE طوري طرح ريزي گرديده اند كه كاربرد آن براي بيان چگونگي حل تا حد امكان ساده باشد ، ميتوان با تفيير نوع حل كننده روش محاسباتي مورد استفاده در حل را تغيير داد ، ساده ترين عبارت دستوري براي حل يك تابع بصورت زير است :

[t,y]=solver(odefun,tspan,yo)

در عبارت فوق solver بيانگر نوع حل كننده( ode45,ode113,... ) ميباشد كه قبلا تشريح گرديده اند odefun نام M-File است كه در آن معادله ديفرانسيل با استفاده از روش هاميلتون بصورت معادله يا معادلات درجه اول بصورت تابع تعريف گرديده است .

tspan : بازه انتگرالگيري است كه داراي مقادير ابتدائي و انتهائي ميباشد  معمولا  اين نقاط بيانگر شرايط اوليه ميباشد ، براي سيستمهاي كه داراي بازه بزرگي براي محاسبات هستند براي كاهش حجم فضائي اشغال شده حافظه بهتراست به گامهاي كوچكتر تقسيم نمائيد وسپس اقدام به حل كنيد .

 : مقدار اوليه تابع( معمولا در  )

t  :  بردار ستوني نقاط زماني .

y  :  بردار ستوني جوابهاي معادله ديفرانسيل ، كه بر اساس نقاط زماني مقابل خود بدست آمده اند .

 

آرگومانهاي ديگري از حل كننده ODE :

براي عملكرهاي پيشرفته تر شما ميتوانيد از شرايط خاصي را با استفاده از آرگومان options بر حل كننده اعمال كنيد و همچنين پارامترهاي اضافي را تعريف يا محاسبه نمائيد :

options  :  با استفاده از اين تابع ميتوانيد تنظيمات انتگرالگير را تغيير دهيد :

[t,y]=solver(odefun,tspan,yo,options)

چگونگي اعمال اين تابع و تنظيمات آنرا بعدا شرح خواهيم داد .

p1,p2,...  :   پارامترهاي اضافي كه در تابع معادله ديفرانسيل وارد شده اند .

درصورتيكه شما نميخواهيد تنظيماتي را با استفاده از options اعمال نمائيد درمكان مربوط به اين تابع [] را بنويسيد

 

حل مسائل ODE  :

 

 

 

حل با فرض  تابع معادله ديفرانسيل درجه اول بدست آمده فوق را در يك M-file مينويسيم ، توجه داشته باشيد كه براي بيان معادله ديفرانسيل در مقابل تابع عبارت

dydt=odefun name (t,y) 

را بنويسيد :

function    dydt=vdp1(t,y)

dydt=[y(2);(1-y(1)^2)*y(2)-y(1)];

 

حال تابع فوق را با نام انتخابي اختياري كه گذاشته ايد ( vdp1 ) ذخيره نموده و خارج شويد ، در يك M-file جداگانه ديگر با انتخاب حل كننده ( مثلا ode45 ) بازه زماني (مثلا tspan=[0 20] )  وشرايط اوليه مسئله :

( مثلا y(0)=2   و y(20)=0 ) اقدام به حل معادله ديفرانسيل بصورت زير نمائيد :

[t,y]=ode45(@vdp1,[0 20],[2;0]);

plot(t,y(:,1),’-‘,t,y(:,2),’—‘)

 

نتايج برنامه فوق يك بردار ستوني شامل بازه هاي t و نتايج بدست آمده براي y(1) و y(2)  ميباشد كه ما اين نتايج را بصورت يك برنامه ترسيمي درآورده و ترسيمه حاصله را مشاهده مينمائيد :

     

دیدگاه خود را بنویسید

دیدگاه پس از تائید مدیریت منتشر می شود.