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