Giải pháp rõ ràng ổn định về số lượng của hệ thống tuyến tính nhỏ


11

Tôi có một hệ thống tuyến tính không đồng nhất

Ax=b

Trong đó là ma trận với . Không gian trống của được đảm bảo có kích thước bằng 0 nên phương trình có nghịch đảo duy nhất . Do kết quả đi vào phía bên phải của ODE, mà tôi dự định sẽ giải quyết bằng phương pháp thích nghi, điều quan trọng là giải pháp phải trơn tru đối với các biến thể nhỏ của các yếu tố và . Do yêu cầu này và kích thước nhỏ, tôi nghĩ sẽ triển khai các công thức rõ ràng chon × n n 4 A x = A - 1 b A b A - 1 bAn×nn4Ax=A1bAbA1b. Các phần tử có thể chính xác bằng 0 hoặc lấy các giá trị rất khác nhau. Câu hỏi của tôi là nếu điều này có ý nghĩa với bạn và nếu có những biểu hiện ổn định đã biết cho điều này. Tôi đang mã hóa trong C cho các hệ thống x86.


Tôi biết nó đến rất muộn, nhưng đây là gợi ý của tôi: vì việc loại bỏ Gaussian với tổng số trục được biết là ổn định, có thể có ý nghĩa để mã hóa thuật toán cho các kích thước nhỏ. Xoay vòng làm phức tạp vấn đề vì có cách để chọn các cột liên tiếp, dẫn đến bộ công thức khác nhau; bạn có thể giảm sự phức tạp này bằng cách hoán đổi những gì cần hoán đổi, giảm số lượng các trường hợp xuống còn . ( n ! ) 2 1 2 + 2 2 + n 2(n!)2(n!)212+22+n2
Yves Daoust

Câu trả lời:


6

Trước khi thực hiện các công thức rõ ràng, tôi sẽ tự hỏi mình câu hỏi: "nó có đáng không?":

  • Có đáng để dành thời gian viết, gỡ lỗi và xác nhận các công thức rõ ràng này trong khi bạn có thể dễ dàng liên kết với BLAS + LAPACK sử dụng loại bỏ Gaussian cổ điển không?
  • Bạn có mong đợi để đạt được sự ổn định? Tôi không nghĩ rằng việc lập trình các công thức rõ ràng (như quy tắc của Cramer) sẽ mang lại cho bạn sự ổn định tốt hơn, ngược lại.
  • Bạn có mong đợi để đạt được tốc độ? Bạn đã hồ sơ toàn bộ chương trình của bạn? Phần thời gian nào được dành cho việc giải các hệ thống hese 4x4?
  • Xác suất trong một năm, bạn cải thiện mô hình của mình là gì và bạn cần 5 phương trình thay vì 4?

Lời khuyên của tôi: trước tiên hãy sử dụng kết hợp BLAS / LAPACK, xem nó có hoạt động không, lập hồ sơ cho toàn bộ chương trình, yêu cầu học sinh thực hiện các công thức rõ ràng (xin lỗi, bị mỉa mai ở đây) và so sánh về tốc độ và sự mạnh mẽ.


Nỗ lực của tôi để thực hiện nó là khoảng 15 phút, bởi vì tôi chỉ cần nhập một ma trận 1x1, 2x2, 3x3 và 4x4 chung vào một CAS (Maple cho tôi) và đảo ngược nó. Nó sẽ trả về một kết quả rõ ràng (giống như C) (được cho là dựa trên quy tắc của Cramer). Điểm thứ hai của bạn chính xác là mối quan tâm của tôi. Trong kết quả sẽ có các sản phẩm bậc cao hơn của các phần tử ma trận. Rõ ràng điều này có thể gây ra lỗi do 'gần như hủy bỏ' các điều khoản khác nhau. Nhưng câu hỏi là, nếu có thể viết kết quả ở dạng không xảy ra. Tốc độ không phải là mối quan tâm chính ở nơi này.
highsciguy

6

O(n3)

AAx b x Adet(A)0xbxA

Để an toàn, có lẽ tốt nhất là đảm bảo rằng không bị thiếu thứ hạng về số lượng (nghĩa là không có các giá trị số ít).A

Vấn đề với Quy tắc của Cramer là các thuộc tính ổn định của nó không được biết ngoại trừ (ổn định về phía trước, nhưng không ổn định về phía sau). (Xem Độ chính xác và tính ổn định của thuật toán số , phiên bản 2, của N. Higham.) Nó không được coi là một thuật toán đáng tin cậy; Loại bỏ Gaussian với Xoay vòng một phần (GEPP) được ưa chuộng.n=2

Tôi hy vọng vấn đề với việc sử dụng BLAS + LAPACK để thực hiện GEPP trong giải quyết ODE sẽ là bất kỳ sự khác biệt hữu hạn nào được sử dụng trong phương pháp ODE ngầm. Tôi biết rằng mọi người đã giải quyết các chương trình tuyến tính như là một phần của đánh giá bên tay phải và vì họ đã làm điều đó một cách ngây thơ (chỉ cắm chương trình tuyến tính giải quyết vào phía bên phải, gọi một thuật toán đơn giản), họ đã giảm đáng kể độ chính xác của chúng giải pháp tính toán tăng đáng kể thời gian cần thiết để giải quyết vấn đề. Một người bạn của tôi đã tìm ra cách giải quyết những vấn đề như vậy một cách hiệu quả, chính xác hơn nhiều; Tôi sẽ phải xem liệu ấn phẩm của anh ấy đã được phát hành chưa. Bạn có thể gặp vấn đề tương tự bất kể bạn chọn sử dụng Quy tắc GEPP hay Cramer.

Nếu có bất kỳ cách nào bạn có thể tính toán một ma trận Jacobian phân tích cho vấn đề của mình, bạn có thể muốn làm điều đó để tự cứu mình một số vấn đề đau đầu. Nó sẽ rẻ hơn để đánh giá, và có lẽ chính xác hơn, so với một xấp xỉ sai phân hữu hạn. Biểu thức cho đạo hàm của ma trận nghịch đảo có thể được tìm thấy ở đây nếu bạn cần chúng. Đánh giá đạo hàm của ma trận nghịch đảo có vẻ như sẽ mất ít nhất hai hoặc ba hệ thống tuyến tính, nhưng tất cả chúng sẽ có cùng một ma trận và các phía bên phải khác nhau, vì vậy nó sẽ không đắt hơn đáng kể so với một hệ thống tuyến tính gỡ rối.

Và nếu có bất kỳ cách nào bạn có thể so sánh giải pháp được tính toán của mình với một giải pháp với các giá trị tham số đã biết, tôi sẽ làm điều đó để bạn có thể chẩn đoán liệu bạn có gặp phải bất kỳ cạm bẫy số nào không.


Khi bạn viết trơn tru ở đây, bạn có nghĩa là nó cũng trơn tru khi được đánh giá với độ chính xác hữu hạn, tức là ổn định (đó là những gì tôi đã cố gắng nói). Xem thêm bình luận của tôi để trả lời của GertVdE. Tôi nghĩ rằng tôi có thể loại trừ các ma trận gần như số ít (tôi cho rằng trong những trường hợp như vậy, việc phân tích vấn đề vật lý của tôi phải được điều chỉnh lại).
highsciguy

1
Tôi có nghĩa là "ít nhất hai lần liên tục khác biệt". Tôi nghĩ rằng bản đồ nghịch đảo ma trận là vô cùng khác biệt liên tục cho tất cả sao cho . det ( A ) 0Adet(A)0
Geoff Oxberry

Nhận xét của bạn về 'sự khác biệt hữu hạn được sử dụng trong phương pháp ODE ngầm' áp dụng cho tôi. Vì kích thước của nhỏ hơn nhiều so với kích thước của hệ thống ODE của tôi (ma trận này chỉ phát sinh trong ánh xạ của một vài biến), độ mạnh mẽ quan trọng hơn nhiều ở giai đoạn này so với tốc độ. Đặc biệt, trong giai đoạn phát triển, tôi sẽ không bao giờ biết nơi phát sinh lỗi số nếu tôi không đảm bảo rằng các thành phần riêng lẻ được an toàn. AnA
highsciguy

-2

Không chắc điều đó có thể giúp nhưng tôi chỉ nghĩ khi bạn nói về giải pháp ổn định, bạn đang nói về các phương pháp gần đúng. Khi bạn tính toán mọi thứ rõ ràng, sự ổn định không có cảm giác. Điều đó nói rằng bạn phải chấp nhận một giải pháp gần đúng nếu bạn muốn đạt được sự ổn định.


5
Xấp xỉ điểm gần đúng (làm tròn, hủy, v.v.) tất cả được tính khi ổn định. Ngay cả khi bạn có một công thức cho câu trả lời, bạn phải tìm hiểu xem nó có thể được tính toán chính xác trong số học chính xác hữu hạn hay không.
Bill Barth

Tôi không thấy câu trả lời này là tiêu cực như những người khác dường như nhìn thấy nó. Tất nhiên vấn đề ổn định tồn tại cũng cho kết quả rõ ràng. Nhưng tôi tin rằng ctNGUYEN chỉ muốn nói một giải pháp gần đúng như việc mở rộng với số lượng nhỏ thực sự có thể chính xác hơn kết quả rõ ràng đầy đủ mà theo tôi là đúng. Theo một nghĩa nào đó, tôi yêu cầu các giải pháp rõ ràng xử lý các trường hợp khó khăn như vậy, để công thức sẽ luôn ổn định.
highsciguy
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.