LU分解 python实现

来源:互联网 发布:淘宝上的止鼾器有用吗 编辑:程序博客网 时间:2024/06/03 13:28

以下是使用python实现LU分解,代码写的很丑,不要喷。。。

# -*- coding: utf-8 -*-"""Created on Sun Dec  3 10:03:45 2017@author: www"""#   python实现LU分解import numpy as npdef my_LU(B):    A = np.array(B)    n = len(A)    #print(A)        L = np.zeros(shape=(n,n))    U = np.zeros(shape=(n,n))        for k in range(n-1):        gauss_vector = A[:,k]        gauss_vector[k+1:] = gauss_vector[k+1:] / gauss_vector[k]        gauss_vector[0:k+1] = np.zeros(k+1)        #print(gauss_vector)         L[:,k] = gauss_vector        L[k][k] = 1.0        #print(L)        #print(A)        for l in range(k+1,n):            B[l,:] = B[l,:] - gauss_vector[l] * B[k,:]                A = np.array(B)    L[k+1][k+1] = 1.0    U = A    print(U)    print(L)    def main():    A = np.array([[2., 2., 3.],                  [4., 7., 7.],                  [-2.,4., 5.]])    my_LU(A)             main()               



原创粉丝点击