使用numpy向量化LU分解

问题描述

所以我试图在不使用我可用的内置函数的情况下实现LU分解函数

我所看到的实现都是嵌套在for循环中的,众所周知,这些都是非常讨厌的。希望我将有一个用numpy向量化的实现。

这是我到目前为止所拥有的:

def lu_factorize(matrix):
    w,h = matrix.shape
    L = np.eye(w)
    for k in range(w-1):
        U = np.eye(w)
        U[k+1:,k] = -(matrix[k+1,k] / matrix[k,k])
        L += -np.tril(U,-1)
        matrix = np.matmul(U,matrix)
    return matrix,L

正如您在每次迭代中看到的那样,我们正在重置U矩阵并乘以原始矩阵,对于L矩阵,我们只是将其添加到原始矩阵中。

有什么有意义的方法可以使我摆脱for循环并获得加速吗?

预先感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)