皆さんこんにちは週7フリーランスのりゅうです。
前回ライブラリの1つ目であるNumpyの基礎的な部分を学習しましたので今回はScipyについて勉強していきます。
Scipyライブラリのインポート
Scipyは線形代数やフーリエ変換など科学技術計算をするためのライブラリだそうです。
大学時代に勉強して、なんとなく名前を知っている程度なのでこれらについても復習しながらやっていきたいと思います。
まずはscipyと線形代数用や最適化計算用の関数をimportします。
行列計算をやってみる
ここでもまたまた行列計算をやっていきましょう。
行列の積はdet関数、逆行列の計算はinv関数を用いると計算することができるようです。
また、この時のデバック(値が正しいかどうかを確認する)として元の行列と逆行列の積は単位行列([1,0,0],[0,1,0],[0,0,1])になっているという性質を使います。
matrix.dot(linalg.inv(matrix)
これで元の行列*逆行列を計算してみます。
するとちゃんと単位行列が返ってきたので計算は正しく行われているようですね!
ニュートン法を使ってみる
先ほど出てきた最適化計算たるものをここではやっていきます。
まずは方程式の解を求める作業を行ってみましょう。
f(x) = x^2 + 2x + 1
上の式は中学レベルの数学でx = -1と解くことができますが、これをニュートン法を使って解いていきます。
ニュートン法も中学数学で少しだけ登場する方程式の解を近似値として取得する方法です。
my_functionをdefで定義し、もともと存在する「newton」メソッドを使えるようにしていきます。
my_functionが0になる時のxの値を求めるとほとんど1という値になりました!
Scipyは積分や微分方程式などにも使えるようですのでよく復習をしておこうと思います。
そして次回はPandasについて勉強していきます!
今回も最後までご視聴ありがとうございました!