Windows に Octave バージョン 3.2.4 と octave-forge をインストール(Windows 上の Cygwin にインストール)
Octave とは, MATLAB 互換の数値解析ソフトウェア.
このページでは,Octave バージョン 3 の Windows 版(Cygwin パッケージ)をインストール,テスト実行する手順を図解で説明する.2010/07 時点での Cygwin パッケージの Octave のバージョンは 3.2.4 です.
貴重な情報源: http://www40.atwiki.jp/gnuoctavejp (Octave for Windows メモの著者様による Wiki)
<要点>
Cygwin のパッケージからインストールしますので,
- Cygwin の C コンパイラを用いて,octave のプログラムの機能 (liboctave など) を使うプログラムの練習をしたい
という場合に役立つでしょう.
* このページで説明してること
- インストール手順
- 動作確認
- gnuplot との連携の例
- cygblas-0.dll の入れ替え
- 性能測定の例 行列と行列の積, LU 分解, 正方行列の逆行列, 行列式, Singular Value Decomposition, QR factorization, 分散共分散行列, 分散共分散行列の固有値と固有ベクトル(主成分分析), 2次元の畳み込み(コンボリューション), 2次元の高速フーリエ変換 (FFT), convex hul
【本 Web サイト内の関連 Web ページへのリンク】
- Windows に Octave をインストール(Windows 版をインストール)
Octave バージョン 3.2.4 の Windows 版をインストール,テスト実行する手順を図解で説明する.インストールは簡単に行えます.
- Windows に Octave バージョン 3.2.4 をインストール(ソースコードからコンパイル.Windows 上の Cygwin にインストール)
Octave の ソースコードパッケージをダウンロードし,Cygwin 上でビルドして,インストールする手順を図解で説明する. どうしてもソースコードからコンパイルしたい場合(例えば,最新の Octave を追いかけたいなど)の場合には,この Web ページの手順が参考になるでしょう.
【関連する外部ページ】
- Octave オンラインマニュアル: https://www.gnu.org/software/octave/
前準備
前もってインストールしておくべきソフトウェア
Cygwin の Web ページの記述に従って,Cygwin のセットアッププログラム setup.exe を入手しておくこと.
前もって調べておく事項
- Cygwin インストールディレクトリ: C:\Cygwin
インストール手順
Cygwinのセットアッププログラム setup.exe を使って,Octave をインストールする.簡単にインストールできる.
* ついでに,gnuplot もインストールする.
- セットアッププログラムの開始
- パッケージ選択画面 (Select Packages)」まで進む
- パッケージ選択画面で,パッケージを選ぶ
下記のパッケージを選ぶ.
「keep」になっている場合には,インストール済みなので,keep のままでよい.
- Math/gnuplot ・・・ グラフ作成ツール.octave の計算結果からのグラフ作成にも使える
- Math/octave
- Math/octave-devel
- Math/octave-doc
- Math/octave-forge ・・・ 拡張パッケージ
- 終了の確認
(参考)ファイルの配置
Cygin の octave のパッケージを使ってインストールしたときのファイルの配置は次のようになる. 「パッケージを自前で追加したい」などのとき必要になる情報です.

動作確認
試しに使ってみる.
- Cygwin のコンソールを起動
- octave の起動
Cygwin のコンソール で次の操作を行う.
octave
- 試しに使ってみる
Cygwin のコンソール で次の操作を行う.
x = [1 2 3] y = [4 5 6] x + y x * y'
- パッケージの確認
pkg list
- octave の終了
exit
gnuplot との連携の例
Octave では,gnuplot の機能を呼び出してグラフを作る,というのが定番なので,試してみる.
グラフの描画のために,Cygwin のコンソール で次の操作を行う.
* startx を忘れるとエラーメッセージが出ます.(gnuplot が動かないので).
startx octave x = [0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2] plot( x, sin(x) )
(オプション)cygblas-0.dll の入れ替え
cygblas-0.dll を入れ替えることで高速化が期待できる.実測値は、この Web ページの下に示しているので参考にしてください.
- GotoBLAS2 の入手とビルド
「Windows で GotoBLAS2 バージョン 1.13 と CBLAS をビルドとインストール」の手順に従ってください.
- GotoBLAS2 の libgoto2.dll を blas.dll と入れ替え
Cygwin のコンソールで以下の操作を行う。
cp /usr/bin/cygblas-0.dll /usr/bin/cygblas-0.dll.DIST cp /usr/lib/libgoto2.dll usr/bin/cygblas-0.dll
性能測定の例
【関連する外部ページ】 http://www.ccn.yamanashi.ac.jp/~stomo/center_report/Octave.html (現存しない)
- ハードウェア
- Intel Corei7 860 (2.8GHz)
- ソフトウェア
- OS: Windows 7
- Octave バージョン 3.2.4, 本ページの手順でインストール
本来,性能値は,マシンの種類.ソフトウェアのバージョン,コンパイル時のオプションなどで大きく変わる値です. ここで示す性能値は,他のプロセスをとめるなどしていません. あくまでも「参考値」ということでご理解ください.ここの性能値を鵜呑みにしないで下さい.
cygblas-0.dll の入れ替え前
【実測値の例】Intel Corei7 860 (2.8GHz), Octave バージョン 3.2.4
(a) 行列と行列の積: X = rand(2000,2000); Y = rand(2000,2000); Z = X * Y
(b) LU 分解 (LU decomposition): X = rand(2000,2000); [L, U, P] = lu(X)
(c) 正方行列の逆行列: X = rand(2000,2000); [Z, RCOND] = inv(X)
(d) 行列式 (determinant): X = rand(2000,2000); [D, RCOND] = det(X)
(e) Singular Value Decomposition (SVD), X = U*S*V: X = rand(2000,2000); [U, S, V] = svd(X)
(f) QR factorization (QR decomposition ともいう): X = rand(2000,2000); [Q, R, P] = qr(X)
(g) 分散共分散行列: X = rand(2000,2000), Y = rand(2000,2000); Z = cov(X, Y)
(h) 分散共分散行列の固有値と固有ベクトル(主成分分析): X = rand(2000,2000); [v, L] = eig( cov(X) )
(j) 2次元の畳み込み(コンボリューション): X = rand(2000,2000); B = rand(21); Z = conv2(X, B, 'full')
(k) 2次元の高速フーリエ変換 (FFT): X = rand(2000,2000); Z = fft2(X, 2000, 2000)
(l) convex hull: x = rand(1000000,1); y = rand(1000000,1); H = convhull(x, y)cygblas-0.dll の入れ替え後
【実測値の例】Intel Corei7 860 (2.8GHz), Octave バージョン 3.2.4
(a) 行列と行列の積: X = rand(2000,2000); Y = rand(2000,2000); Z = X * Y
(b) LU 分解 (LU decomposition): X = rand(2000,2000); [L, U, P] = lu(X)
(c) 正方行列の逆行列: X = rand(2000,2000); [Z, RCOND] = inv(X)
(d) 行列式 (determinant): X = rand(2000,2000); [D, RCOND] = det(X)
(e) Singular Value Decomposition (SVD), X = U*S*V: X = rand(2000,2000); [U, S, V] = svd(X)
(f) QR factorization (QR decomposition ともいう): X = rand(2000,2000); [Q, R, P] = qr(X)
(g) 分散共分散行列: X = rand(2000,2000), Y = rand(2000,2000); Z = cov(X, Y)
(h) 分散共分散行列の固有値と固有ベクトル(主成分分析): X = rand(2000,2000); [v, L] = eig( cov(X) )
(j) 2次元の畳み込み(コンボリューション): X = rand(2000,2000); B = rand(21); Z = conv2(X, B, 'full')
(k) 2次元の高速フーリエ変換 (FFT): X = rand(2000,2000); Z = fft2(X, 2000, 2000)
(l) convex hull: x = rand(1000000,1); y = rand(1000000,1); H = convhull(x, y) - GotoBLAS2 の入手とビルド