[数学] 線形代数 第3回: 線形方程式と行列の応用: ガウス消去法とクラメルの法則

1. 連立線形方程式の解法

連立線形方程式は、複数の一次方程式を同時に解く問題です。例えば、次のような2つの方程式を同時に解く問題を考えます:

$$ \begin{aligned} 2x + y &= 8 \ x + 3y &= 13 \end{aligned} $$

このような連立線形方程式を解くために、行列を使った方法があります。代表的な方法には、ガウス消去法とクラメルの法則があります。これらの方法を使うことで、効率的に解を求めることができます。

ガウス消去法

ガウス消去法は、行列を使って連立方程式を簡単な形に変換し、その後解を求める方法です。具体的には、行基本操作(行の加減算やスカラー倍など)を使って、行列を階段行列に変換していきます。

ガウス消去法の手順:

  1. 方程式を行列形式に変換する。

    • 方程式を行列とベクトルに変換して、行列形式で表現します。
  2. 前進消去を使って、行列を上三角行列に変換する。

    • これにより、計算が簡単になります。
  3. 後退代入で解を求める。

    • 上三角行列を使って、最後に解を求めます。

例:

次の連立方程式を解くためにガウス消去法を使います:

$$ \begin{aligned} 2x + y &= 8 \ x + 3y &= 13 \end{aligned} $$

まず、行列形式に変換します:

$$ A = \begin{bmatrix} 2 & 1 \ 1 & 3 \end{bmatrix}, \quad b = \begin{bmatrix} 8 \ 13 \end{bmatrix} $$

この行列を使って、前進消去と後退代入を行うことで解を求めます。

クラメルの法則

クラメルの法則は、行列式を使って連立方程式の解を求める方法です。行列式を使うことで、解が一意に決まるか、解が存在しないかを判断できます。もし行列式が0でない場合、解は一意に決まります。

行列式の計算:

行列式は、行列の各要素を使って計算します。例えば、2x2行列の行列式は次のように計算します:

$$ \text{det}(A) = ad - bc $$

これを使って、連立方程式が解を持つか、無限に解があるのか、または解が存在しないのかを判定できます。

例:

連立方程式をクラメルの法則で解くには、行列Aの行列式を求め、次に各変数の行列式を求めます。例えば、xの値を求めるには、行列Aの1列目をbと置き換えた行列の行列式を計算し、行列Aの行列式で割ります。同様にyの値も求めます。

2. 行列式

行列式は、行列の特性を示す重要な数値です。特に連立方程式の解法において、行列式は解の存在や一意性を決定する要素になります。

行列式の基本的な理解:

  • 行列式が0でない場合、行列には逆行列が存在します。この場合、行列を使って連立方程式の解を求めることができます。
  • 行列式が0の場合、解が存在しないか、解が無限に多くなる可能性があります。具体的には、方程式が矛盾しているか、または依存関係にあるため、解が一意に決まらないことがあります。

2x2行列の行列式の計算:

2x2行列の場合、行列式は以下のように計算できます:

$$ \text{det}(A) = ad - bc $$

例えば、行列Aが次のような形の場合:

$$ A = \begin{bmatrix} a & b \ c & d \end{bmatrix} $$

行列式は、det(A) = ad - bc です。

行列式の解釈:

  • 行列式が0でない場合、その行列に逆行列が存在し、連立方程式を解くことができます。
  • 行列式が0の場合、解が存在しないか、無限に解があるため、行列を使った解法は適用できません。

コード例(ガウス消去法)

以下は、ガウス消去法を使って連立方程式を解くコードです。この方法では、まず行列を上三角行列に変換し、その後後退代入を使って解を求めます。

function gaussElimination(A, b) {
    let x = [];
    let n = A.length;

    // 前進消去
    for (let i = 0; i < n; i++) {
        for (let j = i + 1; j < n; j++) {
            let ratio = A[j][i] / A[i][i];
            for (let k = i; k < n; k++) {
                A[j][k] -= ratio * A[i][k];
            }
            b[j] -= ratio * b[i];
        }
    }

    // 後退代入
    for (let i = n - 1; i >= 0; i--) {
        x[i] = b[i] / A[i][i];
        for (let j = i - 1; j >= 0; j--) {
            b[j] -= A[j][i] * x[i];
        }
    }

    return x;
}

let A = [[2, 1], [1, 3]];
let b = [8, 13];

let solution = gaussElimination(A, b);
console.log("解:", solution);

出力例:

解: [2, 3]

解説:

  • ガウス消去法では、最初に行列Aを上三角行列に変換します。これにより、解くべき方程式が単純化され、後で解を求めやすくなります。
  • 後退代入では、上三角行列を使って、一つずつ解を求めます。
  • ここでは、行列Aとベクトルbを使って連立方程式を解き、最終的に解 [2, 3] を得ました。

行列式とガウス消去法の関係:

  • 行列式が0でない場合、ガウス消去法を使うことで連立方程式の一意な解を得ることができます。
  • 行列式が0である場合、ガウス消去法を使っても解が得られないか、無限に解が存在する状態になります。

次回に向けて

次回では、行列式の計算方法やその重要性についてさらに詳しく学んでいきます。行列式を使って、解が存在するかどうか、またその解が一意かどうかを判断できるようになります。これにより、連立方程式を解くための選択肢が増え、問題解決の幅が広がります