Is there any inverse np.dot function?

前端 未结 2 381
南方客
南方客 2021-01-19 19:09

If I have two matrices a and b, is there any function I can find the matrix x, that when dot multiplied by a makes b? Looking for python solutions, for matrices in the form

相关标签:
2条回答
  • 2021-01-19 19:17

    This problem of finding X such as A*X=B is equivalent to search the "inverse of A", i.e. a matrix such as X = Ainverse * B.

    For information, in math Ainverse is noted A^(-1) ("A to the power -1", but you can say "A inverse" instead).

    In numpy, this is a builtin function to find the inverse of a matrix a:

    import numpy as np
    
    ainv = np.linalg.inv(a)
    

    see for instance this tutorial for explanations.

    You need to be aware that some matrices are not "invertible", most obvious examples (roughly) are:

    • matrix that are not square
    • matrix that represent a projection

    numpy can still approximate some value in certain cases.

    0 讨论(0)
  • 2021-01-19 19:29

    if A is a full rank, square matrix

    import numpy as np
    from numpy.linalg import inv
    
    X = inv(A) @ B
    

    if not, then such a matrix does not exist, but we can approximate it

    import numpy as np
    from numpy.linalg import inv
    
    X = inv(A.T @ A) @ A.T @ B
    
    0 讨论(0)
提交回复
热议问题