金子邦彦研究室インストールWindows の種々のソフトウェア(インストール)Windows に Octave バージョン 3.2.4 と octave-forge をインストール(Windows 上の Cygwin にインストール)

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 のパッケージからインストールしますので,

という場合に役立つでしょう.

■ このページで説明してること

【本 Web サイト内の関連 Web ページへのリンク】

Octave のオンラインマニュアル

前準備

前もってインストールしておくべきソフトウェア

  1. Cygwin の Web ページの記述に従って,Cygwin のセットアッププログラム setup.exe を入手しておくこと.

    前もって調べておく事項

    インストール手順

    Cygwinのセットアッププログラム setup.exe を使って,Octave をインストールする.簡単にインストールできる.

    ※ ついでに,gnuplot もインストールする.

    1. セットアッププログラムの開始

      [image]

      [image]

      [image]

      [image]

      [image]
    2. パッケージ選択画面 (Select Packages)」まで進む
    3. パッケージ選択画面で,パッケージを選ぶ

      下記のパッケージを選ぶ.

      「keep」になっている場合には,インストール済みなので,keep のままでよい.

      • Math/gnuplot ・・・ グラフ作成ツール.octave の計算結果からのグラフ作成にも使える
      • Math/octave
      • Math/octave-devel
      • Math/octave-doc
      • Math/octave-forge ・・・ 拡張パッケージ

      [image]
    4. 終了の確認

    (参考)ファイルの配置

    Cygin の octave のパッケージを使ってインストールしたときのファイルの配置は次のようになる. 「パッケージを自前で追加したい」などのとき必要になる情報です.

    [image]

    動作確認

    試しに使ってみる.

    1. Cygwin のコンソールを起動
    2. octave の起動

      Cygwin のコンソール で次の操作を行う.

      octave
      

      [image]
    3. 試しに使ってみる

      Cygwin のコンソール で次の操作を行う.

      x = [1 2 3]
      y = [4 5 6]
      x + y
      x * y'
      

      [image]
    4. パッケージの確認
      pkg list
      

      [image]
    5. 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) )
      

      [image]

      (オプション)cygblas-0.dll の入れ替え

      cygblas-0.dll を入れ替えることで高速化が期待できる.実測値は、この Web ページの下に示しているので参考にしてください.

      1. GotoBLAS2 の入手とビルド

        Windows で GotoBLAS2 バージョン 1.13 と CBLAS をビルドとインストール」の手順に従ってください.

      2. 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
        

        [image]
        [image]

      性能測定の例

      関連する外部ページ】 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

      [image]
      (a) 行列と行列の積: X = rand(2000,2000); Y = rand(2000,2000); Z = X * Y

      [image]
      (b) LU 分解 (LU decomposition): X = rand(2000,2000); [L, U, P] = lu(X)

      [image]
      (c) 正方行列の逆行列: X = rand(2000,2000); [Z, RCOND] = inv(X)

      [image]
      (d) 行列式 (determinant): X = rand(2000,2000); [D, RCOND] = det(X)

      [image]
      (e) Singular Value Decomposition (SVD), X = U*S*V: X = rand(2000,2000); [U, S, V] = svd(X)

      [image]
      (f) QR factorization (QR decomposition ともいう): X = rand(2000,2000); [Q, R, P] = qr(X)

      [image]
      (g) 分散共分散行列: X = rand(2000,2000), Y = rand(2000,2000); Z = cov(X, Y)

      [image]
      (h) 分散共分散行列の固有値と固有ベクトル(主成分分析): X = rand(2000,2000); [v, L] = eig( cov(X) )

      [image]
      (j) 2次元の畳み込み(コンボリューション): X = rand(2000,2000); B = rand(21); Z = conv2(X, B, 'full')

      [image]
      (k) 2次元の高速フーリエ変換 (FFT): X = rand(2000,2000); Z = fft2(X, 2000, 2000)

      [image]
      (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

      [image]
      (a) 行列と行列の積: X = rand(2000,2000); Y = rand(2000,2000); Z = X * Y

      [image]
      (b) LU 分解 (LU decomposition): X = rand(2000,2000); [L, U, P] = lu(X)

      [image]
      (c) 正方行列の逆行列: X = rand(2000,2000); [Z, RCOND] = inv(X)

      [image]
      (d) 行列式 (determinant): X = rand(2000,2000); [D, RCOND] = det(X)

      [image]
      (e) Singular Value Decomposition (SVD), X = U*S*V: X = rand(2000,2000); [U, S, V] = svd(X)

      [image]
      (f) QR factorization (QR decomposition ともいう): X = rand(2000,2000); [Q, R, P] = qr(X)

      [image]
      (g) 分散共分散行列: X = rand(2000,2000), Y = rand(2000,2000); Z = cov(X, Y)

      [image]
      (h) 分散共分散行列の固有値と固有ベクトル(主成分分析): X = rand(2000,2000); [v, L] = eig( cov(X) )

      [image]
      (j) 2次元の畳み込み(コンボリューション): X = rand(2000,2000); B = rand(21); Z = conv2(X, B, 'full')

      [image]
      (k) 2次元の高速フーリエ変換 (FFT): X = rand(2000,2000); Z = fft2(X, 2000, 2000)

      [image]
      (l) convex hull: x = rand(1000000,1); y = rand(1000000,1); H = convhull(x, y)