Tại sao các phương pháp Runge tầm Kutta bậc cao không được sử dụng thường xuyên hơn?


17

Tôi chỉ tò mò về lý do tại sao các phương pháp bậc cao (nghĩa là lớn hơn 4) hầu như không bao giờ được thảo luận / sử dụng (ít nhất là theo hiểu biết của tôi). Tôi hiểu rằng nó đòi hỏi thời gian tính toán trên mỗi bước lớn hơn (ví dụ RK14 với bước nhúng thứ 12 ), nhưng có bất kỳ nhược điểm nào khác khi sử dụng các phương pháp Rungeedom Kutta bậc cao (ví dụ: các vấn đề ổn định) không? Khi áp dụng cho các phương trình với các giải pháp dao động cao trên thang thời gian cực đoan, các phương pháp bậc cao như vậy thường không được ưa thích hơn?


2
Tôi nghĩ rằng đây là một câu hỏi rất chủ quan. Nhược điểm lớn nhất như bạn đã lưu ý là chi phí tính toán. Nói chung, chúng tôi cố gắng cân bằng giữa độ chính xác và thời gian tính toán. Trong PDE khi mọi người nói về thứ tự cao hơn, họ thường nghĩ về thứ 3 hoặc thứ 4. Và bước thời gian cũng được giữ theo thứ tự tương tự.
Vikram

3
Trong PDE, sơ đồ chính xác bậc cao cho sự phụ thuộc theo thời gian sẽ không có ý nghĩa nếu độ chính xác không gian tồi tệ hơn. Trong thực tế, độ chính xác của sự phụ thuộc không gian chủ yếu là ở bậc 2 hoặc bậc 3, đặc biệt là khi làm việc trên các mắt lưới không có cấu trúc. Mọi người cần kiểm soát việc cắt giảm lỗi toàn cầu với chi phí thấp nhất, do đó, xem xét Runge-Kutta với độ chính xác đủ cao trong các trường hợp cụ thể.
tqviet

@tqviet Nếu sử dụng xấp xỉ chênh lệch ngược hoặc trung tâm lên tới thứ tự 8 cho các đạo hàm không gian, RK8 sẽ phù hợp, không? Nói chung, có bất kỳ vấn đề chính xác hoặc ổn định nào khi sử dụng các xấp xỉ sai phân hữu hạn bậc cao như vậy của các đạo hàm không gian không?
Mathews24

1
@ Mathews24: Tôi không đề cập đến sự ổn định, điều này phụ thuộc mạnh mẽ vào phương trình. Khi sơ đồ có độ chính xác cao được áp dụng cho sự phụ thuộc không gian, chúng tôi áp dụng RK cho sự phụ thuộc theo thời gian với ít nhất cùng một thứ tự chính xác, nhưng điều kiện ổn định có thể yêu cầu giá trị nhỏ hơn của . Δt
tqviet

Câu trả lời:


17

Có hàng ngàn giấy tờ và hàng trăm mã trên mạng sử dụng các phương pháp Runge-Kutta theo thứ tự thứ năm trở lên. Lưu ý rằng bộ tích hợp rõ ràng được sử dụng phổ biến nhất trong MATLAB là ODE45, giúp cải tiến giải pháp bằng phương pháp Runge-Kutta bậc 5.

Ví dụ về các phương pháp Runge-Kutta được sử dụng rộng rãi

Bài viết của Dormand & Prince đưa ra phương pháp bậc 5 có hơn 1700 trích dẫn theo Google Scholar . Hầu hết đó là những bài báo sử dụng phương pháp của họ để giải quyết một số vấn đề. Bài viết về phương pháp Cash-Karp có hơn 400 trích dẫn . Có lẽ phương pháp đặt hàng được sử dụng rộng rãi nhất trên 5 là phương pháp thứ 8 của Prince-Dormand có hơn 400 trích dẫn trên Google Scholar . Tôi có thể đưa ra nhiều ví dụ khác; và hãy nhớ rằng nhiều người (nếu không phải hầu hết) những người sử dụng các phương pháp này không bao giờ trích dẫn các bài báo.

Cũng lưu ý rằng phương pháp ngoại suy bậc cao và phương pháp hiệu chỉnh hoãn lại là phương pháp Runge-Kutta .

Phương pháp bậc cao và lỗi làm tròn

Nếu độ chính xác của bạn bị hạn chế bởi các lỗi làm tròn thì bạn nên sử dụng phương pháp bậc cao hơn . Điều này là do các phương pháp bậc cao hơn yêu cầu ít bước hơn (và ít đánh giá chức năng hơn, mặc dù có nhiều đánh giá hơn trên mỗi bước), do đó chúng có ít lỗi làm tròn hơn. Bạn có thể dễ dàng xác minh điều này với các thí nghiệm đơn giản; đó là một vấn đề bài tập về nhà tốt cho một khóa học đầu tiên trong phân tích số.

Các phương pháp bậc mười là cực kỳ hữu ích trong số học chính xác kép. Ngược lại, nếu tất cả những gì chúng ta có là phương pháp của Euler, thì lỗi làm tròn sẽ là một vấn đề lớn và chúng ta sẽ cần các số dấu phẩy động có độ chính xác rất cao cho nhiều vấn đề trong đó các bộ giải bậc cao làm tốt.

Phương pháp bậc cao có thể chỉ là ổn định

@RichardZhang đã tham chiếu rào cản Dahlquist thứ hai, nhưng điều đó chỉ áp dụng cho các phương thức nhiều bước. Câu hỏi được đăng ở đây là về các phương pháp Runge-Kutta, và có các phương pháp Runge-Kutta của mọi đơn hàng không chỉBAB ổn định , mà còn - ổn định (một tính chất ổn định hữu ích cho một số vấn đề phi tuyến). Để tìm hiểu về các phương thức này, hãy xem ví dụ văn bản của Hairer & Wanner.

Phương pháp bậc cao trong cơ học thiên thể

Bạn hỏi

Khi áp dụng cho các phương trình với các giải pháp dao động cao trên thang thời gian cực đoan, các phương pháp bậc cao như vậy thường không được ưa thích hơn?

Bạn hoàn toàn đúng! Một ví dụ điển hình của việc này là cơ học thiên thể. Tôi không phải là một chuyên gia trong lĩnh vực đó. Nhưng bài báo này , ví dụ, so sánh các phương pháp cho cơ học thiên thể và thậm chí không xem xét thứ tự thấp hơn 5. Nó kết luận rằng các phương pháp thứ tự 11 hoặc 12 thường hiệu quả nhất (với phương pháp 8 của Prince-Dormand thường rất Có hiệu quả).


Ketchson: bạn có thể vui lòng cung cấp một số bằng chứng hoặc giải thích về tuyên bố này: "phương pháp ngoại suy bậc cao và phương pháp hiệu chỉnh hoãn lại là phương pháp Runge-Kutta"? Đặc biệt là "phương pháp hiệu chỉnh hoãn lại". Cảm ơn.
tqviet

@David Ketcheson Bạn có thể thảo luận câu trả lời của bạn sẽ thay đổi như thế nào nếu sử dụng các kỹ thuật tính toán được xác thực (đã được xác minh), chẳng hạn như khoảng tròn được làm tròn hoặc số học xuyên tâm không? Làm thế nào nếu cao hơn khoảng chính xác gấp đôi khoảng ngoài hoặc số học xuyên tâm được sử dụng? Điều gì sẽ xảy ra với sự bao bọc và sự phụ thuộc khi thứ tự Runge-Kutta được tăng lên và chỉ để cho vui, hãy nói rằng ODE rất cứng.?
Mark L. Stone

@ MarkL.Stone Đó là một bộ câu hỏi hoàn toàn khác. Nếu bạn muốn hỏi họ, xin vui lòng gửi chúng dưới dạng câu hỏi riêng biệt. Tuy nhiên, tôi không phải là chuyên gia về những điều đó và sẽ không thể trả lời.
David Ketcheson

1
@tqviet Hãy xem bài viết này để được giải thích.
David Ketcheson

12

Miễn là bạn đang sử dụng số học dấu phẩy động chính xác tiêu chuẩn kép, các phương pháp bậc cao không cần thiết để có được một giải pháp với độ chính xác cao trong một số bước hợp lý. Trong thực tế, tôi thấy rằng độ chính xác của giải pháp thường bị giới hạn ở sai số tương đối là 1.0e-16 bởi biểu diễn điểm nổi chính xác kép thay vì số lượng / độ dài của các bước được thực hiện với RKF45.

Nếu bạn chuyển sang sơ đồ số học dấu phẩy động chính xác cao hơn gấp đôi, thì sử dụng phương pháp bậc 10 có thể có giá trị trong khi.


5
Tôi nghĩ rằng câu trả lời này là sai lệch. Các phương pháp bậc cao dẫn đến sai số làm tròn ít hơn nhiều, trong khi các phương pháp bậc thấp bị lỗi làm tròn chiếm ưu thế khi độ chính xác yêu cầu là lớn hoặc khoảng thời gian dài; xem câu trả lời của tôi dưới đây
David Ketcheson

2
Vấn đề là ở điểm nổi chính xác kép, bạn thậm chí không thể đại diện cho một giải pháp có độ chính xác tương đối cao hơn 1.0e-16. Trong nhiều tình huống thực tế, RKF45 cũ sẽ đưa bạn đến mức chính xác đó trong khoảng thời gian bạn quan tâm mà không yêu cầu các bước nhỏ. Nó có thể không phải là một lựa chọn tốt cho các hệ thống cứng hoặc các tình huống trong đó yêu cầu tích hợp đối xứng, nhưng phương pháp Runge Kutta bậc cao cũng không phải là một giải pháp tuyệt vời trong những tình huống đó. Tôi đồng ý rằng trong thời gian rất dài, các phương pháp Runge Kutta có thứ tự cao hơn có thể có ý nghĩa.
Brian Borchers

10

Chỉ cần thêm vào câu trả lời xuất sắc của Brian Borker, nhiều ứng dụng thực tế thừa nhận ODE hoặc DAE rất cứng. Theo trực giác, những vấn đề này gặp phải sự không ổn định, thay đổi đột ngột theo thời gian, do đó được mô hình hóa tốt hơn bằng cách sử dụng đa thức bậc thấp trải đều trên các kích thước bước ngắn, trái ngược với đa thức bậc cao trải dài trên các bước dài. Ngoài ra, sự ổn định thường đòi hỏi phải sử dụng các phương pháp ngầm , trong đó hình phạt tính toán của các phương pháp bậc cao hơn nhiều hơn.

Nghiêm khắc hơn, các phương pháp bậc cao ít ổn định hơn các phương pháp bậc thấp hơn cho các vấn đề cứng. Ví dụ, chúng ta có các rào cản Dahlquist cho các phương thức đa tuyến tính.

r2

Các câu lệnh tương tự (nhưng phức tạp hơn nhiều) có thể được tạo ra cho độ ổn định L trong các công thức RK. Trong mọi trường hợp, sự gia tăng theo thứ tự thường không phải lúc nào cũng dẫn đến các giải pháp chính xác hơn. Sau đây là một đoạn trích từ bài báo bán kết năm 1974 của Prothero và Robinson:

Khi sử dụng các phương pháp một bước ổn định A để giải các hệ phương trình vi phân phi tuyến cứng, chúng tôi đã phát hiện ra rằng
(a) một số phương pháp ổn định A đưa ra các giải pháp rất không ổn định và
(b) độ chính xác của các giải pháp thu được khi các phương trình là cứng thường xuất hiện không liên quan đến thứ tự của phương pháp được sử dụng.

Đối với các phương pháp điều trị nghiêm ngặt hơn nữa của chủ đề này, hãy xem văn bản cổ điển của Hairer & Wanner, "Giải phương trình vi phân thông thường II: Cứng nhắc và khác biệt - Các vấn đề đại số", 1991.

Trong thực tế, các phương trình cứng hầu như luôn được giải bằng cách sử dụng quy tắc hình thang hoặc công thức TR-BDF2 (hàm ode23t và ode23tb trong MATLAB). Cả hai đều là phương pháp thứ hai ngầm định. Tất nhiên, khi sự ổn định không phải là một vấn đề (tức là trong các phương trình không quan trọng), chúng ta có thể tự do lựa chọn từ một số tùy chọn; RK45 là lựa chọn phổ biến nhất.


Rất thú vị. Có bất kỳ lời giải thích (trực quan) nào cho lý do tại sao thứ tự phải nhỏ hơn hoặc bằng 2 để nó là một phương thức đa cấp ổn định A không? Và chỉ cần làm rõ, khi bạn nói các tuyên bố tương tự có thể được thực hiện cho các công thức RK, nó có phải là thứ tự 2 lần nữa không?
Mathews24

Nhưng đối với các phương pháp Runge-Kutta, có các phương pháp ổn định A theo thứ tự tùy ý.
David Ketcheson

@DavidKetcheson Có, nhưng chúng không mạnh A-ổn định (tức là ổn định L). Chúng có rất nhiều vấn đề khi được sử dụng để giải quyết DAE, ví dụ như mô phỏng các mạch bán dẫn đơn giản. Thật vậy, TR khét tiếng vì gây ra tiếng chuông nhân tạo trong SPICE, đó là điều thúc đẩy sự phát triển của TR-BDF2.
Richard Zhang

@DavidKetcheson Để tham khảo, xem doi.org/10.1090/S0025-5718-1974-0331793-2 . Khái niệm về độ ổn định A không đủ mạnh cho DAE và các phương pháp ổn định A có thứ tự cao thường tạo ra kết quả kỳ lạ khi được sử dụng để giải DAEs.
Richard Zhang

Chắc chắn, nhưng câu hỏi không phải là về DAE hay về các phương pháp nhiều bước.
David Ketcheson

9

Thiết lập điểm chuẩn

Trong phần mềm Julia differentialEquations.jl, chúng tôi đã triển khai nhiều phương thức bậc cao hơn, bao gồm các phương thức Feagin. Bạn có thể thấy nó trong danh sách các phương thức của chúng tôi , và sau đó có hàng tấn phương pháp khác mà bạn có thể sử dụng như các tableaus được cung cấp . Bởi vì tất cả các phương pháp này được đặt cùng nhau, bạn có thể dễ dàng điểm chuẩn giữa chúng. Bạn có thể thấy các điểm chuẩn tôi có trực tuyến tại đây và thấy rằng rất đơn giản để điểm chuẩn nhiều thuật toán khác nhau. Vì vậy, nếu bạn muốn dành một vài phút để chạy các điểm chuẩn, hãy thực hiện nó. Đây là một bản tóm tắt về những gì đi ra.

Trước hết, điều quan trọng cần lưu ý là, nếu bạn nhìn vào từng điểm chuẩn, bạn sẽ thấy rằng DP5(Phương thức Dormand-Prince Order 5) của chúng tôi DP8nhanh hơn mã Hairer Fortran ( dopri5dop853), và vì vậy những triển khai này được tối ưu hóa rất tốt . Những điều này cho thấy như đã lưu ý trong một chủ đề khác, việc sử dụng quá mức các phương thức Dormand-Prince là vì các phương thức đã được viết chứ không phải vì chúng vẫn là tốt nhất. Vì vậy, so sánh thực tế giữa các triển khai được tối ưu hóa nhất là giữa các phương thức Tsitorous, phương thức Verner và phương thức Feagin từ DifentialEquations.jl.

Kết quả

Nói chung, các phương pháp của một đơn hàng cao hơn 7 có thêm chi phí tính toán thường không vượt trội so với đơn hàng, với các dung sai được chọn. Một lý do cho điều này là các lựa chọn hệ số cho các phương pháp bậc thấp hơn được tối ưu hóa hơn (chúng có "hệ số lỗi cắt ngắn nguyên tắc" nhỏ, điều này quan trọng hơn khi bạn không nhỏ bất thường). Bạn có thể thấy rằng trong nhiều vấn đề như ở đây, các phương pháp Verner E triệt 6 và 7 làm rất tốt, nhưng các phương pháp như Verner E triệt 8 có thể có độ dốc thấp hơn. Điều này là do "lợi ích" của bậc cao hơn được gộp với dung sai thấp hơn, do đó luôn có một dung sai trong đó các phương pháp bậc cao hơn sẽ hiệu quả hơn.

Tuy nhiên, câu hỏi là sau đó, thấp như thế nào? Trong một triển khai được tối ưu hóa tốt, điều đó trở nên khá thấp vì hai lý do. Lý do đầu tiên là bởi vì các phương thức bậc thấp hơn thực hiện một cái gì đó gọi là FSAL (đầu tiên giống như cuối cùng). Thuộc tính này có nghĩa là các phương thức bậc thấp hơn sử dụng lại đánh giá hàm từ bước trước trong bước tiếp theo và do đó có hiệu quả đánh giá một hàm ít hơn. Nếu điều này được sử dụng đúng cách, thì một cái gì đó như phương pháp thứ 5 (Tsitorous hoặc Dormand-Prince) thực sự đang thực hiện 5 đánh giá chức năng thay vì 6 mà các tableaus sẽ đề xuất. Điều này cũng đúng với phương pháp Verner 6.

Lý do khác là do nội suy. Một lý do để sử dụng một phương pháp thứ tự rất cao là thực hiện ít bước hơn và chỉ đơn giản là nội suy các giá trị trung gian. Tuy nhiên, để có được các giá trị trung gian, hàm nội suy có thể cần nhiều đánh giá hàm hơn mức được sử dụng để thực hiện bước này. Nếu bạn nhìn vào các phương pháp Verner, phải mất 8 đánh giá chức năng bổ sung cho phương thức Đơn hàng 8 để có được nội suy Đơn hàng 8. Nhiều lần các phương thức bậc thấp cung cấp một phép nội suy "miễn phí", ví dụ như hầu hết các phương thức bậc 5 có phép nội suy bậc 4 miễn phí (không có các đánh giá hàm bổ sung). Vì vậy, điều này có nghĩa là nếu bạn cần các giá trị trung gian (mà bạn sẽ cần cho một cốt truyện tốt nếu bạn đang sử dụng một phương pháp bậc cao), có một số chi phí ẩn thêm. Yếu tố trong thực tế là các giá trị nội suy này thực sự quan trọng để xử lý sự kiện và giải các phương trình vi phân trễ và bạn thấy tại sao các yếu tố chi phí nội suy thêm vào.

Vậy còn phương pháp Feagin thì sao?

Vì vậy, bạn sẽ thấy rằng các phương thức Feagin bị nghi ngờ bị thiếu trong các điểm chuẩn. Chúng đều ổn, các phép thử hội tụ hoạt động trên các số chính xác tùy ý, v.v., nhưng để thực sự làm cho chúng hoạt động tốt, bạn cần phải yêu cầu một số dung sai thấp khá vô lý. Ví dụ, tôi đã tìm thấy trong các điểm chuẩn chưa được công bố rằng các phương pháp Feagin14vượt trội hơn Vern9(Phương pháp hiệu quả Verner thứ 9) ở mức dung sai như thế nào 1e-30. Đối với các ứng dụng có động lực hỗn loạn (như trong các vấn đề vật lý thiên văn 3 mặt), bạn có thể muốn mức độ chính xác này do sự phụ thuộc nhạy cảm (lỗi trong các hệ thống hỗn hợp nhanh). Tuy nhiên, hầu hết mọi người có lẽ đang tính toán với các số dấu phẩy động có độ chính xác kép và tôi không tìm thấy điểm chuẩn nào vượt trội trong lĩnh vực khoan dung này.

Ngoài ra, không có nội suy để đi cùng với các phương thức Feagin. Vì vậy, những gì tôi làm chỉ đơn giản là đặt một phép nội suy Hermite bậc ba lên chúng để chúng tồn tại (và nó hoạt động tốt một cách đáng ngạc nhiên). Tuy nhiên, nếu không có hàm nội suy tiêu chuẩn, bạn có thể thực hiện phương pháp Hermite đệ quy (sử dụng phép nội suy này để lấy điểm giữa, sau đó thực hiện phép nội suy bậc 5, v.v.) để có được phép nội suy bậc cao, nhưng điều này rất tốn kém và kết quả là phép nội suy không nhất thiết phải có một thuật ngữ lỗi cắt ngắn nguyên tắc thấp (vì vậy nó chỉ tốt khi dtthực sự nhỏ, điều này hoàn toàn ngược lại với trường hợp chúng ta muốn!). Vì vậy, nếu bạn cần một phép nội suy thực sự tốt để phù hợp với độ chính xác của mình, ít nhất bạn cần quay lại một cái gì đó như thế nào Vern9.

Lưu ý về phép ngoại suy

Lưu ý rằng các phương pháp ngoại suy đơn giản là các thuật toán để tạo các phương thức Runge-Kutta theo thứ tự tùy ý. Tuy nhiên, đối với đơn hàng của họ, họ thực hiện nhiều bước hơn mức cần thiết và có hệ số lỗi cắt ngắn theo nguyên tắc cao, và do đó chúng không hiệu quả như phương pháp RK được tối ưu hóa tốt theo một trật tự nhất định. Nhưng theo phân tích trước đó, điều này có nghĩa là có một miền có dung sai cực kỳ thấp, trong đó các phương thức này sẽ làm tốt hơn các phương pháp RK "đã biết". Nhưng trong mọi tiêu chuẩn tôi đã chạy, có vẻ như tôi chưa đạt được mức thấp như vậy.

Lưu ý về sự ổn định

Sự lựa chọn thực sự không có gì để làm với các vấn đề ổn định. Trong thực tế, nếu bạn đi qua tableaus differentialEquations.jl (bạn chỉ có thể plot(tab)cho các vùng ổn định), bạn sẽ thấy rằng hầu hết các phương thức đều có các vùng ổn định tương tự đáng ngờ. Đây thực sự là một sự lựa chọn. Thông thường khi lấy các phương thức, tác giả thường làm như sau:

  1. Tìm các hệ số sai số nguyên tắc thấp nhất (nghĩa là các hệ số cho các điều khoản thứ tự tiếp theo)
  2. Tùy thuộc vào các ràng buộc đặt hàng
  3. Và làm cho vùng ổn định gần với phương pháp của Dormand-Prince Order 5.

Tại sao điều kiện cuối cùng? Chà, bởi vì phương pháp đó có xu hướng luôn ổn định với cách thức lựa chọn các bước thích ứng được điều khiển bởi PI được thực hiện, do đó, đây là một thanh tốt cho các vùng ổn định "đủ tốt". Vì vậy, không phải ngẫu nhiên mà các khu vực ổn định đều có xu hướng giống nhau.

Phần kết luận

Có sự đánh đổi trong mọi lựa chọn phương pháp. Các phương pháp RK bậc cao đơn giản là không hiệu quả ở cả dung sai thấp hơn bởi vì khó tối ưu hóa sự lựa chọn các hệ số và bởi vì số lượng các hợp chất đánh giá chức năng (và thậm chí còn tăng nhanh hơn khi có nội suy). Tuy nhiên, nếu dung sai đủ thấp, họ sẽ thắng, nhưng dung sai được yêu cầu có thể thấp hơn nhiều so với các ứng dụng "tiêu chuẩn" (nghĩa là chỉ thực sự áp dụng cho các hệ thống hỗn loạn).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.