😀

ふりかえってマクローリン展開をながめる

2020/10/27に公開

はじめに

フレネルゾーンの導出で引っかかったことはないでしょうか。陸上特殊無線技術士試験のテキストを見ても、さらっと最終の式だけ書いてあって、なぜそうなるのかが分からない、なんてことがあるのではないでしょうか。

そこで、導出のやり方を調べてみていたら、級数展開を使うということでしたので、マクローリン展開も調べました。

それはともかく

数式を扱う際に、たとえばx+\sqrt{x+1}といった式があると、通常ならx+1\sqrtの外に放り出すことができません。これらを放り出せると数式が簡単にできる可能性が出てきます。式が簡単になると、法則が見やすくなります。

また、sin()とかのように、定義からは多項式にできない関数の計算を行う際に、裏でマクローリン展開を使っています(たぶん、こちらの方がなじみがあるかと思います)。

で、フレネルゾーンの導出は本当に引っかかったのですが、それを除いても、マクローリン展開の再確認というのも悪くないなと思ったので、書いてみました。

マクローリン展開

マクローリン展開は、「0まわりの」と付く、テイラー展開の特殊な形式です。

\begin{matrix} f(x) &=& \sum_{n=0}^{\infty} \frac{f^{(n)}(0)x^n}{n!} \\ &=& \frac{f(0)x^0}{0!} + \frac{f'(0)x^1}{1!} + \frac{f''(0)x^2}{2!} + ... \\ &=& f(0) + f'(0)x + \frac{f''(0)x^2}{2} + ... \\ \end{matrix}

この級数は無限に続きますが、途中で打ち切ります。打ち切るまでの次数が多いほど、また、x0に近いほど、精度が良くなります。

どこで打ち切るかは、目的によって異なります。手計算で公式の導出をするなら、2次とか1次とかで済ませたりしますし、プログラミングで関数を実装する場合には、ある項の数の絶対値があらかじめ定めた値を超えなくなったら終了するようにしたりします。

exp

プログラミングでマクローリン展開を使う際の例題みたいなものです。

\begin{matrix} e^x &=& e^0 + (e^0)'x + \frac{(e^0)''x^2}{2} + ...\frac{(e^0)^{(n)}x^n}{n!} + ... \\ &=& 1 + x + \frac{x^2}{2} + ... + \frac{x^n}{n!} + ... \end{matrix}

exp(x)のn階微分が出てきますが、0を入れておけばいいので、結局は1になって、x^nn!しか現れません。

sin, cos

これもマクローリン展開の例題に使いますが、今回は収束半径まで回さずに、2次で切ってしまいます。

\begin{matrix} sin(x) &\simeq& sin(0) + (sin(0))'x + \frac{(sin(0))''x^2}{2} \\ &=& sin(0) + cos(0)x - \frac{sin(0)x^2}{2} \\ &=& x \end{matrix}
\begin{matrix} cos(x) &\simeq& cos(0) + (cos(0))'x + \frac{(cos(0))''x^2}{2} \\ &=& cos(0) - sin(0)x - \frac{cos(0)x^2}{2} \\ &=& 1 - \frac{x^2}{2} \end{matrix}

(1+x)のn乗

\begin{matrix} (1+x)^n &\simeq& (1+0)^n + n(1+0)^{n-1}x + \frac{n(n-1)(1+0)^{n-2}}{2}x^2 \\ &=& 1 + nx + \frac{n(n-1)}{2}x^2 \end{matrix}

\sqrt{1+x}を1次で切ってみます。n=\frac{1}{2}になります。

\begin{matrix} \sqrt{1+x} = (1+x)^{\frac{1}{2}} &\simeq& 1 + \frac{1}{2}x \end{matrix}

第1フレネルゾーンの導出

第nフレネルゾーンは、P1からP2に電波を送信した際に、P1からP2までの行程の距離が、P1P2との距離にn\frac{λ}{2}を足した距離以下となる行程の集合です。言い換えると、P1P2を焦点とした楕円を、P1P2を通る直線を軸として回転して得られる面を境界とする領域です。

フレネルゾーンは、この枠内に障害物が無い
第1フレネルゾーンは特に重要です。見通しで通信する場合に、障害物の影響が無いかを判断するために、障害物が第1フレネルゾーンに入っていないかを見て、そうならないようなP1P2の高さ(タワーの高さ)を計算します。

第1フレネルゾーンの式

線分(P1,P2)上の点Pについて、P1Pの距離をd_1P2Pの距離をd_2、とそれぞれおきます。なおd_1+d_2は定数です。

(P1,P2)で直交する面で切ると円になります。これの半径をrとします。

また、円の任意の点とP1とを結ぶ線の長さをa_1、円の任意の点とP2とを結ぶ線の長さをa_2、とそれぞれおきます。

a_1a_2d_1d_2rに関しては三平方の定理から次のようになります。

\begin{matrix} a_1^2 &=& {d_1^2+r^2} \\ a_2^2 &=& {d_2^2+r^2} \\ \end{matrix}

楕円条件の式は次の通りです。

\begin{matrix} a_1+a_2 &=& d_1+d_2+\frac{\lambda}{2} \end{matrix}

rの式の導出

この三つの式からrの式を導出します。

まず、a_1を、マクローリン展開します。

\begin{matrix} a_1 &= & \sqrt{d_1^2+r^2} \\ &=& d_1\sqrt{1+\frac{r^2}{d_1^2}} \\ &\simeq& d_1(1+\frac{1}{2}(\frac{r^2}{d_1^2})) \\ &=& d_1+\frac{r^2}{2d_1} \end{matrix}

a_2についても同じようにします。

\begin{matrix} a_2&\simeq& d_2+\frac{r^2}{2d_2} \\ \end{matrix}

ここで、繰り返しになりますが、楕円の式を挙げます。

a_1+a_2=d_1+d_2+\frac{\lambda}{2}

これにa_1, a_2を入れると次のようになります。

\begin{matrix} d_1+\frac{r^2}{2d_1} + d_2+\frac{r^2}{2d_2} &=& d_1+d_2+\frac{\lambda}{2} \\ \frac{r^2}{2d_1} + \frac{r^2}{2d_2} &=& \frac{\lambda}{2} \\ r^2(\frac{1}{d_1}+\frac{1}{d_2}) &=& \lambda \\ r^2\frac{d_1+d_2}{d_1 d_2} &=& \lambda \\ r &=& \sqrt{\lambda\frac{d_1 d_2}{d_1+d_2}} \\ \end{matrix}

おわりに

いかがだったでしょうか。

マクローリン展開は、多項式の平方根を平方根から放り出せるので、各項にばらして計算することができ、非常に便利です。

ただし、打ち切る以上誤差があるので、注意が必要です。また、0まわりのテイラー展開であり、変数の値が0に十分近くないといけません。十分に大きな数で割る等の工夫が必要になることがあります。

本記事のライセンス

クリエイティブ・コモンズ・ライセンス
この記事は クリエイティブ・コモンズ 表示 4.0 国際 ライセンス の下に提供されています。

Discussion