रुंग-कुता विधियाँ
संख्यात्मक विश्लेषण में रुंगा-कुटा विधियाँ (Runge–Kutta methods) साधारण अवकल समीकरणों को हल करने की पुनरावृत्तिमूलक विधियाँ हैं। इनका विकास जर्मनी के गणितज्ञों सी रुंगा तथा एम डब्ल्यू कुटा ने १९०० ई के आसपास किया था। यह एक विधि नहीं बल्कि इसमें कई विधियाँ हैं।
रुंगा-कुटा विधि
इसे 'क्लासिकल रुंगा-कुटा विधि' या प्रायः "RK4" भी कहा जाता है। यह चार आर्डर वाली विधि है।
मान लीजिए कि एक साधारण अवकल समीकरण (आरम्भिक मान समस्या) निम्नलिखित है:
- <math> \dot{y} = f(t, y), \quad y(t_0) = y_0. </math>
यह विधि निम्नलिखित सूत्र से समझी जा सकती है:
- <math>\begin{align}
y_{n+1} &= y_n + \tfrac{1}{6} h\left(k_1 + 2k_2 + 2k_3 + k_4 \right)\\ t_{n+1} &= t_n + h \\ \end{align}</math>
n = 0, 1, 2, 3, . . . , तथा
- <math>
\begin{align} k_1 &= f(t_n, y_n), \\ k_2 &= f(t_n + \tfrac{1}{2}h, y_n + \tfrac{h}{2} k_1), \\ k_3 &= f(t_n + \tfrac{1}{2}h, y_n + \tfrac{h}{2} k_2), \\ k_4 &= f(t_n + h, y_n + h k_3). \end{align} </math>[१]
h का उचित धनात्मक मान लेकर इस विधि को बारबार प्रयोग करके t के किसी भी मान के लिए y का सन्निकट मान निकाल सकते हैं।
उदाहरण
माना <math>\frac{dx}{dt}=\frac{-t}{x}</math> का हल निकालना है। दिया हुआ है कि <math>t=0 \,\,\, x=1</math>
इस अवकल समीकरण का ठीक-ठीक हल (इग्जैक्ट सलुशन) <math>t^2 + x^2 = 1</math> है।
हम <math>h = 0,1</math> लेकर इसका हल निकालते हैं।
- <math>k_1 = 0,0</math>
- <math>k_2 = -0,05</math>
- <math>k_3 = -0,0501253132832</math>
- <math>k_4 = -0,100503778338</math>
इससे <math>t = 0,1</math> पर <math>x = 0,994987426585</math> प्राप्त होता है।
इसी तरह हम t के विभिन्न मानों के लिये x का मान प्राप्त करते जाते हैं, जो निम्नांकित सारणी में दिखाये गये हैं-
<math>t</math> | <math>x</math> |
---|---|
0.0 | 1.0 |
0.1 | 0.994987426585 |
0.2 | 0.979795852198 |
0.3 | 0.95393908717 |
0.4 | 0.916514893222 |
0.5 | 0.866024896597 |
0.6 | 0.799998909634 |
0.7 | 0.714140165921 |
0.8 | 0.599991210485 |
0.9 | 0.435832710519 |
1.0 | 0.0488018582123 |
ध्यान दें कि इस अवकल समीकरण के विशुद्ध हल से <math>t = 1</math> पर <math>x = 0</math> मिलेगा, जबकि इस विधि से <math>x = 0.0488018582123</math> प्राप्त हुआ है जो विशुद्ध मान के काफी करीब है। इससे भी अधिक परिशुद्ध मान की गणना के लिये 'स्टेप साइज' को 0.1 के बजाय और कम रखना पड़ेगा।
स्पष्ट रुंगा-कुटा विधियाँ (Explicit Runge–Kutta methods)
ये विधियाँ RK4 के सामान्यीकृत रूप हैं। यह निम्नलिखित रूप में है:
- <math> y_{n+1} = y_n + \sum_{i=1}^s b_i k_i, </math>
जहाँ
- <math> k_1 = hf(t_n, y_n), \, </math>
- <math> k_2 = hf(t_n+c_2h, y_n+a_{21}k_1), \, </math>
- <math> k_3 = hf(t_n+c_3h, y_n+a_{31}k_1+a_{32}k_2), \, </math>
- <math> \vdots </math>
- <math> k_s = hf(t_n+c_sh, y_n+a_{s1}k_1+a_{s2}k_2+\cdots+a_{s,s-1}k_{s-1}). </math>[२]
- (टिप्पणी: अलग-अलग पुस्तकों में यही समीकरण अलग-अलग तरह से पारिभाषित किया हुआ मिलता है किन्तु वे इसके तुल्य ही होते हैं।)
किसी विशेष विधि को प्राप्त करने के लिए पहले s (चरणों की संख्याँ) तय करनी पड़ती है। इसके अनुसार गुणांक aij (1 ≤ j < i ≤ s), bi (i = 1, 2, ..., s) और ci (i = 2, 3, ..., s) तय किए जाते हैं। मैट्रिक्स [aij] को रुंगा-कुटा मैट्रिक्स कहते हैं। bi तथा ci को भार (weights) एवं नोड (nodes) कहते हैं।[३] ये संख्याएँ निम्नलिखित सारणी के रूप में व्यवस्थित की जातीं हैं जिसे 'बूचर टेबुल' कहते हैं।
0 | ||||||
<math> c_2 </math> | <math> a_{21} </math> | |||||
<math> c_3 </math> | <math> a_{31} </math> | <math> a_{32} </math> | ||||
<math> \vdots </math> | <math> \vdots </math> | <math> \ddots </math> | ||||
<math> c_s </math> | <math> a_{s1} </math> | <math> a_{s2} </math> | <math> \cdots </math> | <math> a_{s,s-1} </math> | ||
<math> b_1 </math> | <math> b_2 </math> | <math> \cdots </math> | <math> b_{s-1} </math> | <math> b_s </math> |
रुंगा कुटा विधि एकरूप (consistent) होगी यदि
- <math>\sum_{j=1}^{i-1} a_{ij} = c_i\ \mathrm{for}\ i=2, \ldots, s.</math>
यदि हम किसी विधि को p आर्डर वाला बनाना चाहते हैं तो कुछ और आवश्यकताएँ इसमें जुड़ जाती हैं। उदाहरण के लिए 2-चरण तथा 2-आर्डर की विधि प्राप्त करने के लिए निम्नलिखित शर्त आएगी:
- b1 + b2 = 1, b2c2 = 1/2, and a21 = c2.[४]