gnuplot, Maxima, Python グラフ作成・比較

同等の対象を

  • gnuplot
  • Maxima (plot2d(), draw2d())
  • Python の Matplotlib の plt.***, ax.***
  • Python の SymPy Plotting Backends
    • The Graphic Module
    • Plot functions

でグラフにしてみるシリーズ。 続きを読む

数列の和の公式とその証明

SymPy で数列の和 $\displaystyle \sum_{k=1}^n k^m \quad (m = 1, 2, 3, \dots)$ の公式がわかるよ,と説明したら,その証明を求められそうなのでメモ。

この公式と証明は高校の数学あたりでやっているんだろうけど,(なんせ昭和の昔の出来事なので)私にはとんと記憶がないなぁ。

In [1]:
from sympy.abc import *
from sympy import *

$\displaystyle\sum_{k=1}^n k$ = summation(k, (k, 1, n))

In [2]:
summation(k, (k, 1, n)).factor()
Out[2]:
$\displaystyle \frac{n \left(n + 1\right)}{2}$

証明

\begin{eqnarray}
\sum_{k=1}^n k &=& \frac{1}{2} \biggl\{\ 1 + 2 + \cdots + (n-1) + n \\
&& \quad  \  + n + (n-1) + \cdots + 2 + 1 \biggr\} \\
&=& \frac{1}{2} \sum_{k=1}^n \left(n+1\right)\\
&=& \frac{1}{2} n (n+1)
\end{eqnarray}

でもこれだと,次の $\displaystyle \sum_{k=1}^n k^2$ や $\displaystyle \sum_{k=1}^n k^3$ のときには応用できないので,別解:

\begin{align}
& &(k+1)^2 -k^2 &= 2 k + 1\\ \ \\
&k=1: & 2^2 -1^2 &= 2\cdot 1 + 1 \\
&k=2: & 3^2 -2^2 &= 2\cdot 2 + 1 \\
&\quad \vdots & &\ \ \vdots\\
&k=n-1: & n^2 -(n-1)^2 &= 2\cdot(n-1) + 1\\
&k=n: &(n+1)^2 -n^2 &= 2\cdot n + 1
\end{align}
$k=1$ から $k=n$ までの式の両辺を足し合わせると,左辺は最後の $(n+1)^2$ と最初の $-1^2$ の項以外は全てキャンセルされるから…
\begin{align}
(n+1)^2 -1 &= 2 \sum_{k=1}^n k + n \\
\therefore \ \ n^2 + 2 n &= 2 \sum_{k=1}^n k + n \\
\therefore\ \ \sum_{k=1}^n k &= \frac{n(n+1)}{2}
\end{align}

$\displaystyle\sum_{k=1}^n k^2$ = summation(k**2, (k, 1, n))

In [3]:
summation(k**2, (k, 1, n)).factor()
Out[3]:
$\displaystyle \frac{n \left(n + 1\right) \left(2 n + 1\right)}{6}$

証明

\begin{align}
& &(k+1)^3 -k^3 &= 3 k^2 + 3 k + 1\\ \ \\
&k=1: & 2^3 -1^3 &= 3\cdot 1^2 + 3\cdot 1 + 1 \\
&k=2: & 3^3 -2^3 &= 3\cdot 2^2 + 3\cdot 2 + 1 \\
&\quad\vdots & &\ \ \vdots\\
&k=n-1: & n^3 -(n-1)^3 &= 3\cdot(n-1)^2 + 3\cdot (n-1) + 1\\
&k=n: &(n+1)^3 -n^3 &= 3\cdot n^2 + 3\cdot n + 1
\end{align}
$k=1$ から $k=n$ までの式の両辺を足し合わせると,左辺は最後の $(n+1)^3$ と最初の $-1^3$ の項以外は全てキャンセルされるから…
\begin{align}
(n+1)^3 -1 &= 3 \sum_{k=1}^n k^2 + 3 \sum_{k=1}^n k + n \\
\therefore \ \ n^3 + 3 n^2 + 3 n &= 3 \sum_{k=1}^n k^2 + 3\cdot\frac{n(n+1)}{2} + n \\
\therefore\ \ \sum_{k=1}^n k^2 &= \frac{1}{3}\left\{n^3 + 3 n^2 + 3 n -3\frac{n(n+1)}{2} -n\right\}\\
&= \frac{n(n+1)(2 n+1)}{6}
\end{align}

$\displaystyle\sum_{k=1}^n k^3$ = summation(k**3, (k, 1, n))

In [4]:
summation(k**3, (k, 1, n)).factor()
Out[4]:
$\displaystyle \frac{n^{2} \left(n + 1\right)^{2}}{4}$

証明は… ($(k+1)^4$ の展開は SymPy にやってもらうことにして)

In [5]:
Eq((k+1)**4 - k**4, expand((k+1)**4 - k**4))
Out[5]:
$\displaystyle -k^{4} + \left(k + 1\right)^{4} = 4 k^{3} + 6 k^{2} + 4 k + 1$

ですから,$k=1$ から $k=n$ までの
$$(k+1)^4 -k^4 = 4 k^3 + 6 k^2 + 4 k + 1$$
の両辺を足し合わせれば証明できます。

$k=1$ から $k=n$ までの式の両辺を足し合わせると,左辺は最後の $(n+1)^4$ と最初の $-1^4$ の項以外は全てキャンセルされるから…
\begin{align}
(n+1)^4 -1 &= 4 \sum_{k=1}^n k^3 + 6 \sum_{k=1}^n k^2 + 4 \sum_{k=1}^n k + n \\
\therefore \ \ n^4 + 4 n^3 + 6 n^2 + 4 n &= 4 \sum_{k=1}^n k^3 + 6\cdot\frac{n(n+1)(2 n+1)}{6} + 4\cdot\frac{n(n+1)}{2} + n \\
\therefore\ \ \sum_{k=1}^n k^3 &= \frac{1}{4}\left\{n^4 + 4 n^3 + 6 n^2 + 4 n -n(n+1)(2 n+1) -2n(n+1) -n\right\}\\
&= \frac{n^4 + 2 n^3 + n^2}{4} \\
&= \frac{n^2 (n+1)^2}{4}
\end{align}

NumPy の浮動小数点数が np.float64 と表示される問題

今年度から新しい JupyterHub を授業で使うようになって気づいたところ。 続きを読む

新しい弘大 JupyterHub の matplotlib や sympy-plotting-backends で日本語を表示させる設定

続きを読む

閉曲面上のまるっと面積分の LaTeX 表記

続きを読む

高さ h からの斜方投射の問題を陰関数定理やラグランジュの未定乗数法を使わずに陽関数だけで解こうとすると…

大変だという話。授業で話したんだけど,「陽関数で解けるのに,なぜ(わざわざ)陰関数定理やラグランジュの未定乗数法を使って解こうとするんですか?」みたいな表情を返されたので。

いやいや,「陽関数を使って解こうとすると大変で途方にくれそうな問題も,陰関数定理やラグランジュの未定乗数法を使えば簡単に解けるんですよ!」ということを言いたい。

以下のページも参照:

続きを読む

回転系における単振り子の運動:フーコーの振り子

回転系における単振り子の運動方程式を,「一般にベクトルを微分するときは,成分だけでなく基本ベクトルも微分する必要があるのだ」という立場で計算してみる。以下のページを参考に。

続きを読む

高さ h からの斜方投射の問題をラグランジュの未定乗数法を使って解いてみる

すでに以下のページで陰関数定理を使って解いている問題だが,今回はラグランジュの未定乗数法を使って解いてみる。

続きを読む

高さ h からの斜方投射の最大水平到達距離を解析的に求める

高さ h からの斜方投射の最大到達距離を求める準備」のページを参照。

最大水平到達距離となる打ち出し角度 $\theta$ を求めるには,平方根を含む非線形方程式を解く必要があるので,SymPy でやってみた。

続きを読む

その昔,フーコーの振り子をちょっと調査した件

以前,力学の授業を担当していた時期があり,フーコーの振り子についてもネタにしてので,国立科学博物館や本学に設置されている振り子を見学したことがあった。その時に撮った写真や動画,ちょっとしたネタなどをまとめておく。 続きを読む

Matplotlib で単振り子の振幅の絵を描く

続きを読む

Load more