Tôi có một vấn đề ma trận tổng quát: từ phương pháp phổ trên bài toán phân tích ổn định tuyến tính. Ma trận B của tôi là đường chéo và bán xác định dương. A là không ẩn sĩ và phức tạp.
Vấn đề của tôi về cơ bản là khi sử dụng bộ giải eigenvalue tổng quát SLEPc, tôi gặp lỗi "trục không trong hệ số LU". Phần còn lại dưới đây là chi tiết về vấn đề và những điều tôi đã thử cho đến nay. Cảm ơn đã giúp đỡ!
Chi tiết về vấn đề
Ma trận sẽ ở mức lớn nhất khoảng 48000 x 48000 và tôi muốn tìm giá trị riêng. Các giá trị riêng mà tôi quan tâm là những cái có phần thực lớn nhất gần 0 + 0i. Lý tưởng nhất, tôi muốn có thể tìm thấy chúng ngay cả khi chúng là nội bộ (tức là khi có các giá trị riêng khác với phần thực dương lớn hơn trong phổ). Tuy nhiên, tôi sẽ rất vui nếu tôi có thể làm cho nó hoạt động cho các vấn đề trong đó tất cả các giá trị riêng có các phần thực <0 ngoài giá trị riêng của lợi ích.
Hiện tại tôi đã sử dụng các hàm linalg.eig và spzzy.eigs scipy. Theo tôi biết, những cái này sử dụng LAPACK và ARPACK tương ứng để thực hiện các công việc nặng. Tôi đã quyết định xem liệu tôi có thể đạt được hiệu suất tốt hơn thông qua việc sử dụng thư viện SLEPc hay không. Nếu đây là một quyết định tồi tệ, hãy cho tôi biết!
Tôi muốn chuyển sang sử dụng PETSc với bộ giải eigenvalue SLEPc. Tôi đã thử SLEPc bằng cách sử dụng các ví dụ được cung cấp như một phần của hướng dẫn. Bài tập 7 ( http://www.grycap.upv.es/slepc/handson/handson3.html ) đọc các ma trận A và B từ một tệp và xuất ra các giải pháp. Tôi đã làm điều này để làm việc tốt bằng cách sử dụng ma trận được cung cấp. Tuy nhiên, nếu tôi thay thế một phiên bản thử nghiệm có kích thước nhỏ hơn cho vấn đề của mình (6000x6000), tôi sẽ gặp nhiều lỗi khác nhau tùy thuộc vào các đối số dòng lệnh tôi cung cấp.
Vấn đề chính tôi gặp phải là lỗi: "trục không trong hệ số LU!" khi tôi sử dụng các thiết lập mặc định.
Tôi nghĩ rằng điều này có thể liên quan đến thực tế là B chứa các hàng số không, mặc dù hiểu biết của tôi về đại số tuyến tính là hơi cơ bản. Điều này có đúng không?
Tôi đã thử thiết lập các tùy chọn được đề xuất trên trang web của petc, -pc_factor_shift_type NONZERO, v.v. nhưng tất cả những gì tôi nhận được là một cảnh báo bổ sung rằng các tùy chọn này không được sử dụng
Tôi giả định rằng đây là một vấn đề với bộ tiền xử lý, vì vậy tôi đã thử đặt -eps_target thành 0.1 và cả có và không chỉ định -vert_type sinvert và shift. Tôi vẫn nhận được cùng một lỗi.
Sau đó, tôi đã thử -st_pc_type jacobi và st_pc_type bjacobi. jacobi chạy, nhưng không tạo ra bất kỳ giá trị riêng nào. Block jacobi thực hiện một nhân tố LU và lại đưa ra lỗi tương tự.
Phương thức mặc định là krylov-schur, vì vậy tôi đã thử nghiệm với các tùy chọn jd -eps_type gd và -eps_type. Thật không may, những thứ này dường như tạo ra các giá trị riêng vô nghĩa, hoàn toàn không xuất hiện trên phổ khi tôi giải quyết bằng LAPACK trong scipy.
Tôi biết vấn đề ma trận của tôi không phải là số ít, bởi vì tôi có thể giải quyết nó bằng scipy.
Bạn có biết bất kỳ cuốn sách / hướng dẫn nào tôi có thể cần đọc ngoài hướng dẫn sử dụng PETSC và SLEPC để hiểu hành vi của tất cả những người giải quyết khác nhau này không?
Đầu ra từ trường hợp không có tùy chọn dòng lệnh được đưa ra dưới đây.
Cảm ơn rất nhiều vì đã dành thời gian để đọc bài viết đầu tiên của tôi!
Trân trọng, Toby
Đầu ra thiết bị đầu cuối từ SLEPc
tobymac: SLEPC toby $ mpiexec ./ex7 -f1 LHS-N7-M40-Re0.0-b0.1-Wi5.0-amp0.02.petsc -f2 RHS-N7-M40-Re0.0-b0.1- Wi5.0-amp0.02.petsc -eps_view
Tổng quát bản địa được lưu trữ trong tập tin.
[0] LSCI PETSC: --------------------- Thông báo lỗi --------------------- --------------- [0] PETSC ERROR: Đã phát hiện trục xoay số 0 trong hệ số LU: xem http://www.mcs.anl.gov/petsc/documentation/faq.html#ZeroPOLL! [0] PETSC ERROR: Hàng trống trong ma trận: hàng theo thứ tự ban đầu 2395 theo thứ tự hoán vị 3600! [0] LRI PETSC: -------------------------------------------- ---------------------------- [0] PETSC ERROR: Phiên bản phát hành của vật nuôi 3.3.0, Bản vá 5, Thứ bảy ngày 1 tháng 12 15:10 : 41 CST 2012 [0] PETSC ERROR: Xem tài liệu / thay đổi / index.html để cập nhật gần đây. [0] PETSC ERROR: Xem docs / faq.html để biết các gợi ý về xử lý sự cố. [0] PETSC ERROR: Xem docs / index.html để biết các trang thủ công. [0] LRI PETSC: -------------------------------------------- ---------------------------- [0] PETSC ERROR: ./ex7 trên arch-darw có tên tobymac bởi toby Thu Jul 25 10 : 20: 40 2013 [0] PETSC ERROR: Các thư viện được liên kết từ / opt / local / lib [0] PETSC ERROR: Cấu hình chạy vào Tue Jul 23 15:11:27 2013 [0] PETSC ERROR:
[0] PETSC ERROR: PCSetUp () dòng 832 trong /opt/local/var/macports/build/_Users_toby_MyPorts_scienceports_math_petsc/petsc/work/petsc-3.3-p5/src/sp/ LRI: KSPSetUp () dòng 278 trong /opt/local/var/macports/build/_Users_toby_MyPorts_scienceports_math_petsc/petsc/work/petsc-3.3-p5/src/ksp/ksp/ ) dòng 176 trong /opt/local/var/macports/build/_Users_toby_MyPorts_scienceports_math_petsc/petsc/work/petsc-3.3-p5/src/ksp/pc/impls/redaleigh/red 832 in /opt/local/var/macports/build/_Users_toby_MyPorts_scienceports_math_petsc/petsc/work/petsc-3.3-p5/src/ksp/pc/interface/precon.c [0] /local/var/macports/build/_Users_toby_MyPorts_scienceports_math_petsc/petsc/work/petsc-3.3-p5/src/ksp/ksp/interface/itfunc.c [0] PETSC ERROR: STSetUp_Shift () dòng 94 trong src / st / impls / shift / shift.c [0] PETSC ERROR: STSetUp () dòng 280 trong src / st / interface / stsolve.c [0] PETSC ERROR : Dòng EPSInUp () 204 trong src / eps / interface / setup.c [0] PETSC ERROR: EPSSolve () dòng 109 trong src / eps / interface / giải.c tobymac: SLEPC toby $