กลับไปหน้าบทความ

อ่าน 27 นาที

วิธีการรันเก-คุตตะ

ในการวิเคราะห์เชิงตัวเลข วิธี Runge –Kutta ( อังกฤษ: / ˈ r ʊ ŋ ə ˈ k ʊ t ɑː /ⓘ RUUNG -ə- KUUT -tah )

วิธีการรันเก-คุตตะ

การเปรียบเทียบวิธีการรันเก-คุตตะสำหรับสมการเชิงอนุพันธ์y=บาป2(ที)y{\displaystyle y'=\sin ^{2}(t)\cdot y}(สีแดงคือคำตอบที่ถูกต้อง)

ในการวิเคราะห์เชิงตัวเลข วิธี Runge –Kutta ( อังกฤษ: / ˈ r ʊ ŋ ə ˈ k ʊ t ɑː / RUUNG -ə- KUUT -tah [ 1 ] ) เป็นกลุ่มของวิธีการวนซ้ำแบบปริยายและชัดเจนซึ่งรวมถึงวิธีออยเลอร์ที่ใช้ในการแบ่งช่วงเวลาสำหรับการหาคำตอบโดยประมาณของสมการไม่เชิงเส้นพร้อมกัน [ 2 ]วิธีการเหล่านี้ได้รับการพัฒนาขึ้นราวปี 1900 โดยนักคณิตศาสตร์ชาวเยอรมันคาร์ล รุนและล์ม คุตตา

วิธีรันเก-คุตตะ

ความลาดชันที่ใช้โดยวิธี Runge-Kutta แบบคลาสสิก (RK4)

วิธีการรันเก-กุตตะ (Runge–Kutta) ที่เป็นที่รู้จักกันอย่างแพร่หลายที่สุด มักเรียกกันว่า "RK4" "วิธีการรันเก-กุตตะแบบคลาสสิก" หรือเรียกง่ายๆ ว่า "วิธีการรันเก-กุตตะ"

ให้กำหนดปัญหาค่าเริ่มต้น ดังต่อไปนี้:

yที=เอฟ(ที,y),y(ที0)=y0.{\displaystyle {\frac {dy}{dt}}=f(t,y),\quad y(t_{0})=y_{0}.}

ที่นี่y{\displaystyle y}เป็นฟังก์ชันที่ไม่ทราบค่า (สเกลาร์หรือเวกเตอร์) ของเวลาที{\displaystyle t}ซึ่งเราต้องการประมาณค่า เราได้รับแจ้งว่าyที{\displaystyle {\frac {dy}{dt}}}อัตราที่y{\displaystyle y}การเปลี่ยนแปลง เป็นฟังก์ชันของที{\displaystyle t}และของy{\displaystyle y}ตัวมันเอง ในเวลาเริ่มต้นที0{\displaystyle t_{0}}ที่สอดคล้องกันy{\displaystyle y}ค่าคือy0{\displaystyle y_{0}}ฟังก์ชันเอฟ{\displaystyle f}และเงื่อนไขเริ่มต้นที0{\displaystyle t_{0}}, y0{\displaystyle y_{0}}ได้รับแล้ว

ต่อไปเราจะเลือกขนาดขั้นตอนh > 0 และกำหนดดังนี้:

yn+1=yn+ชม.6(เค1+2เค2+2เค3+เค4),ทีn+1=ทีn+ชม.{\displaystyle {\begin{aligned}y_{n+1}&=y_{n}+{\frac {h}{6}}\left(k_{1}+2k_{2}+2k_{3}+k_{4}\right),\\t_{n+1}&=t_{n}+h\\\end{aligned}}}

สำหรับn = 0, 1, 2, 3, ... โดยใช้[ 3 ]

เค1= เอฟ(ทีn,yn),เค2= เอฟ(ทีn+ชม.2,yn+เค1ชม.2),เค3= เอฟ(ทีn+ชม.2,yn+เค2ชม.2),เค4= เอฟ(ทีn+ชม.,yn+ชม.เค3).{\displaystyle {\begin{aligned}k_{1}&=\ f(t_{n},y_{n}),\\k_{2}&=\ f\!\left(t_{n}+{\frac {h}{2}},y_{n}+k_{1}{\frac {h}{2}}\right),\\k_{3}&=\ f\!\left(t_{n}+{\frac {h}{2}},y_{n}+k_{2}{\frac {h}{2}}\right),\\k_{4}&=\ f\!\left(t_{n}+h,y_{n}+hk_{3}\right).\end{aligned}}}

( หมายเหตุ: สมการข้างต้นมีคำจำกัดความที่แตกต่างกันแต่เทียบเท่ากันในตำราต่าง ๆ[ 4 ] )

ที่นี่yn+1{\displaystyle y_{n+1}}คือการประมาณค่า RK4 ของy(ทีn+1){\displaystyle y(t_{n+1})}และค่าถัดไป (yn+1{\displaystyle y_{n+1}}) ถูกกำหนดโดยมูลค่าปัจจุบัน (yn{\displaystyle y_{n}}) บวกกับค่าเฉลี่ยถ่วงน้ำหนักของช่วงเพิ่มขึ้นสี่ช่วง โดยแต่ละช่วงเพิ่มขึ้นเป็นผลคูณของขนาดของช่วงhและความชันโดยประมาณที่ระบุโดยฟังก์ชันfทางด้านขวามือของสมการเชิงอนุพันธ์

  • เค1{\displaystyle k_{1}}คือค่าความชัน ณ จุดเริ่มต้นของช่วงเวลา โดยใช้y{\displaystyle y}( วิธีของออยเลอร์ )
  • เค2{\displaystyle k_{2}}คือค่าความชัน ณ จุดกึ่งกลางของช่วง โดยใช้y{\displaystyle y}และเค1{\displaystyle k_{1}};
  • เค3{\displaystyle k_{3}}อีกครั้งหนึ่งคือความชันที่จุดกึ่งกลาง แต่คราวนี้ใช้y{\displaystyle y}และเค2{\displaystyle k_{2}};
  • เค4{\displaystyle k_{4}}คือค่าความชัน ณ จุดสิ้นสุดของช่วง โดยใช้y{\displaystyle y}และเค3{\displaystyle k_{3}}.

ในการหาค่าเฉลี่ยของความชันทั้งสี่ จะให้น้ำหนักกับความชันที่จุดกึ่งกลางมากกว่า หากเอฟ{\displaystyle f}เป็นอิสระจากy{\displaystyle y}ดังนั้นสมการเชิงอนุพันธ์จึงเทียบเท่ากับอินทิกรัลอย่างง่าย จากนั้น RK4 ก็คือกฎของซิมป์สัน[ 5 ]

วิธี RK4 เป็นวิธีอันดับสี่ ซึ่งหมายความว่าข้อผิดพลาดในการตัดทอนเฉพาะจุดนั้นอยู่ในระดับประมาณโอ(ชม.5){\displaystyle O(h^{5})}ในขณะที่ ข้อผิดพลาดสะสมทั้งหมดอยู่ในระดับประมาณโอ(ชม.4){\displaystyle O(h^{4})}.

ในการใช้งานจริงหลายๆ ด้าน ฟังก์ชันนี้เอฟ{\displaystyle f}เป็นอิสระจากที{\displaystyle t}(เรียกว่าระบบอัตโนมัติหรือระบบไม่เปลี่ยนแปลงตามเวลา โดยเฉพาะในทางฟิสิกส์) และค่าที่เพิ่มขึ้นของระบบเหล่านี้จะไม่ถูกคำนวณเลยและจะไม่ถูกส่งต่อไปยังฟังก์ชันเอฟ{\displaystyle f}โดยมีเพียงสูตรสุดท้ายสำหรับทีn+1{\displaystyle t_{n+1}}ใช้แล้ว.

วิธีการรันเก-คุตตะแบบชัดเจน

กลุ่ม วิธี Runge–Kutta แบบชัดเจน (explicit Runge–Kutta methods) เป็นการขยายความของวิธี RK4 ที่กล่าวถึงข้างต้น โดยกำหนดได้ดังนี้

yn+1=yn+ชม.ฉัน=1ฉันเคฉัน,{\displaystyle y_{n+1}=y_{n}+h\sum _{i=1}^{s}b_{i}k_{i},}

โดยที่[ 6 ]

เค1=เอฟ(ทีn,yn),เค2=เอฟ(ทีn+2ชม.,yn+(เอ21เค1)ชม.),เค3=เอฟ(ทีn+3ชม.,yn+(เอ31เค1+เอ32เค2)ชม.),  เค=เอฟ(ทีn+ชม.,yn+(เอ1เค1+เอ2เค2++เอ,1เค1)ชม.).{\displaystyle {\begin{aligned}k_{1}&=f(t_{n},y_{n}),\\k_{2}&=f(t_{n}+c_{2}h,y_{n}+(a_{21}k_{1})h),\\k_{3}&=f(t_{n}+c_{3}h,y_{n}+(a_{31}k_{1}+a_{32}k_{2})h),\\&\ \ \vdots \\k_{s}&=f(t_{n}+c_{s}h,y_{n}+(a_{s1}k_{1}+a_{s2}k_{2}+\cdots +a_{s,s-1}k_{s-1})h).\end{aligned}}}
( หมายเหตุ: สมการข้างต้นอาจมีคำจำกัดความที่แตกต่างกันแต่เทียบเท่ากันในตำราบางเล่ม[ 4 ] )

ในการระบุวิธีการเฉพาะเจาะจง จำเป็นต้องระบุจำนวนเต็มs (จำนวนขั้นตอน) และสัมประสิทธิ์a (สำหรับ 1 ≤ j < is ), b (สำหรับi = 1, 2, ..., s ) และc (สำหรับi = 2, 3, ..., s ) เมทริกซ์ [ a ] เรียกว่าเมทริกซ์ Runge–Kuttaในขณะที่b และc เรียกว่าน้ำหนักและโหนด[ 7 ]ข้อมูลเหล่านี้มักจะถูกจัดเรียงในอุปกรณ์ช่วยจำที่เรียกว่าตาราง Butcher (ตั้งชื่อตามJohn C. Butcher ):

0{\displaystyle 0}
2{\displaystyle c_{2}}เอ21{\displaystyle a_{21}}
3{\displaystyle c_{3}}เอ31{\displaystyle a_{31}}เอ32{\displaystyle a_{32}}
{\displaystyle \vdots }{\displaystyle \vdots }{\displaystyle \ddots }
{\displaystyle c_{s}}เอ1{\displaystyle a_{s1}}เอ2{\displaystyle a_{s2}}{\displaystyle \cdots }เอ,1{\displaystyle a_{s,s-1}}
1{\displaystyle b_{1}}2{\displaystyle b_{2}}{\displaystyle \cdots }1{\displaystyle b_{s-1}}{\displaystyle b_{s}}

การขยาย อนุกรมเทย์เลอร์แสดงให้เห็นว่าวิธี Runge–Kutta มีความสอดคล้องก็ต่อเมื่อ

ฉัน=1ฉัน=1.{\displaystyle \sum _{i=1}^{s}b_{i}=1.}

นอกจากนี้ยังมีข้อกำหนดเพิ่มเติมหากต้องการให้วิธีการมีลำดับp ที่แน่นอน ซึ่งหมายความว่าข้อผิดพลาดในการตัดทอนเฉพาะที่คือ O( h p +1 ) สิ่งเหล่านี้สามารถอนุมานได้จากนิยามของข้อผิดพลาดในการตัดทอนเอง ตัวอย่างเช่น วิธีการสองขั้นตอนมีลำดับ 2 ถ้าb + b = 1, b c = 1/2 และb a = 1/2 [ 8 ]โปรดทราบว่าเงื่อนไขที่นิยมใช้ในการกำหนดสัมประสิทธิ์คือ[ 8 ]

เจ=1ฉัน1เอฉันเจ=ฉัน สำหรับ ฉัน=2,,.{\displaystyle \sum _{j=1}^{i-1}a_{ij}=c_{i}{\text{ สำหรับ }}i=2,\ldots ,s.}

อย่างไรก็ตาม เงื่อนไขนี้เพียงอย่างเดียวไม่เพียงพอหรือจำเป็นต่อความสอดคล้อง [ 9 ]

โดยทั่วไป หากมีการระบุอย่างชัดเจน{\displaystyle s}วิธีการ Runge–Kutta แบบหลายขั้นตอนมีลำดับพี{\displaystyle p}จากนั้นจึงสามารถพิสูจน์ได้ว่าจำนวนขั้นตอนต้องเป็นไปตามเงื่อนไขที่กำหนดพี{\displaystyle s\geq p}และถ้าพี5{\displaystyle p\geq 5}, แล้วพี+1{\displaystyle s\geq p+1}[ 10 ] อย่างไรก็ตาม ยังไม่เป็นที่ทราบแน่ชัดว่าขอบเขตเหล่านี้มีความแม่นยำ ในทุกกรณีหรือ ไม่ในบางกรณี มีการพิสูจน์แล้วว่าไม่สามารถบรรลุขอบเขตได้ ตัวอย่างเช่น Butcher พิสูจน์ว่าสำหรับพี>6{\displaystyle p>6}ไม่มีวิธีการที่ชัดเจนด้วย=พี+1{\displaystyle s=p+1}ขั้นตอน[ 11 ]บุชเชอร์ยังพิสูจน์ได้ว่าสำหรับพี>7{\displaystyle p>7}ไม่มีวิธีการ Runge-Kutta ที่ชัดเจนด้วยพี+2{\displaystyle p+2}ขั้นตอน[ 12 ]โดยทั่วไปแล้ว ยังคงเป็นปัญหาที่ยังไม่ได้รับการแก้ไขว่าจำนวนขั้นตอนขั้นต่ำที่แน่นอนคือเท่าใด{\displaystyle s}คือเพื่อให้วิธีการ Runge–Kutta ที่ชัดเจนมีลำดับพี{\displaystyle p}ค่าบางค่าที่ทราบได้แก่: [ 13 ]

พี12345678นาที123467911{\displaystyle {\begin{array}{c|cccccccc}p&1&2&3&4&5&6&7&8\\\hline \min s&1&2&3&4&6&7&9&11\end{array}}}

ขอบเขตที่พิสูจน์ได้ข้างต้นจึงหมายความว่าเราไม่สามารถหาวิธีการเรียงลำดับได้พี=1,2,,6{\displaystyle p=1,2,\ldots ,6}ซึ่งต้องใช้ขั้นตอนน้อยกว่าวิธีการที่เราทราบอยู่แล้วสำหรับลำดับเหล่านี้ งานของ Butcher ยังพิสูจน์ได้ว่าวิธีการลำดับที่ 7 และ 8 มีขั้นตอนขั้นต่ำ 9 และ 11 ขั้นตอนตามลำดับ[ 11 ] [ 12 ]ตัวอย่างของวิธีการที่ชัดเจนของลำดับที่ 6 ที่มี 7 ขั้นตอนสามารถพบได้ในเอกสารอ้างอิง[ 14 ]วิธีการที่ชัดเจนของลำดับที่ 7 ที่มี 9 ขั้นตอน[ 11 ]และวิธีการที่ชัดเจนของลำดับที่ 8 ที่มี 11 ขั้นตอน[ 15 ]ก็เป็นที่รู้จักเช่นกัน ดูเอกสารอ้างอิง[ 16 ] [ 17 ]สำหรับบทสรุป

ตัวอย่าง

วิธีการ RK4 อยู่ในกรอบนี้ ตารางของมันคือ[ 18 ]

0
1/21/2
1/201/2
1001
1/61/31/31/6

วิธีการ Runge–Kutta ที่แตกต่างเล็กน้อยนี้เกิดจาก Kutta ในปี 1901 และเรียกว่ากฎ 3/8 [ 19 ]ข้อได้เปรียบหลักของวิธีนี้คือค่าสัมประสิทธิ์ข้อผิดพลาดเกือบทั้งหมดมีขนาดเล็กกว่าในวิธีที่นิยม แต่ต้องใช้การดำเนินการจุดลอยตัวมากกว่าเล็กน้อยต่อขั้นตอนเวลา ตาราง Butcher ของวิธีนี้คือ

0
1/31/3
2/3−1/31
11−11
1/83/83/81/8

อย่างไรก็ตาม วิธี Runge–Kutta ที่ง่ายที่สุดคือวิธี Euler (แบบไปข้างหน้า) ซึ่งกำหนดโดยสูตรyn+1=yn+ชม.เอฟ(ทีn,yn){\displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n})}นี่เป็นวิธี Runge–Kutta ที่ชัดเจนและสอดคล้องกันเพียงวิธีเดียวที่มีขั้นตอนเดียว ตารางผลลัพธ์ที่เกี่ยวข้องคือ

0
1

วิธีการอันดับสองที่มีสองขั้นตอน

ตัวอย่างหนึ่งของวิธีการอันดับสองที่มีสองขั้นตอน ได้แก่วิธีการจุดกึ่งกลาง แบบชัดเจน :

yn+1=yn+ชม.เอฟ(ทีn+12ชม.,yn+12ชม.เอฟ(ทีn, yn)).{\displaystyle y_{n+1}=y_{n}+hf\left(t_{n}+{\frac {1}{2}}h,y_{n}+{\frac {1}{2}}hf(t_{n},\ y_{n})\right).}

ตารางที่เกี่ยวข้องคือ

0
1/21/2
01

วิธีจุดกึ่งกลางไม่ใช่เพียงวิธี Runge–Kutta อันดับสองที่มีสองขั้นตอนเท่านั้น ยังมีวิธีการดังกล่าวอีกหลายวิธี ซึ่งกำหนดพารามิเตอร์ด้วย α และกำหนดโดยสูตร[ 20 ]

yn+1=yn+ชม.((112α)เอฟ(ทีn,yn)+12αเอฟ(ทีn+αชม.,yn+αชม.เอฟ(ทีn,yn))).{\displaystyle y_{n+1}=y_{n}+h{\bigl (}(1-{\tfrac {1}{2\alpha }})f(t_{n},y_{n})+{\tfrac {1}{2\alpha }}f(t_{n}+\alpha h,y_{n}+\alpha hf(t_{n},y_{n})){\bigr )}.}

ฉากคนขายเนื้อของมันคือ

0
α{\displaystyle \alpha }α{\displaystyle \alpha }
(112α){\displaystyle (1-{\tfrac {1}{2\alpha }})}12α{\displaystyle {\tfrac {1}{2\alpha }}}

ในครอบครัวนี้α=12{\displaystyle \alpha ={\tfrac {1}{2}}}ให้วิธีการจุดกึ่งกลางα=1{\displaystyle \alpha =1}คือวิธีของ Heun [ 5 ] และα=23{\displaystyle \alpha ={\tfrac {2}{3}}}เป็นวิธีการของราลสตัน

ใช้

ยกตัวอย่างเช่น พิจารณาวิธี Runge–Kutta อันดับสองแบบสองขั้นตอนที่มี α = 2/3 หรือที่รู้จักกันในชื่อวิธี Ralstonซึ่งแสดงโดยตาราง

0
2/32/3
1/43/4

พร้อมด้วยสมการที่เกี่ยวข้อง

เค1=เอฟ(ทีn, yn),เค2=เอฟ(ทีn+23ชม., yn+23ชม.เค1),yn+1=yn+ชม.(14เค1+34เค2).{\displaystyle {\begin{aligned}k_{1}&=f(t_{n},\ y_{n}),\\k_{2}&=f(t_{n}+{\tfrac {2}{3}}h,\ y_{n}+{\tfrac {2}{3}}hk_{1}),\\y_{n+1}&=y_{n}+h\left({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2}\right).\end{aligned}}}

วิธีนี้ใช้ในการแก้ปัญหาค่าเริ่มต้น

yที=แทน(y)+1,y0=1, ที[1,1.1]{\displaystyle {\frac {dy}{dt}}=\tan(y)+1,\quad y_{0}=1,\ t\in [1,1.1]}

โดยมีขนาดขั้นตอนh = 0.025 ดังนั้นวิธีการนี้จึงต้องใช้สี่ขั้นตอน

วิธีการดำเนินการมีดังนี้:

ที0=1:{\displaystyle t_{0}=1\colon }
y0=1{\displaystyle y_{0}=1}
ที1=1.025:{\displaystyle t_{1}=1.025\colon }
y0=1{\displaystyle y_{0}=1}เค1=2.557407725{\displaystyle k_{1}=2.557407725}เค2=เอฟ(ที0+23ชม., y0+23ชม.เค1)=2.7138981400{\displaystyle k_{2}=f(t_{0}+{\tfrac {2}{3}}h,\ y_{0}+{\tfrac {2}{3}}hk_{1})=2.7138981400}
y1=y0+ชม.(14เค1+34เค2)=1.066869388_{\displaystyle y_{1}=y_{0}+h({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2})={\underline {1.066869388}}}
ที2=1.05:{\displaystyle t_{2}=1.05\colon }
y1=1.066869388{\displaystyle y_{1}=1.066869388}เค1=2.813524695{\displaystyle k_{1}=2.813524695}เค2=เอฟ(ที1+23ชม., y1+23ชม.เค1){\displaystyle k_{2}=f(t_{1}+{\tfrac {2}{3}}h,\ y_{1}+{\tfrac {2}{3}}hk_{1})}
y2=y1+ชม.(14เค1+34เค2)=1.141332181_{\displaystyle y_{2}=y_{1}+h({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2})={\underline {1.141332181}}}
ที3=1.075:{\displaystyle t_{3}=1.075\colon }
y2=1.141332181{\displaystyle y_{2}=1.141332181}เค1=3.183536647{\displaystyle k_{1}=3.183536647}เค2=เอฟ(ที2+23ชม., y2+23ชม.เค1){\displaystyle k_{2}=f(t_{2}+{\tfrac {2}{3}}h,\ y_{2}+{\tfrac {2}{3}}hk_{1})}
y3=y2+ชม.(14เค1+34เค2)=1.227417567_{\displaystyle y_{3}=y_{2}+h({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2})={\underline {1.227417567}}}
ที4=1.1:{\displaystyle t_{4}=1.1\colon }
y3=1.227417567{\displaystyle y_{3}=1.227417567}เค1=3.796866512{\displaystyle k_{1}=3.796866512}เค2=เอฟ(ที3+23ชม., y3+23ชม.เค1){\displaystyle k_{2}=f(t_{3}+{\tfrac {2}{3}}h,\ y_{3}+{\tfrac {2}{3}}hk_{1})}
y4=y3+ชม.(14เค1+34เค2)=1.335079087_.{\displaystyle y_{4}=y_{3}+h({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2})={\underline {1.335079087}}.}

ค่าที่ขีดเส้นใต้แสดงถึงคำตอบเชิงตัวเลข

วิธีการรันเก-คุตตะโดยปริยาย

โดยทั่วไปแล้ว วิธี Runge–Kutta แบบชัดเจนไม่เหมาะสำหรับการแก้สมการแข็งเนื่องจากขอบเขตของเสถียรภาพสัมบูรณ์มีขนาดเล็ก โดยเฉพาะอย่างยิ่งมีขอบเขตจำกัด[ 21 ] ปัญหานี้มีความสำคัญอย่างยิ่งในการแก้สมการเชิงอนุพันธ์ย่อย

ความไม่เสถียรของวิธีการรันเก-คุตตะแบบชัดแจ้งเป็นแรงผลักดันให้เกิดการพัฒนาวิธีการรันเก-คุตตะแบบไม่ชัดแจ้ง วิธีการรันเก-คุตตะแบบไม่ชัดแจ้งมีรูปแบบดังนี้

yn+1=yn+ชม.ฉัน=1ฉันเคฉัน,{\displaystyle y_{n+1}=y_{n}+h\sum _{i=1}^{s}b_{i}k_{i},}

ที่ไหน

เคฉัน=เอฟ(ทีn+ฉันชม., yn+ชม.เจ=1เอฉันเจเคเจ),ฉัน=1,,.{\displaystyle k_{i}=f\left(t_{n}+c_{i}h,\ y_{n}+h\sum _{j=1}^{s}a_{ij}k_{j}\right),\quad i=1,\ldots ,s.}[ 22 ]

ความแตกต่างกับวิธีการที่ชัดเจนคือ ในวิธีการที่ชัดเจน ผลรวมเหนือjจะไปถึงแค่i − 1 เท่านั้น [ 23 ]สิ่งนี้ยังปรากฏในตาราง Butcher ด้วย นั่นคือเมทริกซ์สัมประสิทธิ์เอฉันเจ{\displaystyle a_{ij}}ของวิธีการที่ชัดเจนนั้นเป็นเมทริกซ์สามเหลี่ยมล่าง ในวิธีการโดยปริยาย ผลรวมเหนือjจะเพิ่มขึ้นเป็นsและเมทริกซ์สัมประสิทธิ์ไม่ใช่เมทริกซ์สามเหลี่ยมอย่างเคร่งครัด ทำให้ได้ตาราง Butcher ในรูปแบบ[ 18 ]

1เอ11เอ12เอ12เอ21เอ22เอ2เอ1เอ2เอ12=เอที{\displaystyle {\begin{array}{c|cccc}c_{1}&a_{11}&a_{12}&\dots &a_{1s}\\c_{2}&a_{21}&a_{22}&\dots &a_{2s}\\\vdots &\vdots &\vdots &\ddots &\vdots \\c_{s}&a_{s1}&a_{s2}&\dots &a_{ss}\\\hline &b_{1}&b_{2}&\dots &b_{s}\\\end{array}}={\begin{array}{c|c}\mathbf {c} &A\\\hline &\mathbf {b^{T}} \\\end{array}}}

ผลที่ตามมาของความแตกต่างนี้คือ ในแต่ละขั้นตอน จะต้องแก้ระบบสมการพีชคณิต ซึ่งจะเพิ่มต้นทุนการคำนวณอย่างมาก หากใช้ วิธีที่มี s ขั้นตอนในการแก้สมการเชิงอนุพันธ์ที่มี mส่วนประกอบ ระบบสมการพีชคณิตจะมีmsส่วนประกอบ ซึ่งสามารถเปรียบเทียบได้กับวิธีการหลายขั้นตอนเชิงเส้น แบบปริยาย (ซึ่งเป็นอีกกลุ่มใหญ่ของวิธีการสำหรับ ODE): วิธีการหลายขั้นตอนเชิงเส้นแบบปริยายsขั้นตอนจำเป็นต้องแก้ระบบสมการพีชคณิตที่มีเพียงmส่วนประกอบเท่านั้น ดังนั้นขนาดของระบบจึงไม่เพิ่มขึ้นเมื่อจำนวนขั้นตอนเพิ่มขึ้น[ 24 ]

ตัวอย่าง

ตัวอย่างที่ง่ายที่สุดของวิธีการ Runge–Kutta แบบไม่ชัดเจนคือวิธีการ Euler แบบย้อนกลับ :

yn+1=yn+ชม.เอฟ(ทีn+ชม., yn+1).{\displaystyle y_{n+1}=y_{n}+hf(t_{n}+h,\ y_{n+1}).\,}

ภาพประกอบสำหรับเรื่องนี้โดยสรุปก็คือ:

111{\displaystyle {\begin{array}{c|c}1&1\\\hline &1\\\end{array}}}

ตารางแสดงภาพคนขายเนื้อนี้สอดคล้องกับสูตรต่างๆ

เค1=เอฟ(ทีn+ชม., yn+ชม.เค1)และyn+1=yn+ชม.เค1,{\displaystyle k_{1}=f(t_{n}+h,\ y_{n}+hk_{1})\quad {\text{and}}\quad y_{n+1}=y_{n}+hk_{1},}

ซึ่งสามารถนำมาจัดเรียงใหม่เพื่อให้ได้สูตรสำหรับวิธีการออยเลอร์แบบย้อนกลับที่ระบุไว้ข้างต้น

อีกตัวอย่างหนึ่งของวิธีการ Runge–Kutta แบบไม่ชัดเจนคือกฎสี่เหลี่ยมคางหมูตาราง Butcher ของกฎนี้คือ:

00011212121210{\displaystyle {\begin{array}{c|cc}0&0&0\\1&{\frac {1}{2}}&{\frac {1}{2}}\\\hline &{\frac {1}{2}}&{\frac {1}{2}}\\&1&0\\\end{array}}}

กฎสี่เหลี่ยมคางหมูเป็นวิธีการจัดเรียง (ตามที่ได้กล่าวไว้ในบทความนั้น) วิธีการจัดเรียงทั้งหมดเป็นวิธีการ Runge–Kutta โดยปริยาย แต่ไม่ใช่ว่าวิธีการ Runge–Kutta โดยปริยายทั้งหมดจะเป็นวิธีการจัดเรียง[ 25 ]

วิธีการ Gauss –Legendreเป็นกลุ่มของวิธีการจัดเรียงตามGauss quadratureวิธีการ Gauss–Legendre ที่มีsขั้นตอนจะมีลำดับ 2s (ดังนั้น วิธีการที่มีลำดับสูงตามอำเภอใจจึงสามารถสร้างได้) [ 26 ]วิธีการที่มีสองขั้นตอน (และดังนั้นลำดับสี่) มีตาราง Butcher:

12163141416312+16314+16314121212+12312123{\displaystyle {\begin{array}{c|cc}{\frac {1}{2}}-{\frac {1}{6}}{\sqrt {3}}&{\frac {1}{4}}&{\frac {1}{4}}-{\frac {1}{6}}{\sqrt {3}}\\{\frac {1}{2}}+{\frac {1}{6}}{\sqrt {3}}&{\frac {1}{4}}+{\frac {1}{6}}{\sqrt {3}}&{\frac {1}{4}}\\\hline &{\frac {1}{2}}&{\frac {1}{2}}\\&{\frac {1}{2}}+{\frac {1}{2}}{\sqrt {3}}&{\frac {1}{2}}-{\frac {1}{2}}{\sqrt {3}}\end{array}}}[ 24 ]

ความเสถียร

ข้อดีของวิธีการรันเก-คุตตาแบบไม่ชัดแจ้งเมื่อเทียบกับแบบชัดแจ้งคือความเสถียรที่มากกว่า โดยเฉพาะอย่างยิ่งเมื่อนำไปใช้กับสมการที่ซับซ้อนพิจารณาสมการทดสอบเชิงเส้นy=λy{\displaystyle y'=\lambda y}วิธี Runge–Kutta ที่ใช้กับสมการนี้จะลดลงเหลือการวนซ้ำyn+1=(ชม.λ)yn{\displaystyle y_{n+1}=r(h\lambda )\,y_{n}}โดยที่rกำหนดโดย

(z)=1+zที(ฉันzเอ)1อี=เดท(ฉันzเอ+zอีที)เดท(ฉันzเอ),{\displaystyle r(z)=1+zb^{T}(I-zA)^{-1}e={\frac {\det(I-zA+zeb^{T})}{\det(I-zA)}},}[ 27 ]

โดยที่eหมายถึงเวกเตอร์ของเลขหนึ่ง ฟังก์ชันrเรียกว่าฟังก์ชันเสถียรภาพ[ 28 ]จากสูตรนี้rจะเป็นผลหารของพหุนามสองตัวที่มีดีกรีsหากวิธีการมีsขั้นตอน วิธีการที่ชัดเจนจะมีเมทริกซ์สามเหลี่ยมล่างA อย่างเคร่งครัด ซึ่งหมายความว่า det( IzA ) = 1 และฟังก์ชันเสถียรภาพเป็นพหุนาม[ 29 ]

วิธีแก้ปัญหาเชิงตัวเลขของสมการทดสอบเชิงเส้นจะลดลงเหลือศูนย์หาก | r ( z ) | < 1 โดยที่z = h λ เซตของz ดัง กล่าวเรียกว่าโดเมนของความเสถียรสัมบูรณ์โดยเฉพาะอย่างยิ่ง วิธีการนี้กล่าวได้ว่ามีความเสถียรสัมบูรณ์ หาก zทั้งหมดที่มี Re( z ) < 0 อยู่ในโดเมนของความเสถียรสัมบูรณ์ ฟังก์ชันความเสถียรของวิธีการ Runge–Kutta แบบชัดเจนเป็นพหุนาม ดังนั้นวิธีการ Runge–Kutta แบบชัดเจนจึงไม่มีทางมีความเสถียรแบบ A ได้[ 29 ]

ถ้าวิธีการนั้นมีลำดับpแล้ว ฟังก์ชันเสถียรภาพจะสอดคล้องกับ(z)=อีz+โอ(zพี+1){\displaystyle r(z)={\textrm {e}}^{z}+O(z^{p+1})}เช่นz0{\displaystyle z\to 0}ดังนั้น การศึกษาผลหารของพหุนามที่มีดีกรีที่กำหนดซึ่งประมาณฟังก์ชันเลขชี้กำลังได้ดีที่สุดจึงน่าสนใจ สิ่งเหล่านี้เรียกว่าตัวประมาณ Padéตัวประมาณ Padé ที่มีตัวเศษดีกรีmและตัวส่วนดีกรีnจะมีเสถียรภาพแบบ A ก็ต่อเมื่อmnm + 2 [ 30 ]

วิธี Gauss–Legendre ที่มีsขั้นตอนมีลำดับ 2s ดังนั้นฟังก์ชันเสถียรภาพของมันจึงเป็นตัวประมาณ Padé ที่มีm = n = sซึ่งแสดงให้เห็นว่าวิธีนี้มีเสถียรภาพแบบ A [ 31 ] สิ่งนี้แสดงให้เห็นว่า Runge–Kutta ที่มีเสถียรภาพแบบ A สามารถมีลำดับสูงได้ตามอำเภอใจ ในทางตรงกันข้าม ลำดับของ วิธีการหลายขั้นตอนเชิงเส้นที่มีเสถียรภาพแบบ A ไม่สามารถเกินสองได้[ 32 ]

วิธีการ Runge–Kutta แบบปรับตัวได้

วิธีการปรับตัวถูกออกแบบมาเพื่อสร้างค่าประมาณของข้อผิดพลาดการตัดทอนเฉพาะที่ของขั้นตอน Runge–Kutta เดียว โดยทำได้โดยใช้สองวิธี วิธีหนึ่งมีลำดับพี{\displaystyle p}และหนึ่งรายการที่มีคำสั่งพี1{\displaystyle p-1}วิธีการเหล่านี้เชื่อมโยงกัน กล่าวคือ มีขั้นตอนกลางที่เหมือนกัน ด้วยเหตุนี้ การประมาณค่าความคลาดเคลื่อนจึงใช้ต้นทุนการคำนวณน้อยหรือแทบไม่มีเลย เมื่อเทียบกับขั้นตอนที่ใช้วิธีการลำดับสูงกว่า

ในระหว่างการคำนวณแบบอินทิเกรต ขนาดของขั้นตอนจะถูกปรับเพื่อให้ค่าความคลาดเคลื่อนที่คาดการณ์ไว้ต่ำกว่าเกณฑ์ที่ผู้ใช้กำหนด: หากค่าความคลาดเคลื่อนสูงเกินไป ขั้นตอนจะถูกทำซ้ำด้วยขนาดขั้นตอนที่เล็กลง หากค่าความคลาดเคลื่อนน้อยลงมาก ขนาดของขั้นตอนจะถูกเพิ่มขึ้นเพื่อประหยัดเวลา วิธีนี้ส่งผลให้ได้ขนาดขั้นตอนที่เหมาะสมที่สุด (เกือบจะ) ซึ่งช่วยประหยัดเวลาในการคำนวณ นอกจากนี้ ผู้ใช้ไม่จำเป็นต้องเสียเวลาในการค้นหาขนาดขั้นตอนที่เหมาะสมอีกด้วย

ขั้นตอนลำดับต่ำกว่ากำหนดโดย

yn+1*=yn+ชม.ฉัน=1ฉัน*เคฉัน,{\displaystyle y_{n+1}^{*}=y_{n}+h\sum _{i=1}^{s}b_{i}^{*}k_{i},}

ที่ไหนเคฉัน{\displaystyle k_{i}}เหมือนกับวิธีการลำดับสูงกว่า ดังนั้นข้อผิดพลาดคือ

อีn+1=yn+1yn+1*=ชม.ฉัน=1(ฉันฉัน*)เคฉัน,{\displaystyle e_{n+1}=y_{n+1}-y_{n+1}^{*}=h\sum _{i=1}^{s}(b_{i}-b_{i}^{*})k_{i},}

ซึ่งคือโอ(ชม.พี){\displaystyle O(h^{p})}ตาราง Butcher สำหรับวิธีการประเภทนี้ได้รับการขยายเพื่อให้ได้ค่าของฉัน*{\displaystyle b_{i}^{*}}:

1เอ11เอ12เอ12เอ21เอ22เอ2เอ1เอ2เอ121*2**{\displaystyle {\begin{array}{c|cccc}c_{1}&a_{11}&a_{12}&\dots &a_{1s}\\c_{2}&a_{21}&a_{22}&\dots &a_{2s}\\\vdots &\vdots &\vdots &\ddots &\vdots \\c_{s}&a_{s1}&a_{s2}&\dots &a_{ss}\\\hline &b_{1}&b_{2}&\dots &b_{s}\\&b_{1}^{*}&b_{2}^{*}&\dots &b_{s}^{*}\\\end{array}}}

วิธี Runge –Kutta–Fehlbergมีสองวิธี คือ วิธีลำดับที่ 5 และวิธีลำดับที่ 4 ตาราง Butcher ที่ขยายแล้วมีดังนี้:

0
1/41/4
3/83/329/32
12/131932/2197−7200/21977296/2197
1439/216−83680/513-845/4104
1/2−8/272−3544/25651859/4104−11/40
16/13506656/1282528561/56430-9/502/55
25/21601408/25652197/4104−1/50

อย่างไรก็ตาม วิธี Runge–Kutta แบบปรับตัวที่ง่ายที่สุดนั้นเกี่ยวข้องกับการรวมวิธีของ Heunซึ่งมีลำดับที่ 2 เข้ากับวิธีของ Eulerซึ่งมีลำดับที่ 1 ตาราง Butcher ที่ขยายแล้วมีดังนี้:

0
11
1/21/2
10

วิธีการ Runge–Kutta แบบปรับตัวได้อื่นๆ ได้แก่วิธี Bogacki–Shampine (ลำดับที่ 3 และ 2), วิธี Cash–Karpและวิธี Dormand–Prince (ทั้งสองวิธีมีลำดับที่ 5 และ 4)

วิธีการรันเก-คุตตาแบบไม่ต่อเนื่อง

กล่าวกันว่าวิธี Runge–Kutta ไม่มีการบรรจบกัน[ 33 ]หากทั้งหมดฉัน,ฉัน=1,2,,{\displaystyle c_{i},\,i=1,2,\ldots ,s}แตกต่างกันอย่างชัดเจน

วิธีรุ่งเง-คุตตะ-นิสตรอม

วิธีการ Runge–Kutta–Nyström (RKN) เป็นกลุ่มของวิธีการที่ใช้หลักการเดียวกันกับวิธีการ Runge–Kutta แต่สำหรับปัญหาค่าเริ่มต้นอันดับสอง[ 34 ] [ 35 ]ดังนั้นปัญหาในรูปแบบ :

2yที2=เอฟ(ที,yที,y),y(ที0)=y0,yที(ที0)=y0.{\displaystyle {\frac {d^{2}y}{dt^{2}}}=f(t,{\frac {dy}{dt}},y),\quad y(t_{0})=y_{0},\quad {\frac {dy}{dt}}(t_{0})=y'_{0}.}

มีอนุพันธ์สองตัวและค่าประมาณสองค่า ดังนั้นวิธีการ Runge-Kutta-Nyström จึงใช้เมทริกซ์ Runge-Kutta สองตัวเอฉันเจ,เอฉันเจ{\displaystyle a_{ij},a'_{ij}}และตุ้มน้ำหนักสองชุดฉัน,ฉัน{\displaystyle b_{i},b'_{i}}แต่ยังคงต้องการเพียงชุดโหนดเดียวเท่านั้นฉัน{\displaystyle c_{i}}ซึ่งจะได้โต๊ะสำหรับชำแหละเนื้อที่มีรูปทรงดังนี้ :

1เอ11เอ12เอ12เอ21เอ22เอ2เอ1เอ2เอเอ11เอ12เอ1เอ21เอ22เอ2เอ1เอ2เอ1212=เอเอ{\displaystyle {\begin{array}{c|cccc}c_{1}&a_{11}&a_{12}&\dots &a_{1s}\\c_{2}&a_{21}&a_{22}&\dots &a_{2s}\\\vdots &\vdots &\vdots &\ddots &\vdots \\c_{s}&a_{s1}&a_{s2}&\dots &a_{ss}\\\hline &a'_{11}&a'_{12}&\dots &a'_{1s}\\&a'_{21}&a'_{22}&\dots &a'_{2s}\\&\vdots &\vdots &\ddots &\vdots \\&a'_{s1}&a'_{s2}&\dots &a'_{ss}\\\hline &b_{1}&b_{2}&\dots &b_{s}\\&b'_{1}&b'_{2}&\dots &b'_{s}\\\end{array}}={\begin{array}{c|c}\mathbf {c} &\mathbf {A} \\\hline &\mathbf {A'} \\\hline &\mathbf {b} ^{\top }\\&\mathbf {b'} ^{\top }\end{array}}}

สมมติว่าการประมาณค่าได้ดำเนินการจนถึงระดับหนึ่งแล้วทีn{\displaystyle t_{n}}, กับyn{\displaystyle y_{n}}การประมาณค่าของy(ทีn){\displaystyle y(t_{n})}และyn{\displaystyle y'_{n}}การประมาณค่าของyที(ทีn){\displaystyle {\frac {dy}{dt}}(t_{n})}การประมาณค่าyn+1,yn+1{\displaystyle y_{n+1},y'_{n+1}}ที่ทีn+1=ทีn+ชม.{\displaystyle t_{n+1}=t_{n}+h}คำตอบของระบบสมการต่อไปนี้คือ :

{จีฉัน=yn+ฉันชม.yn+ชม.2เจ=1เอฉันเจเอฟ(ทีn+เจชม.,จีเจ,จีเจ),ฉัน=1,2,,จีฉัน=yn+ชม.เจ=1เอฉันเจเอฟ(ทีn+เจชม.,จีเจ,จีเจ),ฉัน=1,2,,yn+1=yn+ชม.yn+ชม.2เจ=1เจเอฟ(ทีn+เจชม.,จีเจ,จีเจ)yn+1=yn+ชม.เจ=1เจเอฟ(ทีn+เจชม.,จีเจ,จีเจ){\displaystyle {\begin{cases}g_{i}=y_{n}+c_{i}hy'_{n}+h^{2}\sum _{j=1}^{s}a_{ij}f(t_{n}+c_{j}h,g'_{j},g_{j}),&i=1,2,\ldots ,s\\g'_{i}=y'_{n}+h\sum _{j=1}^{s}a'_{ij}f(t_{n}+c_{j}h,g'_{j},g_{j}),&i=1,2,\ldots ,s\\\\y_{n+1}=y_{n}+hy'_{n}+h^{2}\sum _{j=1}^{s}b_{j}f(t_{n}+c_{j}h,g'_{j},g_{j})\\y'_{n+1}=y'_{n}+h\sum _{j=1}^{s}b'_{j}f(t_{n}+c_{j}h,g'_{j},g_{j})\end{cases}}}

ที่ไหนจีฉัน,จีฉัน{\displaystyle g_{i},g'_{i}}เป็นการประมาณค่าระดับกลางของy{\displaystyle y}และyที{\displaystyle {\frac {dy}{dt}}}มันเทียบเท่ากับการทำงานกับค่าต่างๆ อย่างเคร่งครัดเคเจ=เอฟ(ทีn+เจชม.,จีเจ,จีเจ){\displaystyle k_{j}=f(t_{n}+c_{j}h,g'_{j},g_{j})}ที่ซึ่งจีเจ,จีเจ{\displaystyle g_{j},g'_{j}}ได้ถูกแทนที่ด้วยสูตรของพวกเขา แทนที่จะทำงานร่วมกับจีฉัน,จีฉัน{\displaystyle g_{i},g'_{i}}ในทำนองเดียวกันกับที่เราเคยทำกับวิธีการ Runge-Kutta แต่ระบบนี้เขียนได้ง่ายกว่าด้วยวิธีนี้

วิธีการ Runge-Kutta-Nyström จะเรียกว่าเป็นแบบชัดเจน (explicit) ถ้าทั้งเอ,เอ{\displaystyle A,A'}เป็นเมทริกซ์สามเหลี่ยมล่างอย่างเคร่งครัด และในกรณีนี้ ผลรวมเจ=1{\textstyle \sum _{j=1}^{s}}ในการแสดงออกของจีฉัน,จีฉัน{\displaystyle g_{i},g'_{i}}อาจถูกแทนที่ด้วยเจ=1ฉัน1{\textstyle \sum _{j=1}^{i-1}}[ 36 ]นอกจากนี้ วิธี Runge-Kutta-Nyström ยังกล่าวกันว่ามีลำดับพี{\displaystyle p}หากข้อผิดพลาดการตัดทอนในพื้นที่ของทั้งสองyn+1,yn+1{\displaystyle y_{n+1},y'_{n+1}}เป็นโอ(ชม.พี+1){\displaystyle O(h^{p+1})}.

ถ้าฟังก์ชันเอฟ{\displaystyle f}ปัญหาค่าเริ่มต้นที่พิจารณานั้นเป็นอิสระจากyที{\displaystyle {\frac {dy}{dt}}}ไม่จำเป็นต้องประมาณค่าระหว่างกลางจีฉัน{\displaystyle g'_{i}}เพื่อคำนวณค่าประมาณและน้ำหนักเอฉันเจ{\displaystyle a'_{ij}}ดังนั้น วิธีการเหล่านั้นจึงไร้ประโยชน์ และเราจึงเขียนวิธีการที่ใช้เฉพาะกรณีพิเศษนี้ขึ้นมาแทน โดยใช้ตารางในรูปแบบดังนี้ :

1เอ11เอ12เอ12เอ21เอ22เอ2เอ1เอ2เอ1212=เอ{\displaystyle {\begin{array}{c|cccc}c_{1}&a_{11}&a_{12}&\dots &a_{1s}\\c_{2}&a_{21}&a_{22}&\dots &a_{2s}\\\vdots &\vdots &\vdots &\ddots &\vdots \\c_{s}&a_{s1}&a_{s2}&\dots &a_{ss}\\\hline &b_{1}&b_{2}&\dots &b_{s}\\&b'_{1}&b'_{2}&\dots &b'_{s}\\\end{array}}={\begin{array}{c|c}\mathbf {c} &\mathbf {A} \\\hline &\mathbf {b} ^{\top }\\&\mathbf {b'} ^{\top }\end{array}}}

กรณีพิเศษนี้มีความน่าสนใจเป็นพิเศษ เนื่องจากช่วยให้ได้ลำดับที่สูงกว่าที่วิธีการ Runge-Kutta-Nyström ทั่วไปสามารถทำได้ ตัวอย่างเช่น วิธีการ RKN ลำดับที่สี่แบบชัดเจนสองวิธีแสดงอยู่ในตาราง Butcher ต่อไปนี้:

ฉันเอฉันเจ3+360003362312003+360360ฉัน32312123+2312ฉัน533243+3121+324{\displaystyle {\begin{array}{c|ccc}c_{i}&&a_{ij}&\\{\frac {3+{\sqrt {3}}}{6}}&0&0&0\\{\frac {3-{\sqrt {3}}}{6}}&{\frac {2-{\sqrt {3}}}{12}}&0&0\\{\frac {3+{\sqrt {3}}}{6}}&0&{\frac {\sqrt {3}}{6}}&0\\\hline b_{i}&{\frac {3-2{\sqrt {3}}}{12}}&{\frac {1}{2}}&{\frac {3+2{\sqrt {3}}}{12}}\\\hline b'_{i}&{\frac {5-3{\sqrt {3}}}{24}}&{\frac {3+{\sqrt {3}}}{12}}&{\frac {1+{\sqrt {3}}}{24}}\\\end{array}}}ฉันเอฉันเจ3360003+362+312003360360ฉัน3+23121232312ฉัน5+332433121324{\displaystyle {\begin{array}{c|ccc}c_{i}&&a_{ij}&\\{\frac {3-{\sqrt {3}}}{6}}&0&0&0\\{\frac {3+{\sqrt {3}}}{6}}&{\frac {2+{\sqrt {3}}}{12}}&0&0\\{\frac {3-{\sqrt {3}}}{6}}&0&-{\frac {\sqrt {3}}{6}}&0\\\hline b_{i}&{\frac {3+2{\sqrt {3}}}{12}}&{\frac {1}{2}}&{\frac {3-2{\sqrt {3}}}{12}}\\\hline b'_{i}&{\frac {5+3{\sqrt {3}}}{24}}&{\frac {3-{\sqrt {3}}}{12}}&{\frac {1-{\sqrt {3}}}{24}}\\\end{array}}}

แผนการทั้งสองนี้ยังมีคุณสมบัติในการรักษาสภาพเชิงซิมเพล็กติกเมื่อสมการดั้งเดิมได้มาจากระบบกลศาสตร์คลาสสิกแบบอนุรักษ์ กล่าวคือเมื่อ

เอฟฉัน(x1,,xn)=วีxฉัน(x1,,xn){\displaystyle f_{i}(x_{1},\ldots ,x_{n})={\frac {\partial V}{\partial x_{i}}}(x_{1},\ldots ,x_{n})}

สำหรับฟังก์ชันสเกลาร์บางฟังก์ชันวี{\displaystyle V}[ 37 ]

ความเสถียรของบี

แนวคิดเรื่องเสถียรภาพ Aสำหรับการแก้สมการเชิงอนุพันธ์นั้นเกี่ยวข้องกับสมการเชิงเส้นแบบอิสระy=λy{\displaystyle y'=\lambda y}Dahlquist (1963)เสนอให้ศึกษาเสถียรภาพของวิธีการเชิงตัวเลขเมื่อนำไปใช้กับระบบไม่เชิงเส้นที่ตรงตามเงื่อนไขความเป็นเอกรูป แนวคิดที่เกี่ยวข้องได้รับการกำหนดเป็นเสถียรภาพแบบ Gสำหรับวิธีการหลายขั้นตอน (และวิธีการขาเดียวที่เกี่ยวข้อง) และเสถียรภาพแบบ B (Butcher, 1975) สำหรับวิธีการ Runge–Kutta วิธีการ Runge–Kutta ที่นำไปใช้กับระบบไม่เชิงเส้นy=เอฟ(y){\displaystyle y'=f(y)}ซึ่งเป็นการตรวจสอบยืนยันเอฟ(y)เอฟ(z), yz0{\displaystyle \langle f(y)-f(z),\ y-z\rangle \leq 0}เรียกว่าB-stableถ้าเงื่อนไขนี้หมายความว่าyn+1zn+1ynzn{\displaystyle \|y_{n+1}-z_{n+1}\|\leq \|y_{n}-z_{n}\|}สำหรับสองวิธีแก้ปัญหาเชิงตัวเลข

อนุญาตบี{\displaystyle B},เอ็ม{\displaystyle M}และคิว{\displaystyle Q}เป็นสาม×{\displaystyle s\times s}เมทริกซ์ที่กำหนดโดย บี=ไดอะก์(1,2,,),เอ็ม=บีเอ+เอทีบีที,คิว=บีเอ1+เอทีบีเอทีทีเอ1.{\displaystyle {\begin{aligned}B&=\operatorname {diag} (b_{1},b_{2},\ldots ,b_{s}),\\[4pt]M&=BA+A^{T}B-bb^{T},\\[4pt]Q&=BA^{-1}+A^{-T}B-A^{-T}bb^{T}A^{-1}.\end{aligned}}} กล่าวกันว่าวิธี Runge–Kutta มีเสถียรภาพทางพีชคณิต[ 38 ]หากเมทริกซ์บี{\displaystyle B}และเอ็ม{\displaystyle M}ทั้งสองเป็นค่าบวกที่ไม่เป็นลบแน่นอน เงื่อนไขที่เพียงพอสำหรับความเสถียรของ B [ 39 ]คือ:บี{\displaystyle B}และคิว{\displaystyle Q}เป็นเมทริกซ์บวกแน่นอนที่ไม่เป็นลบ

การหาที่มาของวิธีรันเกอ-คุตตะลำดับที่สี่

โดยทั่วไป วิธี Runge–Kutta ลำดับ{\displaystyle s}สามารถเขียนได้ดังนี้:

yที+ชม.=yที+ชม.ฉัน=1เอฉันเคฉัน+โอ(ชม.+1),{\displaystyle y_{t+h}=y_{t}+h\cdot \sum _{i=1}^{s}a_{i}k_{i}+{\mathcal {O}}(h^{s+1}),}

ที่ไหน:

เคฉัน=เจ=1เบต้าฉันเจเอฟ(เคเจ, ทีn+αฉันชม.){\displaystyle k_{i}=\sum _{j=1}^{s}\beta _{ij}f(k_{j},\ t_{n}+\alpha _{i}h)}

คือค่าเพิ่มขึ้นที่ได้จากการประเมินอนุพันธ์ของyที{\displaystyle y_{t}}ที่ฉัน{\displaystyle i}ลำดับที่ -

เราพัฒนาการคำนวณ[ 40 ]สำหรับวิธีการ Runge–Kutta อันดับสี่โดยใช้สูตรทั่วไปด้วย=4{\displaystyle s=4}ประเมินผลตามที่อธิบายไว้ข้างต้น ณ จุดเริ่มต้น จุดกึ่งกลาง และจุดสิ้นสุดของช่วงเวลาใดๆ(ที, ที+ชม.){\displaystyle (t,\ t+h)}ดังนั้น เราจึงเลือก:

αฉันเบต้าฉันเจα1=0เบต้า21=12α2=12เบต้า32=12α3=12เบต้า43=1α4=1{\displaystyle {\begin{aligned}&\alpha _{i}&&\beta _{ij}\\\alpha _{1}&=0&\beta _{21}&={\frac {1}{2}}\\\alpha _{2}&={\frac {1}{2}}&\beta _{32}&={\frac {1}{2}}\\\alpha _{3}&={\frac {1}{2}}&\beta _{43}&=1\\\alpha _{4}&=1&&\\\end{aligned}}}

และเบต้าฉันเจ=0{\displaystyle \beta _{ij}=0}มิฉะนั้น เราจะเริ่มต้นด้วยการกำหนดปริมาณต่อไปนี้:

yที+ชม.1=yที+ชม.เอฟ(yที, ที)yที+ชม.2=yที+ชม.เอฟ(yที+ชม./21, ที+ชม.2)yที+ชม.3=yที+ชม.เอฟ(yที+ชม./22, ที+ชม.2){\displaystyle {\begin{aligned}y_{t+h}^{1}&=y_{t}+hf\left(y_{t},\ t\right)\\y_{t+h}^{2}&=y_{t}+hf\left(y_{t+h/2}^{1},\ t+{\frac {h}{2}}\right)\\y_{t+h}^{3}&=y_{t}+hf\left(y_{t+h/2}^{2},\ t+{\frac {h}{2}}\right)\end{aligned}}}

ที่ไหนyที+ชม./21=yที+yที+ชม.12{\displaystyle y_{t+h/2}^{1}={\dfrac {y_{t}+y_{t+h}^{1}}{2}}}และyที+ชม./22=yที+yที+ชม.22.{\displaystyle y_{t+h/2}^{2}={\dfrac {y_{t}+y_{t+h}^{2}}{2}}.} ถ้าเรากำหนดนิยามดังนี้:

เค1=เอฟ(yที, ที)เค2=เอฟ(yที+ชม./21, ที+ชม.2)=เอฟ(yที+ชม.2เค1, ที+ชม.2)เค3=เอฟ(yที+ชม./22, ที+ชม.2)=เอฟ(yที+ชม.2เค2, ที+ชม.2)เค4=เอฟ(yที+ชม.3, ที+ชม.)=เอฟ(yที+ชม.เค3, ที+ชม.){\displaystyle {\begin{aligned}k_{1}&=f(y_{t},\ t)\\k_{2}&=f\left(y_{t+h/2}^{1},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}k_{1},\ t+{\frac {h}{2}}\right)\\k_{3}&=f\left(y_{t+h/2}^{2},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}k_{2},\ t+{\frac {h}{2}}\right)\\k_{4}&=f\left(y_{t+h}^{3},\ t+h\right)=f\left(y_{t}+hk_{3},\ t+h\right)\end{aligned}}}

และสำหรับความสัมพันธ์ก่อนหน้านี้ เราสามารถแสดงให้เห็นว่าความเท่าเทียมกันต่อไปนี้เป็นจริงจนถึงโอ(ชม.2){\displaystyle {\mathcal {O}}(h^{2})}:เค2=เอฟ(yที+ชม./21, ที+ชม.2)=เอฟ(yที+ชม.2เค1, ที+ชม.2)=เอฟ(yที, ที)+ชม.2ทีเอฟ(yที, ที)เค3=เอฟ(yที+ชม./22, ที+ชม.2)=เอฟ(yที+ชม.2เอฟ(yที+ชม.2เค1, ที+ชม.2), ที+ชม.2)=เอฟ(yที, ที)+ชม.2ที[เอฟ(yที, ที)+ชม.2ทีเอฟ(yที, ที)]เค4=เอฟ(yที+ชม.3, ที+ชม.)=เอฟ(yที+ชม.เอฟ(yที+ชม.2เค2, ที+ชม.2), ที+ชม.)=เอฟ(yที+ชม.เอฟ(yที+ชม.2เอฟ(yที+ชม.2เอฟ(yที, ที), ที+ชม.2), ที+ชม.2), ที+ชม.)=เอฟ(yที, ที)+ชม.ที[เอฟ(yที, ที)+ชม.2ที[เอฟ(yที, ที)+ชม.2ทีเอฟ(yที, ที)]]{\displaystyle {\begin{aligned}k_{2}&=f\left(y_{t+h/2}^{1},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}k_{1},\ t+{\frac {h}{2}}\right)\\&=f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f\left(y_{t},\ t\right)\\k_{3}&=f\left(y_{t+h/2}^{2},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}f\left(y_{t}+{\frac {h}{2}}k_{1},\ t+{\frac {h}{2}}\right),\ t+{\frac {h}{2}}\right)\\&=f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f\left(y_{t},\ t\right)\right]\\k_{4}&=f\left(y_{t+h}^{3},\ t+h\right)=f\left(y_{t}+hf\left(y_{t}+{\frac {h}{2}}k_{2},\ t+{\frac {h}{2}}\right),\ t+h\right)\\&=f\left(y_{t}+hf\left(y_{t}+{\frac {h}{2}}f\left(y_{t}+{\frac {h}{2}}f\left(y_{t},\ t\right),\ t+{\frac {h}{2}}\right),\ t+{\frac {h}{2}}\right),\ t+h\right)\\&=f\left(y_{t},\ t\right)+h{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f\left(y_{t},\ t\right)\right]\right]\end{aligned}}} ที่ไหน:ทีเอฟ(yที, ที)=yเอฟ(yที, ที)y˙ที+ทีเอฟ(yที, ที)=เอฟy(yที, ที)y˙ที+เอฟที(yที, ที):=y¨ที{\displaystyle {\frac {d}{dt}}f(y_{t},\ t)={\frac {\partial }{\partial y}}f(y_{t},\ t){\dot {y}}_{t}+{\frac {\partial }{\partial t}}f(y_{t},\ t)=f_{y}(y_{t},\ t){\dot {y}}_{t}+f_{t}(y_{t},\ t):={\ddot {y}}_{t}} คืออนุพันธ์รวมของเอฟ{\displaystyle f}โดยคำนึงถึงเวลา

ถ้าเราแสดงสูตรทั่วไปโดยใช้สิ่งที่เราเพิ่งได้มา เราจะได้:yที+ชม.=yที+ชม.{เอเอฟ(yที, ที)+[เอฟ(yที, ที)+ชม.2ทีเอฟ(yที, ที)]++[เอฟ(yที, ที)+ชม.2ที[เอฟ(yที, ที)+ชม.2ทีเอฟ(yที, ที)]]++[เอฟ(yที, ที)+ชม.ที[เอฟ(yที, ที)+ชม.2ที[เอฟ(yที, ที)+ชม.2ทีเอฟ(yที, ที)]]]}+โอ(ชม.5)=yที+เอชม.เอฟที+ชม.เอฟที+ชม.22เอฟทีที+ชม.เอฟที+ชม.22เอฟทีที++ชม.342เอฟทีที2+ชม.เอฟที+ชม.2เอฟทีที+ชม.322เอฟทีที2+ชม.443เอฟทีที3+โอ(ชม.5){\displaystyle {\begin{aligned}y_{t+h}={}&y_{t}+h\left\lbrace a\cdot f(y_{t},\ t)+b\cdot \left[f(y_{t},\ t)+{\frac {h}{2}}{\frac {d}{dt}}f(y_{t},\ t)\right]\right.+\\&{}+c\cdot \left[f(y_{t},\ t)+{\frac {h}{2}}{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f(y_{t},\ t)\right]\right]+\\&{}+d\cdot \left[f(y_{t},\ t)+h{\frac {d}{dt}}\left[f(y_{t},\ t)+{\frac {h}{2}}{\frac {d}{dt}}\left[f(y_{t},\ t)+\left.{\frac {h}{2}}{\frac {d}{dt}}f(y_{t},\ t)\right]\right]\right]\right\rbrace +{\mathcal {O}}(h^{5})\\={}&y_{t}+a\cdot hf_{t}+b\cdot hf_{t}+b\cdot {\frac {h^{2}}{2}}{\frac {df_{t}}{dt}}+c\cdot hf_{t}+c\cdot {\frac {h^{2}}{2}}{\frac {df_{t}}{dt}}+\\&{}+c\cdot {\frac {h^{3}}{4}}{\frac {d^{2}f_{t}}{dt^{2}}}+d\cdot hf_{t}+d\cdot h^{2}{\frac {df_{t}}{dt}}+d\cdot {\frac {h^{3}}{2}}{\frac {d^{2}f_{t}}{dt^{2}}}+d\cdot {\frac {h^{4}}{4}}{\frac {d^{3}f_{t}}{dt^{3}}}+{\mathcal {O}}(h^{5})\end{aligned}}}

และเมื่อเปรียบเทียบกับอนุกรมเทย์เลอร์ของyที+ชม.{\displaystyle y_{t+h}}รอบๆที{\displaystyle t}:yที+ชม.=yที+ชม.y˙ที+ชม.22y¨ที+ชม.36yที(3)+ชม.424yที(4)+โอ(ชม.5)==yที+ชม.เอฟ(yที, ที)+ชม.22ทีเอฟ(yที, ที)+ชม.362ที2เอฟ(yที, ที)+ชม.4243ที3เอฟ(yที, ที){\displaystyle {\begin{aligned}y_{t+h}&=y_{t}+h{\dot {y}}_{t}+{\frac {h^{2}}{2}}{\ddot {y}}_{t}+{\frac {h^{3}}{6}}y_{t}^{(3)}+{\frac {h^{4}}{24}}y_{t}^{(4)}+{\mathcal {O}}(h^{5})=\\&=y_{t}+hf(y_{t},\ t)+{\frac {h^{2}}{2}}{\frac {d}{dt}}f(y_{t},\ t)+{\frac {h^{3}}{6}}{\frac {d^{2}}{dt^{2}}}f(y_{t},\ t)+{\frac {h^{4}}{24}}{\frac {d^{3}}{dt^{3}}}f(y_{t},\ t)\end{aligned}}}

เราจึงได้ระบบข้อจำกัดเกี่ยวกับสัมประสิทธิ์ดังนี้:

{เอ+++=112+12+=1214+12=1614=124{\displaystyle {\begin{cases}&a+b+c+d=1\\[6pt]&{\frac {1}{2}}b+{\frac {1}{2}}c+d={\frac {1}{2}}\\[6pt]&{\frac {1}{4}}c+{\frac {1}{2}}d={\frac {1}{6}}\\[6pt]&{\frac {1}{4}}d={\frac {1}{24}}\end{cases}}}

ซึ่งเมื่อแก้เสร็จแล้วจะได้เอ=16,=13,=13,=16{\displaystyle a={\frac {1}{6}},b={\frac {1}{3}},c={\frac {1}{3}},d={\frac {1}{6}}}ตามที่กล่าวไว้ข้างต้น

ดูเพิ่มเติม

หมายเหตุ

  1. "วิธี Runge-Kutta" . Dictionary.com . สืบค้นเมื่อ 4 เมษายน 2021 .
  2. DEVRIES, Paul L.; HASBUN, Javier E. วิชาฟิสิกส์เชิงคำนวณเบื้องต้น ฉบับพิมพ์ครั้งที่สอง สำนักพิมพ์ Jones and Bartlett: 2011 หน้า 215
  3. กด และคณะ 2550 , หน้า. 908 ; Süli & Mayers 2003 , หน้า. 328  
  4. 1 2 Atkinson (1989 , หน้า423) , Hairer, Nørsett & Wanner (1993 , หน้า134) , Kaw & Kalu (2008 , §8.4)และ Stoer & Bulirsch (2002 , หน้า476)ละเว้นปัจจัย hในคำจำกัดความของขั้นตอน Ascher & Petzold (1998 , หน้า81) , Butcher (2008 , หน้า93)และ Iserles (1996 , หน้า38)ใช้ ค่า yเป็นขั้นตอน      
  5. 1 2 Süli & Mayers 2003 , หน้า. 328 
  6. Press et al. 2007 , หน้า907 
  7. อิแซร์เลส 1996 หน้า38 
  8. 1 2อิเซอร์เลส 1996 หน้า39 
  9. เพื่อเป็นตัวอย่างค้าน ลองพิจารณาแผนการรันเก-คุตตะ 2 ขั้นตอนแบบชัดเจนใดๆ ก็ได้ที่มี1=2=1/2{\displaystyle b_{1}=b_{2}=1/2}และ1{\displaystyle c_{1}}และเอ21{\displaystyle a_{21}}เลือกแบบสุ่ม วิธีนี้มีความสอดคล้องและ (โดยทั่วไป) ลู่เข้าในลำดับที่หนึ่ง ในทางกลับกัน วิธี 1 ขั้นตอนด้วย1=1/2{\displaystyle b_{1}=1/2}ไม่สอดคล้องกันและไม่สามารถบรรจบกันได้ แม้ว่าจะถือว่าชัดเจนก็ตามเจ=1ฉัน1เอฉันเจ=ฉัน สำหรับ ฉัน=2,,.{\displaystyle \sum _{j=1}^{i-1}a_{ij}=c_{i}{\text{ for }}i=2,\ldots ,s.}.
  10. บุตเชอร์ 2008 หน้า187 
  11. 1 2 3บุตเชอร์ 1965 หน้า408 
  12. 1 2 คนขายเนื้อ 1985
  13. Butcher 2008 , หน้า187–196 
  14. คนขายเนื้อ 1964
  15. เคอร์ติส 1970 หน้า268 
  16. แฮร์เออร์, นอร์เซตต์แอนด์วันเนอร์ 1993 , หน้า 1. 179 
  17. บุตเชอร์ 1996 หน้า247 
  18. 1 2 Süli & Mayers 2003 , หน้า. 352 
  19. Hairer, Nørsett & Wanner (1993 , p. 138)อ้างถึง Kutta (1901 ) 
  20. ซูลีและเมเยอร์ส 2003 , หน้า. 327 
  21. ซูลีและเมเยอร์ส 2003 , หน้า349–351 
  22. ไอแซร์ลส์ 1996 , หน้า. 41 ; Süli & Mayers 2003 , หน้า351–352  
  23. บุตเชอร์ 2008 หน้า94 
  24. 1 2 Süli & Mayers 2003 , หน้า. 353 
  25. อิแซร์เลส 1996 หน้า43–44 
  26. อิแซร์เลส 1996 หน้า47 
  27. แฮร์เออร์แอนด์วันเนอร์ 1996 , หน้า40–41 
  28. แฮร์เออร์แอนด์แวนเนอร์ 1996 , หน้า. 40 
  29. 1 2อิเซอร์เลส 1996 หน้า60 
  30. อิแซร์เลส 1996 หน้า62–63 
  31. อิแซร์เลส 1996 หน้า63 
  32. ผลลัพธ์นี้เป็นผลงานของ Dahlquist (1963 )
  33. แลมเบิร์ต 1991 หน้า278 
  34. Dormand, JR; Prince, PJ (ตุลาคม 1978). "อัลกอริทึม Runge–Kutta ใหม่สำหรับการจำลองเชิงตัวเลขในดาราศาสตร์พลศาสตร์" กลศาสตร์ท้องฟ้า18 (3): 223– 232. Bibcode : 1978CeMec..18..223D . doi : 10.1007/BF01230162 . S2CID 120974351 . 
  35. Fehlberg, E. (ตุลาคม 1974). สูตร Runge–Kutta–Nyström อันดับเจ็ด หก และห้าแบบคลาสสิกพร้อมการควบคุมขนาดขั้นตอนสำหรับสมการเชิงอนุพันธ์อันดับสองทั่วไป (รายงาน) (NASA TR R-432 ed.). ศูนย์การบินอวกาศมาร์แชลล์, อลาบามา: องค์การบริหารการบินและอวกาศแห่งชาติ 
  36. บุตเชอร์ 2008 หน้า94 
  37. Qin, Meng-Zhao; Zhu, Wen-Jie (1991-01-01). "วิธีการ Runge-Kutta-Nyström (RKN) แบบแคนอนิกสำหรับสมการเชิงอนุพันธ์สามัญอันดับสอง" Computers & Mathematics with Applications . 22 (9): 85– 95. doi : 10.1016/0898-1221(91)90209-M . ISSN 0898-1221 . 
  38. แลมเบิร์ต 1991 หน้า275 
  39. แลมเบิร์ต 1991 หน้า274 
  40. Lyu, Ling-Hsiao (สิงหาคม 2016). "ภาคผนวก C. การหาที่มาของสูตรการอินทิเกรตเชิงตัวเลข" (PDF) . การจำลองเชิงตัวเลขของพลาสมาในอวกาศ (I) เอกสารประกอบการบรรยาย . สถาบันวิทยาศาสตร์อวกาศ มหาวิทยาลัยแห่งชาติกลาง. สืบค้นเมื่อ17 เมษายน 2022 .
  • "วิธี Runge-Kutta" , สารานุกรมคณิตศาสตร์ , EMS Press , 2001 [1994]
  • วิธีลำดับที่ 4 รุงเกะ-คุตตะ
  • การใช้งานไลบรารีส่วนประกอบ Tracker ใน Matlab — นำเสนออัลกอริทึม Runge-Kutta แบบฝังตัว 32 แบบRungeKStep, อัลกอริทึม Runge-Kutta Nyström แบบฝังตัว 24 แบบRungeKNystroemSStepและอัลกอริทึม Runge-Kutta Nyström ทั่วไป 4 RungeKNystroemGStepแบบ

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ วิธีการรันเก-คุตตะ

ในการวิเคราะห์เชิงตัวเลข วิธี Runge –Kutta ( อังกฤษ: / ˈ r ʊ ŋ ə ˈ k ʊ t ɑː /ⓘ RUUNG -ə- KUUT -tah )

วิธีรันเก-คุตตะ

วิธีการรันเก-กุตตะ (Runge–Kutta) ที่เป็นที่รู้จักกันอย่างแพร่หลายที่สุด มักเรียกกันว่า "RK4" "วิธีการรันเก-กุตตะแบบคลาสสิก" หรือเรียกง่ายๆ ว่า "วิธีการรันเก-กุตตะ"

วิธีการรันเก-คุตตะแบบชัดเจน

กลุ่ม วิธี Runge–Kutta แบบชัดเจน (explicit Runge–Kutta methods) เป็นการขยายความของวิธี RK4 ที่กล่าวถึงข้างต้น โดยกำหนดได้ดังนี้

ตัวอย่าง

วิธีการ RK4 อยู่ในกรอบนี้ ตารางของมันคือ [ 18 ]