[C언어-기초실습-10] 2X2 행렬 계산하기

Words
153
Reading
1 min
7y
Listen to this post
~1 min

[C언어-기초실습-10] 2X2 행렬 계산하기



오늘은 행렬에 대해 어떻게 코딩하는지에 대해 알아보도록 하죠.

1. 문제의 이해


a1.jpg

2x2 행렬이 다음과 같이 주어졌을 때 코딩에서는 어떻게 표현할까요.

for(i=0;i<2;i++){
  for(j=0;j<2;j++){
     A[i][j]행렬
  }
}

이렇게 표현 할 수 있습니다.

행렬의 덧셈


2x2행렬은 다음과 같습니다.
a2.jpg

이 표현을 코딩으로 어떻게 표현해야 할까요.

C[0][0] = A[0][0] + B[0][0];
C[0][1] = A[0][1] + B[0][1];
C[1][0] = A[1][0] + B[1][0];
C[1][1] = A[1][1] + B[1][1];

이렇게 됩니다. 그런데 일일히 행령의 합 코딩을 나열하기 보다는 규칙성을 찾아서 For문으로 표현해주는 것이 좋습니다. 아래와 같이 수정하시면 됩니다.

for(i=0;i<2;i++){
     for(j=0;j<2;j++){
        C[i][j]=A[i][j]+B[i][j];
     }
} 

행령의 곱


a3.jpg

위와 같이 2x2행령의 곱은 어떻게 표현 할까요.

일일히 나열하면 다음과 같습니다.

C[0][0]=(A[0][0]*B[0][0])+(A[0][1]*B[1][0]);
C[0][1]=(A[0][0]*B[0][1])+(A[0][1]*B[1][1]);
C[1][0]=(A[1][0]*B[0][0])+(A[1][1]*B[1][0]);
C[1][1]=(A[1][0]*B[0][1])+(A[1][1]*B[1][1]);

그런데 이렇게 일일히 코딩하는 것보다 For문으로 표현하는 것이 좋습니다.

for(i=0;i<2;i++){
     for(j=0;j<2;j++){
        C[i][j]=A[i][0]*B[0][j] + A[i][1]*B[1][j];          
     }
} 

이제 위 코딩이 정상적으로 동작하는지 코딩해보고 실행 결과를 살펴보도록 하죠.

2. 코딩


[전체소스]

#include 
#include 

int main(int argc, char *argv[]) {
    
    int A[2][2] = {{1, 2}, {3, 4}};
    int B[2][2] = {{1, 2}, {3, 4}};
    int C[2][2];    
    int i,j;
    
    printf("행렬의 합 : \n");
    for(i=0;i<2;i++){
     for(j=0;j<2;j++){
        C[i][j]=A[i][j]+B[i][j];
     }
    } 
    for(i=0;i<2;i++){
     for(j=0;j<2;j++){
        printf("%2d ", C[i][j]);
     }
     printf("\n");    
    }  
    
    printf("행렬의 곱 : \n");   
    for(i=0;i<2;i++){
     for(j=0;j<2;j++){
        C[i][j]=A[i][0]*B[0][j] + A[i][1]*B[1][j];          
     }
    } 
   
    for(i=0;i<2;i++){
     for(j=0;j<2;j++){
        printf("%2d ", C[i][j]);
     }
     printf("\n");
    }    

    system("pause");
    return 0;
    
}

[결과]
aa1.jpg

마무리


간단히 행렬 계산에서 2x2행렬에 대해서 알아보았습니다. 일반적으로 행렬을 코딩할 때 일일히 코딩하지는 않습니다. 위에서 살펴본 For문을 통해서 행렬을 기본적으로 사용합니다. 행렬이 나오면 그냥 For문이 머리속에서 그려져야 합니다. 그래야 행렬을 쉽게 코딩 할 수 있습니다.


Sponsored ( Powered by dclick )

dclick-imagead

[C언어-기초실습-10] 2X2 행렬 계산하기 | Ecency