在 Python 中不旋转的 LU 分解

LU Decomp without pivoting in Python

我需要创建函数 [L,U] = lr(A),它将计算矩阵 A 的 LU 分解,而无需旋转或使用 invlu 等来求解线性方程。

现在只是尝试找出伪代码并理解它。关于如何开始的任何想法?

Kiusalaas 的

"Numerical Methods in Engineering with Python 3" 是一个很好的资源。下面是书中杜立特分解法的代码。

# [L][U] = LUdecomp([A])
def LUdecomp(a):
    n = len(a)
    for k in range(0,n-1):
        for i in range(k+1,n):
            if a[i,k] != 0.0:
                lam = a [i,k]/a[k,k]
                a[i,k+1:n] = a[i,k+1:n] - lam*a[k,k+1:n]
                a[i,k] = lam
    return a