すごくメモ帳

すごくほぼメモ帳ぐらいなブログ

【プログラミング】連立方程式を解く(Ruby)

【プログラミング】連立方程式を解く(Ruby

線形代数

次の連立方程式の解を求めたい場合、

\begin{eqnarray} \left\{ \begin{array}{l} 2x + 11y + 23z= 434 \\ 7x + 19y +5z= 323 \\17x + 3y+13z=321 \end{array} \right.\end{eqnarray}

\[A = \begin{pmatrix} 2 & 11 & 23\\ 7 & 19 & 5\\17&3&13 \end{pmatrix} \]

\[\textbf{b} = \begin{pmatrix}434\\323\\321\end{pmatrix}\]

\[\textbf{x}=\begin{pmatrix}x\\y\\z\end{pmatrix}\]

とすると、

\[A\textbf{x}=\textbf{b}\]

となります。

$\textbf{x}$を求めたいので変形すると、

\[\textbf{x} = A^{-1}\textbf{b} \]

行列$A$の逆行列とベクトル$\textbf{b}$の積が解になります。

プログラミング(Ruby

行列を扱うクラスを読み込んで、プログラムを書きます。

invは逆行列を求めるメソッドです。

簡単に解を導くことができました。