データ解析ツールoctaveを語ろう Part 2 (736レス)
1-

1
(2): 2009/10/28(水)22:13 AAS
知る人ぞ知る強力なデータ解析ツール octave ...

unixを科学研究で使っている香具師には非常に心強い味方のはずだ。

matlab互換を主張しながら、微妙にバージョンアップを続ける
octaveについて語ろう。

そのPart 2です

前スレ
省2
2: octave for windowsメモの筆者 2009/10/29(木)00:07 AAS
>>1 スレたてありがとうございます。
3: 2009/10/29(木)02:35 AAS
ロリコンのオイラにも使いこなせだろうか…
4: 2009/11/06(金)10:32 AAS
OctaveスレですがFreeMAT 4.0が使い物になるか検証してみます
FreeMATでは関数名がOctave/MATLABと変わってるものがあります
例えば
Octave/MATLABのfgetlは、fgetline
Octave/MATLABのinterp1は、interplin1 (しかもオプションが違う)
とか色々

というような感じなので、Octave、MATLAB、FreeMATで共通に動かせるプログラムを
書くにはどの処理系で動かしているかプログラムの中で判別する必要があります。

OctaveとMATLABを判別するには

if exsit('OCTAVE_VERSION'),
省11
5
(1): 2009/11/06(金)10:56 AAS
電卓やExcelで計算出来る程度をのことをわざわざOctave/MATLAB/FreeMATで
行うのは時間の無駄です。
逆に理論上は電卓やExcelでも計算可能だが超絶むずい問題を
Octave/MATALB/FreeMATでさらさらと計算する事は非常に有意義です。

統計計算ならExcelでも可能でしょうけど、非線形最小二乗法の計算ともなれば
ちょっと難しいですが、Octave/MATLAB系言語なら簡単(?)に計算可能です。

MATLABでは高いOptimization Toolboxのオプションを買えば
lsqcurvefitというマルカート法を用いた非線形最小二乗計算が出来ます。

でもまあしかし、Octave-Forgeについてくるleasqrを使えば只で
マルカート法による非線形最小二乗計算ができますのでそちらを使いましょう。
省4
6
(1): 2009/11/06(金)11:02 AAS
test1.mで保存してOctave/MATLAB/FreeMATで実行

function F=test1()
stol=0.0001;
niter=50;
AA=[0:360];
BB=AA./180.*pi;
CC=cos(BB);
x0=[1,0];
%
if exist('verstring'),
省17
7: 2009/11/06(金)13:40 AAS
>>6
の説明を簡単にします

sintestは、param1で指定された波数freqと位相phaseのsinデータを生成する関数で
入力値にはcosのデータを用意し、
その波数と位相を非線形最小二乗法で求めるというものです
cosはsinから見ると位相が90度=π/2ずれてますので
推定された位相を2倍すればπが得られるはず!で
実際に計算してみるとそうなりました

ところで、leasqrとfitfunでは、解析する関数のパラメータの順番が違います
そこで元になってるsintest関数をleasqr用とfitfun用にラッパー関数
省3
8: octave for windowsメモの筆者 2009/11/06(金)18:27 AAS
>>5
他の視点としてはC, fortran, C++で書けば速いコードができるのだが,
プログラムを書くのに時間がかかってしまのですが,octaveなどで組み込みの
強力なツールを使えばプログラミングが早く終わるケースなどがあります
よね。

ちょっとして問題までコンパイラを使うのは時間の無駄だと思います。

また,プログラミングする前のプロトタイプ作成にも有効ですよね。

liboctaveはC++で動く数値演算クラスライブラリとして有用ですし,
octaveのスクリプトからの移植は,比較的容易ですので真剣に高速化したい
ときも近道になりますよね。
省10
9
(3): 2009/11/06(金)19:16 AAS
octaveでgnuplot(wgnuplot)を実行させようとするとグラフが表示されない現象に悩まされているので質問させてください。
まずバージョン情報をば。

OS: Windows Vista
octave: 3.0.3(cygwin setupからインストール)
gnuplot: 4.0 patchlevel 0(wgnuplotをcygwinからではなく個別にインストール)

また、octaveはcygwin1.5.25上で動かしています。
octaveからgnuplotにデータを渡すために
octaveの設定ファイルに下記サイト等を参考にして変更を施しました。

http://www.t.hosei.ac.jp/~miya_ken/computer/octave.htm

ですがグラフを表示させようとすると
省9
10
(1): octave for windowsメモの筆者 2009/11/07(土)05:44 AAS
>>9
Cygwin版ならのcygwin版gnuplotを使うのがいいとおもいますが,Xを動かしたくないんですね。XソフトとしてCygwin-XでなくXmingを使う動作が軽くて結構いいですよ。

Octave 2.91?以降ではguiモードのwgnuplotはpgnuplotをつかっても使えません。コンソールモードのgnuplotを利用してください。
これはcvs版しかないので

角藤さんによるCVS版Windows 用バイナリ
http://www.ring.gr.jp/pub/text/TeX/ptex-win32/w32/

私がビルドしたもの
File list of gnuplot 4.5 for Windows
http://www.tatsuromatsuoka.com/gnuplot/Eng/winbin/

をつかってみてください。ただ,最近のoctaveは仕様の変更がありますからCygwin版のgnuplotしか
省8
11
(1): octave for windowsメモの筆者 2009/11/07(土)07:12 AAS
>>9
ところでCygwinにこだわりがありますか。わざわざ,xのgnuplotを使わないようにされているようなので,Octaveを使うのにCygwin版をお使いになるのかいまいちわかりません。
Cygwinでいろんなことしたいならやはり,xをいれてx版のgnuplotをつかうのが自然だと思います。

Cygwinに固執がなければ
octave/mingwだとインストールするだけで簡単にgnuplotも使えるわけですし,なにかわざわざ困難な方向に走っておられるような気がします。

octave/mingwは
以下からダウンロードできます。

http://sourceforge.net/projects/octave/files/Octave_Windows%20-%20MinGW/Octave%203.2.3%20for%20Windows%20MinGW32%20Installer/Octave-3.2.3-3_i686-pc-mingw32_gcc4.4.0_setup.exe/download

ただし,SSE3つきのAtlasはバグがあるのでSSE2のAtlasをお使いください。
12
(2): 2009/11/09(月)15:56 AAS
>>10 >>11

レスありがとうございます。
gnuplotはcygwin導入前から導入していてそれを使えるようにしたかったんです。
octaveはcygwinから使えるよっていうのをwebで見て
じゃあoctave/cygwinと単体で導入していたgnuplotをコラボさせましょうということで進めていくと
>>9 のような事態になりました^^;
MinGW版のoctaveさっそく導入しましたら一発で解決しました。
情報提供感謝でございます。

P.S.
あと>>9の補足ですが、octaveとgnuplotをつなぐための設定ファイルの内容ですが
省3
13: octave for windowsメモの筆者 2009/11/10(火)08:56 AAS
>>12
一時期MichaelさんやBenjaminさんがOctaveとwindowバージョンのgnuplotを
つなぐため独自にビルドされたコンソールモードのgnuplotに
pgnuplotと名前をつけていたのでそのような記述があるのではと
思います。その後gnuplotのcvs版コンソールモードのgnuplotが正式に
採用されたとき,いろいろ意見がありましたが,他のプラットフォームと
同様のコンソールモードのgnuplotは単にgnuplotになりました。

ちなみに,pgnuplotはwgnuplotにpipe接続するものですが,
一方通行の通信しかできません。
現在のoctaveでは双方向のpipeを使ったいるので,いわゆるpgnuplotをoctave
省6
14: octave for windowsメモの筆者 2009/11/15(日)06:27 AAS
Octave 3.2.3-2/mingw32 がでました。
http://old.nabble.com/Octave-3.2.3-2-mingw32-available-tt26353433.html

まだ,自宅は回線が遅いのでためしていません。SSE3のATLASのseg-faultの問題
http://old.nabble.com/Octave-3.2.3-mingw32-crashes-on-a-simple-complex-operation-tt26159558.html
は解決していないようで今回はSSE3のATLASは組み込まれていないようです。

jpeg-7に対するバグは解消されたようです。
15: octave for windowsメモの筆者 2009/11/21(土)14:57 AAS
Octave 3.2.4のリリースにむけたパッチの募集が始まりました。

http://old.nabble.com/3.2.4-call-for-patches-tt26440879.html
16
(1): 2009/11/22(日)02:25 AAS
mingw版の3.2.2使ってるのですが、何かplotを連続でした場合
今までのは書き換わるだけだったのに
3.2.2のは画面がクリアされて一瞬白くなって
連続で書き換えるとチカチカして非常に見にくい。
17
(1): octave for windowsメモの筆者 2009/11/22(日)05:29 AAS
>>16

その問題はmingw版だけの問題ではなく,octave-3.2.2ではそうなります。
(バグです。)
octave-3.2.3では,解決してますので,そちらをお使いください。
18: octave for windowsメモの筆者 2009/11/23(月)18:29 AAS
MinGW 版 Octave の maintainer の Benjamin さんが MinGW でoctave をビルドするための HOWTO を書き始めたとの報告が Octave の maintainers の ML でありました。

http://old.nabble.com/HOWTO-for-building-octave-using-mingw-msys-p26465144.html

これは,octave-forge の SVN の Tree 上に置かれていますが,テキストファイルなので直接読んだり, ダウンロードできるようです。

https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge/admin/Windows/mingw32/HOWTO.txt
19
(3): 2009/11/30(月)20:22 AAS
ウインドウズで申し訳ないのですが、
dynareのsimul_stochが機能しません。
このエラーを検索しても意味がわからないのですが、
octaveユーザの方でわかるひとはいますでしょうか。

warning: mark_as_command is obsolete and will be removed from a future version o
f Octave
octave-3.2.3.exe:1:C:\Octave\3.2.3_gcc-4.4.0\bin
> cd c:\test
octave-3.2.3.exe:2:c:\test
> dynare rbc.mod
省8
20: octave for windows メモの筆者 2009/12/01(火)01:05 AAS
>>19

mexがうごかないといってるようですね。

octave version 3.0からmexに
対応していますが,バイナリ互換ではないのでmexのCのソースから
octave用のmexを作成しなおす必要があります。

まずは,mexのソースコード(c言語で書かれています。)を持っているかを
確認してください。

mexのソースがなければ,octaveで動かすのは無理です。
省3
1-
あと 716 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.603s*