Python で数値解析
numpy の import を行っておく。
>>> import numpy
□ 連立一次方程式の解
x + 2*y = 2, 3*x + 4*y = 3 の解の計算
>>> A = numpy.array([[1, 2],[3, 4]])
>>> b = numpy.array([2, 3])
>>> numpy.linalg.inv(A).dot(b)
最小二乗の意味で最適な解を求めることもできる.
□ 多項式
多項式 x^3 - 8*x^2 -3*x + 9 の表現.
>>> p = numpy.array([1, -8, -3, 9])
零点の計算(求根)
>>> r = numpy.roots(p)
>>> r
零点から多項式を決定
>>> numpy.poly(r)
特性多項式(|sI-A|)の計算
>>> A = numpy.array([[1, 2, 3],[5, 4, 6],[2, 1, 3]])
>>> numpy.poly(A)
多項式の積
s^2 + 2*s + 1 と s^3 + 2*s^2 + 2*s + 1 の積
>>> numpy.convolve(numpy.array([1, 2, 1]), numpy.array([1, 2, 2, 1]))
□ 最小二乗近似
x = 1 y = 4
2 5
3 7
4 9
5 12
に対する近似.
>>> x = numpy.array([1, 2, 3, 4, 5])
>>> y = numpy.array([4, 5, 7, 9, 12])
直線近似
>>> numpy.polyfit(x, y, 1)
二次関数近似
>>> numpy.polyfit(x, y, 2)
□グラフの作成
matplotlib.pyplot を使ってグラフを描くため、まず import する
>>> import matplotlib.pyplot
>>> matplotlib.pyplot.plot(x, y, 'x')
>>> matplotlib.pyplot.show()
>>> matplotlib.pyplot.plot(x, y)
>>> matplotlib.pyplot.show()
Python で数値計算
naniwa@rbt.his.u-fukui.ac.jp