在 Python 中不旋转的 LU 分解
LU Decomp without pivoting in Python
我需要创建函数 [L,U] = lr(A)
,它将计算矩阵 A 的 LU 分解,而无需旋转或使用 inv
、lu
等来求解线性方程。
现在只是尝试找出伪代码并理解它。关于如何开始的任何想法?
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
我需要创建函数 [L,U] = lr(A)
,它将计算矩阵 A 的 LU 分解,而无需旋转或使用 inv
、lu
等来求解线性方程。
现在只是尝试找出伪代码并理解它。关于如何开始的任何想法?
"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