본문 바로가기
컴퓨터/프로그래밍

3x3 역행렬 구하는 소스 코드

by Begi 2022. 5. 22.
반응형

3x3 행렬의 역행렬을 구하는 C 소스코드는 다음과 같다.

 

d = m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2]) - m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0]) + m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);

if(d!=0.)

{

  id = 1 / d;

  im[0][0] = (m[1][1] * m[2][2] - m[2][1] * m[1][2]) * id;

  im[0][1] = (m[0][2] * m[2][1] - m[0][1] * m[2][2]) * id;

  im[0][2] = (m[0][1] * m[1][2] - m[0][2] * m[1][1]) * id;

  im[1][0] = (m[1][2] * m[2][0] - m[1][0] * m[2][2]) * id;

  im[1][1] = (m[0][0] * m[2][2] - m[0][2] * m[2][0]) * id;

  im[1][2] = (m[1][0] * m[0][2] - m[0][0] * m[1][2]) * id;

  im[2][0] = (m[1][0] * m[2][1] - m[2][0] * m[1][1]) * id;

  im[2][1] = (m[2][0] * m[0][1] - m[0][0] * m[2][1]) * id;

  im[2][2] = (m[0][0] * m[1][1] - m[1][0] * m[0][1]) * id;

}

 

위에서 d가 0이면 역행렬이 존재하지 않는다.

 

반응형

댓글