ทำไมวิธี Runge – Kutta ที่มีลำดับสูงกว่าจึงไม่ได้ใช้บ่อยกว่า


17

ฉันแค่อยากรู้ว่าทำไมลำดับขั้นสูง (เช่นมากกว่า 4) วิธี Runge – Kutta แทบไม่เคยพูดถึง / ใช้ (อย่างน้อยก็เพื่อความรู้ของฉัน) ฉันเข้าใจว่าต้องใช้เวลาในการคำนวณมากขึ้นต่อขั้นตอน (เช่นRK14 ที่มีขั้นตอนการฝังลำดับที่ 12 ) แต่มีข้อเสียอื่น ๆ ของการใช้คำสั่ง Runge – Kutta ที่สูงกว่า (เช่นปัญหาด้านเสถียรภาพ) หรือไม่ เมื่อนำไปใช้กับสมการด้วยโซลูชันที่มีความผันผวนสูงในช่วงเวลาที่รุนแรงวิธีการที่มักจะมีคำสั่งที่สูงกว่านี้จะไม่เป็นที่ต้องการหรือไม่


2
ฉันคิดว่านี่เป็นคำถามส่วนตัว ข้อเสียที่ใหญ่ที่สุดที่คุณได้กล่าวไปแล้วคือค่าใช้จ่ายในการคำนวณ โดยทั่วไปเราพยายามที่จะสมดุลระหว่างความแม่นยำและเวลาในการคำนวณ ใน PDE เมื่อผู้คนพูดถึงลำดับที่สูงขึ้นพวกเขามักจะคิดถึงลำดับที่ 3 หรือ 4 และเวลาที่ก้าวก็ยังคงอยู่ในลำดับเดียวกัน
Vikram

3
ใน PDE แผนการสั่งซื้อที่แม่นยำสูงสำหรับการพึ่งพาชั่วคราวไม่สมเหตุสมผลหากความแม่นยำเชิงพื้นที่แย่ลง ในความเป็นจริงความถูกต้องของการพึ่งพาเชิงพื้นที่ส่วนใหญ่เกี่ยวกับลำดับที่ 2 หรือ 3 โดยเฉพาะอย่างยิ่งเมื่อทำงานกับตาข่ายที่ไม่มีโครงสร้าง ผู้คนจำเป็นต้องควบคุมการตัดทอนข้อผิดพลาดระดับโลกด้วยค่าใช้จ่ายที่น้อยที่สุดดังนั้น Runge-Kutta จึงพิจารณาความถูกต้องแม่นยำสูงในบางกรณี
tqviet

@tqviet หากใช้การประมาณความแตกต่างย้อนหลังหรือส่วนกลางสูงถึงลำดับ 8สำหรับอนุพันธ์เชิงพื้นที่ RK8 จะเหมาะสมหรือไม่? โดยทั่วไปแล้วมีความถูกต้องหรือปัญหาด้านความมั่นคงในการใช้การประมาณความแตกต่าง จำกัด ลำดับสูงของอนุพันธ์เชิงพื้นที่หรือไม่?
Mathews24

1
@ Mathews24: ฉันไม่ได้พูดถึงความมั่นคงซึ่งขึ้นอยู่กับสมการอย่างมาก เมื่อโครงการได้อย่างแม่นยำถูกนำไปใช้เพื่อการพึ่งพาอาศัยเชิงพื้นที่เรานำมาใช้ RK เพื่อการพึ่งพาอาศัยชั่วคราวที่มีอย่างน้อยคำสั่งเดียวกันของความถูกต้อง แต่สภาพความมั่นคงอาจต้องมีค่าที่น้อยลงของ ที Δเสื้อ
tqviet

คำตอบ:


17

มีเอกสารหลายพันฉบับและรหัสนับร้อยโดยใช้วิธี Runge-Kutta ลำดับที่ห้าขึ้นไป โปรดทราบว่าตัวรวมอย่างชัดเจนที่ใช้กันมากที่สุดใน MATLABคือ ODE45 ซึ่งล้ำหน้าโซลูชันโดยใช้วิธี Runge-Kutta ลำดับที่ 5

ตัวอย่างของวิธีการ Runge-Kutta ที่ใช้กันอย่างแพร่หลาย

กระดาษ Dormand และเจ้าชายให้เป็นวิธีที่ 5 การสั่งซื้อมีมากกว่า 1700 อ้างอิงตาม Google Scholar เอกสารส่วนใหญ่ใช้วิธีการแก้ไขปัญหา กระดาษวิธีเงินสดคาร์พมีกว่า 400 อ้างอิง บางทีอาจจะเป็นวิธีการที่ใช้กันอย่างแพร่หลายของการสั่งซื้อสูงกว่า 5 เป็นวิธีที่ 8 สั่งของเจ้าชาย-Dormand ซึ่งมีมากกว่า 400 อ้างอิงใน Google Scholar ฉันสามารถยกตัวอย่างอื่น ๆ อีกมากมาย; และโปรดจำไว้ว่าผู้คนจำนวนมากที่ใช้วิธีการเหล่านี้ไม่เคยอ้างถึงเอกสาร

ยังทราบว่าการคาดการณ์สูงการสั่งซื้อและวิธีการแก้ไขรอการตัดบัญชีเป็นวิธี Runge-Kutta

วิธีการเรียงลำดับสูงและข้อผิดพลาดในการปัดเศษ

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

วิธีการลำดับที่สิบมีประโยชน์อย่างมากในการคำนวณเลขคณิตสองครั้งที่มีความแม่นยำ ในทางตรงกันข้ามถ้าเรามีวิธีการของออยเลอร์การปัดเศษผิดพลาดจะเป็นปัญหาใหญ่และเราต้องการตัวเลขจุดลอยตัวที่มีความแม่นยำสูงสำหรับปัญหามากมายที่นักแก้ปัญหาระดับสูงทำได้ดี

วิธีการสั่งซื้อขั้นสูงอาจมีเสถียรภาพ

AB

วิธีการลำดับสูงในกลศาสตร์ท้องฟ้า

คุณถาม

เมื่อนำไปใช้กับสมการด้วยโซลูชันที่มีความผันผวนสูงในช่วงเวลาที่รุนแรงวิธีการที่มักจะมีคำสั่งที่สูงกว่านี้จะไม่เป็นที่ต้องการหรือไม่

คุณพูดถูก! ตัวอย่างสำคัญของสิ่งนี้คือกลไกท้องฟ้า ฉันไม่ใช่ผู้เชี่ยวชาญในพื้นที่นั้น แต่บทความนี้เปรียบเทียบวิธีการสำหรับกลศาสตร์ท้องฟ้าและไม่ได้พิจารณาคำสั่งที่ต่ำกว่า 5 มันสรุปว่าวิธีการสั่งซื้อ 11 หรือ 12 มักจะมีประสิทธิภาพมากที่สุด (กับวิธี Prince - Dormand ของการสั่งซื้อ 8 มักจะมาก ที่มีประสิทธิภาพ)


Ketchson: คุณกรุณาให้หลักฐานหรือคำอธิบายเกี่ยวกับคำสั่งนี้: "การคาดการณ์ที่มีลำดับสูงและวิธีการแก้ไขที่รอการตัดบัญชีเป็นวิธี Runge-Kutta" หรือไม่? โดยเฉพาะอย่างยิ่ง "วิธีการแก้ไขรอการตัดบัญชี" ขอบคุณ
tqviet

@David Ketcheson คุณสามารถพูดคุยกันว่าคำตอบของคุณจะเปลี่ยนไปอย่างไรหากใช้เทคนิคการตรวจสอบที่ผ่านการตรวจสอบ (ยืนยันแล้ว) เช่นช่วงโค้งมนด้านนอกหรือเลขคณิตรัศมี ถ้าใช้ช่วงเวลาที่ถูกปัดเศษสูงกว่าความแม่นยำสองเท่าออกไปด้านนอกหรือใช้เลขคณิตรัศมี? จะเกิดอะไรขึ้นกับการห่อและการพึ่งพาเนื่องจากคำสั่ง Runge-Kutta เพิ่มขึ้นและเพื่อความสนุกสมมติว่า ODE นั้นแข็งมาก
Mark L. Stone

@ MarkL.Stone เป็นชุดคำถามที่แตกต่างอย่างสิ้นเชิง หากคุณต้องการถามพวกเขาโปรดโพสต์คำถามเหล่านั้นแยกต่างหาก อย่างไรก็ตามฉันไม่ใช่ผู้เชี่ยวชาญในเรื่องเหล่านั้นและไม่สามารถตอบได้
David Ketcheson

1
@tqviet ลองดูที่กระดาษนี้สำหรับคำอธิบาย
David Ketcheson

12

ตราบใดที่คุณใช้เลขคณิตทศนิยมที่มีความแม่นยำสองเท่ามาตรฐานคุณไม่จำเป็นต้องใช้วิธีการสั่งซื้อที่สูงมากในการหาวิธีแก้ปัญหาที่มีความแม่นยำสูงในจำนวนขั้นตอนที่สมเหตุสมผล ในทางปฏิบัติฉันพบว่าความถูกต้องของการแก้ปัญหานั้น จำกัด อยู่ที่ข้อผิดพลาดสัมพัทธ์ของ 1.0e-16 โดยการแสดงจุดลอยตัวที่มีความแม่นยำสองเท่าแทนที่จะเป็นจำนวน / ความยาวของขั้นตอนที่ใช้กับ RKF45

หากคุณเปลี่ยนไปใช้รูปแบบการคำนวณจุดลอยตัวที่มีความแม่นยำสูงกว่าสองเท่าดังนั้นการใช้วิธีการสั่งซื้อครั้งที่ 10 อาจคุ้มค่าในขณะที่


5
ฉันคิดว่าคำตอบนี้ทำให้เข้าใจผิด วิธีการเรียงลำดับขั้นสูงนำไปสู่ข้อผิดพลาดในการปัดเศษที่น้อยลงในขณะที่วิธีการสั่งซื้อต่ำจะได้รับข้อผิดพลาดในการปัดเศษที่โดดเด่นเมื่อความแม่นยำที่ต้องการนั้นมากหรือช่วงเวลานั้นยาว ดูคำตอบของฉันด้านล่าง
David Ketcheson

2
ประเด็นก็คือในจุดลอยตัวที่มีความแม่นยำสองเท่าคุณไม่สามารถแสดงโซลูชันที่มีความแม่นยำสัมพัทธ์มากกว่า 1.0e-16 ได้ ในสถานการณ์ที่ใช้งานได้จริง RKF45 เก่า ๆ ที่ดีจะพาคุณไปสู่ระดับความแม่นยำในช่วงเวลาที่คุณสนใจโดยไม่ต้องทำตามขั้นตอนเล็ก ๆ มันอาจไม่ใช่ทางเลือกที่ดีสำหรับระบบที่แข็งหรือสถานการณ์ที่มีการเรียกใช้ตัวรวม symplectic แต่วิธี Runge Kutta ที่สูงกว่านั้นไม่ใช่วิธีการแก้ปัญหาที่ยอดเยี่ยมในสถานการณ์เหล่านั้นเช่นกัน ฉันยอมรับว่าเป็นเวลานานมากในการสั่งซื้อที่สูงกว่าวิธี Runge Kutta สามารถทำให้รู้สึกบางอย่าง
Brian Borchers

10

เพียงเพื่อเพิ่มคำตอบที่ยอดเยี่ยมของ Brian Borcher แอปพลิเคชันในชีวิตจริงจำนวนมากยอมรับ ODE หรือ DAE ที่แข็งทื่อสูง โดยสังหรณ์ใจปัญหาเหล่านี้ประสบกับความไม่ราบรื่นเปลี่ยนแปลงอย่างฉับพลันเมื่อเวลาผ่านไปดังนั้นแบบจำลองที่ดีขึ้นโดยใช้พหุนามแบบลำดับต่ำแพร่กระจายอย่างประณีตในขนาดขั้นตอนสั้น ๆ ซึ่งแตกต่างจากพหุนามแบบลำดับขั้นสูง นอกจากนี้ยังมีความมั่นคงมักจะจำเป็นต้องใช้โดยปริยายวิธีการซึ่งโทษคำนวณวิธีการสั่งซื้อที่สูงขึ้นเป็นที่สูงชันมาก

วิธีการที่มีความเข้มงวดสูงกว่านั้นมีความเสถียรน้อยกว่าวิธีที่มีลำดับต่ำกว่าสำหรับปัญหาที่แข็ง ตัวอย่างเช่นเรามีอุปสรรค Dahlquist สำหรับวิธีการหลายขั้นตอนเชิงเส้น

R2

คำสั่งที่คล้ายกัน (แต่มีความซับซ้อนมากขึ้น) สามารถสร้างขึ้นเพื่อความมั่นคงของ L ในสูตร RK ในทุกกรณีการเพิ่มขึ้นของลำดับมักไม่นำไปสู่การแก้ไขที่แม่นยำยิ่งขึ้นเสมอไป ต่อไปนี้เป็นข้อความที่ตัดตอนมาจากกระดาษของ Prothero และ Robinson ในปี 1974:

ในการใช้วิธี A-stable ขั้นตอนเดียวในการแก้ระบบขนาดใหญ่ของสมการเชิงอนุพันธ์ไม่เชิงเส้นแข็งเราพบว่า
(a) วิธี A-stable บางวิธีให้วิธีแก้ปัญหาที่ไม่เสถียรสูงและ
(b) ความแม่นยำของโซลูชันที่ได้เมื่อสมการ แข็งมักจะดูเหมือนจะไม่เกี่ยวข้องกับคำสั่งของวิธีการที่ใช้

สำหรับการรักษาหัวข้อนี้อย่างเข้มงวดยิ่งขึ้นให้ดูข้อความคลาสสิกโดย Hairer & Wanner "การแก้สมการอนุพันธ์สามัญ II: ปัญหาแข็งและเชิงอนุพันธ์ - พีชคณิต", 1991

ในทางปฏิบัติสมการแข็งทื่อได้รับการแก้ไขเกือบทุกครั้งโดยใช้กฎรูปสี่เหลี่ยมคางหมูหรือสูตร TR-BDF2 (ฟังก์ชัน ode23t และ ode23tb ใน MATLAB) ทั้งสองวิธีนี้เป็นวิธีการสั่งซื้อลำดับที่สองโดยนัย แน่นอนที่ความมั่นคงไม่ใช่ปัญหา (เช่นในสมการที่ไม่มั่นคง) เรามีอิสระที่จะเลือกจากตัวเลือกจำนวนมาก RK45 เป็นตัวเลือกที่ใช้กันมากที่สุด


น่าสนใจมาก. มีคำอธิบายใด ๆ (ใช้งานง่าย) สำหรับคำสั่งซื้อที่ว่าทำไมจึงต้องน้อยกว่าหรือเท่ากับ 2 เพื่อให้เป็นวิธีมัลติสเตปแบบ A-stable? และเพื่ออธิบายให้ชัดเจนเมื่อคุณบอกว่าสามารถสร้างข้อความที่คล้ายกันสำหรับสูตร RK มันเป็นคำสั่งที่ 2 อีกครั้งหรือไม่
Mathews24 24

แต่สำหรับวิธี Runge-Kutta มีวิธี A-stable ของคำสั่งโดยพลการ
David Ketcheson

@DavidKetcheson ใช่ แต่พวกเขาไม่ได้ขอ A-เสถียรภาพ (เช่น L-มีเสถียรภาพ) พวกเขามีปัญหามากมายเมื่อใช้เพื่อแก้ปัญหา DAE เช่นจำลองวงจรทรานซิสเตอร์ธรรมดา แท้จริงแล้ว TR น่าอับอายที่ก่อให้เกิดเสียงเรียกเข้าเทียมในเครื่องเทศซึ่งเป็นแรงบันดาลใจในการพัฒนา TR-BDF2
Richard Zhang

@DavidKetcheson สำหรับการอ้างอิงดูdoi.org/10.1090/S0025-5718-1974-0331793-2 แนวคิดเรื่องความเสถียร A นั้นไม่แข็งแรงพอสำหรับ DAE และวิธี A-เสถียรที่มีลำดับสูงมักให้ผลลัพธ์แปลก ๆ เมื่อใช้เพื่อแก้ปัญหา DAE
Richard Zhang

แน่นอน แต่คำถามไม่ได้เกี่ยวกับ DAE หรือเกี่ยวกับวิธีการหลายขั้นตอน
David Ketcheson

9

การตั้งค่าเกณฑ์มาตรฐาน

ในซอฟต์แวร์ Julia DifferentialEquations.jlเราใช้วิธีการสั่งซื้อที่สูงขึ้นมากมายรวมถึงวิธีการ Feagin คุณสามารถดูได้ในรายการวิธีการของเราแล้วมีคนอื่น ๆ อีกมากมายที่คุณสามารถใช้เป็นอาหารเสริมได้ เนื่องจากวิธีการเหล่านี้ทั้งหมดถูกรวบรวมเข้าด้วยกันคุณจึงสามารถสร้างมาตรฐานระหว่างกันได้อย่างง่ายดาย คุณสามารถดูการวัดประสิทธิภาพที่ฉันออนไลน์ได้ที่นี่และดูว่าเป็นเรื่องง่ายมากในการเปรียบเทียบอัลกอริทึมที่แตกต่างกัน ดังนั้นหากคุณต้องการใช้เวลาสองสามนาทีในการรันการวัดประสิทธิภาพ นี่คือบทสรุปของสิ่งที่เกิดขึ้น

ก่อนอื่นสิ่งสำคัญคือให้สังเกตว่าถ้าคุณดูแต่ละมาตรฐานคุณจะเห็นว่าDP5(Dormand-Prince Order 5) และDP8วิธีการของเราเร็วกว่ารหัส Hairer Fortran ( dopri5และdop853) ดังนั้นการปรับใช้เหล่านี้จึงได้รับการปรับให้เหมาะสมที่สุด . เหล่านี้แสดงให้เห็นว่าตามที่ระบุไว้ในหัวข้ออื่นการใช้งานมากเกินไปของวิธีการ Dormand-Prince เป็นเพราะวิธีการเขียนแล้วไม่ได้เพราะพวกเขายังคงดีที่สุด ดังนั้นการเปรียบเทียบจริงระหว่างการปรับใช้ที่เหมาะสมที่สุดคือระหว่างวิธี Tsitorous, วิธี Verner และวิธี Feagin จาก DifferentialEquations.jl

ผลลัพธ์

โดยทั่วไปวิธีการสั่งซื้อที่สูงกว่า 7 มีค่าใช้จ่ายในการคำนวณเพิ่มเติมซึ่งมักจะไม่เกินดุลตามคำสั่งได้รับความอดทนเลือก เหตุผลข้อหนึ่งก็คือตัวเลือกสัมประสิทธิ์สำหรับวิธีการเรียงลำดับที่ต่ำกว่านั้นได้รับการปรับให้เหมาะสมมากขึ้น (พวกเขามี "สัมประสิทธิ์ข้อผิดพลาดการตัดทอนหลักเล็ก ๆ " ซึ่งมีความสำคัญมากกว่าเมื่อคุณไม่เล็ก คุณจะเห็นว่าในหลาย ๆ ปัญหาเช่นที่นี่วิธีการ Verner Efficient 6 และ 7 ทำได้ดีมาก แต่วิธีเช่น Verner Efficient 8 นั้นมีความชันต่ำกว่า นี่เป็นเพราะ "การได้รับ" ของคำสั่งที่สูงกว่ากำลังทบต้นที่ความคลาดเคลื่อนต่ำดังนั้นจึงมีความอดทนเสมอซึ่งวิธีการสั่งซื้อที่สูงกว่าจะมีประสิทธิภาพมากขึ้น

อย่างไรก็ตามคำถามคือว่าต่ำแค่ไหน? ในการใช้งานที่ได้รับการปรับปรุงให้ดีที่สุดนั้นมีข้อดีสองประการ เหตุผลแรกเป็นเพราะวิธีการสั่งซื้อลดลงใช้สิ่งที่เรียกว่า FSAL (ครั้งแรกเหมือนครั้งสุดท้าย) คุณสมบัตินี้หมายความว่าวิธีการสั่งซื้อที่ต่ำกว่าจะนำการประเมินฟังก์ชั่นกลับมาใช้ใหม่จากขั้นตอนก่อนหน้าในขั้นตอนถัดไป หากสิ่งนี้ถูกใช้อย่างถูกต้องแล้วสิ่งที่ต้องการวิธีการลำดับที่ 5 (Tsitorous หรือ Dormand-Prince) กำลังทำการประเมินผลการทำงาน 5 ครั้งแทนที่จะเป็น 6 อย่างที่ tableaus แนะนำ นี่เป็นความจริงสำหรับวิธีการของเวอร์เนอร์ 6

เหตุผลอื่นเกิดจากการแก้ไข เหตุผลหนึ่งที่ใช้วิธีการสั่งซื้อที่สูงมากคือการทำตามขั้นตอนน้อยลงและเพียงแค่แทรกค่ากลาง อย่างไรก็ตามเพื่อให้ได้ค่ากลางฟังก์ชั่นการแก้ไขอาจต้องการการประเมินฟังก์ชั่นมากกว่าที่ใช้สำหรับการทำตามขั้นตอน ถ้าคุณดูวิธีการของเวอร์เนอร์ต้องใช้การประเมินฟังก์ชั่นพิเศษ 8 รายการสำหรับวิธีการสั่งซื้อ 8 เพื่อรับหน่วยคำสั่งซื้อ interpolant 8 หลายครั้งที่วิธีการเรียงลำดับต่ำมีการใส่ "ฟรี" เช่นวิธีการเรียงลำดับที่ 5 ส่วนใหญ่มีการแก้ไขลำดับที่ 4 ฟรี (ไม่มีการประเมินฟังก์ชั่นพิเศษ) ดังนั้นนี่หมายความว่าหากคุณต้องการค่ากลาง (ซึ่งคุณจะต้องมีพล็อตที่ดีถ้าคุณใช้วิธีการสั่งซื้อสูง) มีค่าใช้จ่ายแอบแฝงเพิ่มเติม ปัจจัยในความจริงที่ว่าค่าการประมาณค่าเหล่านี้มีความสำคัญต่อการจัดการเหตุการณ์และการแก้สมการส่วนต่างล่าช้าและคุณเห็นว่าทำไมค่าใช้จ่ายการแก้ไขพิเศษมา

ดังนั้นวิธีการของ Feagin ล่ะ?

ดังนั้นคุณจะเห็นว่าวิธีการ Feagin หายไปอย่างน่าสงสัยจากมาตรฐาน การทดสอบคอนเวอร์เจนซ์นั้นใช้งานได้กับจำนวนความแม่นยำตามอำเภอใจ ฯลฯ แต่เพื่อให้พวกเขาทำได้ดีคุณต้องขอความอดทนที่ต่ำอย่างน่าหัวเราะ ยกตัวอย่างเช่นผมพบว่าในมาตรฐานที่ไม่ได้เผยแพร่ที่Feagin14มีประสิทธิภาพเหนือกว่าVern9(ลำดับที่ 9 Verner ที่มีประสิทธิภาพวิธี) 1e-30ที่คลาดเคลื่อนชอบ สำหรับแอปพลิเคชันที่มีการเปลี่ยนแปลงแบบอลหม่าน (เช่นใน Pleides หรือปัญหาทางฟิสิกส์ดาราศาสตร์ 3 ตัว) คุณอาจต้องการความแม่นยำในระดับนี้เนื่องจากการพึ่งพาอาศัยแบบละเอียดอ่อน (ข้อผิดพลาดในระบบวุ่นวายเกิดขึ้นอย่างรวดเร็ว) อย่างไรก็ตามคนส่วนใหญ่อาจคำนวณด้วยตัวเลขทศนิยมที่มีความแม่นยำสองเท่าและฉันไม่พบเกณฑ์มาตรฐานที่พวกเขามีประสิทธิภาพสูงกว่าในขอบเขตความอดทนนี้

นอกจากนี้ยังไม่มีหน่วยสอดประสานที่จะไปพร้อมกับวิธีการ Feagin ดังนั้นสิ่งที่ฉันทำก็แค่ใส่การแก้ไขลำดับที่สามของ Hermite ลงไปเพื่อให้มีวิธีหนึ่งที่มีอยู่ (และมันก็ทำงานได้ดีอย่างน่าประหลาดใจ) อย่างไรก็ตามหากไม่มีฟังก์ชั่นการแก้ไขแบบมาตรฐานคุณสามารถใช้วิธีการแบบเวียนแบบซ้ำ (ใช้การแก้ไขแบบนี้เพื่อรับจุดกึ่งกลางจากนั้นทำการแก้ไขแบบลำดับที่ 5 ฯลฯ ) เพื่อรับการแก้ไขแบบลำดับขั้นสูง แต่ค่าใช้จ่ายสูงมาก การแก้ไขไม่จำเป็นต้องมีข้อผิดพลาดการตัดทอนหลักการต่ำ (ดังนั้นจึงเป็นเรื่องที่ดีเมื่อdtมีขนาดเล็กมากซึ่งตรงข้ามกับกรณีที่เราต้องการ!) Vern9ดังนั้นถ้าคุณเคยต้องมีการแก้ไขที่ดีจริงๆเพื่อให้ตรงกับความถูกต้องของคุณคุณจะต้องไม่น้อยกว่ากลับไปยังสิ่งที่ต้องการ

หมายเหตุเกี่ยวกับการคาดการณ์

โปรดทราบว่าวิธีการประมาณค่าเป็นเพียงอัลกอริธึมสำหรับการสร้างระเบียบวิธี Runge-Kutta โดยพลการ อย่างไรก็ตามสำหรับการสั่งซื้อของพวกเขาพวกเขาทำตามขั้นตอนมากกว่าที่จำเป็นและมีค่าสัมประสิทธิ์ข้อผิดพลาดในการตัดทอนสูงดังนั้นพวกเขาจึงไม่ได้มีประสิทธิภาพเท่ากับวิธี RK ที่ได้รับการปรับปรุงให้ดีที่สุดตามลำดับที่กำหนด แต่จากการวิเคราะห์ก่อนหน้านี้ซึ่งหมายความว่ามีโดเมนของความอดทนต่ำมากซึ่งวิธีการเหล่านี้จะทำได้ดีกว่าวิธี RK "รู้" แต่ในทุกมาตรฐานที่ฉันวิ่งดูเหมือนว่าฉันจะไม่ได้รับที่ต่ำ

หมายเหตุเกี่ยวกับความเสถียร

ตัวเลือกไม่มีส่วนเกี่ยวข้องกับปัญหาความมั่นคง ในความเป็นจริงถ้าคุณผ่านไปยัง DifferentialEquations.jl tableaus (คุณสามารถทำได้เฉพาะplot(tab)กับส่วนเสถียรภาพ) คุณจะเห็นว่าวิธีการส่วนใหญ่มีขอบเขตความมั่นคงที่คล้ายกันอย่างน่าสงสัย นี่คือทางเลือกจริง ๆ โดยปกติเมื่อได้รับวิธีการผู้เขียนมักจะทำต่อไปนี้:

  1. ค้นหาสัมประสิทธิ์ข้อผิดพลาดการตัดทอนต่ำสุด (นั่นคือสัมประสิทธิ์สำหรับเงื่อนไขการสั่งซื้อต่อไป)
  2. ขึ้นอยู่กับข้อ จำกัด ในการสั่งซื้อ
  3. และทำให้พื้นที่ความเสถียรใกล้เคียงกับวิธีการสั่งซื้อดอร์มัน - ปรินซ์ 5

ทำไมสภาพสุดท้าย? ก็เพราะวิธีการนั้นมีแนวโน้มที่จะมีความเสถียรเสมอเมื่อวิธีการเลือกตัวเลือกขั้นตอนแบบปรับได้ถูกควบคุมโดย PI ดังนั้นจึงเป็นบาร์ที่ดีสำหรับภูมิภาคที่มีเสถียรภาพ "ดีพอ" ดังนั้นจึงไม่มีเหตุบังเอิญที่บริเวณเสถียรภาพทั้งหมดมีแนวโน้มที่จะคล้ายกัน

ข้อสรุป

มีการแลกเปลี่ยนในทุก ๆ ทางเลือกของวิธีการ ลำดับ RK ที่สูงที่สุดนั้นไม่ได้มีประสิทธิภาพที่ความคลาดเคลื่อนที่ต่ำกว่าทั้งคู่เพราะมันยากที่จะปรับค่าสัมประสิทธิ์ให้เหมาะสมที่สุดและเนื่องจากจำนวนของการประเมินฟังก์ชั่นสารประกอบ (และเติบโตเร็วยิ่งขึ้นเมื่อมีการแก้ไข) อย่างไรก็ตามหากค่าความคลาดเคลื่อนต่ำพอที่พวกเขาจะชนะ แต่ความคลาดเคลื่อนที่จำเป็นอาจต่ำกว่าแอปพลิเคชัน "มาตรฐาน" (เช่นสามารถใช้ได้กับระบบที่สับสนเท่านั้น)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.