![]() |
||||||
به وبلاگ خودتون خوش آمدید |
||||||
|
معمولاً بسیار سخت است که یک روش حل تحلیلی برای بسیاری از معادلات دیفرانسیل پیدا کنیم. این مساله ممکن است به این خاطر باشد که، معادلات غیر خطی هستند یا اینکه دارای ضریبی هستند که با زمان تغییر میکند. برای مثال در معادلات دیفرانسیل خطی ضریبدار، هرچه مرتبه بیشتر باشد حل آن سختتر میشود. یا بخاطر اینکه ورودیهای زیادی دارد در شرایط مختلف مشکل تر است. روشهای زیادی وجود دارد که جواب معادلات دیفرانسیل را تقریب میزند. این روشها، نامهای گوناگونی دارند : روشهای عددی، انتگرال عددی یا راه حلهای تقریبی.
تمام روشهایی که در اینجا بیان شده راه حل دقیق را ایجاد نمیکند و فقط یک تقریب بهدست میآید. چون این روشها دارای محاسبات زیادی هسند، تنها جوابهایی در فواصل زمانی مجزا میدهند. مشخصا جوابها در زمان ابتدایی شرایط وفاصله زمانهای مشخص، h، بدست میآید. (i.e., at t=to, to+h, to+?.h,... , to+k.h).
این پیچیدگی ادامه دارد زیرا، این روشها فقط برای حل معادلات دیفرانسیل مرتبه اول معتبر هستند. به هرحال محدودیت جدی برای معادله مرتبه nام وجود ندارد زیرا میتواند به n تا معادله دیفرانسیل مرتبه اول تبدیل شود. برای بوجود آوردن این روشها برای حل معادلات مرتبه nام، مساله را به حالتهای جداگانه تقسیم کرده و سپس برای هر مرحله زمانی روش حل را بکار میبریم تا جواب را برای مرحله بعدی بدست آوریم.
ساده ترین روش برای حل عددی معادلات دیفرانسیل، روش اویلر است که الان توضیح داده میشود. معادله دیفرانسیل مرتبه اول زیر را در نظر بگیرید :
در زمان t? شروع میکنیم. مقدار y(t?+h) را میتوان توسط y(t?) بعلاوه زمان تغییر حالت ضرب در شیب تابع تقریب زد. که مشتق y(t) است.
ما این تقریب را y*(t) مینامیم.
بنابرین اگر بتوانیم مقدار dy/dt را در زمان t? محاسبه کنیم، میتوانیم مقدار تقریبی y در زمان t?+h را حدس بزنیم. سپس این مقدار جدید y(t?) را استفاده کرده، دوباره dy/dt را حساب و این کار را تکرار میکنیم. به این روش متد اویلر میگوییند.
توسط این پیش زمینه ساده روش اویلر برای معادلات دیفرانسیل مرتبه اول بصورت زیر است :
?) در زمان t? شروع کنید، یک مقدار برای h در نظر بگیرید، سپس شرایط ابتدایی y(t?) را حساب کنید. ?) از طریق y(t?) مشتق y(t) را در زمان t=t? حسب کنید. آنرا k? بنامید. این شیب توسط خط قرمز در شکل بالا نشان داده شدهاست.
?) از این مقدار، مقدار تقریبی y*(t?+h) را حساب کنید.
?) قرار دهید t?=t?+h، y(t?)=y*(t?+h) ?) مراحل ? تا ? را آنقدر تکرار کنید تا جواب به دست آید.
روشی که در بالا بیان شد برای تقریب معادلات دیفرانسیل مرتبه اول کاربرد داشت، ولی بطور واضح نمیتوان این جواب را برای معادلات دیفرانسیل مراتب بالاتر قبول کرد. ترفندی که در اینجا بکار میرود، تقسیم کردن آن به معادلات دیفرانسیل مراتب پایین تر است. این روش «آنالیز حالتهای متغییر» نامیده میشد.
بطور واضح بین درستی و پیچیدگی محاسبات و مقدار انتخاب شده h وابستگی زیادی وجود دارد. بطور کلی هرچه مقدار h کوچکتر شود، محاسبات طولانی تر ولی دقیق تر میشود. حال اگر مقدار h خیلی کوچک شود، برای اینکه نمیتوان آنرا به درستی در کامپیوتر نشان داد خطا ایجاد میشود. برای سیستمهای مرتبه بالاتر، تقریب اویلر بسیار سخت است. به همین دلیل، دقت بالاتر و تکنیکهای با جزییات بیشتر ساخته شد. ما در مورد متدی بحث میکنیم که توسط دو ریاضیدان به اسمهای Runge و Kutta ساخته شدهاست.
این تکنیک برای مشتق تابع y(t) در t? از متد اویلر استفاده میکند. از k? نیز برای بدست آوردن مقدار اولیه y(t?+h) استفاده میکنیم. از y*(t?+h) میتوانیم مقدار مشتق y(t) را در t?+h حساب کنیم که آنرا k? مینامیم. سپس میانگین این دو مشتق را k? مینامیم.
روش RK?، تقریب را از طریق تخمین زدن بیشتر این تقریب، از روی فاصله شیب حساب میکند. روش اویلر مشتق را در y(t?) حساب کرده و از آن در تقریب y(t?+h) استفاده میکند.
بصورت الگوریتم میتوانیم روش RK? را استفده کنیم :
?) در زمان t? شروع به محاسبات میکنیم. ?) در زمان t?، مشتق y(t) را حساب کرده و آنرا k? مینامیم.
?) مقدار ابتدایی y*(t?+h) را حساب کرده و فرمول اویلر را استفاده میکنیم.
?) از y*(t?+h) مشتق y(t) را در t?+h حساب کرده و آنرا k? مینامیم.
?) مقدار جدید y*"(t?+h) را از میانگین k? وk? محاسبه میکنیم.
?) قرار دهید y(t?) = y*"(t+?h) و t? = t?+h ?) مراحل ? تا ? را تکرار کنید تا جواب بدست آید.
لیست کل یادداشت های این وبلاگ
[ خانه :: پارسی بلاگ :: مدیریت:: پست الکترونیک :: شناسنامه]