2x2 行列の行列式を求める

CBeginner
オンラインで実践に進む

はじめに

線形代数において、正方行列の行列式は、行列の要素から計算できるスカラー値です。この実験では、C 言語を使って 2x2 行列の行列式を求める方法を学びます。

注:コーディングを練習し、gcc を使ってコンパイルおよび実行する方法を学ぶには、自分で~/project/main.cファイルを作成する必要があります。

cd ~/project
## main.cを作成する
touch main.c
## main.cをコンパイルする
gcc main.c -o main
## mainを実行する
./main

概念の理解

始める前に、行列式の概念を理解しましょう。2x2 行列は 2 行 2 列の配列であり、その行列式は以下の式を使って計算できます。

行列式 = a[0][0]*a[1][1] - a[1][0]*a[0][1]

ここで、a[0][0]、a[0][1]、a[1][0]、および a[1][1]は行列の要素です。

変数の初期化

C プログラムで変数を宣言して初期化することから始めます。

#include<stdio.h>

int main()
{
    int a[2][2], i, j;
    long determinant;

    printf("\n\n配列の 4 つの要素を入力してください\n");
    for(i = 0; i < 2; i++)
    for(j = 0; j < 2; j++)
    scanf("%d", &a[i][j]);
}

行列要素の取得

次に、ユーザーに行列の要素を入力してもらいます。

printf("\n\n配列の 4 つの要素を入力してください\n");
for(i = 0; i < 2; i++)
    for(j = 0; j < 2; j++)
    scanf("%d", &a[i][j]);

入力された行列の表示

行列の要素を取得した後、入力された行列を表示します。

printf("\n\n入力された行列は以下の通りです:\n\n");
for(i = 0; i < 2; i++)
{
    for(j = 0; j < 2; j++)
    {
        printf("%d\t", a[i][j]);   // 全行を表示するため
    }
    printf("\n"); // 次の行に移動するため
}

行列式の計算

次に、行列式を計算します。

determinant = a[0][0]*a[1][1] - a[1][0]*a[0][1];
printf("\n\n2x2 行列の行列式は : %d - %d = %ld", a[0][0]*a[1][1], a[1][0]*a[0][1], determinant);

結果の表示

最後に、結果を表示します。

printf("\n\n2x2 行列の行列式は%ld です。", determinant);

まとめ

この実験では、C 言語を使って 2x2 行列の行列式を求める方法を学びました。変数を初期化し、行列の要素を取得し、入力された行列を表示し、行列式を計算し、結果を表示しました。