روش‌های رونگه‐کوتا

به دسته‌ای از مهم‌ترین روشهای حل عددی معادلات دیفرانسیل عادی گفته می‌شود که توسط دو دانشمند آلمانی، رونگه و کوتا ابداع شده است. این روش شامل روش مرتبه اول (اویلر)، روش اویلر اصلاح شده یا هیون (Heun) که به روش پیشگو نیز معروف است، نقطه میانی، مرتبه دوم، رالستون، مرتبه سوم و مرتبه چهارم می باشد. همانطور که در ادامه خواهیم دید، سایر روشهای حل معادلات دیفرانسیل معمولی مانند اویلر، هیون و نقط میانی، حالات خاصی از روش رانگ-کوتا به ویژه از مرتبه دوم هستند. یکی از پرکاربردترین این روش‌ها رانگ−کوتای مرتبه چهارم می‌باشد.

## فرمول کلی روش رانگ-کوتا

معادله دیفرانسیل معمولی زیر را با شرط اولیه داده شده را در نظر بگیرید.

: y' = f(x, y), \quad y(x_0) = y_0 

فرمول کلی روش رانگ-کوتا به صورت زیر است.

: y_{i+1} = y_i + \phi(x_i,y_i,h) h 

: \phi=a_1 k_1+a_2 k_2+...a_n k_n 

که مقادیر a مقادیر ثابت و مقادیر kها به صورت زیر هستند و h مقدار گام است.

: k_1=f(x_i,y_i) 

: k_2=f(x_i+p_1 h,y_i+q_{11} k_1 h) 

: k_3=f(x_i+p_2 h,y_i+q_{21} k_1 h+q_{22} k_2 h) 

: . 

: . 

: . 

: k_n=f(x_i+p_{n-1} h,y_i+q_{{n-1},1} h+q_  و هر مقدار  a_2  دلخواه در فرمول کلی، حاصل می شود. لازم به ذکر است که این روش به خاطر دلخواه بودن مقدار  a_2  بی شمار فرمول برای این روش وجود دارد. در ادامه خواهیم دید که با انتخاب مقادیر خاصی برای  a_2 ، معادلات روشهای دیگر به دست می آید.

## رانگ−کوتا( اویلر) اصلاح شده (هیون)
در این روش ابتدا یک مقدار برای  y  پیشگویی (حدس زده) می شود و سپس در معادله اصلاح گر (Corrector) قرار داده می شود و مقدار آن اصلاح می شود.

: y^0_{i+1} = y_i + {h} f(x_i,y_i) 
: y'_{i+1} = f(x_{i+1},y^0_{i+1}) 

معادله بالا، معادله پیشگو (Predictor) نامیده می شود.

سپس میانگین شیب جدید و شیب اولیه در معادله اویلر قرار داده می شود.

: y_{i+1} = y_i + {{f(x_i,y_i)+f(x_{i+1},y^0_{i+1})}\over 2} h 

معادله بالا، معادله اصلاح گر (Corrector) نامیده می شود.

این روش همان روش انتگرال گیری عددی ذوزنقه ای است که در آن:

: h=x_{i+1}-x_i

خطای این روش نیز دقیقا همان خطای روش ذوزنقه ای است.

: E_t=-{f*(\xi)\over 12}h^3 </math>


در فرمول کلی به ازای <math> a_1=a_2={1\over 2} </math> و <math> p_1=q_{11}=1 </math> فرمول روش هیون حاصل می شود. می توان در روش رانگ-کوتای مرتبه دوم نیز تنها <math> a_2={1\over 2} </math> را قرار داد.

== روش نقطه میانی==

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


:<math> k_1=f(x_i,y_i) </math>

:<math> k_2=f(x_i+{1\over 2} h,y_i+{1\over 2} k_1 h) </math>

:<math> y_{i+1} = y_i + k_2 h </math>



در فرمول کلی، به ازای <math> a_1=0 , a_2=1 , p_1=q_{11}={1\over 2} </math> فرمول روش نقطه میانی حاصل می شود. می توان در روش رانگ-کوتای مرتبه دوم نیز تنها <math> a_2=1 </math> را قرار داد.
==روش رالستون==

در فرمول کلی به ازای <math> a_1={1\over 3} , a_2={2\over 3} , p_1=q_{11}={3\over 4} </math> فرمول روش رالستون حاصل می شود. این روش نیز از روش های رانگ-کوتای مرتیه دوم است که معادله آن به صورت زیر است.


:<math> k_1=f(x_i,y_i) </math>

:<math> k_2=f(x_i+{3\over 4} h,y_i+{3\over 4} k_1 h) </math>

:<math> y_{i+1} = y_i + ({{1\over 3} k_1+{2\over 3} k_2}) h </math>



== رانگ-کوتای مرتبه سوم==

این روش بسیار کم کاربردتر از مرتبه چهارم می باشد. فرمول این روش به صورت زیر است.


:<math> k_1=f(x_i,y_i) </math>

:<math> k_2=f(x_i+{1\over 2} h,y_i+{1\over 2} k_1 h) </math>

:<math> k_3=f(x_i+h,y_i-k_1 h+2 k_2 h) </math>

:<math> y_{i+1} = y_i + {1\over 6}({k_1+4 k_2+k_3}) h </math>



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

برای بدست آوردن مقدار تابع y در یک واحد زمان جلوتر از رابطه زیر استفاده می‌شود.

:<math> y_{i+1} = y_i + {h \over 6}(k_1 + 2 k_2 + 2 k_3 + k_4) </math>



که در آن:


:<math>\begin{align} 
k_1 &= f \left( x_i, y_i \right) \\
k_2 &= f \left( x_i + {h \over 2}, y_i + {h \over 2} k_1 \right) \\
k_3 &= f \left( x_i + {h \over 2}, y_i + {h \over 2} k_2 \right) \\
k_4 &= f \left( x_i + h, y_i + h k_3 \right) \\
\end{align}</math>



رانگ-کوتای مرتبه چهار متعلق به خانواده رانگ-کوتاهای صریح می باشد.

==حل معادلات دیفرانسیل درجات بالاتر به روش رانگ-کوتا==

برای حل معادلات درجه بالاتر به روش رانگ-کوتا از دستگاه معادلات استفاده می کنیم به این ترتیب که هر مرتبه از معادله را به صورت یک متغیر جدید تعریف کرده و به این صورت، با کاهش هر مرتبه، یک معادله دیفرانسیل درجه اول به صورت مفروض در روش رانگ-کوتا تعریف می شود. سپس دستگاه معادلات درجه اول را به روش رانگ-کوتا می توان حل نمود.

<br />


:<math> p_{n+1} y^{(n)}+p_{n} y^{(n-1)}+...p_3 y*+p_2 y'+p_1 y+p_0=0 

: e_1:y'=z_1 

: e_2:z'_1=z_2 

: e_3:z'_2=z_3 

: . 

: . 

: e_n:z'_{n-1}=z_n 

## حل یک نمونه معادله دیفرانسیل به روش رانگ-کوتای مرتبه چهارم

مثال: معادله دیفرانسیل زیر را به روش مرسوم رانگ-کوتای مرتبه چهارم حل می کنیم.

: y'=} , y(0)=1 

: k_1=h f(x,y)=0.1}=-0.03678794411 

: k_2=h {f(x+{h\over 2},y+{k_1\over 2})}=-0.03454223937 

: k_3=h {f(x+{h\over 2},y+{k_2\over 2})}=-0.03454345267 

: k_4=h {f(x+h,y+k_3)}=-0.03154393258 

: y(x+h)=y(x)+{1\over 6}(k_1+2 k_2+2 k_3+k_4) 

: =1+{1\over 6}(-0.03678794411+2(-0.03454223937)+2(-0.03454345267)-0.03154393258)=0.9655827899 

با تکرار روش بالا سایر مقادیر تابع نیز به ازای سایر xها به دست می آید.

## روش رانگ-کوتای تطبیقی
این روش برای افزایش دقت محاسبات استفاده می شود. در این روش ابتدا با استفاده از روش رانگ-کوتا یک بار با گام  h  و یک بار با گام  h\over 2  مقدار  y  محاسبه شده و سپس به جای  y_2  مقدار  y_2+{\Delta\over 15}  را جایگذاری می کنیم که در آن:  \Delta=y_2^{old}-y_1  و سپس مقدار خطای تخمین را با آن جمع می کنیم. به این صورت دقت محاسبات افزایش می یابد.

## منابع
1- Press et al. 2007, p. 907

2-Steven Chapra, Applied Numerical Methods with MATLAB for Engineers and Scientists, 7th Edition, McGraw-Hill Science Engineering, 2017

رده:روش‌های رونگه‐کوتا
رده:حل عددی معادلات دیفرانسیل
رده:معادلات دیفرانسیل