Hãy để tôi bắt đầu với sửa chữa. Không, odeint
không có bất kỳ nhà tích hợp đối xứng nào. Không, tích hợp đối xứng không có nghĩa là bảo tồn năng lượng.
Symplectic có nghĩa là gì và khi nào bạn nên sử dụng nó?
Trước hết, symplectic có nghĩa là gì? Symplectic có nghĩa là các giải pháp tồn tại trên một đa tạp đối xứng. Một đa tạp đối xứng là một tập hợp giải pháp được xác định bởi dạng 2. Các chi tiết của đa tạp đối xứng có thể nghe giống như vô nghĩa toán học, vì vậy thay vào đó, ý chính của nó là có một mối quan hệ trực tiếp giữa hai bộ biến trên một đa tạp như vậy. Lý do tại sao điều này lại quan trọng đối với vật lý là bởi vì các phương trình của Hamilton tự nhiên có các giải pháp nằm trên một đa tạp đối xứng trong không gian pha, với sự phân tách tự nhiên là các thành phần vị trí và động lượng. Đối với giải pháp Hamilton thực sự, đường không gian pha đó là năng lượng không đổi.
O(Δtn)n
Điều này có xu hướng có nghĩa là các nhà tích hợp đối xứng có xu hướng nắm bắt các mô hình thời gian dài tốt hơn so với các nhà tích hợp thông thường vì sự thiếu trôi này và điều này gần như đảm bảo tính định kỳ. Sổ ghi chép này hiển thị các thuộc tính tốt về vấn đề Kepler . Hình ảnh đầu tiên cho thấy những gì tôi đang nói với tính chất định kỳ của giải pháp.
Điều này đã được giải quyết bằng cách sử dụng bộ tích hợp đối xứng bậc 6 từ Kahan và Li từ differentialEquations.jl . Bạn có thể thấy rằng năng lượng không được bảo toàn chính xác, nhưng sự biến đổi của nó phụ thuộc vào mức độ đa dạng của giải pháp nhiễu loạn từ đa tạp thực sự. Nhưng vì giải pháp số tự nó nằm trên một đa tạp đối xứng, nên nó có xu hướng gần như chính xác theo định kỳ (với một số trôi tuyến tính mà bạn có thể thấy), làm cho nó hoạt động rất tốt để tích hợp lâu dài. Nếu bạn làm tương tự với RK4, bạn có thể gặp thảm họa:
Bạn có thể thấy rằng vấn đề là không có tính tuần hoàn thực sự trong giải pháp số và do đó, nó làm tăng thêm thời gian.
Điều này nhấn mạnh lý do thực sự để chọn các nhà tích hợp đối xứng: các nhà tích hợp đối xứng là tốt cho việc tích hợp trong thời gian dài đối với các vấn đề có thuộc tính đối xứng (hệ thống Hamilton) . Vì vậy, hãy đi qua một vài điều. Lưu ý rằng bạn không phải lúc nào cũng cần các nhà tích hợp đối xứng ngay cả đối với một vấn đề đối xứng. Trong trường hợp này, một phương pháp Runge-Kutta thứ 5 thích nghi có thể làm tốt. Đây là Tsit5
:
Chú ý hai điều. Thứ nhất, nó có độ chính xác đủ tốt để bạn không thể nhìn thấy độ trôi thực tế trong âm mưu không gian pha. Tuy nhiên, ở phía bên phải bạn có thể thấy rằng có sự trôi năng lượng này, và vì vậy nếu bạn thực hiện tích hợp đủ lâu, phương pháp này sẽ không làm tốt như phương pháp giải pháp với các thuộc tính định kỳ. Nhưng điều đó đặt ra câu hỏi, làm thế nào để tăng giá trị hiệu quả so với việc tích hợp cực kỳ chính xác? Vâng, điều này là một chút ít chắc chắn. Trong DiffEqBenchmark.jl, bạn có thể tìm thấy một số điểm chuẩn điều tra câu hỏi này. Ví dụ: cuốn sổ nàyxem xét lỗi năng lượng so với thời gian chạy trên hệ phương trình Hamilton từ mô hình Boson tăng gấp bốn lần và cho thấy rằng nếu bạn muốn độ chính xác thực sự cao, thì ngay cả trong thời gian tích hợp khá dài, hiệu quả hơn là chỉ sử dụng RK hoặc Runge-Kutta Nystrom ( Phương pháp RKN). Điều này có ý nghĩa bởi vì để thỏa mãn tính chất đối xứng, các nhà tích hợp từ bỏ một số hiệu quả và gần như phải có bước thời gian cố định (có một số nghiên cứu tiến vào giai đoạn sau nhưng nó không quá xa).
Ngoài ra, thông báo từ cả hai máy tính xách tay này rằng bạn cũng có thể chỉ cần thực hiện một phương pháp tiêu chuẩn và chiếu nó trở lại giải pháp đa dạng từng bước (hoặc cứ sau vài bước). Đây là những gì mà các ví dụ sử dụng hàm gọi lại differentialEquations.jl ManifoldProjection đang làm. Bạn thấy rằng các luật bảo tồn được duy trì nhưng với chi phí tăng thêm để giải quyết một hệ thống ngầm mỗi bước. Bạn cũng có thể sử dụng một bộ giải ODE hoàn toàn ẩn hoặc ma trận khối đơn lẻ để thêm vào các phương trình bảo tồn, nhưng kết quả cuối cùng là các phương pháp này tốn kém hơn về mặt tính toán như một sự đánh đổi.
Vì vậy, để tóm tắt, lớp các vấn đề mà bạn muốn tiếp cận với một nhà tích hợp đối xứng là những vấn đề có giải pháp trên một đa tạp đối xứng (hệ thống Hamilton) mà bạn không muốn đầu tư tài nguyên tính toán để có một chính xác (dung sai <1e-12
) giải pháp và không cần năng lượng chính xác / vv. bảo tồn. Điều này nhấn mạnh rằng đó là tất cả về các thuộc tính tích hợp dài hạn, vì vậy bạn không nên đổ xô vào tất cả chúng như một số tài liệu cho thấy. Nhưng chúng vẫn là một công cụ rất quan trọng trong nhiều lĩnh vực như Vật lý thiên văn, nơi bạn có tích hợp thời gian dài mà bạn cần phải giải quyết đủ nhanh mà không có độ chính xác vô lý.
Tôi tìm thấy các nhà tích hợp symplectic ở đâu? Những loại tích hợp symplectic tồn tại?
Nhìn chung có hai lớp tích hợp symplectic. Có các tích hợp Runge-Kutta đối xứng (là những tích hợp được thể hiện trong các ví dụ trên) và có các phương pháp Runge-Kutta ẩn có thuộc tính đối xứng. Như @origimbo đề cập, các nhà tích hợp Runge-Kutta đối xứng yêu cầu bạn cung cấp cho họ một cấu trúc phân vùng để họ có thể xử lý các phần vị trí và động lượng riêng biệt. Tuy nhiên, đi ngược lại với nhận xét, các phương pháp Runge-Kutta ngầm định là đối xứng mà không yêu cầu điều này, mà thay vào đó yêu cầu giải quyết một hệ thống phi tuyến. Điều này không quá tệ bởi vì nếu hệ thống không cứng, hệ thống phi tuyến này có thể được giải quyết bằng phép lặp chức năng hoặc gia tốc Anderson, nhưng các phương pháp RK đối xứng có lẽ vẫn được ưu tiên cho hiệu quả (nó '
Điều đó nói rằng, odeint không có phương pháp từ một trong hai gia đình này , vì vậy nó không phải là một lựa chọn tốt nếu bạn đang tìm kiếm các nhà tích hợp đối xứng. Trong Fortran, trang web của Hairer có một bộ nhỏ bạn có thể sử dụng . Mathematica có một vài được xây dựng trong . Các bộ giải GSL ODE có các bộ tích hợp điểm RK Gaussian ẩn mà IIRC là đối xứng, nhưng đó là lý do duy nhất để sử dụng các phương pháp GSL.
Nhưng bộ tích hợp đối xứng toàn diện nhất có thể được tìm thấy trong differentialEquations.jl ở Julia (nhớ lại điều này đã được sử dụng cho các sổ ghi chép ở trên). Danh sách các phương pháp Runge-Kutta đối xứng có sẵn được tìm thấy trên trang này và bạn sẽ nhận thấy rằng phương pháp trung điểm ngầm cũng là đối xứng (phương pháp Runge-Kutta Trapezoid ẩn được coi là "gần như đối xứng" vì nó có thể đảo ngược). Nó không chỉ có bộ phương thức lớn nhất mà còn là nguồn mở (bạn có thể xem mã và các bài kiểm tra của nó bằng ngôn ngữ cấp cao) và có rất nhiều điểm chuẩn . Một cuốn sổ tay giới thiệu tốt để sử dụng nó để giải quyết các vấn đề vật lý là cuốn sổ tay hướng dẫn này. Nhưng tất nhiên, bạn nên bắt đầu với gói thông qua hướng dẫn ODE đầu tiên .
Nói chung, bạn có thể tìm thấy một phân tích chi tiết của bộ phương trình vi phân số tại bài viết blog này . Nó khá chi tiết nhưng vì nó phải bao gồm rất nhiều chủ đề nên mỗi chủ đề ít chi tiết hơn thế này, vì vậy hãy thoải mái yêu cầu mở rộng theo bất kỳ cách nào.