{"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_09_recurrance_to_differential.ipynb","provenance":[],"collapsed_sections":[],"toc_visible":true}},"cells":[{"cell_type":"markdown","metadata":{"id":"IOy3d_N3YQyj","colab_type":"text"},"source":["# 漸化式から微分へ 微分方程式のシミュレーションの観点から"]},{"cell_type":"markdown","metadata":{"id":"s8F8zq1BYQyk","colab_type":"text"},"source":["## 漸化式はルールの 1 つ\n","前回数列の説明をしました。\n","関数は数と数の対応ルールのことで、\n","数列は関数の特別な形、\n","つまり自然数と実数の対応ルールのことでした。\n","\n","そして漸化式。\n","漸化式は**数列のルールの作り方の 1 つ**なのでした。\n","ここから微分方程式から見た微分の発想につながっていきます。"]},{"cell_type":"markdown","metadata":{"id":"0QewGQ_2YQyl","colab_type":"text"},"source":["## 数列 $(a_n)$ の添字 $n$ の意味\n","この添字、普段は数列の $n$ 番目としか言っていません。\n","ここではもっと積極的な意味をつけましょう。\n","それは **$n$ 分後** や **$n$ ステップ後**といった時間的な意味です。\n","2 つめの $n$ ステップがわかりづらいでしょう。\n","順を追って説明します。"]},{"cell_type":"markdown","metadata":{"id":"uge8Ba4SYQym","colab_type":"text"},"source":["## 小学校を思い出す\n","小学校の頃こんな問題があったのを覚えているでしょうか?\n","\n","> A さんは毎分 75 m の速さで歩いて家を出ました。\n","> A さんは 5 分後に何 m 先にいるでしょうか?\n","\n","こんなのは $5 \\times 75 = 375$ で一発です。\n","これを数列のスタンスで解いてみましょう。\n","\n","A さんの $n$ 分後の家からの距離を $a_{n}$ と書くことにしましょう。\n","次のように順を追って計算できます。\n","\n","- まず $a_{0} = 0$。\n","- 毎分 75 m の速さで進むので 1 分後の家からの距離 $a_{1}$ は $a_{1} = a_{0} + 75 = 75$。\n","- 2 分後の距離 $a_{2}$ は 1 分後の距離から 75 m 追加であり、\n"," 式で書けば $a_{2} = a_{1} + 75 = 150$。\n","- これをくり返せば $n+1$ 分後の家から距離 $a_{n+1}$ は $a_{n+1} = a_{n} + 75$。\n","\n","1 分前にどこにいたかわかれば次にどこにいるかわかります。\n","いま毎分 75 m と言ったから $n$ 分後としただけで、\n","これが毎時 75 m だったら $n$ 時間後を考えればよく、\n","毎秒 75 m だったら $n$ 秒後を考えます。\n","\n","いちいち状況に合わせて $n$ の呼び名を変えるのは面倒です。\n","そこで $n$ は時間というよりこの適当な**単位**のことだとみなします。\n","それを言葉ではっきりさせるために $a_{n}$ を **$n$ ステップ**目と呼びましょう。\n","\n","あなたは当たり前のことを言っているだけだと思ったかもしれません。\n","**その通りです**。\n","そしてこの当たり前を過激に推し進めると微分に近づいていきます。"]},{"cell_type":"markdown","metadata":{"id":"CFTfeuLvYQyn","colab_type":"text"},"source":["## 参考:高校の力学\n","高校の力学の基本は等加速度運動です。\n","つまりある時刻を基準にしてその $n$ ステップ後の速さを $v_{n}$ としましょう。\n","速度が 1 ステップごとに $\\alpha$ だけ増えるのなら、\n","等加速度運動は $v_{n+1} = v_{n} + \\alpha$ で決まる漸化式で書けます。\n","実際には 1 ステップとかケチくさいこと言わないで一気に次のように書きます。\n","\n","> 基準時刻から任意の時刻 $t$ が経過したあとの速さは $v (t) = v_0 + \\alpha t$ である。\n","> ここで $v_0$ は初期速度とする。\n","\n","漸化式を解くと $v_{n} = v_{0} + \\alpha n$ なので、\n","形式的に $n$ を $t$ に変えればいいだけです。\n","しかしいきなり上のように書かれても**物理全然わからん!**と思ったことはないでしょうか。\n","実はやっていることは小学校の頃と何も変わらないのです。"]},{"cell_type":"markdown","metadata":{"id":"Z93a1zkuYQyp","colab_type":"text"},"source":["## 等加速度ではない運動はどう考えればいいか?\n","ふつうは**適当に平均を取ると毎分 75 m** なのであって、\n","ずっと同じペースで動いているわけではありません。\n","漸化式で言うと定数 $\\alpha$ に対して $v_{n+1} = v_{n} + \\alpha$ のような関係式は成り立ちません。\n","\n","どこにどう責任を押しつけるかが問題です。\n","そもそも漸化式で現象を捉えられると仮定していいかからして問題だからです。\n","もっと言えば数学が使えるかどうかからが問題です。\n","ここでは数学が使えることくらいは仮定します。"]},{"cell_type":"markdown","metadata":{"id":"VkCcwDCQB8zI","colab_type":"text"},"source":["### 1 つの方向性\n","上で出てきた議論のポイントは $\\alpha$ が **$n$ の関数**だったことです。\n","等速直線運動では $v_{n+1} = v_n + \\alpha n$ でした。\n","つまり $v_{n+1} = v_{n} + \\alpha_{n}$ と $\\alpha$ を定数から関数 (数列) に変えるのが 1 つの方向性です。"]},{"cell_type":"markdown","metadata":{"id":"unO2nPBFYQyq","colab_type":"text"},"source":["### 一般には等差数列にできない\n","何をどうがんばっても $\\alpha_n = \\alpha$ にすることだけはできません。\n","逆にもしそうできてしまったとすると全ての運動が等加速度運動にしかならないからです。\n","残念ながらそんな世界には生きていません。"]},{"cell_type":"markdown","metadata":{"id":"q5KRVsWxCkny","colab_type":"text"},"source":["### いい塩梅を探る\n","いったん考える問題は A さんが場所 B から場所 C に移動する状況にしましょう。\n","そして $v_{n+1} = v_n + \\alpha_n$ で何とかならないか、そして $\\alpha_{n}$ の部分がなるべくシンプルにならないかと考えましょう。\n","実はここで**究極的な理想形**を考えると微分が出てきます。"]},{"cell_type":"markdown","metadata":{"id":"by1FS6A8YQyr","colab_type":"text"},"source":["### 状況整理と展望\n","小学校でやった設定は高校の物理でもそのまま出てきます。\n","それは数列の漸化式として捉えられるのでした。\n","ここから何とかして一般の運動を数学的に記述できないかと考えを進めてきています。\n","\n","ある時刻での速度を $v_n$ として、その前の時刻での速度から次の時刻での速度を予測するのが課題で、ある関数によって $v_{n+1} = f(v_n, n)$ のように書く道がないかを探っています。"]},{"cell_type":"markdown","metadata":{"id":"75HRsmm257TR","colab_type":"text"},"source":["# まとめ\n","最初に漸化式は微分方程式を近似して出てくることを見ました。\n","このミニ講座では微分方程式が本体です。\n","何の指針もなく五里霧中を彷徨うよりも、\n","大事な微分方程式と関係した漸化式を考える方が手が打ちやすいのです。\n","というわけで数列のレベルでごちゃごちゃと考えるのはこの辺にして、\n","もう微分に行ってしまいましょう。\n","\n","今回はこの辺で終わりにします。\n","お疲れ様でした。"]},{"cell_type":"markdown","metadata":{"id":"1irOSGsEYQys","colab_type":"text"},"source":["# アンケート\n","毎回アンケートを取っています。\n","質問や要望がある場合もこちらにどうぞ。\n","\n","- [アンケートへのリンク](https://goo.gl/forms/hn7bUP4sblqOkBcI3)\n","\n","アンケートは匿名なので気楽にコメントしてください。\n","直接返事してほしいことがあれば、\n","メールなど適当な手段で連絡してください。"]}]}