Những gì symplectic có nghĩa là gì liên quan đến các nhà tích hợp số, và odeint của SciPy có sử dụng chúng không?


25

Trong bình luận này tôi đã viết:

... tích hợp SciPy mặc định, mà tôi giả sử chỉ sử dụng các phương pháp đối xứng.

trong đó tôi đang đề cập đến SciPy odeint, sử dụng phương pháp "không cứng (Adams)" hoặc "phương pháp cứng (BDF)". Theo nguồn tin :

def odeint(func, y0, t, args=(), Dfun=None, col_deriv=0, full_output=0,
           ml=None, mu=None, rtol=None, atol=None, tcrit=None, h0=0.0,
           hmax=0.0, hmin=0.0, ixpr=0, mxstep=0, mxhnil=0, mxordn=12,
           mxords=5, printmessg=0):
    """
    Integrate a system of ordinary differential equations.

    Solve a system of ordinary differential equations using lsoda from the
    FORTRAN library odepack.

    Solves the initial value problem for stiff or non-stiff systems
    of first order ode-s::
        dy/dt = func(y, t0, ...)
    where y can be a vector.
    """

Dưới đây là một ví dụ nơi tôi tuyên truyền quỹ đạo của vệ tinh trên trái đất trong ba tháng chỉ để cho thấy rằng nó cần thiết như mong đợi.

Tôi tin rằng các nhà tích hợp không có triệu chứng có đặc tính không mong muốn là họ sẽ có xu hướng không bảo tồn năng lượng (hoặc các đại lượng khác) và vì vậy không mong muốn trong cơ học quỹ đạo chẳng hạn. Nhưng tôi không chắc chắn chính xác điều gì tạo nên sự tích hợp đối xứng.

Có thể giải thích tài sản là gì (điều đó làm cho một nhà đối lập tích hợp đối xứng) theo cách đơn giản và (khá) dễ hiểu nhưng không chính xác? Tôi đang hỏi từ quan điểm về cách tích hợp hoạt động bên trong , hơn là cách nó thực hiện trong thử nghiệm.

Và sự nghi ngờ của tôi có đúng odeintkhông khi chỉ sử dụng các tích hợp đối xứng?


4
Là một quy tắc mạnh mẽ, bạn chỉ nên hy vọng một nhà tích hợp hộp đen là đối xứng nếu nó yêu cầu bạn tách ra các phương trình vị trí và động lượng.
origimbo

@origimbo Cảm ơn. Những thứ này làm, và có vẻ như odeintlà một trình bao bọc Python cho các mã nguồn khá cũ, đã được thiết lập và được tham chiếu tốt, (câu hỏi đã được chỉnh sửa, tham chiếu ODEPACK và LSODA) mặc dù tôi chắc chắn thừa nhận sử dụng nó trong chế độ hộp đen. Ví dụ liên kết của tôi cho thấy vectơ trạng thái 6D bao gồm ba vị trí và ba vận tốc.
uhoh

11
Các bộ tích hợp ODE trong ODEPACK và LSODA không phải là các bộ tích hợp đối xứng.
Brian Borchers

2
Dưới đây là một ví dụ hoạt động so sánh hai bộ giải rất đơn giản: Euler và Symplectic Euler: idontgetoutmuch.wordpress.com/2013/08/06/ .
idontgetoutmuch

2
Cuốn sách của Hairer, Nørsett và Wanner đưa ra một lời giải thích tốt về các phương pháp đối xứng. Nhìn vào hình 16.1 nói riêng và các số liệu ở đây .
JM

Câu trả lời:


47

Hãy để tôi bắt đầu với sửa chữa. Không, odeintkhô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.

nhập mô tả hình ảnh ở đây

Đ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:

nhập mô tả hình ảnh ở đây

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:

nhập mô tả hình ảnh ở đây

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.


10
Với câu trả lời này, tôi dường như đã trúng Jackpot Stack! Đây là câu trả lời hoàn hảo cho tôi, vì tôi hiểu một số điều ngay lập tức và những phần mà tôi không để tôi lo lắng để đọc thêm. Tôi thực sự đánh giá cao thời gian bạn dành để tìm hiểu kỹ câu trả lời này cũng như bao gồm các liên kết hữu ích và mang tính hướng dẫn khác.
uhoh

Trước khi đi vào chi tiết toán học, chúng ta có thể nói đại khái rằng phương pháp đối xứng có nghĩa là bảo tồn khối lượng , phải không?
Miguel

2
FTR, lý do thứ tự thích nghi thứ 5 Runge-Kutta thực hiện tốt hơn RK4 rất nhiều ở đây không phải là nó có thứ tự cao hơn mà là nó chọn kích cỡ bước phù hợp hơn. Lý do RK4 thực hiện rất tệ là chủ yếu là kích thước bước cao không phù hợp ở điểm truy cập; cùng một bộ giải với một nửa kích thước bước sẽ cho một giải pháp tốt hơn nhiều. (Chỉ là, nó sẽ lãng phí rất nhiều thời gian để giải quyết quỹ đạo một cách tinh vi xung quanh apogee, nơi điều này hoàn toàn không cần thiết.)
leftaroundabout 27/03/18

1
giải trình tuyệt vời. Như một câu hỏi phụ: OP bắt đầu bằng một tham chiếu đến Python - có các hướng dẫn / gói Python được đề xuất dọc theo các dòng của các ví dụ Julia được liên kết không?
Quetzalcoatl

1
Gói Python duy nhất tôi biết cho các loại tích hợp này là diffeqpy , trong đó nó không được ghi lại trên README nhưng bạn có thể truy cập tất cả các phương thức tương tự và viết lại nó trong Python bằng gói đó.
Chris Rackauckas

14

pqH(p,q)

dqdt=+Hp
dpdt=Hq.
H
p(t),q(t)=ϕt(p(t0),q(t0))
dpdqpqlà một chiều bạn có thể nghĩ về điều này khi nói rằng khu vực bên trong các đường cong kín trên không gian pha được bảo tồn. Điều này đảm bảo tất cả các loại thuộc tính ổn định tốt, vì "các quả bóng" của các quỹ đạo phải ở gần "nhau".

Về mặt số học, một nhà tích hợp đối xứng hoạt động theo cùng một cách, cũng bảo tồn khu vực / hai hình thức này. Đổi lại, điều này có nghĩa là có một "Hamiltonian số" được bảo tồn (có thể không phải là [đọc 'không'] giống như chính xác). Lưu ý rằng độ ổn định không giống như độ chính xác, do đó, hầu hết các ưu điểm của phương pháp đối xứng xuất hiện khi tích hợp trong thời gian rất dài (ví dụ: phương pháp của bạn có thể nhanh chóng đặt vệ tinh ở phía bên trái của Trái đất, trong khi không bao giờ cho phép nó phân rã thành nó).


Cảm ơn vì điều này! Bây giờ tôi sẽ sử dụng các từ trên mức lương của tôi. n-ball của quỹ đạo có nhiều rủi ro hơn khi chúng ở gần các phân nhánh, chẳng hạn như trong các mô phỏng 3 cơ thể. xem Doedel et al. 2007, Int. J. Bifurcation và Chaos, câu 17, không. 8 (2007) 2625 Mạnh2677 Tôi đã làm như thế nào? Cũng ieec.cat/hosted/web-libpoint/papers/...
uhoh

2
Trừ khi người đọc nhận thức được các chi tiết toán học, việc đề cập đến sự ổn định là sai lệch, vì bảo toàn khối lượng không có nghĩa là các quỹ đạo riêng lẻ vẫn gần gũi.
Miguel

1
@Miguel Tôi nghĩ rằng đây là một trong những tình huống mà người đọc không theo dõi các chi tiết toán học bị thiệt hại, nhưng về mặt troika của nhà số học thông thường về tính chính xác, ổn định và hiệu quả tính toán, tôi cho rằng nhấn mạnh sự ổn định lợi ích là hữu ích. Tôi rất vui khi chấp nhận đề xuất viết lại nếu bạn có thể nghĩ về điều gì đó tốt hơn mà không chính xác.
origimbo

22

1
@Miguel: Nhưng các đốm hạt được phép chia thành hai hoặc nhiều phần. Tổng khối lượng của nó chỉ phải giữ không đổi.
Wolfgang Bangerth 27/03/18
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.