2011-01-01から1年間の記事一覧

MKLのLAPACKで実対称行列の固有値・固有ベクトルを求める

C#

分散共分散行列はやカーネルマトリクスは実対称行列であるが、この固有値を求めるためにLAPACKのdsyevを用いる。ちなみに、非対称行列の場合にはdgeevを用いる。dsyevをC# から呼び出すときのラッパーは以下の通り using System; using System.Collections.G…

MKLのLAPACKで逆行列

C#

LAPACKにおいて逆行列を求める関数である"dgetri"のラッパーを作った。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security; using System.Runtime.InteropServices; namespace mkl { public se…

MKLのLAPACKでLU分解

C#

MKLで逆行列を求めるには、行列を一度LU分解しておく必要がある。 ダウンロードしてきたMKLのC#のラッパーには、LAPACKのLU分解パッケージ"dgetrf"がなかったので、記載されていたものを参考に作成してみた。 using System; using System.Collections.Generi…

(備忘録)LAPACKの計算

C#

http://www.mlab.ice.uec.ac.jp/~ej-sib/numerical/numerical_lapack1.html関数に代入する数値の単精度、倍精度の違いは次の通り。 s...単精度の実数 d...倍精度の実数 c...単精度の複素数 z...倍精度の実数

(備忘録)カレントディレクトリとファイルのIO

C#

C#が久々なので、文法をだいぶ忘れておる…。こことかこことか参考にさせていただいた。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; namespace ioTest { class ioTest { static void Main(str…

Intel Math Kernel Library (MKL) を使う

C#

Intel Math Kernel Library (MKL)は、再配布が無償の数値計算用ライブラリである。 お値段は\53,550と良心的。Visual Studio 2010 Professionalを入れたので、C#でバリバリ開発しようとしていたら、MKLのソースはC++で書かれていた。なので、C#からMKLのDLL…

pythonで主成分分析

pythonで主成分分析をしてみた。 #! usr/bin/python # -*- coding:utf-8 -*- import numpy as np import scipy as sp from scipy import linalg import csv # imput data fileName = './input/pcaTest.csv' inputCSV = csv.reader(open(fileName,"rb")) #dat…

csvから行列作成

Rだと、read.table関数で一発でデータをデータフレームに変更してくれる。 pythonで似たようなことができないかなーと思い書いてみた。 #! usr/bin/python # -*- coding:utf-8 -*- import numpy as np import scipy as sp import csv filename = "./input/in…

Rによる非線形計画問題

R

統計ソフトRのRsolnpパッケージを使って、2次式制約のもと2次式の最適化を行った。 制約が2次式なので、2次計画法を解くパッケージである"quadprog"は利用できない。今回の例題はこちら。 minimize subject to Lagrangeの未定乗数法なり、円が接する状態を幾…

pythonによる2次計画法

pythonで2次計画法を解くのにCVXOPTを使った。 Rのquadprogと違って、等式制約をそのまま使えるらしい。例題はこちら↓ http://abel.ee.ucla.edu/cvxopt/examples/tutorial/qp.html #!/usr/bin/python # -*- coding: utf-8 -*- from cvxopt import matrix fro…

Rによる2次計画法

R

今回は久しぶりにRの話題。 2次計画問題を解くのに、Rの"quadprog"パッケージを使うことにした。 例題は東工大の水野先生のサイト↓ http://www.me.titech.ac.jp/~mizu_lab/text/pdf-file/LP9-QP-problem.pdf例題では制約が等式制約である。だがquadprogで扱…

pythonによる最急降下法

最急降下法は、関数の最適化を行う手法として一番単純である。 多変数の場合、途中で直線探索を行う必要がある。 今回も参考図書は、金谷健一「これなら分かる最適化法」である。最適化したい関数は とする。 #!/usr/bin/python # -*- coding: utf-8 -*- imp…

pythonによる直線探索

関数の最適化を行う手法として一番単純なのが最急降下法である。 1変数の場合の最急降下法を実装してみた。最急降下法の場合、気にしないといけないのが「1ステップあたりどれだけ進むか」というステップ幅である。上に凸な関数な場合これを決める方法として…

連成振動をグラフ化してみた

matplotlibを使って昨日書いた連成振動をグラフ化してみた。 #!/usr/bin/python # -*- coding:utf-8 -*- import numpy as np from scipy import stats import matplotlib.pyplot as plt #-- initialization m = 1.0 k = 1.0 kappa = 1.0 dt = 0.01 omega1 = …

連成振動をpythonでシミュレーションしてみた

行列計算と正規分布が使えるようになったので、バネマスの連成振動を状態空間モデルで解いてみることにした。・2質点系 ・減衰、外力は働かないが、観測時に観測誤差が入るとするmatplotlibとかで出力できるとかっこいいのだが、とりあえずはファイル出力す…

SciPy で正規乱数を発生させる

SciPyを使って正規乱数N(mu,sigma)を発生させるには、SciPyのstatsを利用する。 #!/usr/bin/python # -*- coding:utf-8 -*- >>>import numpy as np >>>from scipy import stats #-- 正規分布N(0,1) >>>mu = 0 >>>sigma = 1 >>>print stats.norm.rvs(0,1) [[ …

numpyの行列作成方法

pythonのnumpyの行列で、等差級数な行列(ベクトル)の作り方メモ。1.等間隔(間隔指定)なベクトル #!/usr/bin/python # -*- coding: utf-8 -*- >>>import numpy as np >>>print np.arange(2,3,0.1) [ 2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9] 2.0から3.0まで…