【C言語】単位行列を作成する方法

この記事では、C言語を使って単位行列を作成する方法について解説します。

配列を使った方法、ループを使った方法、さらにはライブラリを使った方法を紹介します。

初心者の方でもわかりやすく、サンプルコードも含めて解説していきます。

目次から探す

単位行列の作成方法

単位行列は、対角線上の要素が全て1で、それ以外の要素が全て0である正方行列です。

C言語を使って単位行列を作成する方法について解説します。

配列を使った方法

単位行列を作成するためには、2次元配列を使用します。

以下のようなコードを使って、単位行列を作成することができます。

#include <stdio.h>
void createIdentityMatrix(int n) {
    int matrix[n][n];
    
    // 単位行列の作成
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (i == j) {
                matrix[i][j] = 1;
            } else {
                matrix[i][j] = 0;
            }
        }
    }
    
    // 単位行列の表示
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
}
int main() {
    int size;
    printf("行列のサイズを入力してください: ");
    scanf("%d", &size);
    
    createIdentityMatrix(size);
    
    return 0;
}

上記のコードでは、createIdentityMatrix関数を定義しています。

この関数は、引数として行列のサイズ n を受け取り、単位行列を作成して表示します。

main関数では、ユーザーに行列のサイズを入力させ、createIdentityMatrix関数を呼び出しています。

ループを使った方法

配列を使わずに、ループを使って単位行列を作成する方法もあります。

以下のようなコードを使って、単位行列を作成することができます。

#include <stdio.h>
void createIdentityMatrix(int n) {
    // 単位行列の作成と表示
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (i == j) {
                printf("1 ");
            } else {
                printf("0 ");
            }
        }
        printf("\n");
    }
}
int main() {
    int size;
    printf("行列のサイズを入力してください: ");
    scanf("%d", &size);
    
    createIdentityMatrix(size);
    
    return 0;
}

上記のコードでは、createIdentityMatrix関数が単位行列を作成して表示する役割を担っています。

main関数では、ユーザーに行列のサイズを入力させ、createIdentityMatrix関数を呼び出しています。

ライブラリを使った方法

C言語には、行列演算を簡単に行うためのライブラリも存在します。

例えば、math.hライブラリのidentity関数を使って単位行列を作成することができます。

#include <stdio.h>
#include <math.h>
void createIdentityMatrix(int n) {
    double matrix[n][n];
    
    // 単位行列の作成
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            matrix[i][j] = (i == j) ? 1.0 : 0.0;
        }
    }
    
    // 単位行列の表示
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%.1f ", matrix[i][j]);
        }
        printf("\n");
    }
}
int main() {
    int size;
    printf("行列のサイズを入力してください: ");
    scanf("%d", &size);
    
    createIdentityMatrix(size);
    
    return 0;
}

上記のコードでは、createIdentityMatrix関数math.hライブラリのidentity関数を使って単位行列を作成して表示しています。

main関数では、ユーザーに行列のサイズを入力させ、createIdentityMatrix関数を呼び出しています。

以上が、C言語で単位行列を作成する方法の解説です。

配列を使った方法、ループを使った方法、ライブラリを使った方法のいずれかを選んで実装してみてください。

目次から探す