この計算機でできること
このツールは、n個の未知数を含むn元の連立一次方程式を解きます。これは \(\mathbf{A}\,\mathbf{x} = \mathbf{b}\) という形にまとめて表せます。ここで A は n×n の係数行列、x は未知数ベクトル、b は定数ベクトルです。計算結果として、唯一の解ベクトル x と行列 A の行列式が得られます。用いるのは純粋な線形代数の手法であり、どの国・どの単位系でも同じように機能します。入力するのはすべて実数であり、地域や通貨に依存することはありません。
使い方
まず n(方程式の数=未知数の数)を設定します。次に係数行列 A を1行ずつ、数値をスペースまたはカンマで区切って入力します。続いて定数ベクトル b を、長さ n のリストとして入力してください。表示する桁数を選び、計算を実行します。負の数、小数、小数点を含む値もすべて入力できます。A の行数・列数が n と一致し、b の長さも n と一致していれば解が表示されます。一致しない場合は、次元の不一致としてエラーが通知されます。
計算方法の解説
このソルバーは 部分ピボット選択付きのガウスの消去法を実行します。これは数学的には LU分解 \(\mathbf{P}\mathbf{A} = \mathbf{L}\mathbf{U}\) と等価です。各列について、計算を数値的に安定させるために絶対値が最大のピボットを選び、ピボットより下の成分を消去します。その後、最後の未知数から順に上へさかのぼって後退代入を行います。 $$\begin{gathered} \mathbf{A}\,\mathbf{x} = \mathbf{b}, \qquad \mathbf{A} = \mathbf{L}\mathbf{U} \\[1.5em] \text{solve}\quad \left\{ \begin{aligned} \mathbf{L}\mathbf{y} &= \mathbf{b} \quad(\text{forward}) \\ \mathbf{U}\mathbf{x} &= \mathbf{y} \quad(\text{back substitution}) \end{aligned} \right. \end{gathered}$$ ピボットが実質的にゼロの場合、行列式は 0 となり、行列は特異(正則でない)であって、連立方程式は唯一の解を持ちません。このとき本ツールはゼロ除算を行わず、特異行列であることを通知します。
$$\det(\mathbf{A}) = (-1)^{s}\prod_{k=1}^{n} u_{kk}$$
計算例
\(2x + y - z = 8\)、\(-3x - y + 2z = -11\)、\(-2x + y + 2z = -3\) という連立方程式を考えます。このとき \(\mathbf{A} = [[2,1,-1],[-3,-1,2],[-2,1,2]]\)、\(\mathbf{b} = [8,-11,-3]\) です。消去法により \(x = 2\)、\(y = 3\)、\(z = -1\) が得られます。1番目の式で検算すると、 $$2(2) + 3 - (-1) = 4 + 3 + 1 = 8$$ となり、確かに成り立ちます。
よくある質問
行列式が0のときはどうなりますか? 行列が特異(正則でない)であることを意味します。つまり方程式が互いに従属しているか、矛盾しているため、唯一の解が存在しません。この場合、計算機は特異行列である旨を通知します。
なぜ部分ピボット選択を使うのですか? 絶対値が最大のピボットを選ぶことで、丸め誤差が増幅されるのを防ぎます。これにより、扱いにくい行列でも高精度な結果が得られます。
解は整数にならないこともありますか? はい。解は浮動小数点演算で計算されるため、小数になる場合があります。表示桁数の設定により、表示する有効数字の桁数を調整できます。