高階導関数
$f(x)$ を $x$ で $n$ 階微分する例。Maxima では
diff(f(x), x, n);
のように書きます。
例:
$$\frac{d^2}{dx^2} \sin x = \dots$$
/* 手っ取り早く答えを知りたいときは... */
diff(sin(x), x, 2);
/* 何を計算するかを表示させてから実行する場合は... */
'diff(sin(x), x, 2) =
diff(sin(x), x, 2);
テイラー展開
テイラー展開は taylor()
関数を使います。
指数関数のテイラー展開
$f(x) = e^x$ の $x = 0$ のまわりに $x^5$ までテイラー展開する例。
taylor(exp(x), x, 0, 5);
上記の結果は,通常なら
$$ 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \frac{x^4}{4!} + \frac{x^5}{5!} +\cdots$$
となるところだが,項の順序が降べきになっている。この順序は Maxima-Jupyter 上でのみのようで,試しにターミナルでは以下のような昇べきに並びます。
(%i1) taylor(exp(x), x, 0, 5);
2 3 4 5
x x x x
(%o1)/T/ 1 + x + -- + -- + -- + --- + . . .
2 6 24 120
Maxima-Jupyter で,テイラー展開を昇べきで表示させるために,以下のように trunc()
を使ってみます。
(powerdisp: true$
でも可能ですが,これだとテイラー展開以外の全ての多項式が昇べきで表示されてしまいます。)
trunc(taylor(exp(x), x, 0, 5));
これは $e^x \simeq \displaystyle \sum_{k=0}^n \frac{x^k}{k!}$ の $n=5$ に相当する。
ちなみに,この式で $x=1$ とおくと
$$ e = \sum_{k=0}^{\infty} \frac{1}{k!}$$ となり,この級数展開を使ってネイピア数 $e$ の近似値を求めることができる。
例として,$\displaystyle \sum_{k=0}^{10} \frac{1}{k!}$ の計算。Maxima では階乗は k!
です。
/* 手っ取り早く総和の答えを知りたいときは... */
sum(1/k!, k, 0, 10);
/* 何を計算するかを表示させてから実行する場合は... */
'sum(1/k!, k, 0, 10) =
sum(1/k!, k, 0, 10);
/* 浮動小数点数で表示 */
/* float() は 小数点以下 15 桁までの浮動小数点表示。*/
float(sum(1/k!, k, 0, 10));
float(%e); /* ネイピア数の値。*/
三角関数のテイラー展開
$f(x) = \sin x$ の $x = 0$ のまわりのテイラー展開は
\begin{eqnarray}
\sin x &=& f(0) + f'(0)\, x + \frac{f”(0)}{2!}\,x^2 + \frac{f”'(0)}{3!}\,x^3 +\cdots \\
&=& \sin 0 + \cos 0 \cdot x + \frac{-\sin 0}{2!}\,x^2 + \frac{-\cos 0}{3!}\,x^3 + \cdots \\
&=& x – \frac{x^3}{3!} + \frac{x^5}{5!} – \frac{x^7}{7!} + \cdots\\
&=& \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!}\,x^{2n+1}
\end{eqnarray}
/* sin(x) の x = 0 のまわりの7次までテイラー展開。*/
trunc(taylor(sin(x), x, 0, 7));
/* 階乗の確認 */
3!;
5!;
7!;
$f(x) = \cos x$ の $x = 0$ のまわりのテイラー展開は
\begin{eqnarray}
\cos x &=& f(0) + f'(x)\, x + \frac{f”(0)}{2!}\,x^2 + \frac{f”'(0)}{3!}\,x^3 +\cdots \\
&=& \cos 0 – \sin 0 \cdot x + \frac{-\cos 0}{2!}\,x^2 + \frac{\sin 0}{3!}\,x^3 + \cdots \\
&=& 1 – \frac{x^2}{2!} + \frac{x^4}{4!} – \frac{x^6}{6!} + \cdots\\
&=& \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n)!}\,x^{2n}
\end{eqnarray}
/* cos(x) の x = 0 のまわりの7次までのテイラー展開。*/
trunc(taylor(cos(x), x, 0, 7));
/* 階乗の確認 */
2!;
4!;
6!;
参考:テイラー展開した関数のグラフ
$f(x) = e^x$ のテイラー展開
expt1 : taylor(exp(x), x, 0, 1);
expt2 : taylor(exp(x), x, 0, 2);
expt3 : taylor(exp(x), x, 0, 3);
plot2d([exp(x), expt3, expt2, expt1], [x, -2, 2],
[legend, "exp(x)",
"テイラー3次",
"テイラー2次",
"テイラー1次"
],
[gnuplot_preamble, "set key top left;"]
)$
$f(x) = \sin x$ のテイラー展開
sint1: taylor(sin(x), x, 0, 1);
sint3: taylor(sin(x), x, 0, 3);
sint5: taylor(sin(x), x, 0, 5);
plot2d([sin(x), sint1, sint3, sint5], [x, -%pi, %pi],
[legend, "sin x",
"テイラー1次",
"テイラー3次",
"テイラー5次"],
[gnuplot_preamble, "set key top left;"]
)$
テイラー展開の次数を上げていくと,$|x| < 1$ の範囲では,もとの関数に近づいていくようすがわかります。
人類の至宝:オイラーの公式
オイラーの公式を確認するために,三角関数を書き直してみます。demoivre()
関数は,(複素)指数関数を三角関数に変換します。
Maxima では虚数単位 $i$ は %i
と書きます。
exp(%i * theta) = demoivre(exp(%i * theta));
exponentialize()
関数は,demoivre()
関数とは逆に,三角関数(や双曲線関数)を指数関数で表示します。
cos(theta) = exponentialize(cos(theta));
sin(theta) = exponentialize(sin(theta));
オイラーの等式
$$e^{i\pi} + 1 = 0$$
オイラーの等式のどこがすごいかというと,
- 可能における単位元ゼロ $0$ と乗法における単位元 $1$ という整数のもっとも基本となる数
- 無理数の代表選手,ネイピア数 $e$ と円周率 $\pi$
- そして虚数単位 $i$
という,いずれ名だたる役者達が,加法,乗法および冪乗によって見事に結び付けられているということ!
%e**(%i * %pi) + 1;
三角関数と双曲線関数の関係
三角関数と双曲線関数は,ただまぎらわしいほどに似た表記なだけでなく,アイで結ばれた密接な関係であることを確認する。
cosh(%i * x);
sinh(%i * x);
cos(%i * x);
sin(%i * x);
… ということで以下のことが確認できた。
\begin{eqnarray}
\cosh i x &=& \cos x \\
\sinh i x &=& i \sin x \\
\cos i x &=& \cosh x \\
\sin i x &=& i \sinh x
\end{eqnarray}
逆三角関数と逆双曲線関数の関係
逆三角関数と逆双曲線関数もまた,ただまぎらわしいほどに似た表記なだけでなく,アイで結ばれた密接な関係であることを確認する。
asin(%i * x);
atan(%i * x);
asinh(%i * x);
atanh(%i * x);
… ということで以下のことが確認できた。
\begin{eqnarray}
\sin^{-1} i x &=& i \sinh^{-1} x \\
\tan^{-1} i x &=& i \tanh^{-1} x \\
\sinh^{-1} i x &=& i \sin^{-1} x \\
\tanh^{-1} i x &=& i \tan^{-1} x
\end{eqnarray}
ただし,$\cos^{-1} i x$ と $\cosh^{-1} i x$ については,Maxima はそのままの式を返し,特に書き直してくれない。
acos(%i * x);
acosh(%i* x);