{"nbformat":4,"nbformat_minor":0,"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.8.1"},"colab":{"name":"06-ode_01_introduction.ipynb","provenance":[],"collapsed_sections":[],"toc_visible":true}},"cells":[{"cell_type":"markdown","metadata":{"id":"RZYQM3Ww9IxS"},"source":["# 常微分方程式"]},{"cell_type":"markdown","metadata":{"id":"o1yALHAEv2jl"},"source":["## 注意\n","有料講座のコンテンツの 1 章という体裁を取りつつ、\n","元の無料講座のコンテンツとしても再配布しているため、\n","違和感のある記述も出て来るでしょう。\n","あらかじめご了承ください。\n","対応する有料講座は次のページから登録できます。\n","\n","- [プログラミングで数学を 中高数学虎の穴](https://phasetr.com/lp/mpgh1/)\n","\n","ご興味があればどうぞ。"]},{"cell_type":"markdown","metadata":{"id":"_BZXcFHrLxta"},"source":["## はじめに\n","高校数学の復習をしたあと、応用の 1 つとして統計学(機械学習)への応用を紹介しました。\n","次は自然科学、特に物理への応用を紹介します。\n","\n","まずは微分方程式のうち、常微分方程式論を議論しましょう。\n","中高数学の復習という視点からもちょうどいいコンテンツなので、\n","無料の通信講座として展開している次の講座を Jupyter Notebook 形式に編集して再録します。\n","\n","- [応用からの中高数学再入門 自然を再現しよう 中高数学駆け込み寺](https://phasetr.com/lp/mrrfa1/)\n","\n","いい復習にもなるので、もしあなたがこの講座をすでに受講していたとしても、ぜひもう一度眺めてみてください。\n","もちろん、何度も復習したから大丈夫というなら、次の章に進んで問題ありません。"]},{"cell_type":"markdown","metadata":{"id":"6LMKYGC0LmtT"},"source":["### 参考文献集\n","もとになった上記講座には参考文献集があります。\n","\n","- [参考文献集](https://phasetr.com/archive/course/howtostudy/03-schoolmath/)\n","\n","講座の参加者にはもっと数学をきちんと勉強したい方もいれば、\n","ゆるく数学との付き合いを持っていきたいという方もいるので、\n","いろいろな文献やコンテンツを紹介しています。\n","\n","あなたの要望もいろいろあるでしょう。\n","数学を勉強するモチベーションになる本、\n","専門書にはじまり、\n","数学が活躍する小説まで硬軟とりまぜてたくさんの文献を紹介しているので、\n","ぜひ活用してください。\n","そして「こんないい本がある」というのをご存知なら、\n","ぜひ教えてください。"]},{"cell_type":"markdown","metadata":{"id":"KEL2_wnV9IxT"},"source":["## 講座の目的: 微分方程式のシミュレーション\n","今回はイントロとして説明することがいくつかあります。\n","私が作っている他の講座と同じように、\n","ここでは細かいことを詳しくやるの**ではなく**、\n","数学を勉強するモチベーションになるように数学の大きな姿をお見せしていきます。\n","\n","実際に何をするのかというと、\n","**微分方程式のシミュレーション**を通じて中高数学の大枠を掴んでいきます。\n","微分方程式のシミュレーションには中高でやるほとんどの数学が全て出てくるからです。\n","そして微分方程式のシミュレーションは理工系のほとんど全てで大事です。\n","\n","シミュレーションは数値計算とも呼ばれています。\n","そして数値計算は企業の開発現場でも使われていますし、\n","いまも理論や技術が発展を続けています。\n","いわゆるスパコンが何のためにあるかと言えば、\n","この数値計算をやるためなのです。\n","\n","- この数学はこんなところでこういう風に使うのか!\n","\n","使われているシーンを具体的に見てもらってモチベーションにしてもらおう、\n","そんな講座です。\n","この講座ではもちろん**文字計算には慣れている**ことを前提にしています。"]},{"cell_type":"markdown","metadata":{"id":"F8AYg17O9IxT"},"source":["## 微分方程式って何?\n","- 微分方程式はどこでどんな風に使われているのか?\n","- この講座では具体的にどんなことをするのか?\n","\n","あなたがまだ中高生なら微分は聞いたこともないかもしれません。\n","あなたが中高の数学の復習をしたいと思っている大人なら、\n","「自分にはまだ微分なんて早いのでは?」と思っているかもしれません。\n","メインの微分方程式が何だかわからないのでは、\n","もちろん読み進めるのはきついはず。\n","そこでまずは微分方程式を説明します。\n","\n","微分方程式が何か、そしてここで重視したい点を一言でいえば、**微分方程式は理工系各分野の基礎の基礎です**。\n","いわゆる自然法則は微分方程式で表現されることが多いのです。\n","具体的にどこで使われるかというと、\n","例えば洪水が起きたときの被害予測に使われます。\n","どんな規模で起きた洪水が市街地のどこまで進入してくるか、\n","そんなシミュレーションをテレビなどで見たことがないでしょうか?\n","このシミュレーションに使われているのが微分方程式です。"]},{"cell_type":"markdown","metadata":{"id":"2LFIYIPJ9IxU"},"source":["## 微分方程式は何に使うの?\n","他にも微分方程式は**社会のありとあらゆるところで使われています**。\n","ゲームの CG を自然に見せるためには、\n","まさに自然法則に則って風や水の動きを表現しないといけません。\n","だから微分方程式がその背後に隠れています。\n","\n","天気予報はいまの気象条件から未来の様子を予測する必要があります。\n","この予測にも微分方程式を使っています。\n","\n","機械を動かしていると熱くなることがあります。\n","そしてあまりにも熱くなりすぎると機械が暴走してしまうので、\n","熱を効率よく逃がす必要があります。\n","そのためには熱の流れを考え、\n","その流体の動きをきちんと制御しなければなりません。\n","この熱の流れの微分方程式を考えてそれをシミュレーションできるのです。\n","\n","他には車を作るとき、\n","例えば空気抵抗を調べるために流体力学が必要で、\n","その流体力学の基礎になる自然法則が微分方程式で書かれています。\n","このようにシミュレーションはモノづくりにも活かされています。\n","他にもいちいち挙げきれないくらい、\n","身の回りに微分方程式のシミュレーションを使っているモノがあります。\n","\n","微分方程式自体をきちんと調べようと思うと大学の数学が必要です。\n","しかしシミュレーションを中心に考えれば、\n","**中高の数学でかなりいろいろなことがわかります**。\n","わかるだけではなく、\n","実際に微分方程式を解いて遊んでみることもできます。\n","この**自分でも遊べる**ところまで持っていけるのがとても大事だと思っていて、\n","それが微分方程式のシミュレーションをテーマに選んだ理由の 1 つです。"]},{"cell_type":"markdown","metadata":{"id":"sFxHx_O09IxU"},"source":["## まずは大枠を掴もう\n","さて、 ここまでで微分方程式が何で大事かはわかってもらえたでしょうか?\n","これをやれば数学をいろいろ遊び倒せそうと思ってもらえたら嬉しいです。\n","きちんとがんばれば自分でゲームを作るときにも役立ちます。\n","\n","何はともあれ、\n","微分に関する話をするわけです。\n","そして微分は高校で勉強する内容です。\n","あなたは微分に対して嫌な思い出を持っているかもしれません。\n","あなたは「中学レベルからやり直したいのにそんなの無理だ! 」と思っているかもしれません。\n","もっと簡単なところからやってほしいと思っているかもしれません。\n","\n","しかしこの講座では中高数学の大枠を掴んでもらう講座です。\n","そして今回はこの講座の大枠を掴んでもらう講座です。\n","どうかもうしばらく辛抱して読み進めてください。"]},{"cell_type":"markdown","metadata":{"id":"yW2rtYPL9IxU"},"source":["## シミュレーションの実際\n","まず何をするのかを見てもらいたいので、\n","YouTube にあげた次の動画を見てください。\n","\n","- [YouTube へのリンク](https://www.youtube.com/watch?v=IgcIYvVl8UQ&feature=youtu.be)\n","\n","もしあなたが「プログラミングで数学を」を受講しているなら、07-pde_02_convection.ipynb も合わせて見るといいでしょう。\n","\n","これは**偏**微分方程式である 1 次元移流方程式のシミュレーション結果です。\n","プログラムを書いてコンピュータに計算させ、\n","その結果をアニメーションさせています。\n","移流方程式は微分方程式なのでそこで微分を使っています。\n","いきなり偏微分方程式を出す理由は一枚絵ではなくアニメーションを見せたいからです。\n","\n","コンピュータは数学的に厳密に微分を計算できません。\n","極限が取れないからです。\n","そうかといって全く何もできないわけでもありません。\n","実は微分係数・導関数の定義にしたがってそれらを**近似**して計算しています。\n","微分を近似すると実はただの引き算 (と割り算) になります。"]},{"cell_type":"code","metadata":{"id":"V2QP8DVJty2a","colab":{"base_uri":"https://localhost:8080/","height":322},"executionInfo":{"status":"ok","timestamp":1588378184293,"user_tz":-540,"elapsed":944,"user":{"displayName":"Yoshitsugu Sekine","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GimsNckrAflr-jMDGQwV_kIJ56EjAWYV8INkpUv=s64","userId":"13524401322013959426"}},"outputId":"26703ab5-fa9d-4cf9-cec2-1b2119d2621d"},"source":["import IPython.display\n","IPython.display.YouTubeVideo('IgcIYvVl8UQ')"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n"," \n"," "],"text/plain":[""],"image/jpeg":"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\n"},"metadata":{"tags":[]},"execution_count":1}]},{"cell_type":"markdown","metadata":{"id":"nSYMhqLnhGlk"},"source":["### 言葉の注意:近似と離散化\n","かなり専門的な注意です。\n","細かく説明することそれ自体が混乱を招くと思うので、このコンテンツではここに書いた以上には説明しません。\n","\n","ここから近似と離散化という 2 つの言葉がよく出てきます。\n","結論から書くと次のようになっています。\n","\n","- よく言われる近似には次の 2 種類がある\n"," - 微分方程式それ自体を別の微分方程式に変えて (近似して) 考える\n"," - ある微分方程式それ自体を近似的に解く\n","- ここでは後者の「ある微分方程式それ自体を近似的に解く」を考える\n","- やろうとしているのはあくまで近似 (近似解法)\n","- 離散化は近似の手法\n","\n","このコンテンツでは近似手法として離散化しか使わないので、必ずしも厳格には区別していません。"]},{"cell_type":"markdown","metadata":{"id":"cbFjlQ199IxV"},"source":["## 式の再録\n","「プログラミングで数学を」の 07-pde_02_convection.ipynb から式を引用します。\n","そもそも何も説明していませんし、見たことがない記号もあるでしょう。\n","とりあえず眺めるだけ眺めてください。\n","\n","\\begin{align}\n"," \\frac{\\partial u}{\\partial x}\n"," \\approx\n"," \\frac{u (x+\\Delta x)-u (x)}{\\Delta x}.\n","\\end{align}\n","\n","\\begin{align}\n"," \\frac{u_i^{n+1}-u_i^n}{\\Delta t} + c \\frac{u_i^n - u_{i-1}^n}{\\Delta x}\n"," =\n"," 0.\n","\\end{align}\n","\n","\\begin{align}\n"," u_i^{n+1}\n"," =\n"," u_i^n - c \\frac{\\Delta t}{\\Delta x}(u_i^n-u_{i-1}^n). \\tag{1}\n","\\end{align}\n","\n","最初の式が微分係数を離散化した式(近似式)です。\n","添字がごちゃごちゃと多い文字計算ではありますが、\n","枝葉末節をそぎ落とすと**加減乗除の四則演算**だけしかしていません。\n","\n","特に式 (1) に注目してください。\n","実はこの式にしたがって計算した結果をアニメーションでお見せしたのが先程の動画です。"]},{"cell_type":"markdown","metadata":{"id":"9SvWETqZ9IxV"},"source":["## 何をしているのか?\n","細かいことは追々やっていくとして、\n","何をしているか大雑把にいうと**ベクトルなり数列なりの計算**です。\n","もう一度式 (1) を見てください。\n","右上にある添字 $n$ に注目すれば左辺は $n+1$ で右辺は $n$ です。\n","これを数列の漸化式とみなします。\n","\n","微分と同じく数列も高校でやる内容なので、\n","あなたが中学生ならちんぷんかんぷんかもしれません。\n","まずは次の 2 点だけおさえておいてください。\n","\n","- 少なくとも高校でやることがモノづくりの現場をはじめとしていろいろなところで出てくること。\n","- 数学が役に立っている場面があること。\n","\n","数学の成果は身の回りにもたくさんあります。\n","ちなみに移流方程式は事例紹介で出てきた流体力学で出てくる微分方程式です。\n","これは最後の章、偏微分方程式の議論でも紹介するので楽しみにしていてください。\n","\n","中学の数学という話なら、\n","**文字式の計算がゴリゴリ出てきている**ことも注意した方がいいでしょうか?\n","文字式が計算できないとこの計算は全く追えません。\n","偏微分方程式の議論では**連立 1 次方程式**も出てきます。\n","細かいことを言い出すときりがないので\n","今回はこのくらいにしておきましょう。"]},{"cell_type":"markdown","metadata":{"id":"yXlH3ZcD9IxW"},"source":["## 今回のポイント\n","- 微分方程式のシミュレーションをやっていく。\n","- シミュレーションは実社会でいろいろな応用がある。\n","- 微分といっても近似を使うから結局は加減乗除になる。\n","- シミュレーションでは文字式の計算、 ベクトル、 数列など中高の数学をバリバリ使っている。\n","\n","今回くらいのレベルでもベクトルで言うと\n","100 次元ベクトルのような高次元ベクトルの計算が必要です。\n","手計算ではやってられないのでプログラムを書いて計算して、\n","さらにプログラムを書いてグラフにしたりアニメーションにしたりしています。\n","\n","あなたはプログラミングに興味があるかもしれません。\n","しかしプログラミングの詳しい話は別の機会に回します。\n","講座のボリュームが大きくなりすぎるからです。\n","プログラミングの詳細にこだわるよりも、\n","まずは中高数学の全体像をつかむことに集中してください。\n","\n","今回お見せしたのは変数が 2 つある偏微分方程式でやはり難しいです。\n","変数が 2 つあるとややこしいので、\n","次回以降は変数が 1 つしかない常微分方程式を見ていきます。\n","\n","今回はここで終わりです。\n","お疲れさまでした。"]},{"cell_type":"markdown","metadata":{"id":"RZfUcdlo9IxW"},"source":["# アンケート\n","毎回アンケートを取っています。\n","質問や要望がある場合もこちらにどうぞ。\n","\n","- [アンケートへのリンク](https://goo.gl/forms/hn7bUP4sblqOkBcI3)\n","\n","アンケートは匿名なので気楽にコメントしてください。\n","直接返事してほしいことがあれば、\n","メールなど適当な手段で連絡してください。"]}]}