[python]算数・数学④~数列など~


前回まで

前回はこちら

改めて

機械学習を始めるにも、算数や数学がわからないと、入門書すら読めない。ただそこまで、ちゃんと解説してあるものもない。ということで最低限必要な数学基礎をこの記事で書けたらいいなと思っています。

環境

ほぼ影響ないですが、python3系を利用。

前提

四則演算や累乗(2乗とか3乗とか)がわかっていること。

等差数列

等差数列の$a_n$の計算(初項a、公差d)
$
a_n = a + (n-1)d
$

始点、終点(indexだから1つ前まで),項差を指定するだけ
0~10までの項差1

import numpy 
np.arange(0,11,1)
->array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

#もしくは
list(range(0,11,1))
# ->[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

等差数列の和(初項a、末項l、項数n)
$
S = \frac{1}{2}n(a+l)
$

ans = np.arange(0,11,1)
sum(ans)
#-> 55

#もしくは
sum(list(range(0,11,1)))
#-> 55

等比数列

等比数列の$a_n$の計算(初項a、公比r)
$
a_n = ar^{n-1}
$

[3**i for i  in  range(1,11,1)]
-> [3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049]

等比数列の和(初項a、末項l、項数n)r !=1
$
S_n = \frac{a(1-r^n)}{1-r}= \frac{a(r^n-1)}{r-1}
$

sum([3**i for i  in  range(1,11,1)])
#-> 88572

等比数列の和(初項a、末項l、項数n)r =1

$
S_n = an
$

ans = np.ones(10) * 5
sum(ans)
# -> 50

もしくは

ans = [5]*10
sum(ans)
# -> 50

便利な和の公式

$
\sum_{k=1}^{n}k = \frac{1}{2}n(n+1)
$

$
\sum_{k=1}^{n}k^2 = \frac{1}{6}n(n+1)(2n+1)
$

$
\sum_{k=1}^{n}k^3 = (\frac{1}{2}n(n+1))^2
$

$
\sum_{k=1}^{n}c = nc
$

$
\sum_{k=1}^{n}(a_k+b_k) = \sum_{k=1}^{n}a_k+\sum_{k=1}^{n}b_k
$

$
\sum_{k=1}^{n}(pa_k) = p\sum_{k=1}^{n}a_k
$

ここまで

この記事では本当に一部しか扱っていませんが、以下の記事ではたくさん扱われていたので、拝見さえていただきました。
Pythonで数学の勉強:数列・級数・組み合わせ論

次回は集合と確率について投稿していきます。