如何找到LU分解中'L + U'的范数

  • 本文关键字:范数 何找 LU 分解 python
  • 更新时间 :
  • 英文 :


我是Python 3的新手,目前正在学习LU分解以及如何在Python中表达其功能。我们被当作一个类问题,涉及编写代码以找到矩阵A的LU分解(使用scipy(以及该分解中的"L+U"范数。我了解如何获得 P L 和 U scipy.linalg.lu 但我很难理解在得到答案后如何将 L 和 U 加在一起。这是我到目前为止的代码...

from numpy import array, sqrt
import scipy as sp
from scipy.linalg import norm   

def scipy_LU(A):
Q = sp.linalg.lu(A)
print(Q)

elements_of_A = list(map(float, input(). split(' '))) 
order = int(sqrt(len(elements_of_A)))
A = array(elements_of_A).reshape(order, order)
print(round(norm(L+U, 1), 4))

scipy.linalg.lu的返回是三个独立的矩阵:PLU。 与其将它们作为元组分配给变量Q,不如将其分配给 3 个变量,计算加法,然后计算范数:

def norm_LU(A):
P, L, U = sp.linalg.lu(A)
L_plus_U = L + U
return norm(L_plus_U)