SciPy とは
- Python で使える 「科学計算」 のツール
- 行列とか、関数とか、、、
- 固有値計算とか、スペクトル計算とか、
SciPy のインストール
Python (IDLE) を起動
- >>> がプロンプト(キーボードから入力してね!という印)
from scipy import *
... scipy を使えるようにする
- 行列
a = matrix([[1, 2], [3, 4]])
b = matrix([[3, 4], [5, 6]])
a
[return] としてみる、
- 同様に、 b, a+b, a-b, a*b, b*a も試す
逆行列とか、行列式とか
- a.I ... 逆行列
- a.T ... 転置行列
- from scipy import linalg してから
- linalg.det(a) ... 行列式(linalg は、線形代数計算を集めたもの)
プログラムファイルの作成
- python フォルダの中で、右クリック -> 新規作成 -> テキストドキュメント
- 名前を
tsurukame.py
に変更
- 拡張子が表示される設定になっていることを確認しておくこと
- tsurukame.py を右クリック -> 「Edit with IDLE」を選ぶ
- tsurukame.py のウィンドウでプログラムを作成する
鶴亀算のプログラム
# -*- coding: utf-8 -*-
# tsurukame.py
from scipy import *
from scipy import linalg
a = matrix([[1, 1], # 鶴, 亀 の頭
[2, 4]]) # 鶴, 亀 の足
b = matrix([[10], # 頭は 10 個
[26]]) # 足は 26 本
x = linalg.solve(a, b)
print u"鶴は %d 羽, 亀は %d 匹" % (x[0], x[1])
プログラムの実行
- Run -> Run Module を選ぶ(OK to Save ? が出たら OK をクリック)
- Python Shell のウィンドウに結果が表示される
- 検算: a * x (に相当する計算) をやってみる
その他の連立方程式にも挑戦
- 例えば、練習問題集 の これ とか。
>>> from scipy import *
>>> from scipy.linalg import solve
>>> a = matrix([[1,2],[1,-1]])
>>> b = matrix([[1],[4]])
>>> solve(a,b)
array([[ 3.],
[-1.]])
もっと知りたい
卒論では
- 1000次元くらいの行列計算をしたりします。
- 固有値、固有ベクトルの計算とか、、、
- その他にも多次元の問題はいっぱい。
- 収入+地位+学歴+スポーツ歴+イケメン度 で 5次元のムコ選びとか
力試しに、やってみよう
- 複合例題(鶴亀トンボ算2)
- ツルと亀とトンボがいます。頭の個数が合計30個、足の数が118本、羽の数は74枚あります。ツル、亀、トンボはそれぞれ何体(匹/羽)ですか。
- 鶴亀トンボ+キングギドラ 算も作ってみよう(尻尾も数える)