روش رانگ-کوتای مرتبه ۵ بوچر

Butcher’s fifth-order RK method
روش رانگ کوتا در متلب
معرفی

روش رانگ-کوتای مرتبه 5 یا روش بوچر یکی از روش های انتگرال گیری عددی از معادلات دیفرانسیل معمولی (ODE) است که برای حل معادلات به شکل

dy/dx = f(x,y)

مورد استفاده قرار می گیرد. این روش نتایجی دقیق تر از روش رانگ-کوتا مرتبه 4 ارائه می دهد و در این روش داریم:

y_{i+1}=y_i+{1/90}delim{[}{7 k_1 + 32 k_3 + 12 k_4 + 32 k_5 + 7 k_6}{]}

که در آن

k_1 = h f(x_i,y_i)

k_2 = h f(x_i + {1/4}h,y_i + {1/4}k_1)

k_3 = h f(x_i + {1/4}h,y_i + {1/8}k_1 + {1/8}k_2)

k_4 = h f(x_i + {1/2}h,y_i - {1/2}k_2 + k_3)
k_5 = h f(x_i + {3/4}h,y_i + {3/16}k_1 + {9/16}k_4)
k_6 = h f(x_i + h,y_i - {3/7}k_1 + {2/7}k_2 + {12/7}k_3 - {12/7}k_4 + {8/7}k_5)

روش های مرتبه ی بالاتر از رانگ کوتای مرتبه 4 مانند روش بوچر وجود دارند. اما با توجه به افزایش حجم محاسبات، افزایش دقت حاصل از این روش ها نسبت به روش رانگ کوتای مرتبه 4 ناچیز بوده و استفاده از آن ها مرسوم نیست.

    برنامه نویسی با MATLAB

    در اینجا با استفاده از نرم افزار متلب (MATLAB) برنامه ای جهت حل معادلات دیفرانسیل معمولی مرتبه اول به روش رانگ کوتای مرتبه 5 (یا روش بوچر) ارائه گردیده است. دو کد برای این منظور در یک فایل فشرده ارائه گردیده است:

    1. کد صریح (explicit) که در خروجی روند حل کامل مسئله را نمایش می دهد

    2. کد غیرصریح (معمولی) که تنها پاسخ نهایی را نمایش می دهد

    لازم به ذکر است که برنامه ی ارائه شده قادر به حل تمامی مثال های قابل حل با روش رانگ کوتای مرتبه 5 (یا روش بوچر) بوده و به صورت کاملا عمومی (general) کدنویسی شده است.

    ورودی ها و خروجی ها

    ورودی:

    1. تابع (f(x,y ورودی
    2. نقطه ی ابتدایی بازه ی حل
    3. نقطه ی انتهایی بازه ی حل
    4. مقدار اولیه ی تابع y در نقطه ی ابتدایی بازه
    5. تعداد گام های حل n

    خروجی:

    1. محاسبه و نمایش طول گام حل h
    2. نمایش روند حل به صورت کامل در هر گام
    3. نمایش جدول مقادیر تابع حاصل از حل به روش اولر
    4. رسم نمودار حاصل از حل

    تصاویر اجرای برنامه

    مشاهده ی ورودی و خروجی برنامه در یک مثال نمونه

    مشاهده ی ورودی و خروجی برنامه ی غیر صریح در یک مثال

    نمودار خروجی رسم شده برای مثال نمونه

    این برنامه با نسخه های متلب/MATLAB سال های 2010-2013 تست شده است. در صورت استفاده از نسخه ی سال های دیگر لایبریکا تضمین کننده ی اجرای صحیح برنامه نمی باشد.