大学院生GENの数学小話 第1回-連立一次方程式

暑さが苦手なGENからの挨拶

こんにちは!金曜日13:30~15:00の学生コンシェルジュを担当しております。
理工学研究科数理情報学プログラム1年数学専攻のGENです。
気温が本格的に高くなり、みなさんもそろそろクーラーをつけ始めたころではないでしょうか?(私は我慢できずもうとっくにつけた!電気代( ノД`)シクシク…)
水分摂取をこまめに行い、熱中症には十分気を付けていきましょう。

新シリーズ始めるか? (ネタ切れしないかな><)

さて今回は私の専門分野である数学についてのお話をしていこうと思います。今後も「大学院生GENの数学小話」として、数学に関する内容をわかりやすく紹介していきたいと思います。第何回まで続くか分かりませんが、数学ってこんなところにつかわれているのかと知るきっかけになればいいと思っています。このシリーズではタイトルや文章の序盤に専門用語を用いたりする場合があります。ですが、その言葉がわからなくても楽しめる記事を意識して作成します。最初はナニソノコトバ?オイシイノ?みたいな感じで大丈夫です。記事を読み終えた後にその数学の話題がおいしいマカロンにでも見えてきたらうれしいです将来数学の教員を目指す方にも何か数学の授業のネタに使っていただけたら幸いです。数学科の学生や数学が得意な方にとっては簡単な内容かもしれません。最後に関連キーワード等を載せておきますので、その分野を学習する道しるべになればいいかなと思います。

大学院生GENの数学小話 第1回-連立一次方程式

それではGENによる数学小話第一回を始めていこうと思います。記念すべき初回の内容は「連立一次方程式」です。なにそれおいしいの?名前が長ったらしくて難しいと思うかもしれませんが、実はこの内容小学三年生の頃に扱う内容です。普段数学等を使っている人からすると簡単すぎる内容かもしれません。

連立方程式って何?

この「連立一次方程式」は次のような鶴と亀の足の本数の簡単な問題から鶴亀算とも呼ばれたりします。
鶴と亀が合わせて5匹います。足の合計は14本です。鶴と亀はそれぞれ何匹いるか? 

このような問題は鶴をx匹、亀をy匹として次のような式を立てて、いくつかの式変形をしながら解くのでした。
$\begin{equation} \left\{ \, \begin{aligned}  x+y &= 5 \\  2x+4y &= 14 \end{aligned} \right. \end{equation}$

これを解くには上の式を4倍したものから下の式をひくことでyの文字を消去するなどの式変形(1)を行います。また大学の線形代数ではこれらを行列とベクトルを用いて次のように表現します。

$\begin{pmatrix} 1 & 1 \\ 2 & 4 \end{pmatrix} \begin{pmatrix} x \\ y\end{pmatrix} =  \begin{pmatrix} 5 \\ 14\end{pmatrix} $
先ほどの式変形は次のような基本行列を左からかけることに対応することなどを主に一般教養の授業で扱ったりするのではないでしょうか?大学の線形代数の授業がいまいちわかりくいと思った方は、なにかと扱いやすい行列という道具の使い方を学んだと思っていただければ結構です。その秘密道具を使う場面の一つの例として、連立一次方程式があるの理解で十分だと思います。大学数学ではこの連立一次方程式をと行列$A$とベクトル$\boldsymbol{x}$、$\boldsymbol{b}$と行列$A$を用いて次のように書きます。
$A\boldsymbol{x} =  \boldsymbol{b} $

連立方程式が使われている場面

連立方程式は数値シミュレーションや機械学習、AIなど様々なところで現れます。様々な場面で扱われる連立方程式はとても重要なものです。今回は私の研究分野に関連する棒状の熱拡散のシミュレーションの例についてお話します。このようなシミュレーションを行う場合、棒状における細かくN分割にした点にわけて考えます。各点に於ける温度を$x_{1},\cdots,x_{N}$として、ある時刻dt進んだt+dtにおける温度を$x^{new}_{1},\cdots,x^{new}_{N}$として考えます。偏微分方程式などを用いてモデル化した式を変形すると、現在時刻とそこからdt時間経過した後のそれぞれの各点の温度の情報を持ったベクトルの連立方程式の問題に帰着することが出来ます。連立方程式を解くことでdt時間経過後の次の時間ステップの情報を更新させています。例えば100秒間のシミュレーションを1秒ごとに計算させたい場合は、この連立方程式を100回解いて新しい温度の情報を更新させています。

大規模な連立方程式の解法

先ほどの例では、鶴と亀だけだったので行列サイズは2×2=4でした。これぐらいのサイズなら小中学校で習う先ほどの(1)のような変形を繰り返していく方法はガウスの消去法で十分です。しかし、実際先ほどの例などで使う際の連立方程式は大規模な行列とベクトルになります。大規模なサイズの連立方程式を考える際にはこのような方法をとりません。この方法は行列サイズが$N$に対して$N^2$程度の計算量となります。例えば、Nが百倍大きくなると計算量は1万倍になり実用的ではありません。実用的な大規模な連立方程式を解く方法は様々ありますが、問題によっては大きな処理が伴うことがあります。何かのシミュレーション等やアルゴリズムなどで連立方程式を用いる際は、問題に応じて適切な解法を選び計算処理を軽くすることがとても重要です。計算方法の種類は主に大きく分けて直接法と反復法がありますがよく用いられるのは反復法です。詳細はここでは述べませんが気になる方は自分で本などで勉強してみてください。

最後に

この分野は今も研究が活発に行われている分野です。いろんなところで使われる連立方程式ですが、結構奥深い内容です。キーワードを載せておくので、興味ある人は勉強してみてください。このように連立方程式を解くには、問題によっては大きな処理が伴うことがあります。

キーワード
 連立方程式:鶴亀算 
   直接法:LU分解:ピポッド選択
   反復法:ガウスザイデル法 :CG法