小编Ped*_*chi的帖子

使用 python 求解 7000x7000 线性系统时的最佳性能方法

I\xe2\x80\x99m 需要一种有效的方法来反转 python 中的 7000x7000 空气动力学影响系数(密集)矩阵。在使用 FORTRAN 例程之前,我已经开始使用 LAPACK 中的 LU 分解例程来处理问题,我已经看到它在其他相关应用程序中的使用非常有效。不过,我读到 NumPy 和 SciPy 线性系统求解器大多基于对 C 中相同 LAPACK/BLAS 函数的直接调用,并且想知道切换到 FORTRAN 是否真的会在一定程度上减少计算时间这证明放弃一种更简单、更高级的语言是合理的。

\n\n

如果有 Python 求解器可以保证该大小(1000 到 10000,平方)的矩阵具有相似的性能,那么它们是哪些?

\n\n

我确实需要矩阵逆,所以切换到迭代 Ax=b 解决方案不是一个选择。

\n

python matrix-inverse lapack

5
推荐指数
1
解决办法
1744
查看次数

LAPACK DGETRF+DGETRI 失败

我试图通过 LAPACK 的 DGETRF 和 DGETRI 例程对矩阵求逆,但以下代码:

program Tester

    !use LapackMatrixOps
    use MathematicalResources

    implicit none

    real :: B(2, 2), A(2, 2), WORK(2)

    integer :: i, j, SIZ, IPIV(2), INFO

    SIZ=2

    do i=1, SIZ
        do j=1, SIZ
            !if(i==j) then
            !    A(i, j)=1
            !else
            !    A(i, j)=0
            !end if
            A(i, j)=rand(0)/2+0.5
            B(i, j)=0
        end do
    end do

    B=A

    call PrintMatrix(A)

    call dgetrf(size(B, 1), size(B, 2), B, size(B, 1), IPIV, INFO)
    print *, "========="
    call PrintMatrix(B)
    print *, IPIV
    call dgetri(size(B, 1), B, …
Run Code Online (Sandbox Code Playgroud)

fortran gfortran lapack

3
推荐指数
1
解决办法
253
查看次数

标签 统计

lapack ×2

fortran ×1

gfortran ×1

matrix-inverse ×1

python ×1