何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

Pythonで巡る線型代数:ベクトルと行列篇

「はじめに」の前に

これは以下のプロポーサルに沿ったエントリ(の予定です)

pycon.jp

ただ、あまり需要がなさそうなので取り下げる可能性が高いです。

ベクトル

定義 { (2,0,-1), (\frac{2}{3}, \sqrt{2}, \sqrt{2}) }のように3個の数を一列に並べたものを3次元数ベクトルという。 一般に、{ (a_{1},a_{2},..., a_{n}) }のように{n}個の数を一列に並べたのものを{n}次元数ベクトルという。 また、{ a_{i} } を第{ i } 成分という。

Sympyでは次のようにベクトルを扱うことができる。

import sympy

x = sympy.Matrix(3,1,[2,0,-1])
y = sympy.Matrix(3,1,[sympy.Rational(2,3), sympy.sqrt(2), sympy.sqrt(2)])

同じ次元のベクトルに対して加法とスカラー乗法が定義される。

  1. { \mathbf{x} + \mathbf{y} = (..., x_{i} + y_{i},...)}
  2. { c }を任意の数とするとき、{ c\mathbf{x} = (..., cx_{i},...) }

加法、スカラー乗法は成分ごとの演算をならべたものに過ぎないので、数に関する演算法則がそのまま成立する。

Sympyでも通常の加法のように+演算子が使える。

import sympy

x = sympy.Matrix(3,1,[2,0,-1])
y = sympy.Matrix(3,1,[sympy.Rational(2,3), sympy.sqrt(2), sympy.sqrt(2)])
print(x+y)

# Matrix([
# [         8/3],
# [     sqrt(2)],
# [-1 + sqrt(2)]])

print(3 * x)

# Matrix([[6], [0], [-3]])

続く…