情報科学 › 研究のための計算の実務 › NumPy で書く配列計算
ベクトル化は演算の回数を変えず、作業領域を変える
を の配列( 個の点の座標)とし、全対の距離の 2 乗 を次の 3 通りで計算する。
- (a) 二重ループ: についてのループの中で、 について差・2 乗・足し込みをスカラーで行う。
- (b) ブロードキャスト:
((X[:, None, :] - X[None, :, :]) ** 2).sum(axis=2)。 - (b′) ブロック化: 行を 個ずつ()に分け、各ブロック
X[s:s+b]について (b) と同じ式を計算する。
このとき、
- 3 通りとも、引き算を 回、乗算を 回、足し算を 回行う。RAM モデルでの計算時間はどれも である。
- 入力と出力 のほかに使う作業領域は、(a) が 、(b) が 要素の一時配列、(b′) が高々 要素の一時配列である。
閉包の状態
✓ 公理まで証明済み
証明が使う定理を 前提 としてたどると、Rikai の中の証明だけで定義・公理(物理では基本仮定)までつながっています(前提の定理類 0 件、定義なども含めて 3 件)。
印の意味: ✓公理まで証明済み ・ △証明あり(閉包未完)・ ※主張のみ。テーマごとの集計は 閉包の状況。
前提をたどる 証明が使う定理・定義(直接 3 件)
▸ を開くと、その項目の証明が使う前提が出ます。深い先は各項目のページでたどれます。
- ブロードキャスト定義 3.1・NumPy で書く配列計算
- 一様コスト RAM モデル定義 2.1・計算量と O 記法
- O 記法・Ω 記法・Θ 記法定義 3.1・計算量と O 記法
これを使っている定理
証明で明示的に参照している定理は、まだありません。