プログラミングの記事を書きます。-korokoro物理現象を数理モデルで扱うにあたっては絶対にテーラー展開は覚えておかなくてはいけません。ここでは、テーラー展開の数学的な証明は説明は省き要点だけ書きます。こちらの記事もどうぞテーラー展開\(x=a\)のまわりでの関数の形を知りたい場合、テーラー展開を使います。(1)\end{align*}と書くことができます。Σの和があるとわかりにくいですが、展開しておくと多項式近似であることがわかります。念のため注意ですが、\(\frac{f^{(1)}(x)}{1!}|_{x=a}\)は\(x\)で微分してから、\(x=a\)を代入するって意味です。\(x=a\)を代入してから、微分してはいけませんよ(0にしかなりませんから)。それでは具体例を見てみましょう。いうときに使うのかを簡単な例で示したいと思います。x\)という関数を考えて、「\(\sin\)のままだと扱いにくいな~。\(x=0\)のまわりだけ情報がほしいな~」ってなったとします。それでよく見ると、\(y=x\)とかで近似できそうであることがわかります。x\)は\(x=0\)のまわりだけ見たら、\(y=x\)と見ても良いということになります。x\)よりは、\(y=x\)の方が扱いやすいですよね。x\)はそれほど扱いにくい関数ではありませんが、複雑な関数やそもそも関数の形がよくわからない場合にはテーラー展開は有効に使うことができます。正確には\(x=0\)のまわりで近似するのはマクローリン展開と言います。テーラー展開は\(x=0\)のまわりに限った話ではなく、任意の\(x\)のまわりでの話です。具体例2:関数の形が良くわからない場合(ポテンシャルの極小値まわりの近似)例えば、粒子間の相互作用を考えることにします。粒子間の相互作用なんて具体的な形はよくわからない・・・・どうしよう。適当に「ポテンシャル\(U(x)\)」として考えるかとなったとしましょう。ある粒子に対して考えると、何か位置によるポテンシャルというのが存在することになります。これは例えば上のグラフで考えると、\(x=a\)ではポテンシャルエネルギーが低いですけど、\(x\)が大きい位置や小さい位置に粒子が移動しようものならたちまちポテンシャルエネルギーが大きくなってしまいます。エネルギーは最小出る方が「系として居心地が良い」のですよね。(上の絵を見ても・・・・なんか最小値の方がおさまりが良くて居心地良さそうですよね・・・・そう見えませんかね(笑))それはそうと、全ての\(x\)に対して\(U(x)\)の関数の振る舞いを知りたいのではなくて、実は\(x=a\)のまわりでの\(U(x)\)の関数の振る舞いを知れれば十分だということになります。いうことは、\(x=a\)のまわりでテーラー展開をしましょう。\begin{align*}U(x)=U(a)+\frac{f^{(1)}(x)}{1!}|_{x=a}(x-a)+\frac{U^{(2)}(x)}{2!}|_{x=a}(x-a)^{2}+・・(2)\end{align*}となりました。ここで、\(x=a\)のまらりでの展開であるので、\(x-a\)は0に近い値であるということになります。(2)式は無限に和を続けることに意味がなく、高次の項は「小さい値をさらに何乗かする」のでとても小さい値になっているわけです。(3)\end{align*}となります。\(U(a)\)や、\(\frac{U^{(2)}(x)}{2!}|_{x=a}\)は単なる定数ですし、\(\frac{f^{(1)}(x)}{1!}|_{x=a}\)に至ってはそもそも\(x=a\)で極小値をとっているような関数を想定しているので0のはずです。(4)\end{align*}ってことになります。わからなかった関数が、テーラー展開をさせることで空間的には\(x=a\)という限定的ではありますが、ずいぶんと簡単な形にできました。具体例3:微分の離散化に使うテーラー展開は微分の離散化などにも使われます。微分の離散化とは大きなくくりで言うと数値計算での離散化のことを指しています。このように\(f(x)\)とい関数があるのですが、数値計算を行う際はPCが処理するには代数的な値として入力する必要があるために微分などは扱うことはできません。して微分を代数的に表現しなくてはいけません。そこでテーラー展開を使います。x)\)とを1次の項までテーラー展開してみます。x(6)\end{align*}そうすると次の2つの有名な離散化手法が導けます。(7)\end{align*}これは求めたい位置\(x\)での微分に対して、前の値\(x+\Delta\)の値を使って微分を表現するので前進差分といいます。実際求めたい(真の)微分係数と比較すると、少々のずれがありますね。これが離散化による誤差であることを意識しておいてください。(8)\end{align*}これは求めたい位置\(x\)での微分に対して、後ろの値\(x-\Delta\)の値を使って微分を表現するので後進差分といいます。前進差分と同様に実際求めたい(真の)微分係数と比較すると、少々のずれがありますね。後進差分より一般的に精度が良いと考えられている中心差分も示しておきます。x)\)とを2次の項までテーラー展開してみます。(10)\end{align*}(9)式と(10)式を足せば、中心差分の完成です。(11)\end{align*}精度が良いというのは、テーラー展開の次数が多いからそのように考えられています。(2次までテーラー展開をしているので、2次の精度と言ったりします。(真の)微分係数に近いですね。)よりは良いということです。精度が良くなるのかどうかは保証できません。精度の良しあしは解きたい偏微分方程式にもよります。(移流方程式などの中心差分は解が振動するなどあるそうなので、よく自分で使いたい離散化手法を見極めないといけないです。)こちらの記事もどうぞ直交関数系をベクトルの線形結合と類似して考えてみよう。使って任意関数を表そう。-直交関数系をベクトルの線形結合と類似して考えてみよう。-【理想気体の比熱の温度依存性(8)】量子論で2原子分子の比熱を計算。低温極限で調和振動子の量子化エネルギーは凍結している。【CAE解析の目的とは?】CAEは実機の代替えなのか?精度を無視してパラメータスタディすることは意味がないのか?【Udemyがお勧め理由5つ】プログラミングを勉強するなら動画学習おすすめ【まとめ】比熱の温度依存性について。古典論と量子論から理解する。コメントを残すコメントをキャンセルプロフィールカマキリ(^^)大学以上の物理を勉強してブログに書いていきます。大学の専攻は物性理論で、Fortranを使って数値計算をしていました。CAE解析(流体解析)・毎日note更新しています。内容は、「現在勉強中の内容」「日々思ったこと」を書いています。1DCAEの操作方法などを動画にしています。youtube・Qiitaではプログラミング言語の基本的な内容をまとめています。