Có phải Crank-Nicolson là một sơ đồ phân tách ổn định cho phương trình Phản ứng-Khuếch tán-Lời khuyên (đối lưu)?


26

Tôi không quen thuộc lắm với các chương trình phân biệt đối xử phổ biến cho các PDE. Tôi biết rằng Crank-Nicolson là sơ đồ phổ biến để phân biệt phương trình khuếch tán. Cũng là một lựa chọn tốt cho nhiệm kỳ thăng tiến?

Tôi rất thú vị khi giải phương trình Phản ứng-Khuếch tán-Lời khuyên ,

ut+(vuDu)=f

Trong đó là hệ số khuếch tán của chất và là vận tốc.Duv

Đối với ứng dụng cụ thể của tôi, phương trình có thể được viết dưới dạng,

ut=D2ux2Diffusion+vuxAdvection (convection)+f(x,t)Reaction

Đây là sơ đồ Crank-Nicolson tôi đã áp dụng,

ujn+1ujnΔt=D[1β(Δx)2(uj1n2ujn+uj+1n)+β(Δx)2(uj1n+12ujn+1+uj+1n+1)]+v[1α2Δx(uj+1nuj1n)+α2Δx(uj+1n+1uj1n+1)]+f(x,t)

Lưu ý các điều khoản và . Điều này cho phép chương trình di chuyển giữa:αβ

  • β=α=1/2 Crank-Niscolson,
  • β=α=1 nó hoàn toàn ẩn
  • β=α=0 nó hoàn toàn rõ ràng

Các giá trị có thể khác nhau, cho phép thuật ngữ khuếch tán là Crank-Nicolson và thuật ngữ quảng cáo là một thứ khác. Cách tiếp cận ổn định nhất, bạn muốn giới thiệu gì?

Câu trả lời:


15

Đây là một câu hỏi được đóng khung tốt và một điều rất hữu ích để hiểu. Korrok là chính xác để giới thiệu bạn đến phân tích von Neumann và cuốn sách của LeVeque. Tôi có thể thêm một chút nữa vào đó. Tôi muốn viết một câu trả lời chi tiết, nhưng hiện tại tôi chỉ có thời gian cho một câu trả lời ngắn:

Với , bạn có được một phương pháp hoàn toàn ổn định cho các kích thước bước lớn tùy ý, cũng như chính xác bậc hai. Tuy nhiên, phương pháp này không ổn định L , vì vậy tần số rất cao sẽ không bị ẩm, điều này là phi vật lý.α=β=1/2

Với , bạn có được một phương thức cũng ổn định vô điều kiện, nhưng chỉ chính xác theo thứ tự. Phương pháp này rất tiêu tan. Nó là L- ổn định.α=β=1

Nếu bạn sử dụng , phương pháp của bạn có thể được hiểu là áp dụng phương pháp Runge-Kutta phụ gia cho phương pháp bán rời khác biệt trung tâm. Phân tích độ ổn định và độ chính xác cho các phương pháp như vậy phức tạp hơn đáng kể. Một bài báo rất hay về các phương pháp như vậy là ở đây .αβ

Cách tiếp cận nào được đề xuất phụ thuộc mạnh mẽ vào cường độ của , loại dữ liệu ban đầu bạn xử lý và độ chính xác mà bạn tìm kiếm. Nếu độ chính xác rất thấp có thể chấp nhận được, thì là một cách tiếp cận rất mạnh mẽ. Nếu ở mức trung bình hoặc lớn, thì vấn đề là do khuếch tán và rất cứng; thông thường sẽ cho kết quả tốt. Nếu rất nhỏ, thì có thể thuận lợi khi sử dụng một phương pháp rõ ràng và nâng cao thứ tự cao hơn cho các thuật ngữ đối lưu.Dα=β=1Dα=β=1/2D


Một câu trả lời rất sâu sắc, cảm ơn bạn! Có cách nào để xác định các chế độ khác nhau của sự khuếch tán chiếm ưu thế và sự tiến bộ chiếm ưu thế? Khác với việc so sánh độ lớn của các điều khoản? Chẳng hạn, bằng cách chỉ so sánh hệ số? Ý nghĩa của thuật ngữ L-ổn định là gì. Mọi người giới thiệu cuốn sách này, tôi phải mua nó!
boyfarrell

Tiêu chí tôi đưa ra cho bạn chỉ liên quan đến các hệ số. Tóm lại, độ ổn định L có nghĩa là tần số cao sẽ bị giảm mạnh.
David Ketcheson

Vì vậy, khi là một chức năng trơn tru (như trong ý nghĩa, nó không có các thành phần Fourier tần số cao) Crank-Nicolson là một lựa chọn tốt. Tuy nhiên, nếu có các cạnh sắc nét thì là một lựa chọn tốt. u(x)u(x)β=1
boyfarrell

Đó là một khái quát hợp lý, mặc dù rất thô. Những lựa chọn đó ít nhất sẽ hoạt động nếu bạn không cần độ chính xác cao.
David Ketcheson

10

Nói chung, bạn sẽ muốn sử dụng một phương pháp ngầm cho các phương trình parabol (phần khuếch tán) - các sơ đồ rõ ràng cho PDE parabol cần phải có một dấu thời gian rất ngắn để ổn định. Ngược lại, đối với phần hyperbol (khuyến khích) bạn sẽ muốn một phương pháp rõ ràng vì nó rẻ hơn và không phá vỡ tính đối xứng của hệ thống tuyến tính mà bạn phải giải quyết bằng cách sử dụng sơ đồ ngầm để khuếch tán. Trong trường hợp đó, bạn muốn tránh các khác biệt tập trung như và chuyển sang các khác biệt một phía vì lý do ổn định.(uj+1uj1)/2Δt(ujuj1)/Δt

Tôi khuyên bạn nên xem cuốn sách của Randy Leveque hoặc cuốn sách của Dale Durran để biết "phân tích ổn định von Neumann". Đó là một cách tiếp cận chung để xác định tính ổn định của sơ đồ rời rạc của bạn, miễn là bạn có các điều kiện biên định kỳ. (Cũng có một bài viết wiki tốt ở đây .)

Ý tưởng cơ bản là giả định rằng xấp xỉ rời rạc của bạn có thể được viết một tổng số sóng phẳng , trong đó là số sóng và tần số. Bạn nhồi nhét một làn sóng máy bay vào gần đúng với PDE và cầu nguyện nó sẽ không nổ tung. Chúng ta có thể viết lại sóng phẳng dưới dạng và chúng tôi muốn đảm bảo rằng .ei(kjΔxωnΔt)kωξneikjΔx|ξ|1

Bằng cách minh họa, hãy xem xét phương trình khuếch tán thông thường với sự khác biệt hoàn toàn ẩn:

ujn+1ujnΔt=Duj1n+12ujn+1+uj+1n+1Δx2

Nếu chúng ta thay thế trong một sóng phẳng, sau đó chia cho và , chúng ta sẽ có phương trìnhξneikjΔx

ξ1Δt=DeikΔx2+eikΔxΔx2ξ

Làm sạch điều này một chút bây giờ và chúng tôi nhận được:

ξ=11+2DΔtΔx2(1coskΔx) .

Điều này luôn luôn ít hơn một, vì vậy bạn rõ ràng. Hãy thử áp dụng điều này cho sơ đồ trung tâm rõ ràng cho phương trình tiến lên:

ujn+1ujnΔt=vuj1nuj+1n2Δx

và xem những gì bạn nhận được. (Lần này nó sẽ có một phần tưởng tượng.) Bạn sẽ thấy rằng , đó là thời gian buồn. Do đó tôi khuyên bạn không nên sử dụng nó. Nếu bạn có thể làm điều đó, thì bạn sẽ không gặp nhiều khó khăn khi tìm một sơ đồ ổn định cho phương trình khuếch tán hoàn toàn.ξ|ξ|2>1

Điều đó nói rằng, tôi sẽ sử dụng một sơ đồ hoàn toàn ẩn cho phần khuếch tán. Thay đổi sự khác biệt trong phần tiến lên thành nếu và nếu và chọn dấu thời gian sao cho . (Đây là điều kiện Courant-Friedrichs-Lewy .) Nó chỉ chính xác theo thứ tự đầu tiên, vì vậy bạn có thể muốn tìm kiếm các chương trình phân biệt thứ tự cao hơn nếu điều đó làm bạn lo lắng.ujuj1v>0ujuj+1v<0VΔt/Δx1


Đó là một câu trả lời thực sự chi tiết, cảm ơn bạn.
boyfarrell

Câu trả lời này chỉ xem xét sự rời rạc dựa trên các phương pháp Euler tiến và lùi theo thời gian. Câu hỏi là về Crank-Nicholson.
David Ketcheson
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.