logo

NumPy를 사용하여 행렬을 역행렬로 만드는 방법

이 기사에서는 Python의 NumPy 역행렬을 먼저 살펴보고 그 개념을 이해해 보겠습니다. 행렬의 역수는 알 수 없는 변수의 값을 찾기 위해 방정식을 푸는 데 사용되는 단일 숫자에 대한 일반 산술에서와 마찬가지로 행렬의 역수입니다. 역행렬은 원래 행렬과 곱하면 단위 행렬이 되는 행렬입니다.

만약 그렇지 않다면 그렇지 않다면 자바

행렬의 역행렬은 행렬이 다음인 경우에만 존재합니다. 비단수형, 즉 행렬식이 0이 되어서는 안 됩니다. . 행렬식과 수반 행렬을 사용하면 아래 공식을 사용하여 정사각 행렬의 역함수를 쉽게 찾을 수 있습니다.

if det(A) != 0 A-1 = adj(A)/det(A) else 'Inverse doesn't exist'>

행렬 방정식:



=>Ax = B =>A^{-1}Ax = A^{-1}B =>x = A^{-1}B

어디,

자바 스캐너 클래스

-1: 행렬 A의 역행렬

엑스: 알 수 없는 변수 열

비: 솔루션 매트릭스

NumPy를 사용한 역행렬

Python은 행렬의 역행렬을 계산하는 매우 쉬운 방법을 제공합니다. 함수 numpy.linalg.inv() NumPy 모듈에서 사용할 수 있으며 Python에서 역행렬을 계산하는 데 사용됩니다.

통사론: numpy.linalg.inv(a)

스프링 부트 주석

매개변수:

    a: 반전할 행렬

보고: 역행렬 a.

예시 1: 이 예에서는 3 x 3 NumPy 배열 행렬을 만든 다음 np.linalg.inv() 함수를 사용하여 이를 역행렬로 변환합니다.

파이썬3

# Import required package> import> numpy as np> # Taking a 3 * 3 matrix> A>=> np.array([[>6>,>1>,>1>],> >[>4>,>->2>,>5>],> >[>2>,>8>,>7>]])> # Calculating the inverse of the matrix> print>(np.linalg.inv(A))>
>
>

산출:

[[ 0.17647059 -0.00326797 -0.02287582] [ 0.05882353 -0.13071895 0.08496732] [-0.11764706 0.1503268 0.05228758]]>

예시 2: 이 예에서는 4 x 4 NumPy 배열 행렬을 만든 다음 np.linalg.inv() 함수를 사용하여 Python의 역행렬로 변환합니다.

자바 가상 머신

파이썬3

# Import required package> import> numpy as np> # Taking a 4 * 4 matrix> A>=> np.array([[>6>,>1>,>1>,>3>],> >[>4>,>->2>,>5>,>1>],> >[>2>,>8>,>7>,>6>],> >[>3>,>1>,>9>,>7>]])> # Calculating the inverse of the matrix> print>(np.linalg.inv(A))>
>
>

산출:

[[ 0.13368984 0.10695187 0.02139037 -0.09090909] [-0.00229183 0.02673797 0.14820474 -0.12987013] [-0.12987013 0.18181818 0.06493506 -0.02597403] [ 0.11000764 -0.28342246 -0.11382735 0.23376623]]>

예시 3: 이 예에서는 여러 개의 NumPy 배열 행렬을 만든 다음 np.linalg.inv() 함수를 사용하여 이를 역행렬로 변환합니다.

파이썬3

# Import required package> import> numpy as np> # Inverses of several matrices can> # be computed at once> A>=> np.array([[[>1.>,>2.>], [>3.>,>4.>]],> >[[>1>,>3>], [>3>,>5>]]])> # Calculating the inverse of the matrix> print>(np.linalg.inv(A))>
>
>

산출:

[[[-2. 1. ] [ 1.5 -0.5 ]] [[-1.25 0.75] [ 0.75 -0.25]]]>