Is there a standard solution for Gauss elimination in Python?

前端 未结 2 885
花落未央
花落未央 2020-12-09 08:17

Is there somewhere in the cosmos of scipy/numpy/... a standard method for Gauss-elimination of a matrix?

One finds many snippets via google, but I woul

2条回答
  •  独厮守ぢ
    2020-12-09 09:09

    I finally found, that it can be done using LU decomposition. Here the U matrix represents the reduced form of the linear system.

    from numpy import array
    from scipy.linalg import lu
    
    a = array([[2.,4.,4.,4.],[1.,2.,3.,3.],[1.,2.,2.,2.],[1.,4.,3.,4.]])
    
    pl, u = lu(a, permute_l=True)
    

    Then u reads

    array([[ 2.,  4.,  4.,  4.],
           [ 0.,  2.,  1.,  2.],
           [ 0.,  0.,  1.,  1.],
           [ 0.,  0.,  0.,  0.]])
    

    Depending on the solvability of the system this matrix has an upper triangular or trapezoidal structure. In the above case a line of zeros arises, as the matrix has only rank 3.

提交回复
热议问题