有料講座のコンテンツの 1 章という体裁を取りつつ、 元の無料講座のコンテンツとしても再配布しているため、 違和感のある記述も出て来るでしょう。 あらかじめご了承ください。 対応する有料講座は次のページから登録できます。
ご興味があればどうぞ。
高校数学の復習をしたあと、応用の 1 つとして統計学(機械学習)への応用を紹介しました。 次は自然科学、特に物理への応用を紹介します。
まずは微分方程式のうち、常微分方程式論を議論しましょう。 中高数学の復習という視点からもちょうどいいコンテンツなので、 無料の通信講座として展開している次の講座を Jupyter Notebook 形式に編集して再録します。
いい復習にもなるので、もしあなたがこの講座をすでに受講していたとしても、ぜひもう一度眺めてみてください。 もちろん、何度も復習したから大丈夫というなら、次の章に進んで問題ありません。
今回はイントロとして説明することがいくつかあります。 私が作っている他の講座と同じように、 ここでは細かいことを詳しくやるのではなく、 数学を勉強するモチベーションになるように数学の大きな姿をお見せしていきます。
実際に何をするのかというと、 微分方程式のシミュレーションを通じて中高数学の大枠を掴んでいきます。 微分方程式のシミュレーションには中高でやるほとんどの数学が全て出てくるからです。 そして微分方程式のシミュレーションは理工系のほとんど全てで大事です。
シミュレーションは数値計算とも呼ばれています。 そして数値計算は企業の開発現場でも使われていますし、 いまも理論や技術が発展を続けています。 いわゆるスパコンが何のためにあるかと言えば、 この数値計算をやるためなのです。
使われているシーンを具体的に見てもらってモチベーションにしてもらおう、 そんな講座です。 この講座ではもちろん文字計算には慣れていることを前提にしています。
あなたがまだ中高生なら微分は聞いたこともないかもしれません。 あなたが中高の数学の復習をしたいと思っている大人なら、 「自分にはまだ微分なんて早いのでは?」と思っているかもしれません。 メインの微分方程式が何だかわからないのでは、 もちろん読み進めるのはきついはず。 そこでまずは微分方程式を説明します。
微分方程式が何か、そしてここで重視したい点を一言でいえば、微分方程式は理工系各分野の基礎の基礎です。 いわゆる自然法則は微分方程式で表現されることが多いのです。 具体的にどこで使われるかというと、 例えば洪水が起きたときの被害予測に使われます。 どんな規模で起きた洪水が市街地のどこまで進入してくるか、 そんなシミュレーションをテレビなどで見たことがないでしょうか? このシミュレーションに使われているのが微分方程式です。
他にも微分方程式は社会のありとあらゆるところで使われています。 ゲームの CG を自然に見せるためには、 まさに自然法則に則って風や水の動きを表現しないといけません。 だから微分方程式がその背後に隠れています。
天気予報はいまの気象条件から未来の様子を予測する必要があります。 この予測にも微分方程式を使っています。
機械を動かしていると熱くなることがあります。 そしてあまりにも熱くなりすぎると機械が暴走してしまうので、 熱を効率よく逃がす必要があります。 そのためには熱の流れを考え、 その流体の動きをきちんと制御しなければなりません。 この熱の流れの微分方程式を考えてそれをシミュレーションできるのです。
他には車を作るとき、 例えば空気抵抗を調べるために流体力学が必要で、 その流体力学の基礎になる自然法則が微分方程式で書かれています。 このようにシミュレーションはモノづくりにも活かされています。 他にもいちいち挙げきれないくらい、 身の回りに微分方程式のシミュレーションを使っているモノがあります。
微分方程式自体をきちんと調べようと思うと大学の数学が必要です。 しかしシミュレーションを中心に考えれば、 中高の数学でかなりいろいろなことがわかります。 わかるだけではなく、 実際に微分方程式を解いて遊んでみることもできます。 この自分でも遊べるところまで持っていけるのがとても大事だと思っていて、 それが微分方程式のシミュレーションをテーマに選んだ理由の 1 つです。
さて、 ここまでで微分方程式が何で大事かはわかってもらえたでしょうか? これをやれば数学をいろいろ遊び倒せそうと思ってもらえたら嬉しいです。 きちんとがんばれば自分でゲームを作るときにも役立ちます。
何はともあれ、 微分に関する話をするわけです。 そして微分は高校で勉強する内容です。 あなたは微分に対して嫌な思い出を持っているかもしれません。 あなたは「中学レベルからやり直したいのにそんなの無理だ! 」と思っているかもしれません。 もっと簡単なところからやってほしいと思っているかもしれません。
しかしこの講座では中高数学の大枠を掴んでもらう講座です。 そして今回はこの講座の大枠を掴んでもらう講座です。 どうかもうしばらく辛抱して読み進めてください。
まず何をするのかを見てもらいたいので、 YouTube にあげた次の動画を見てください。
もしあなたが「プログラミングで数学を」を受講しているなら、07-pde_02_convection.ipynb も合わせて見るといいでしょう。
これは偏微分方程式である 1 次元移流方程式のシミュレーション結果です。 プログラムを書いてコンピュータに計算させ、 その結果をアニメーションさせています。 移流方程式は微分方程式なのでそこで微分を使っています。 いきなり偏微分方程式を出す理由は一枚絵ではなくアニメーションを見せたいからです。
コンピュータは数学的に厳密に微分を計算できません。 極限が取れないからです。 そうかといって全く何もできないわけでもありません。 実は微分係数・導関数の定義にしたがってそれらを近似して計算しています。 微分を近似すると実はただの引き算 (と割り算) になります。
import IPython.display
IPython.display.YouTubeVideo('IgcIYvVl8UQ')
かなり専門的な注意です。 細かく説明することそれ自体が混乱を招くと思うので、このコンテンツではここに書いた以上には説明しません。
ここから近似と離散化という 2 つの言葉がよく出てきます。 結論から書くと次のようになっています。
このコンテンツでは近似手法として離散化しか使わないので、必ずしも厳格には区別していません。
「プログラミングで数学を」の 07-pde_02_convection.ipynb から式を引用します。 そもそも何も説明していませんし、見たことがない記号もあるでしょう。 とりあえず眺めるだけ眺めてください。
\begin{align} \frac{\partial u}{\partial x} \approx \frac{u (x+\Delta x)-u (x)}{\Delta x}. \end{align}\begin{align} \frac{u_i^{n+1}-u_i^n}{\Delta t} + c \frac{u_i^n - u_{i-1}^n}{\Delta x} = 0. \end{align}\begin{align} u_i^{n+1} = u_i^n - c \frac{\Delta t}{\Delta x}(u_i^n-u_{i-1}^n). \tag{1} \end{align}最初の式が微分係数を離散化した式(近似式)です。 添字がごちゃごちゃと多い文字計算ではありますが、 枝葉末節をそぎ落とすと加減乗除の四則演算だけしかしていません。
特に式 (1) に注目してください。 実はこの式にしたがって計算した結果をアニメーションでお見せしたのが先程の動画です。
細かいことは追々やっていくとして、 何をしているか大雑把にいうとベクトルなり数列なりの計算です。 もう一度式 (1) を見てください。 右上にある添字 $n$ に注目すれば左辺は $n+1$ で右辺は $n$ です。 これを数列の漸化式とみなします。
微分と同じく数列も高校でやる内容なので、 あなたが中学生ならちんぷんかんぷんかもしれません。 まずは次の 2 点だけおさえておいてください。
数学の成果は身の回りにもたくさんあります。 ちなみに移流方程式は事例紹介で出てきた流体力学で出てくる微分方程式です。 これは最後の章、偏微分方程式の議論でも紹介するので楽しみにしていてください。
中学の数学という話なら、 文字式の計算がゴリゴリ出てきていることも注意した方がいいでしょうか? 文字式が計算できないとこの計算は全く追えません。 偏微分方程式の議論では連立 1 次方程式も出てきます。 細かいことを言い出すときりがないので 今回はこのくらいにしておきましょう。
今回くらいのレベルでもベクトルで言うと 100 次元ベクトルのような高次元ベクトルの計算が必要です。 手計算ではやってられないのでプログラムを書いて計算して、 さらにプログラムを書いてグラフにしたりアニメーションにしたりしています。
あなたはプログラミングに興味があるかもしれません。 しかしプログラミングの詳しい話は別の機会に回します。 講座のボリュームが大きくなりすぎるからです。 プログラミングの詳細にこだわるよりも、 まずは中高数学の全体像をつかむことに集中してください。
今回お見せしたのは変数が 2 つある偏微分方程式でやはり難しいです。 変数が 2 つあるとややこしいので、 次回以降は変数が 1 つしかない常微分方程式を見ていきます。
今回はここで終わりです。 お疲れさまでした。
毎回アンケートを取っています。 質問や要望がある場合もこちらにどうぞ。
アンケートは匿名なので気楽にコメントしてください。 直接返事してほしいことがあれば、 メールなど適当な手段で連絡してください。