2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

データ解析ツールoctaveを語ろう

1 :名無しさん@お腹いっぱい。:04/06/01 00:13
知る人ぞ知る強力なデータ解析ツール octave ...

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

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



2 :名無しさん@お腹いっぱい。:04/06/01 03:13
リンクを貼るとか、

せめてものネタふりとして自分の使用感を晒すとか、

 今度、卒研で使わざるを得なくなりました
 インストールのしかたから教えてください

とか、

書くことがあるんじゃネーノ?w

3 :名無しさん@お腹いっぱい。:04/06/01 04:15
>>2
どうも申し訳ない。

http://www.octave.org/

がリンクです。

実は、研究でmatlabを使っていたんですが、
サポート料金を払う金がおしくなって octave にしました。

octave 意外と使えるので、というか軽いし gnuplot との融合性が
高くて本家のmatlabよりも使いやすいのではないかと
思っています。

もちろん、パッケージなんかを考えるとmatlabの方が良いのだけど
私の使い方だと、高価なパッケージ使うこともあまりないので
それほどデメリットにはなりませんでした。

4 :名無しさん@お腹いっぱい。:04/06/01 07:04
あくまで数値解析ソフトなわけで、数式解析ソフトな matlab
と比較するのはどうかと思う


5 :名無しさん@お腹いっぱい。:04/06/01 09:29
>>4
mathematica と間違えていませんか?

matlab で数式解析するという話は聞いたことがありませんが?

私もFreeBSD上で octave 使っています.
最近では数学関数も増えているようでけっこう使いやすく
なっています.

非線型の最小自乗法が扱える関数があればベストなんだけどね.


6 :名無しさん@お腹いっぱい。:04/06/01 10:17
matlabの影響力は日本は少ないからね

7 :名無しさん@お腹いっぱい。:04/06/01 14:42
octaveいいね。卒論で他人がFFTやらのプログラム書いてるときに、
俺はoctaveで楽させてもらった。


8 :名無しさん@お腹いっぱい。:04/06/01 15:57
>>5
その通り。失礼した
あんまり使ってないけど、行列計算の検算とか変形に便利ではあった

9 :名無しさん@お腹いっぱい。:04/06/01 22:38
octaveって使ってみたのですが,
行列計算ってそんなに必要なんですか?



10 :名無しさん@お腹いっぱい。:04/06/01 22:39
>>9
失礼、上げてしまった。

11 :名無しさん@お腹いっぱい。:04/06/01 23:52
必要なところには必要、不要なところには不要。

12 :名無しさん@お腹いっぱい。:04/06/02 00:44
scilabというのもあるので、どっちがいいか比較キボン。
http://www-rocq.inria.fr/scilab/

13 :名無しさん@お腹いっぱい。:04/06/02 01:13
直接LAPACKを使う場合と比べてどの位遅くなるのでしょうか

14 :名無しさん@お腹いっぱい。:04/06/02 01:58
>>12
scilabの方がmatlab互換という点では良いかも知れないけど,
純粋に線形解析に使うのだったらoctaveの方が使いやすいと思います.

私的感想だと数学関数はoctaveの方が良いと思う.

15 :名無しさん@お腹いっぱい。:04/06/02 02:02
>>13
速度に関してはインタプリタの分だけ遅いという感じですね.
最近のoctaveは中間コードに変換しているような感じなので
それほど速度の低下は感じられません.

octaveと数学関係の外部ライブラリの間をいったり来たりするような
感じの処理だと遅くなるようですが...

16 :名無しさん@お腹いっぱい。:04/06/02 07:05
Perl とか awk とかでやるにはややめんどい数値処理
(FFTとか統計処理とか) にいい。liboctave というのも
あるようだが未見。

科学関係のソフトがわりと丁寧に整理・紹介されている。octave もあるよ
http://www.mlb.co.jp/linux/science/
http://www.mlb.co.jp/linux/science/octave/index.html

17 :名無しさん@お腹いっぱい。:04/06/02 19:48
>>16
けっこう参考になるリンクですね。

最近は、貧乏研究室に配属になったので、Open source系の
科学技術計算ソフトの情報はありがたい。

最近は、FreeBSDにoctaveをインストールしてデータ解析の毎日です。
しかし、portsから入れたらoctaveのインストールに時間のかかること...


18 :名無しさん@お腹いっぱい。:04/06/02 19:52
昔学生だったときに三田村さんのページをよく見た。

…と思ったらまだあった。:-)


19 :名無しさん@お腹いっぱい。:04/06/02 20:08
>>18
だれそれ?

20 :名無しさん@お腹いっぱい。:04/06/02 22:39
オープンソースなツールを使って科学技術計算やっている人々の話が聞きたい.

ほとんどが学術系だと思うけど企業とかの研究者でもoctaveとか使っている人
いますか?


21 :名無しさん@お腹いっぱい。:04/06/02 22:43
ところで画像解析にmatlabを使っている人多いと思うけど,
octaveで画像解析している人いますか?

どうしても画像になると octave だと若干貧弱になると思うのだけど...

特に表示するときとかインデックスドカラーなので
カラーパレットの設定などが大変なんですが,
うまくやっている人いたらコツを教えてください.

22 :名無しさん@お腹いっぱい。:04/06/02 22:48
>>4-5
matlabにも数式解析機能はある(toolboxとして)。
その目的のために買う人は少ないだろうけど。

>>20
技術屋としての数値計算に僕が主に使うのはemacsとgcc。
matlabとoctaveも使っているけど、自分で使う道具としてではなくて
プログラミングをあまり知らない人とのやりとりのために使っている。

Cの読み書きができない人(客)でもMatlabやOctaveのコードなら自分でいじれ
ることが多い(オレのまわりでは)。


23 :名無しさん@お腹いっぱい。:04/06/02 23:30
>>22

数値計算アルゴリズムを開発する場合,octaveみたいに試作が直ぐにできる
ツールを使った方が効率が良くないですか?

最終的にはC言語で実装するにしても,アルゴリズムの開発で
試行錯誤を繰り返している段階の場合は,やはり最初は
octaveのようなツールが有効だと思いますが...

24 :22:04/06/02 23:39
>>23
>試行錯誤を繰り返している段階の場合は,
このあたりは主に紙の上でやります。

25 :名無しさん@お腹いっぱい。:04/06/03 01:33
>>24
それは凄い.

私はコンピュータの上でしか試行錯誤ができなくなってしまっています.
コンピュータに頼りきるのも考え方が雑になってしまうという
弊害もあるのかも知れないけれども便利ですよ.

私のところのoctaveの使用目的というのは,
(1) 特にソフトウェアは必要なくて,
  対象(物理系の実験データ)の解析結果データのみが
  必要なとき

(2) 新しいアルゴリズムを試作するとき

の2つの時ですね.

26 :名無しさん@お腹いっぱい。:04/06/03 03:02
>>25
アルゴリズムとして定式化する以前の試行錯誤のところじゃないですかねぇ
もちろん、分野によって異なる計算によるわけですが。

私もoctave+gnuplotはかなり便利に使わせてもらってます。

27 :名無しさん@お腹いっぱい。:04/06/05 00:28
Octaveで非線形計算やるパッケージをご存じないですか?

誰か作ってそうなんだけど...

28 :名無しさん@お腹いっぱい。:04/06/05 01:50
非線形方程式を解くコマンドはfsolveだったはづだけど、計算..?

29 :名無しさん@お腹いっぱい。:04/06/05 02:59
みんながOctaveをどのように使っているか、聞きたい。

私は、某工学分野の研究員だが、
Octaveは、アルゴリズム設計の前段階で使うことが多い。

ちょっと変な使い方かも知れないけど、Octaveでデータを統計解析して、
その傾向に合わせてC言語でプログラムを組んでいる。
つまり、直接アルゴリズム開発に使っているのではなくて、
アルゴリズムを開発するときの参考というか理論的な根拠にしている。

こういう使い方にはけっこう向いていると思うのだが。

30 :名無しさん@お腹いっぱい。:04/06/05 03:01
>>28

非線形の最小自乗法が欲しい。
fsolveは、微分方程式を解く関数じゃなかったっけ?

31 :名無しさん@お腹いっぱい。:04/06/05 11:05
>>30
gnuplot

32 :名無しさん@お腹いっぱい。:04/06/05 13:02
>>30
そのへんはRとかどうなん?

33 :名無しさん@お腹いっぱい。:04/06/05 22:20
>>30
でもあれはデータフィッティングしてグラフをプロットするだけでしょう?
ちゃんとパラメータとかを求めたいってことだと思うのだが...

34 :33:04/06/05 22:21
スマソ,リンク間違えた

>>31 ね...

>>32
Rにしちゃうと Octaveの他の恩恵が受けられなくなる...
という問題が...

35 :名無しさん@お腹いっぱい。:04/06/05 22:25
Octaveをインストールするとき,FreeBSD 4.x だと
readlineのバージョンが古いっていって libreadlineが使えません.
コマンドライン編集や履歴を使いたいのでこれでは
不便なのですが...

それで手動でlibreadlineの新しいやつをインストールして
使っているのですが,octaveのバージョンが変ると
パッチ当てとかがめんどうです.

FreeBSD 5.2くらいなら libreadlineのバージョンが
新しいので問題ないのだけど...

36 :名無しさん@お腹いっぱい。:04/06/05 22:27
RはしらんけどSはやたらdirect mailを送ってきた印象があるな

37 :名無しさん@お腹いっぱい。:04/06/05 22:30
非線形一般均衡系のシミュレーションに使おうとしてうまくいきまへんでした > octave
で、MATLAB買っちゃいました。toolboxマンセー

38 :名無しさん@お腹いっぱい。:04/06/05 22:36
>>37
こういう分野では MATLABというか サードパーティ製のtoolboxが
かなり強力だよね.

でも価格が大変だよね.
貧乏な大学の研究室だと変えないところが多そうだ.

うちも非線形解析用のパッケージ買っていたけど,
本体のライセンス代金も含めて大変なことになっていた.


39 :名無しさん@お腹いっぱい。:04/06/05 22:41
octaveはプログラム組むのに、1ファイル1関数っていうのが
不便ですね。
最近のバージョンだとこの制限なくなっているのかな?

MATLABも昔はそうだったけど、最近のはそういう制限無くなっているし

40 :名無しさん@お腹いっぱい。:04/06/07 11:21
>>30
FAQだとよ。
http://www.octave.org/octave-lists/archive/help-octave.1999/msg00770.html

41 :名無しさん@お腹いっぱい。:04/06/07 12:41
>>40
これは良いかも知れない.
丁度Levenberg-Marquardt法のアルゴリズム探してました.

あとは,これをパラメータの範囲指定ができるように改造して
使わないと解がlocal minimum に陥ってしまって
収束しないんですよね.

もしかしてそれもあったりして...

42 :名無しさん@お腹いっぱい。:04/06/07 16:31


cygwin で liboctave 使えますか?
下のようなテストプログラムでエラーになってしまいます.

$ cat test.cpp
#include <iostream>
#include <octave/config.h>
#include <octave/Matrix.h>

using namespace std;

int main()
{
Matrix m(2, 2, 1.0);
cout << m << endl;
return 0;
}

$ g++ -I/usr/include/octave-2.1.49 -L/usr/lib/octave-2.1.49 -loctave -lcruft -lreadline -ltermcap -llapack -lblas -lg2c -lfftw -lm test.cpp -o test
/cygdrive/c/DOCUME~1/user/LOCALS~1/Temp/ccdhMv8V.o(.text+0x8e):test.cpp: undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Matrix const&)'
/cygdrive/c/DOCUME~1/user/LOCALS~1/Temp/ccdhMv8V.o(.text$_ZN6Array2IdED2Ev+0xd):test.cpp: undefined reference to `Array<double>::~Array [not-in-charge]()'
/cygdrive/c/DOCUME~1/user/LOCALS~1/Temp/ccdhMv8V.o(.text$_ZN6Array2IdEC2EiiRKd+0x1b):test.cpp: undefined reference to `Array2<double>::get_size(int, int) const'
/cygdrive/c/DOCUME~1/user/LOCALS~1/Temp/ccdhMv8V.o(.text$_ZN6Array2IdEC2EiiRKd+0x33):test.cpp: undefined reference to `Array<double>::Array[not-in-charge](int, double const&)'
collect2: ld returned 1 exit status
make: *** [test] Error 1


43 :名無しさん@お腹いっぱい。:04/06/08 00:44
>>42

octave は知らないが、与える引数間違ってるんじゃないの?

44 :名無しさん@お腹いっぱい。:04/06/08 18:13
>>43
どう間違っているのでしょうか?
Linux と同じじゃダメなのでしょうか?


45 :名無しさん@お腹いっぱい。:04/06/08 21:03
素晴らしーいソフトウェアです。
Fedora CORE 2 でSMPマシンにインストールしました。
コンパイルに1時間強、出来上がったバイナリ− octave が60MBを越えたのには
驚きましたけど。
紹介していただいたみなさんに感謝感激です。
しばらくマイブームとなりそうです。


46 :名無しさん@お腹いっぱい。:04/06/08 23:11
>>42

俺が試した限りでは、

octave-2.1.57 を ./configure; make install した状態で、

$ g++ -I/usr/local/include/octave-2.1.57 test.cpp -L/usr/local/lib/octave-2.1.57 -loctave -lcruft -lg2c -o test

でコンパイルできたが。


47 :名無しさん@お腹いっぱい。:04/06/08 23:27
>>45
60MBは、たぶん -g つけたままコンパイルしたんじゃないか?
liboctaveも巨大なままでは?
make clean; make CFLAGS=-O2 CXXFLAGS=-O2 をおすすめする。
あと、strip octave。

48 :名無しさん@お腹いっぱい。:04/06/08 23:30
>>46
上ので通りました. -llapack とかは不要なんですね.

$ g++ -I/usr/local/include/octave-2.1.57 -L/usr/local/lib/octave-2.1.57 -loctave -lcruft -lg2c -o test test.cpp

こう書くと undefined reference がいっぱい出ますが,
順番が大事だとわかりました.

どうも, ありがとうございました.


49 :名無しさん@お腹いっぱい。:04/06/09 03:42
octave ってスパース行列扱うの弱くない?

最近はCPUもメモリも強力だけど、古いマシンで
計算させたら死にそうになった。

50 :名無しさん@お腹いっぱい。:04/06/09 05:01
Scilab使へば

51 :45:04/06/10 00:35
がびーん。
./configure; make しただけだったのですが、そういえばご丁寧に -g
が付いていたような。。。
気を取り直してもう一度 build してみます。
その前に HDD 増設かも。


52 :45:04/06/10 00:37
連続書き込みすみません。
octave って SMP マシンの恩恵を得られるのでしょうか?
HT対応のCPUを2個挿せば、体感?4つになります。
個人でも 4 way も持てるなんて、想像しただけで幸せです。


53 :Pen4 2.4GHz:04/06/10 01:25
octave:1> A=rand(2000,2000);b=rand(2000,1);
octave:2> tic;A\b;toc
ans = 2.7709

最近のマシンは速いねぇ…

54 :名無しさん@お腹いっぱい。:04/06/10 01:33
>>53
octave:1> A=rand(2000,2000);b=rand(2000,1);
octave:2> tic;A\b;toc
ans = 193.02
(´・ω・`)ショボーン

Status of processor 1 as of: 06/10/04 01:33:21
Processor has been on-line since 05/25/04 18:25:10.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
Status of processor 3 as of: 06/10/04 01:33:21
Processor has been on-line since 05/25/04 18:25:11.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.


55 :名無しさん@お腹いっぱい。:04/06/10 01:52
>>52

多分ならなかったと思うけど...
threadで組んでたかな?

56 :名無しさん@お腹いっぱい。:04/06/10 10:59
>>54

PentiumIII(katmai) 600MHz

octave-2.1.57:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.57:2> tic;A\b;toc
ans = 17.742

sparcのv9って比較的最近のCPUじゃないの?
大昔(Coppermineですらない)のPenIIIよりも遅いのですか...??


57 :名無しさん@お腹いっぱい。:04/06/10 11:00
>>56
書くの忘れたけど,
OSは,FreeBSD 5-current で
CPUは 600MHz x 2のSMPです.

58 :名無しさん@お腹いっぱい。:04/06/10 11:10
ちなみに FreeBSD-4.9R で
ちょっと古いCPUですが,
Athlon-MP(多分Thunderbirdコア) 1.2GHzx2 のSMPで

octave-2.1.50:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.50:2> tic;A\b;toc
ans = 5.1248

と5秒ちょっとのタイムをマークしました...
Octaveは多分 SMP は効いてないと思うので,速度は
>>53の Pen4 と比較してもクロック分の速度は出てるかな...

59 :名無しさん@お腹いっぱい。:04/06/10 23:19
>>49

それってかなり古いOctaveじゃない?

60 :ThinkPad X31:04/06/11 01:05
octave:1> A=rand(2000,2000);b=rand(2000,1);
octave:2> tic;A\b;toc
ans = 5.6739

最近のB5サブノートは速いねぇ…

61 :名無しさん@お腹いっぱい。:04/06/11 02:05
Octaveって疎行列の計算はできますか?
周期境界条件を課した疎行列の計算パッケージがなかなか見つからなくて困っています。
FFTはNlogNのオーダーなんで遅いしなーって思うとNのオーダーで計算できる
疎行列パッケージが一番よいのですが。

62 :SS S8:04/06/11 09:20
>>60
cygwinでコンパイルしたやつだけど、
ans = 34.755
だった orz
コンパイルオプションばりばりつけた方がいいのかなぁ

63 :名無しさん@お腹いっぱい。:04/06/11 14:52
>>61
自分で書くと感謝されるよ。

でもLAPACKとかで疎行列扱えないの?
最近はOctaveも外部ライブラリに頼っているからね。



64 :名無しさん@お腹いっぱい。:04/06/11 14:57
うちのThinkPad X31(PentiumM-1.4GHz)も,
FreeBSD 4.10-stable 上で

octave-2.1.57:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.57:2> tic;A\b;toc
ans = 5.5506

という値を出しました.


65 :名無しさん@お腹いっぱい。:04/06/12 02:04
漏れも試そうとportsでoctaveをmakeしてるんだけど
atlasのビルドが一日たっても終わんないよう。


66 :名無しさん@お腹いっぱい。:04/06/12 02:31
atlasのインストール時ってコンパイルが終わらないというより、
数値計算を行っている時間が長いようですね。

ずっと数値計算プログラムが動いていますが、
計算精度のチェックでもしているのでしょうか?

ちなみにうちのThinkPad X31だと、とりあえず1日ってことはないな
3時間くらいで終わっていたように思えるけど...

67 :名無しさん@お腹いっぱい。:04/06/12 02:45
>>65
メモリが不安定だと計算処理が途中で異常終了して
計算を繰り返して丸一日以上かかることがありました.

もしも速いCPUを使っていて丸一日以上かかるようだったら、
メモリをチェックしてみた方が良いかもしれません.
普通に使っていて動いていても memtest とかが
通らない場合がありますよ.

私は atlas のコンパイル作業でメモリ異常に
気が付きました.

ちなみに Athlon等の1GHz以上のCPUなら数時間で計算処理が
終わります.


68 :45:04/06/12 09:45
なにせ古いマシン、PentiumIII 550E ×2 です。
40GB HDDを買ってきて Fedora CORE 2を再インストールしました。
ご指摘のありました -g 付きの ./configure; make 版です。

$ uname -a
Linux localhost.localdomain 2.6.6-1.427smp #1 SMP Thu Jun 10 10:01:11 EDT 2004 i
686 i686 i386 GNU/Linux
$ octave
GNU Octave, version 2.1.57 (i686-pc-linux-gnu).
octave:1> A=rand(2000,2000);b=rand(2000,1);
octave:2> tic;A\b;toc
ans = 110.47

xcpustate で各プロセッサーの状態を監視しながら実行させました。
なるほど、片側のプロセッサーのみを占有していました。悲しい。
窓を2枚開いて同時に octave を起動して、上記処理を行なうと、
143.50 と 145.39 でした。二人で同時に動かしてもそれなりということか。
少し救われるかも。
47さんのアドバイスに従って再make 中です。

どんなプラットフォームでもちゃんと動作するマルチスレッドの
プログラムを作るのは難しいですからね。SMPを活かそうと思ったら
やはりガリガリ自分で作るしかなさそう。嬉しいような悲しいような。。。


69 :名無しさん@お腹いっぱい。:04/06/12 22:56
>>68

110秒はちょっと遅いですよね?
これはコンパイルオプションにかなり左右されるのでしょうか?
SSEとかどうなっているのでしょうか?

>>56 は 同じようスペックで17秒ちょいで終わっているようですが...


70 :名無しさん@お腹いっぱい。:04/06/13 03:03
研究環境を完全OpenSource化使用して、いろいろ画策中です。

特にMATLABからOctaveへ関数をいくつか移植しているのだけど、
けっこう大変だよね。

Octaveは関数が一つしか書けないし、微妙なところで関数の仕様が
違っていたりするし。

でもMATLABへのライセンス料を払わなくて済むなら
かなりの出費が押さえられる。



71 :名無しさん@お腹いっぱい。:04/06/13 03:04

               ____
           ./, - 、, - 、   ̄ ヽ
          ./-┤ 。|。  |――-、 ヽ
           | ヽ`- ○- ´ /  ヽ  |
           | -   |     ―   |  |
           |  ´  |    `ヽ  . |  |ヽ
  ∩      人`、 _  |    _.- ´ | .|  \
  |  ⌒ヽ /  \  ̄ ̄ ̄     ノノ       \
  |      |´      | ̄―--―― ´ヽ     _  /⌒\
  \_   _/-―――.| ( T )      `l     Τ(      )
       ̄       |   ̄        }      | \_/
             | 、--―  ̄|    /

72 :名無しさん@お腹いっぱい。:04/06/13 03:06
>>71
もしかしてキリ番狙っていたの?

73 :名無しさん@お腹いっぱい。:04/06/13 03:46


   ||
 Λ||Λ
( / ⌒ヽ
 | |   | 逝け>72
 ∪ 亅|
  | | |
  ∪∪
   :
   :

 ‐ニ三ニ‐

74 :+++:04/06/13 11:00
   ||
 Λ||Λ
( / ⌒ヽ
 | |   | 逝け>>72
 ∪ 亅|
  | | |
  ∪∪
   :
   :

 ‐ニ三ニ‐


75 :名無しさん@お腹いっぱい。:04/06/13 18:03
>>71, >>73, >>74

せっかくのAAなんだけどうちの環境,FreeBSD + mozilla デフォルト設定では
文字がずれて,きちんと見えません...

等幅フォントにすりゃいいんだけどね.

76 :名無しさん@お腹いっぱい。:04/06/13 18:30
このスレせっかくいい調子で話が進んでいたのに、
変な香具師が紛れ込むようになってきたね。

77 :名無しさん@お腹いっぱい。:04/06/13 18:33
必要もないのにageちゃうからだろ。


78 :名無しさん@お腹いっぱい。:04/06/13 19:15
さりげなくサイエンスな香りがするこのスレ、気に入っていたのに

79 :名無しさん@お腹いっぱい。:04/06/13 23:20
WindowsでOctaveって動きますか?

ちょっと面白そうなので立ち寄ってみました。

80 :名無しさん@お腹いっぱい。:04/06/13 23:24
>>79
動くよ。native 版もあるし、cygwin で動かす手もある
特に数値計算なら、こしょこしょコード書くよりまかせてしまったほうがいいと思う

81 :名無しさん@お腹いっぱい。:04/06/13 23:40
レスありがとうございます。

Windowsのnative版もあるんだ。
探してみます。

でもcygwinはややこしいからパスします。

82 :45:04/06/14 22:01
途中報告。
-g を抜いたバイナリでSMPカーネルで同じ手順を行ないました。
バイナリサイズはナント 7MB でした。
実効結果は
ans = 105 くらいでした。大差ないです。
原因を引き続き調査中です。

そうそう、SPARC とかは float より double が早いそうですね。
ハードウェアがそう設計されているそうです。


83 :名無しさん@お腹いっぱい。:04/06/14 23:01
>>85
floatよりdoubleが速い処理系は多いよ.特に昔のRISC系CPUの場合は...

それと表示は,桁を省略しているけど,Octaveは基本的に double で
計算しているはずです.
それで105秒だと本当にそれくらいの速度かと...

atlasをコンパイルするとき -g を抜くだけではなくて,
gcc で -O3 とか -msse2 といった最適化オプションは
指定してありますか?


84 :名無しさん@お腹いっぱい。:04/06/15 00:48
>>83

FreeBSDのportsではSSE2対応のCPUでは,自動的に
SSE2が有効になるようにコンパイルオプションが
指定されているようです.


85 :SS S8:04/06/15 01:12
gcc-3.3.1/cygwin/PenM 1G ですが、
-O2のみでは
ans = 34.755
だったのが、
FFLAGS, CFLAGS, CXXFLAGS全部に
-O3 -fomit-frame-pointer -mcpu=pentium3 -march=pentium4 -msse2 -funroll-loops
を指定したら、
ans = 14.412
になりました。ただし、一番効いてるのは -mcpu っぽい。

86 :名無しさん@お腹いっぱい。:04/06/15 02:36
よく覚えていないのですが、atlasってアセンブラで
SSE2のコード書いてませんでしたっけ?
たしかプリプロセッサでSSE2を有効にする変数を定義したら
SSE2が有効になったような...


87 :名無しさん@お腹いっぱい。:04/06/15 08:00
Opteron242だと
ans=11.8
やけにおそいな。
OS SuSE 9.1 X86_64

88 :名無しさん@お腹いっぱい。:04/06/16 04:15
>>87
B5サブノートのPentiumMに負けている...

Opteronって通常の数値計算が速いって聞いてますが、
実際のところどうなんでしょうか?

Octaveの使用を含む数値計算用に一台Dual CPUなのを購入予定なのですが...


89 :名無しさん@お腹いっぱい。:04/06/16 17:14
opteron 242*2(1.6GHz)
姫野ベンチ 2CPU
1313MFlops
Pentium200MHz 40.7倍

Xeon 2GHzしかないが
819MFlops




90 :名無しさん@お腹いっぱい。:04/06/19 03:03
今一つ速くないね.Opteron...

まだ最適化が十分ではないのかな?

91 :名無しさん@お腹いっぱい。:04/06/22 11:44
あげ

92 :名無しさん@お腹いっぱい。:04/06/22 11:48
しかしながらベンチマークスレに成り下がっているのは情けなくもある。

93 :名無しさん@お腹いっぱい。:04/06/22 12:14
演算の精度の制御はどうやればできますか?
たぶんデフォルトではdoubleというか64bitっぽいですが、
もっと精度が欲しいのです。

94 :名無しさん@お腹いっぱい。:04/06/22 22:44
scilab

95 :名無しさん@お腹いっぱい。:04/06/23 07:09
>>92
スーパーコンピューターの最大ユーザーはベンチマーク屋である。
という話を聞いたことあるけど。
もっともコンパイルオプションの違いで数倍のパフォーマンスが
違えばショックですね。
MATLABを買ったと思ってPC買い換えれば幸せになれるかも。。。


96 :名無しさん@お腹いっぱい。:04/06/23 08:20
>>93
演算の精度制御は、できないみたい。
「GNU Octave Manual」によれば(p35)
numeric data is currently stored as double precision numbers.
use the IEEE floating format,
the relative precision is approximately 2.2e-16.
とある。
無論、表示の制御は、できる。C likeのフォーマットが使える。

97 :名無しさん@お腹いっぱい。:04/06/23 09:03
>>94,>>96
どうもありがとう。octaveじゃ無理なんですね。

scilabをインストールしてみたら、例のペンチマークがoctaveより速くて、
のりかえを検討していますが、こっちはどうやれば精度の制御ができるんでしょう?

98 :名無しさん@お腹いっぱい。:04/06/23 09:54
octaveは全く触ったことがない厨房ですが、octaveとRは機能的に
かなりかぶりますか? それとも相互補完するものですか?

99 :名無しさん@お腹いっぱい。:04/06/24 12:56
若干かぶるけど,特定分野だとRの方が強いと思うよ...

Octaveは線形代数系の計算全般といったところか.

100 :名無しさん@お腹いっぱい。:04/06/24 12:59
>>95
MATLABのことを考えると,毎年PCを買い換えれますね.

MATLABは基本的に毎年ライセンス料を払わないといけないプレッシャーが
あります.
まぁ,払わなくてもいいんだろうけど,修正パッチとか
バージョンアップのことを考えるとライセンス料を払い続けるしか
ないシステムになっています.




101 :名無しさん@お腹いっぱい。:04/06/24 13:03
>>95

ベンチマークだいすきですぅ。

102 :名無しさん@お腹いっぱい。:04/06/25 14:28
MATLAB個人で買いましたよ。
octaveじゃできないこともおおいし。

ちなみに「データ解析ツール」じゃなくて「行列言語」な。
間違えるなよ。

103 :名無しさん@お腹いっぱい。:04/06/25 22:18
行列言語ってのもなんだな...

104 :名無しさん@お腹いっぱい。:04/06/25 22:28
Octave使っているのだけど,マニュアルとかが英語なのがちょっとね.
何かお奨めな参考書とかWebページとかりますか?

105 :名無しさん@お腹いっぱい。:04/06/25 22:28
とかありますか?

106 :名無しさん@お腹いっぱい。:04/06/26 09:24
あまり役に立たない本
「Octaveを用いた数値計算入門」
北本 卓也著
ピアソンエヂュケーション
ISBN4-89471-448-5


107 :名無しさん@お腹いっぱい。:04/07/01 07:59
卒研で構造物の強度計算をすることになりました。
それで手頃なツールをさがしているのですが、
Octaveでできますか?

研究室のOSはNetBSDというものだそうです。

108 :名無しさん@お腹いっぱい。:04/07/01 08:02
強度計算がどんな計算をするものなのかわからないので、わからない。
行列計算とか微分方程式とかに帰着させられるんならできるだろうけど。
OSは無関係。

109 :名無しさん@お腹いっぱい。:04/07/04 23:00
初めて立ち寄ってみました。
lsodeの中身は4段のRunge-Kuttaなのでしょうか?
何を見たら分かるのでしょう?どなたか教えてください。

110 :名無しさん@お腹いっぱい。:04/07/04 23:34
微分方程式は Runge-Kuttaを使っていたと思います.

今のOctaveは外部の数値計算ライブラリに依存しているから
そのソースコードを確認するのがいいのではないでしょうか?

でもFORTRANとかで書かれているのでちょっと困りますが...

111 :名無しさん@お腹いっぱい。:04/07/04 23:43
>>109
lsodeはRunge-Kuttaではなく、stiffな問題にはBDF法、nonstiffな問題にはAdams(predictor-corrector)と使い分けています。
いずれもRunge-KuttaのようなSingle step methodでは無く、Multi step methodと呼ばれる方法です。
http://www.llnl.gov/CASC/odepack/

もともとODEPACKというFORTRANのパッケージに含まれていて、ソースはwww.netlib.orgからダウンロード出来ていたと思います。
lsodeでググってみたら出てきますよ。

112 :名無しさん@お腹いっぱい。:04/07/05 07:45
二つの異なる情報ですが、ありがとうござました。
linspaceで刻み幅を固定して計算するのだからRKだろうか
と思っていました。ソースを読んで見ます。
BDFかあ。懐かしいなあ。ずっと以前でしたが、理解するのに
一苦労したっけ。小生は、現在は、刻み幅自動調整の
RKFの愛用者です。

113 :名無しさん@お腹いっぱい。:04/07/05 07:48
異なる内容でしたが、ありがとうございます。
linspaceで刻み幅を固定するので、RKかと思っていました。
小生は、現在は、刻み幅自動調整のRKFを愛用しているので
つい、そう思っていました。ソースを読んで見ます。

114 :名称未設定:04/07/07 22:57
Matlabのtoolboxが必要なら、octeva-forgeをインストすれば

115 :名無しさん@お腹いっぱい。:04/07/14 03:05
>>114

こんなんあったんだね。
これはちょっと使えるかも。

116 :名無しさん@お腹いっぱい。:04/07/21 20:37
さてMATLAB R14が出たわけだが。

117 :名無しさん@お腹いっぱい。:04/07/21 21:18
MATLABは新しくなればなるほど重く不安定になってくる。
R12以前くらいかな良かったのは。

118 :名無しさん@お腹いっぱい。:04/09/28 22:30:37
久々にベンチマークネタ age

octave-2.1.57:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.57:2> tic;A\b;toc
ans = 4.5008

CPU: AMD Athlon(tm) XP 1700+ (1472.93-MHz 686-class CPU)
Origin = "AuthenticAMD" Id = 0x681 Stepping = 1

そんなに速くないな...motherboardも古いし...

119 :名無しさん@お腹いっぱい。:04/09/29 04:41:37
octave-forgeってどーですか

120 :名無しさん@お腹いっぱい。:04/10/02 21:42:10
>>119
けっこう使えるよ。
公開されてるMatlab用のプログラムが変更無しで動く

121 :名無しさん@お腹いっぱい。:04/10/02 21:56:19
octave-forge ってそもそも何ですか?

122 :名無しさん@お腹いっぱい。:04/10/03 00:20:31
>>121
cat /usr/ports/math/octave-forge/pkg-descr


123 :名無しさん@お腹いっぱい。:04/11/13 20:43:16
あげ

124 :名無しさん@お腹いっぱい。:04/11/13 20:45:19
あげ

125 :名無しさん@お腹いっぱい。:04/11/14 03:58:42
日本語化パッチはまだでつか?

126 :名無しさん@お腹いっぱい。:04/11/14 04:15:32
Octave に日本語って必要なんですか?

127 :名無しさん@お腹いっぱい。:04/11/14 04:23:04
必要かどうかは解かりませんけど、
道具が人を選んではいけないと思います。

128 :名無しさん@お腹いっぱい。:04/11/14 04:35:04
>>127
意味分かりません


129 :名無しさん@お腹いっぱい。:04/11/14 05:48:38
英語読むのめどい

130 :名無しさん@お腹いっぱい。:04/11/19 11:26:10
馬鹿とハサミは使い方次第ですね
馬鹿には道具は使えないんでしょうかねぇ

131 :名無しさん@お腹いっぱい。:04/11/19 11:28:12
んなこといっちゃってはずかしいくせに

132 :名無しさん@お腹いっぱい。:04/11/19 16:55:41
Octaveって線形代数電卓って感じだなぁ.

普段何気なく使っていて,それほど必要だとは思わないんだけど
自分の使っているマシンに入ってないと気づいたときのショックは
計り知れない.
無いとかなり不便なんだよね.

133 :名無しさん@お腹いっぱい。:04/11/23 06:37:06
FreeBSDの ports の Octave 新しくなりましたね.
何が変わったのかな?


134 :FreeBSD5.2.1-R:04/11/23 20:41:54
2.1.63にアップグレードしたら次のメッセージが出るようになった
warning: lo_ieee_init: unrecognized floating point format!
何でしょうねこれ

135 :134:04/11/24 01:33:20
自己レス
最適化がきつすぎたみたい
コンパイルオプション変えたら出なくなった

136 :名無しさん@お腹いっぱい。:04/11/24 05:47:50
スレ違いでしたらすいません。
Octaveで以下の式を解きたいのですが、どの様な手順で進めるたらいいか、どなたか救いの手をよろしくお願いします。

dx(i)/dt = P(i) - k(i)x + a(i)x(i) - b(SUMx(j))

ここでxは2つあり、x=1の時は以下の式で解を求めます。
When D <> 0
x1(t) = (Ps/2S + Pd/2D) + (x1(0) - Ps/2S)e^(-St) - (Pd/2D)e^(e-Dt)

When D = 0
x1(t) = xd(0) + Pdt/2 + Ps/2S + (xs(0) - Ps/2S)e^(-St),

where
S = k + B;
D = k - B;
xs=x1+x2;
xd=x1- x2;
Ps = P1+ P2;
Pd = P1- P2;

x=2の場合、Pd -> -Pd, x1 -> x2, xd -> -xdとし、同じ様に解を求めます。

137 :名無しさん@お腹いっぱい。:04/12/13 00:21:01
CPUとマザーボードを買い換えました.
AthlonからPen4に変えたのですが
octave って再コンパイルが必要だったんですね.

138 :名無しさん@お腹いっぱい。:04/12/14 20:04:09
-march=athlonとかやってたんでないのか?

139 :名無しさん@お腹いっぱい。:04/12/21 23:47:43
Octave は関係ないんだけど atlas がコンパイル時にSSEや3D Now を
自動的に認識して最適なコードを出力します.

Athlonだと3D Now が入ってしまうから Pen4だと動かなくなってしまいます.

140 :名無しさん@お腹いっぱい。:04/12/22 05:03:05
FreeBSD 5.3-stable + プレスコットなPen4で ATLASを
コンパイルしたら以下のようなエラーが出るようになりました.

何かエラーを解消する方法があれば教えてください.

同じOSで PentiumM なら問題なくコンパイルできたのに...

pre=s, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
mu=4, nu=1, ku=8, muladd=0, lat=1 ====> mflop=1573.458410
*** Error code 255

Stop in /usr/ports/math/atlas/work/ATLAS/tune/blas/gemm/THREADED.
*** Error code 1

Stop in /usr/ports/math/atlas/work/ATLAS/bin/THREADED.
Assertion failed: (fp), function GetMMRES, file ../atlas_install.c, line 327.


141 :140:04/12/23 09:52:22
PentiumM でコンパイルしたATLASを pkg_create してプレスコットな
Pen4 2.8GHz に入れました。
思ったより速くないですね。

PentiumM でコンパイルしているので SSE2 とかは有効になっている
はずです。

octave-2.1.63:1> A=rand(2000,2000);b=rand(2000,1);
octave-2.1.63:2> tic;A\b;toc
ans = 4.3339
octave-2.1.63:3> tic;A\b;toc
ans = 4.1330


142 :名無しさん@お腹いっぱい。:04/12/23 17:52:46
portsから入れるならWITH_OPTIMIZED_FLAGSを定義しておく
その他CFLAGSやFFLAGS等も適切に設定しておく

143 :名無しさん@お腹いっぱい。:04/12/23 18:21:14
>>141
SSE2の速度はPentiuMとPen4でぜんぜん違いますね。
>>142
WITH_OPTMIZIZED_FLAGSは定義しないでください。gcc-3.4.2の
バグで無限ループに陥ることアリ。CFLAGS/FFLAGSは意味なしです。


144 :名無しさん@お腹いっぱい。:04/12/23 19:31:54
意味無いこと無いだろ

145 :名無しさん@お腹いっぱい。:04/12/23 20:05:09
mahoたん降臨とみた。


146 :名無しさん@お腹いっぱい。:04/12/23 22:58:33
>>143

Pen4 ってSSE2 速いんですか?

それほどでもないと思うのですが...

147 :143:04/12/23 23:06:00
>>64 で X31 のベンチがありましたが
こちらも同じマシンですがベンチの結果はほぼ同じです。

同じ環境で PenM 1.4GHz 5.5秒 Pen4 2.8GHz 4.3秒...
これをどうみるか...



148 :名無しさん@お腹いっぱい。:04/12/25 13:29:55
>>145
するどい。143です。
>>147
octaveではないですが、ATLASだとdouble(REAL*8)の
FLOPSがPen4, PenMで全然違います。厳密には覚えてないですが、
Pen4 2.4Gでdgeemが1600MFlopsでPenMが500MFlops程度
だったかと。dualでもtheoretical peak近いところまででます。
(宣伝したい訳ではないが) FreeBSD Expert 2005にATLASの
ベンチマークを行った結果を詳しく書いています。ただPentiumMに
関しては書いていません。REAL*8はあまりに低速だったからです。
single precisionということはないですか?
PenMのほうが同クロックだと相当高速ですよ。

149 :名無しさん@お腹いっぱい。:04/12/26 01:01:24
>>148

プレスコットでも北森でも同じなのでしょうか?

研究室で数値計算用に一台PCを組もうと思っているんですが
世間のPen4の不人気具合いからためらっています.

とりあえず FreeBSD Expert 買ってみます.

150 :名無しさん@お腹いっぱい。:04/12/26 17:44:12
>>149
Expert2005のXeon dualはプレスコットだろうか? すまぬ。厳密な
チェックは怠った...しかし、FreeBSD/amd64を入れてみたがブートはしなかった。
SSE2は理論性能は実クロックx2Flops
でます。簡単にはXeon dual (3.4G)ならば3.4x2(dual)x2(theoretical)
=12.8GFlops Opteronも同様。まぁそこまでは出ません。
数値には出にくいのですが、複雑な処理をさせるとXeonは不利で、
Opteronがキビキビしてるなというのが良く解ります。

FreeBSD ports+HPCというのに僕は期待しています。
ノウハウをみなで共有できたら良いと思いますし、よい記事執筆者
が出ることを期待もしています。

151 :143:04/12/27 22:56:58
少しスレ違いな話で申し訳ないのですが

うちのプレスコなPen4とThinkPad X31 で FreeBSD 5.3-stable の
kernelコンパイル時間を計測してみたのですが

make buildkernel KERNCONF=MYPC

とやると ThinkPadX31(PenM 1.4GHz),自作PC(プレスコPen4 2.8GHz)

X31は 10分35秒, 自作PCは8分42秒でした.

またuser time と CPU使用率は
X31 545.5秒 97.9%
自作PC 795秒 181%
でした.

正直いってプレスコ使うのが嫌になってきています.

152 :140:04/12/27 22:57:38
>>151

ごめん名前間違えた 143 ではなく 140です.

153 :名無しさん@お腹いっぱい。:05/01/17 19:45:19 ,
すいません。
お聞きしていいですか??
現在、octaveで1次元有限要素法のプログラムを書いているのですが、量子井戸の波動関数を求めようとした際に、どうしても解が振動してしまいます。
波動関数の2乗の値はまともなのに、2乗しないとだめです。
どうしてでしょうか??

154 :名無しさん@お腹いっぱい。:05/01/18 17:46:38
>>153
ネタ?

155 :名無しさん@お腹いっぱい。:05/01/18 19:00:34
>>153

> 波動関数の2乗の値はまともなのに、2乗しないとだめです。

ここの意味がわかりません.

156 :名無しさん@お腹いっぱい。:05/01/18 21:58:47
>>153
とりあえずソースを

固有エネルギー・固有状態がほしいのか
波動関数の時間発展をみたいのか
何をしたいのか明確に説明プリーズ

157 :153:05/01/19 04:45:16
すいません。
説明不足でした。
波動関数が振動するとは、1要素ごとにプラスとマイナスが入れ替わってるような、ギザギザした形状になってしまうということです。
以下にソースを載せますので、暇であればお試しください。
欲しいのは時間に依存しない方程式を解いて、固有関数と固有値です。

http://cyobe36.k-server.org/newpage1.htm



158 :153:05/01/19 04:46:57
ttp://cyobe36.k-server.org/newpage1.htm

159 :名無しさん@お腹いっぱい。:05/01/19 21:31:54
>>157
ちゃんと解読してないけど
固有値が一番大きな方の波動関数をプロットしてない?
だったら1サイトごとに振動してても問題ないかと。
固有値が小さいやつをプロットしてみたらどうでしょう。
ただ、plot(x,v(:199))をしてみたけど
ポテンシャル井戸に局在してるようなモードでは無かったです。
対角化したときに固有値・固有状態がどういう順番で出るのか良く知らないんですけど。


160 :名無しさん@お腹いっぱい。:05/01/29 17:13:41
ATLASってiccでビルドするとどれくらい速くなるんでしょうか

161 :名無しさん@お腹いっぱい。:05/02/11 19:46:36
Octave GTK+
http://octave-gtk.sourceforge.net/

162 :名無しさん@お腹いっぱい。:05/02/11 22:01:01
すいません、宣伝になっちゃいますけど

liboctaveの使い方をまとめたLiboctaveWikiを立ち上げました
http://liboctave.halfmoon.jp/
ちょっとliboctave使ってみたいなっていう初心者の方から、
liboctaveなら俺に任せろ!な猛者まで、
Wikiの編集に参加していただけるとうれしいです。
なんでOctaveじゃなくてliboctaveの方なんだっていうのは無しの方向で・・(汗

163 :名無しさん@お腹いっぱい。:2005/04/29(金) 23:16:47
age

164 :名無しさん@お腹いっぱい。:2005/04/30(土) 21:37:06
sage

165 :名無しさん@お腹いっぱい。:2005/05/02(月) 03:31:08
% grep -1 BROKEN /usr/ports/math/octave/Makefile
.if ${OSVERSION} < 500000
BROKEN="Does not compile on FreeBSD 4.x"
.else
BROKEN="Does not compile on FreeBSD >= 5.x"
.endif

これはMakefile読めってことですか。


166 :名無しさん@お腹いっぱい。:2005/05/02(月) 18:59:44
FreeBSDではもうoctaveは使えません

167 :名無しさん@お腹いっぱい。:2005/05/02(月) 19:32:52
>>166
(´・ω・`)ショボーン

168 :名無しさん@お腹いっぱい。:2005/05/03(火) 20:28:50
>>166
マジ?

169 :名無しさん@お腹いっぱい。:2005/05/08(日) 07:09:16
だめじゃん

170 :名無しさん@お腹いっぱい。:2005/05/08(日) 18:22:22
焦って/usr/ports/distfilesを見たけどoctaveのファイルは残ってなかった
誰かFreeBSD5.4R用のi686バイナリパッケージくれよ

171 :名無しさん@お腹いっぱい。:2005/05/08(日) 19:39:29
こういう時こそportdowngradeの出番では

172 :名無しさん@お腹いっぱい。:2005/05/10(火) 12:26:18
FreeBSDのportsってたまに Octave が Broken になりますよね.
またしばらく待っていると復活しますよ.

173 :名無しさん@お腹いっぱい。:2005/05/10(火) 13:21:18
>171
joke かと思ったら本当にあった... sysutils/portdowngrade

174 :名無しさん@お腹いっぱい。:2005/05/13(金) 00:07:36
mahoタソがその内直してくれるんじゃね

175 :名無しさん@お腹いっぱい。:2005/05/30(月) 22:52:46
なおった?

176 :名無しさん@お腹いっぱい。:2005/06/01(水) 10:16:48
少なくとも一昨日の段階ではまだ直ってなかったけど...

mahoタソたのむ

177 :名無しさん@お腹いっぱい。:2005/06/01(水) 10:51:19
5.x以降なら直ってるみたい。
4.xはBrokenだけど。

178 :名無しさん@お腹いっぱい。:2005/06/01(水) 12:51:40
漏れも使っているので、メンテ頼む mahoさん


179 :名無しさん@お腹いっぱい。:2005/06/01(水) 14:04:37
matlab だと、
x{1} = 1; x{2} = 2;
x{1} = [];
で、x の最初の cell を消去できますが、octave ではどうするんでしょうか?
同様に structure array の要素の消去の仕方も、[] を代入では駄目でした。

180 :179:2005/06/01(水) 14:11:47
すみません。嘘付きました。
cell array の要素の消去は、[] を代入でできるんです。
しかし、structure array の要素の消去が分かりません。

181 :179:2005/06/01(水) 14:36:59
解決しました。
web では見つけられませんでしたが、よく考えれば分かりました。

for i=1:10; x(i).f=i; end
とし、
x(7) の削除は、
x = x([1:6 8:10]);
ですね。

182 :名無しさん@お腹いっぱい。:2005/06/03(金) 07:45:41
今、FreeBSD で portsから octave を入れたのだけど
微妙に良くなっていっているよね octave

メンテや改良ってまだどんどん行われているの?



183 :名無しさん@お腹いっぱい。:2005/06/03(金) 09:17:17
FreeBSD 5.3でportsからoctaveを入れようとしたけれど、
===> octave-2.1.63 is marked as broken: Does not compile on FreeBSD >=5.x
って出て、インスコできなかったよ。

これってFreeBSD 5.x以上では使えないってことなの?

184 :名無しさん@お腹いっぱい。:2005/06/03(金) 10:01:00
>>183
portsを新しくしてください。

185 :183:2005/06/03(金) 14:38:31
>>184
portsは新しくしたはずなんだが…オカシイナ


186 :名無しさん@お腹いっぱい。:2005/06/07(火) 19:33:20
ttp://adlib.rsch.tuis.ac.jp/~akira/unix/octave/update.html
に2.1.Xから多次元配列がサポートされたって書いてあるけど,具体的にどう使えるのでしょうか?
ChangeLogとかNEWSとかにも multi とか Arrayとか検索しても引っかからないし,
zeros(3,3,3)とかも使えないし….
どなたか教えてください.

187 :名無しさん@お腹いっぱい。:2005/06/07(火) 20:35:35
octaveじゃないけど
math/sdpaも壊れてるような

188 :名無しさん@お腹いっぱい。:2005/06/09(木) 00:35:11
>>186
バージョンは?
2.1.50ではだめだけど、2.1.60以降ではzeros(3,3,3)でいける。

189 :名無しさん@お腹いっぱい。:2005/06/09(木) 22:07:53
>>188
2.1.71にしたら出来ました!ありがとうございました!


190 :名無しさん@お腹いっぱい。:2005/06/21(火) 11:04:05
imageコマンドで起動される外部画像ビューアーが、インストールされた計算機によって、
imagemagicだったり、xvだったりするのですが、この違いはなぜ生じるのでしょうか。
また、明示的にどちらかを使いたい場合、どうすればよいでしょうか。

191 :名無しさん@お腹いっぱい。:2005/07/06(水) 23:18:05
printf('kita---(.v.)-----!'); sleep(10);
これが10秒後まで表示されないんですよね
どうしようもないですか?

192 :名無しさん@お腹いっぱい。:2005/07/16(土) 22:05:40
>>191
printf('kita---(.v.)-----!'); fflush(stdout);sleep(10);


193 :名無しさん@お腹いっぱい。:2005/07/27(水) 01:39:55
ちょっと板違いなんですが、他に内容に沿ったスレ見つけられなかったんで失礼します。
今VisualC++で卒業研究のプログラム作ってるんですが、VC++で使える数値計算ライブラリってないですか?
欲しいのは特異値分解だけなんですが、そこら辺に転がってるソース改変して使っても計算精度が悪くて使えないんです。
Octave C++もcygwinを通してのgccでしか使えないっぽいし、どうにかVC++で特異値分解をさせるライブラリのようなものお願いします。

194 :名無しさん@お腹いっぱい。:2005/07/27(水) 08:15:02
>>193
ttp://vision.kuee.kyoto-u.ac.jp/~nob/doc/liboctave/liboctave.html
これじゃだめ?


195 :名無しさん@お腹いっぱい。:2005/07/27(水) 14:59:39
(.v.)オレ

196 :193:2005/07/27(水) 17:12:02
>>194
若干板違いだったのに、わざわざ有用な情報をありがとうございます。
結構色々調べたつもりだったんですけど、Octave C++をVC++で使えるとは知らなかったです。
Octaveを使うのあきらめてclapack使おうかと思っててたんですが、こっちの方が良さそうですね。

では、卒業研究頑張ってきますノシ

197 :193:2005/07/28(木) 02:03:21
なんかうまくいかねーorz

198 :名無しさん@お腹いっぱい。:2005/10/08(土) 07:15:57
Octave で補間や補外ってできますか?


199 :名無しさん@お腹いっぱい。:2005/10/21(金) 23:36:59
octave-2.9.3 に UMFPACK をリンクさせたいんですけど、どーやっても configure が libumfpack.a を見つけてくれません。
誰か助けてー。


200 :名無しさん@お腹いっぱい。:2005/10/25(火) 23:34:33
octaveの可視化機能は、どこまでMatlabに近いですか?
http://www.cybernet.co.jp/matlab/support/helpdesk/r13/toolbox/matlab/creating_plots/chvolv19.shtml
こんな画像を出したいのですが、octave-forgeを入れていても、関数が無いようです。

201 :199:2005/10/26(水) 00:15:58
>199
自己レス。
UMFPACKv4.4 の共有ライブラリを自分で作って CVS 版の octave で configure したら認識しました。
でも make がコンパイルエラーで止まる…今度はデバッグか…orz


202 :199:2005/10/27(木) 06:28:25
>201
さらに自己レス。解決しますた。静的ライブラリでも大丈夫だった。
足りないライブラリを持ってきて Makefile をやっつけハックでいけた。

2048 * 2048 三重対角行列の LU 分解 - Pentium III Coppermine 1GHz です。

octave:1> a=eye(2048).*rand(2048)+diag(ones(2047,1),1)+diag(ones(2047,1),1)';
octave:2> t=time();[L U]=lu(a);time()-t
ans = 46.189

octave:1> b=sparse(eye(2048).*rand(2048)+diag(ones(2047,1),1)+diag(ones(2047,1),1)');
octave:2> t=time();[L U]=splu(b);time()-t
ans = 0.30429

(*´д`*)

203 :名無しさん@お腹いっぱい。:2005/12/01(木) 11:28:50
portsからoctaveをインストールしようと思ったんだけど、
atlasのコンパイルに無茶苦茶時間かかりますね。

CPU毎に最適化したatlasのpackageってどこかに落ちてない?

204 :203:2005/12/01(木) 11:31:15
>>203
ここのスレ的にはいちいち言わなくても問題ないと思いますが、
使っているOSはFreeBSD6.0Rです。

ここの板にいると、ついついみんなFreeBSDを使っていると思ってしまう。

205 :名無しさん@お腹いっぱい。:2005/12/01(木) 22:07:16
FreeBSD 6.0Stable, pentium-m 1.3GHzでAtlasのチューニングに36時間かかった
パッケージは保存したよ
デュアルブートでBSD使ってるからもうあんなのやりたくねえ

206 :名無しさん@お腹いっぱい。:2005/12/02(金) 00:03:18
今日はじめて使いました。
自分の作ったFFTのプログラムがあまりに遅かったので…。
ところで、起動時のフォルダって変更できるんですか?
微妙に不便

207 :名無しさん@お腹いっぱい。:2005/12/03(土) 12:19:24
?/.octaverc に好きなコマンドを突っ込んでおけば起動時に実行される
スタートアップファイルには他にもいろいろあって順番が決まっている

208 :名無しさん@お腹いっぱい。:2005/12/03(土) 20:42:54
>>207
なるほど。
ありがとうございました。

209 :名無しさん@お腹いっぱい。:2005/12/07(水) 14:24:02
しかし、Opteron dual な鯖で、昨夜の8時からatlasのインストールしているのに
まだ終わらない。

210 :名無しさん@お腹いっぱい。:2005/12/26(月) 17:28:06
liboctaveでodeをする方法だれかわかりませんか?
微分方程式がどけない、、、、、

211 :名無しさん@お腹いっぱい。:2005/12/28(水) 21:59:59
非線形だからMatlabとかという理屈がよくわからん

そんな非線形解なんてニュートン法でいいじゃん
ニュートン法自体はすげー簡単で単純
学部の頃はQuickBASICで書いてたぞ
奥村晴彦のコンピュータアルゴリズム事典にも載ってるし

ニュートン法でポテンシャルのパラメータを出して
インパクトパラメータを計算してた

212 :名無しさん@お腹いっぱい。:2005/12/29(木) 18:19:06
非線形っていうけど、Matlabって線形計算用なんだよね
もともとは...


213 :名無しさん@お腹いっぱい。:2006/01/02(月) 07:04:26
FreeBSDでoctaveを使いたいのだけど、atlasのコンパイルに時間がかかりすぎます。
それでpackagesを探しているのですが、FreeBSD6.0 or 6-stable用の
atlasのpackagesが見付かりません。

どこかにないでしょうか?

214 :名無しさん@お腹いっぱい。:2006/01/02(月) 10:22:57
ports にこう書いてあるから、自分で頑張る方が良いんじゃないかな...

NO_PACKAGE= Optimizes for the local machine, so a package is not generally useful. Set FORCE_PACKAGE to override

215 :名無しさん@お腹いっぱい。:2006/01/02(月) 13:35:50
>>213
オレ、年末にoctaveのportsをmakeしたけど
PentiumIII900MHzで30時間かかったよ

216 :名無しさん@お腹いっぱい。:2006/01/04(水) 10:13:40
LMItoolboxみたいのありますか?

217 :名無しさん@お腹いっぱい。:2006/01/04(水) 22:50:27
>213

ATLASは実際にCPUにいろいろ計算させて、その結果を見て最適化していくんだよ。
だから、お前の希望するFreeBSD6.0 or 6-stable用、かつ、お前の使ってるCPU用のバイナリじゃなきゃだめじゃないの?

218 :名無しさん@お腹いっぱい。:2006/01/04(水) 22:55:46
まあatlasが必要ない用途も多いな。

219 :名無しさん@お腹いっぱい。:2006/01/05(木) 02:28:44
>>217
Atlas使うといっても何時間もかかるような数値計算をするわけでも
ないので、それほどカリカリに最適化してもらわなくてもいいんだけど...

220 :名無しさん@お腹いっぱい。:2006/01/05(木) 02:43:06
atlasってそんなにインストールに時間掛かるの?
openoffice位か?

221 :名無しさん@お腹いっぱい。:2006/01/05(木) 06:06:19
演算の最適化部分を省けばたいしたことないと思うけどね。

簡易インストールみたいなのないの?

222 :名無しさん@お腹いっぱい。:2006/01/05(木) 22:51:42
>221
最適化をあきらめる選択肢も必要だよね
チューニングに時間がかかりすぎるし
ATLASを使わないで、BLASだけでつかえたらいいのにね

223 :名無しさん@お腹いっぱい。:2006/01/05(木) 22:54:08
ところで、どうしてFreeBSDのPortsにあるATLASには-ffast-mathオプションが付いてるんだろう
はずさないとだめなんじゃないの?

224 :名無しさん@お腹いっぱい。:2006/01/05(木) 23:59:39
カリカリに最適化してくれるから俺はports
ひいてはFreeBSDを使っているわけだが

225 :名無しさん@お腹いっぱい。:2006/01/06(金) 00:03:13
>222
そういう make option の盛り込み案を maho たんに提案しる

226 :名無しさん@お腹いっぱい。:2006/01/11(水) 17:41:06 ?
質問なのですが、save のファイル名の引数に文字列を保持した変数を
与えることはできるのでしょうか?

a=[1,2; 3,4];
filename = "test.dat";
save filename a;

とやると,"test.dat"ではなく"filename"というファイルに出力されてしまいます。
変数filenameの中身をみてくれる方法はないのでしょうか?

227 :名無しさん@お腹いっぱい。:2006/01/13(金) 23:14:55
>226
■俺も初心者。
とりあえず、save関数を使ってやってみてだめだった。つーか、マニュアルを見るとこうある。
たぶんだめなんじゃないのかな?代わりにfopenコマンドを見つけたから試してみたらどうかな?

1.fopenでファイルオープン 2.fputで書き込み 3.fcloseでファイルクローズ

perlのファイルハンドルみたいだし、""無かったら変数も展開してくれそうな雰囲気はあるよな。
俺も日頃からクソつまらない作業ばかりの社会人で試す前に寝てしまった。暇ができたらやってみるけど。
■saveコマンド
15.1.3 Simple File I/O
save options file v1 v2 . . . Command
Save the named variables v1, v2, . . . in the file file.
The special filename '-' can beused to write the output to your terminal.
■15.2.1 Opening and Closing Files
[fid, msg] = fopen (name, mode, arch) Built-in Function
fid list = fopen ("all") Built-in Function
file = fopen (fid) Built-in Function
For example,
  myfile = fopen ("splat.dat", "r", "ieee-le");
fclose (fid) Built-in Function
■15.2.2 Simple Output
fputs (fid, string) Built-in Function
Write a string to a file with no formatting.
■これを参照した。
GNU Octave A high-level interactive language for numerical computations
Edition 3 for Octave version 2.1.x

228 :名無しさん@お腹いっぱい。:2006/01/14(土) 00:44:12
どうしてもsaveにこだわるのなら
eval(sprintf("save %s a",filename))
で可能。

こんな方法を使うメリットがあるかは疑問だが。

229 :名無しさん@お腹いっぱい。:2006/01/14(土) 01:29:15
>228
おおう
なるほど

230 :名無しさん@お腹いっぱい。:2006/01/15(日) 00:02:40
MatlabではM関数をエデットすればそれが次ぎの実行で反映されるのですが
Octaveでは一度読み込んだ関数はそのMファイルが書き変わっても反映されない様です
それでしょうがなく関数を書き換えたらexitしてoctaveを立ち上げ直しているのですが
関数を初期化する方法は無いでしょうか?

231 :名無しさん@お腹いっぱい。:2006/01/15(日) 08:34:26
clear all っぽい
でも何かエラーが出る

232 :名無しさん@お腹いっぱい。:2006/01/15(日) 13:00:18
x="output.txt"
y=[1,2,3,4]
save("x","y");
ってなかったけ

233 :名無しさん@お腹いっぱい。:2006/01/15(日) 20:07:34
>>230
マニュアルには更新日時を見て
再読込するよな事が書いてあるけど、
実際の動作は違うのか?
help -i reload

>>231
clear allは普通にできないか?

>>232
できない。

234 :名無しさん@お腹いっぱい。:2006/01/21(土) 18:48:32
Octaveで偏微分方程式は解けますか?

235 :名無しさん@お腹いっぱい。:2006/02/07(火) 13:45:49
octaveとscilabってどう違いますか?
初心者にお勧めはあります?

236 :名無しさん@お腹いっぱい。:2006/03/05(日) 16:18:36
cygwinでscilabをコンパイルできた人居る?
cygwinのコンソールでscilabを使いたいよ

237 :名無しさん@お腹いっぱい。:2006/03/12(日) 21:25:19
Windows用 Octave 統合環境
Octave Workshop
http://www.math.mcgill.ca/loisel/octave-workshop/
インストールしたらちゃんと動いた!

でもグラフは gnuplot for win
エディタはメニューの File で open すれば立ち上がる

これの凄い所は全部 MinGW で作ってある所!
Cygwin 無しなので、UNIXになじみの無い職場でも使えるかも

238 :名無しさん@お腹いっぱい。:2006/03/13(月) 16:40:29
そういえば、Octave Workshopって、FreeBSDのportsに入っていないね。

239 :名無しさん@お腹いっぱい。:2006/03/16(木) 14:32:49
floating pointの形式はieeeじゃなきゃだめなのね。
故に、-mfancy-math-387 -ffast-mathなんかつけるとこけてしまう。

240 :名無しさん@お腹いっぱい。:2006/03/17(金) 23:32:02
FreeBSDのatlasのportsのfiles/{blas.h,atlas.h}って

+#ifdef __cplusplus
extern "C"
{
+#endif

--略--

+#ifdef __cplusplus
}
+#endif

なpatchをあてないとc言語の時に困るので
誰かsend-prしてください m(_ _)m


241 :名無しさん@お腹いっぱい。:2006/03/17(金) 23:52:31
cygwinでoctaveとatlasをインストールしようとしてたやついる?
gcc3.4でoctaveをコンパイルすると遅くなるって言ってたけど
gcc4.0とか普通にコンパイルできるぞ?
今からこれでoctaveをコンパイルしてみる

242 :名無しさん@お腹いっぱい。:2006/03/18(土) 06:12:02
>>241
atlasしらんが、octaveは出来そうだな。
liboctave/lo-ieee.ccかな?にCygwin_initとかいう関数がある。

243 :名無しさん@お腹いっぱい。:2006/03/20(月) 21:09:03
SciLabは4.0が出たみたいだな
使いにくいから使わないけど

244 :名無しさん@お腹いっぱい。:2006/03/21(火) 01:11:46
octaveの方がいろいろルーズでいいな

245 :名無しさん@お腹いっぱい。:2006/03/22(水) 12:30:18
>>244
確かにな
mファイルをコマンドとして使えないとか
関数mファイルを明示的に読み込まないといけないとか、、etc..

Octaveみたいに操作方法もMatLab互換にすればみんな使うのに

246 :名無しさん@お腹いっぱい。:2006/04/03(月) 00:21:50
俺はLMI tool(MATLAB非互換)が使いたいからSciLabも使うけどね。
慣れればSciLabもいいよ。

247 :名無しさん@お腹いっぱい。:2006/04/05(水) 23:06:34
octave-forgeのfillは頂点が4つまでしか描けないの?

有限要素法の研究をoctaveでやらにゃならんのに
8頂点の要素がかけないのはつらい・・・。

情報をください。エロい人!!

248 :名無しさん@お腹いっぱい。:2006/05/14(日) 07:20:32
>241
ATLASはgcc-3.3.3でmakeしました。3.4でもいいはずなのですが
ファイルの一部がmakeできなかった?(よく覚えていない)
octave以外はgcc-3.2でmake
(3.4はbroken octaveになるそう。3.3.3は例外処理が遅いため遅い。
cygwin1.dllの一月のverupより遅さが緩和されているような気がしますが)
gcc-3.2は普通にはgetできないので
www.nuce.nagoya-u.ac.jp/e8/Matsuoka/OctCpp.html
を参考にもってくる。


249 :名無しさん@お腹いっぱい。:2006/05/14(日) 07:23:26
>248 自己フォロー
 >octave以外はgcc-3.2でmake
ごめん。
octaveはgcc-3.2でmake
の間違い

250 :名無しさん@お腹いっぱい。:2006/05/20(土) 12:12:17
Octave Workshop (>>237) を使っています。
起動直後に私のホームフォルダに自動的に移動しておいて欲しいのですが、
どのファイルにコマンドを書き込めばいいのでしょうか。
あちらこちらにある設定ファイルらしきものに書き込んでみたのですが
まったく変化がありませんでした。ヒントをもらえると嬉しいです。

251 :名無しさん@お腹いっぱい。:2006/05/20(土) 14:06:11
>250 自己解決しました。
普通にリンクファイルでフォルダを設定すればOKでした。
失礼しました。

252 :名無しさん@お腹いっぱい。:2006/06/25(日) 16:16:16
>>40のleastsqr.m を動かそうとしているんだけど、なかなかうまくいかない。
なにをやったか書くので、なにがいけないのか、分かる人がいたら教えてください。

x=[1 2 3 4 5];
y=[1 3 6 7 8];
function ret=F(x,p)
ret = p(1)*x*x + p(2)*x + p(3);
endfunction
pin=[1 1 1];
[f,p]=leasqr(x,y,pin,"F")

といった形で実行させると、
error: input(x)/output(y) data must have same number of rows
といったエラーが出る。leastsqr.mのソースを見ると、

% check data vectors- same length?
m=length(y); n=length(pin); p=pin;[m1,m2]=size(x);
if m1〜=m ,error('input(x)/output(y) data must have same number of rows ') ,end;

といった箇所があって、m=length(y)と[m1,m2]=size(x)のm1を比較している。
つまり、上の例だとmが5となり、m1が1となるので、両者がマッチしない。
だから、エラーになったということのようだった。

このあたり、データの与え方が間違っているのかと思って転置行列 x' で
実行させてみたりしたけれど、なかなかうまくいかない。Octave のバージョンは、

GNU Octave, version 2.1.53 (powerpc-apple-darwin7.5.0).
GNU Octave, version 2.1.69 (i386-pc-linux-gnu).

両者とも同じ結果だった。

253 :名無しさん@お腹いっぱい。:2006/06/26(月) 10:54:43
>>252
そのメーリングリストで流れてたleasqr.mはバギーで動きません

元々のleasqr.mはMatLAB R12ごろに使われていたものですが
フリーの非線形最小二乗関数のleasqr.mでは儲ける事が出来ないので
独自にlsqcurvefit.mを作りOptimization Toolboxに入れて売ってます

leasqr.mの方は現在 Octave-forgeに収録されており、
最新版ならバグ無く動く様です(私の所では)

必要なのはleasqr.mとdfdp.mだけなので、octave-forgeをインストールしなくても
このソースだけ拾ってくれば使えます。

このleasqr.mはmatlabでもそのまま使えますので
optimization toolboxは買えないけどmatlabは使いたい人は使ってみてはどうでしょう
lsqcurvefit.mと違って共分散行列(対角項が各説明変数の分散になる)と、
R^2つまり決定係数が得られて便利です。

254 :ゆーき:2006/06/27(火) 19:52:37
すみません。。。
matlabハイパー初心者なのですが。。。
csapeで曲線を描きたくて調べたのですが、どうしてもcsape(X,Y,CONDS,VALCONDS)
のVALCONDSに何を入れたらいいのか分かりません。。。
特異値とか特異条件とかが関係してくるっぽいんですが。
どなたか教えて下さい。

255 :名無しさん@お腹いっぱい。:2006/06/27(火) 20:31:38
最近,Octaveを使い始めたんですが,図を複数作る方法がわかりません.
subplotみたいに1つのグラフにいくつかの波形をプロットするではなく,
1つのグラフに1つの波形をプロットしたものをいくつか作る方法を教え
てください.
GNU Octave2.1.73を使っています.figureを使ってもグラフが表示されま
せんでした.

256 :名無しさん@お腹いっぱい。:2006/06/27(火) 20:52:22
>>253
octave-forge から持ってきて、leasqrdemo.m をにらめっこしながら、
ようやく動かすことができました。

x=[1; 2; 3; 4; 5];
y=[1; 3; 6; 7; 8];
function ret=F(x,p)
ret = p(1)*x.*x + p(2)*x + p(3);
endfunction
pin=[1 1 1];
[f,p]=leasqr(x,y,pin,"F")

まず、xとyを列ベクトル標記に変え、さらにx*xの計算のところを
x.*xに変えました。これで、動かし方を理解できました。

どうもありがとうございます。

257 :名無しさん@お腹いっぱい。:2006/07/03(月) 16:42:51
初めて書き込ませていただきます。
構造体に関する質問なのですが、
例えば
octave:1> Kozo(1).name = "ichiro"
octave:2> Kozo(2).name = "jiro"
octave:3> Kozo(1).height = 170
octave:4> Kozo(2).height = 175

というふうな構造体作ったのですが
変数aにichiroの身長を代入しようと
a=Kozo(1).heightとしても
scalar cannot be indexed with .
とエラーが出てアクセスできません。
どなたか参照する方法を教えて頂けませんでしょうか?
octave:5> Kozo(1)
Kozo(1) =
{
height = 170
name = ichiro
}




258 :名無しさん@お腹いっぱい。:2006/07/04(火) 09:27:40
>>257
octave-2.1.71:1> Kozo(1).name = "ichiro";
octave-2.1.71:2> Kozo(2).name = "jiro";
octave-2.1.71:3> Kozo(1).height = 170;
octave-2.1.71:4> Kozo(2).height = 175;
octave-2.1.71:5> a=Kozo(1).height
a = 170
octave-2.1.71:6> b=Kozo(1).name
b = ichiro
octave-2.1.71:7> fieldnames(Kozo)
ans =

{
[1,1] = height
[2,1] = name
}

何の問題もありませんが?

259 :名無しさん@お腹いっぱい。:2006/07/04(火) 13:43:14
>>258
別のマシーンでやってみたところ問題ありませんでした。
ということで文法上の問題でなく
インストール上の問題のようです。ありがとうございました。



260 :名無しさん@お腹いっぱい。:2006/07/16(日) 02:39:09
forge入れて、変わったなーって実感したいんですけど
何かサンプルプログラムありませんか?

261 :名無しさん@お腹いっぱい。:2006/07/16(日) 03:22:13
octaveで得たグラフとかって論文に載せてもいいの?
信頼性りかの問題で

262 :名無しさん@お腹いっぱい。:2006/07/16(日) 03:38:54
り、のとこ、と、の間違いでした。
すいません。

263 :名無しさん@お腹いっぱい。:2006/07/16(日) 04:41:49
>>262
octaveってグラフはgnuplotで描いていると思うけど、
gnuplotは学術論文のグラフ描画によく使われているよ。
そういった意味では問題は少ないと思うな。

もしもoctaveの計算精度の問題を言っているのであれば、
それは自分で精度を検証してから使うべきだろう。

もちろん、octave自身けっこういろいろなところで使われているので
信頼性はそれほど低くはないと思うけど、
あまり使われていない関数などはバグがけっこう入っていそうだ。

264 :名無しさん@お腹いっぱい。:2006/07/16(日) 09:54:11
むしろ >261 は何だったら載せていいと思っているのか問い詰めたい

265 :名無しさん@お腹いっぱい。:2006/07/16(日) 14:56:30
FFTした後の振幅って、その中のピークで規格化するのが一般的なんですか?

実際のパワースペクトル密度を得たいときはどうすればいいんですか?

勉強不足ですいません。よろしくおねがいします。


266 :名無しさん@お腹いっぱい。:2006/07/16(日) 21:05:49
ニューラルネットの例題プログラム作ってみたけど
思ったより計算速度は速かった。
ベクトル演算が鍵なのかな。

267 :名無しさん@お腹いっぱい。:2006/07/16(日) 21:08:49
>>266
そうだろうね。

同じ演算でも行列使った時とループ使った時では格段に計算時間が違う。

268 :名無しさん@お腹いっぱい。:2006/07/22(土) 00:57:02
>>261
Excelよりは信頼性あるだろ

269 :名無しさん@お腹いっぱい。:2006/07/22(土) 23:03:41
そういや、あまり知られてないけどExcelってバグ多いよね。

一度、共同研究先が用意したデータを処理しようとしてExcel使ったけど、
マニュアルの記載にも間違いがあったりして、まともに
計算結果がでなくても困ったことがある。

そういった意味ではOctaveの方がましだと思った。

270 :名無しさん@お腹いっぱい。:2006/07/22(土) 23:16:57
特に財務計算の関数はアレなんだっけ。
金の問題だけに検算しないとw

271 :名無しさん@お腹いっぱい。:2006/07/23(日) 00:12:51
実験データを excel でいじろうとする奴を見ると
殴りたくなるよなっ!

272 :名無しさん@お腹いっぱい。:2006/07/23(日) 00:21:08
現状のExcelじゃ扱える行数が少なくてどうにもならん。
次ので増えると聞いたが。

273 :名無しさん@お腹いっぱい。:2006/07/25(火) 01:33:11
>>271

そうなの!?
結構普通じゃない!?

274 :名無しさん@お腹いっぱい。:2006/07/25(火) 11:20:44
>273
ガッ

275 :名無しさん@お腹いっぱい。:2006/07/27(木) 12:06:56
>>271
俺の周りはどんなデータもFORTRANでいじろうとする奴ばかりだな

Octave使ってる俺だけ浮いてる orz

276 :名無しさん@お腹いっぱい。:2006/08/07(月) 17:07:19
すごくFAQっぽくて恐縮なのですが、質問させてください。
cygwinのコンソール上でoctaveを使おうとしています。
(正確にはoctaveのC++向けライブラリを使いたい)
それで、cygwinのインストール時にg++関連(3.4.4)とoctave関連(2.1.73)をすべて導入し、
gnuplotのWindows版バイナリ(v4.0)にもパスを通して、
\usr\share\octave\2.1.73\m\startup\octavercと
\usr\share\octave\site\m\startup\octaverc(違いがよく分からないので両方)に
gnuplot_binary = "pgnuplot";を追加しました。
この状態でコンソールからoctaveと入力しても、「何もおきません」。
何か根本的に勘違いしているでしょうか?


277 :名無しさん@お腹いっぱい。:2006/08/10(木) 01:33:29
octaveはscilabとかMatlabみたいに

G=1/(1+s)

って記述は出来ないんすか?

G=tf([0 1],[1 1])

ってわかりにくい。


278 :名無しさん@お腹いっぱい。:2006/08/10(木) 08:02:00
octave:1> s = 1
s = 1
octave:2> G = 1/(1+s)
G = 0.50000


279 :名無しさん@お腹いっぱい。:2006/08/10(木) 10:19:02
function F(t)
F=sin(t);
endfunction
t=0:0.1:2*pi;
y=F(t)

この最後のところで
error: value on right hand side of assignment is undefined
になるのは何故ですか?


280 :名無しさん@お腹いっぱい。:2006/08/10(木) 10:20:17
>>277
そういう事がしたければSCILAB使えばいいじゃん。


281 :名無しさん@お腹いっぱい。:2006/08/10(木) 12:12:32
>>278
あとあと、tf関数とか使って、ボード線図が書きたいという趣旨ぢゃないすか?


282 :名無しさん@お腹いっぱい。:2006/08/10(木) 12:13:40
>>266
ベクトル演算が速くなるように書くっていうのはCray1の昔からですねw


283 :278:2006/08/10(木) 21:54:29
趣旨とか言われてもシラネ

284 :名無しさん@お腹いっぱい。:2006/08/12(土) 17:35:48
>>283
G=tf([0 1],[1 1])
って書くと
bode(G)

って出来るけど

G=1/(1+s)
って書いても
bode(G)
って出来ないってことでしょ?

scilabなら
s=poly(0,"s")
G=1/(1+s)
bode(G)
って書ける。



285 :名無しさん@お腹いっぱい。:2006/08/14(月) 11:29:50
>>278
ワロス

286 :名無しさん@お腹いっぱい。:2006/08/18(金) 14:34:02
liboctave使っているのですが、liboctaveの説明十分なマニュアル・チュートリアル的な
ものは存在するのですか?

探してみましたが、liboctave wikiぐらいしか見つからなくて困っています・・・

287 :名無しさん@お腹いっぱい。:2006/08/19(土) 16:23:09
マニュアルあってもいいけど
Doxygenで作ったAPIリファレンスで事足りる


288 :名無しさん@お腹いっぱい。:2006/08/26(土) 19:57:32
FreeBSDの倍精度が64bitじゃなくて53bitで扱われてるって書いてある本があったけど・・・
どうしたらいいんだ

289 :名無しさん@お腹いっぱい。:2006/08/27(日) 05:50:44
何が53bitなの?

IEEE規格で計算しているから64bitのはず。

290 :名無しさん@お腹いっぱい。:2006/08/27(日) 10:58:54
>>288
仮数部の有効桁じゃないのか?


291 :名無しさん@お腹いっぱい。:2006/08/27(日) 13:18:12
仮数部52ビット、符号部1ビット、指数部11ビット。
FreeBSDと限定する意味がわからんなあ、その本。

292 :名無しさん@お腹いっぱい。:2006/08/27(日) 14:23:30
>>291
「正規化方式で実質的に 53bit」って話は聞いたことがある


293 :名無しさん@お腹いっぱい。:2006/08/27(日) 16:57:17
intel のFPUは内部レジスタは80bitの精度を持っているけど、
IEEE規格だと64bitだからね。

もっともコンパイルオプションを指定すれば80bitで計算できたはずだけど...

294 :名無しさん@お腹いっぱい。:2006/08/27(日) 23:39:22
IEEEにも拡張精度は定義されてるけど

295 :名無しさん@お腹いっぱい。:2006/08/28(月) 02:05:31
「IEEE」って… まあ意味分かるけど。
ttp://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0
ttp://docs.sun.com/source/806-4847/ncg_goldberg.html

296 :名無しさん@お腹いっぱい。:2006/08/28(月) 07:08:00
man fpsetprec

297 :名無しさん@お腹いっぱい。:2006/08/28(月) 22:53:00
これか
http://www.jp.freebsd.org/QandA/news/news-2003-10-16.html

FreeBSD QandA 2003年10月16日 更新分

管理番号 587 (更新) 更新履歴

Q. gccで "long double" を使用して数値計算を行ないましたが、同じ CPU での
Linux の結果と比べて計算精度が悪く、計算結果が異なります。

A. FreeBSD の標準カーネルでは浮動小数点の仮数部の精度が (IEEE754 と異なり)
53bit に設定されているために起きる現象です。

  Intel x86 系の FPU の仮数部の精度は 24/53/64bit に設定可能です。
FreeBSD では仮数部の精度が 53bit に設定されているために、long double
を使用しても仮数部の精度が 53bit (つまり、double と同じ) しかありません。

1. 関数 fpsetprec()/fpgetprec() を使用して、FPU の仮数部の精度を 64bit
に変更する事が出来ます。fpsetprec(3) を御覧下さい。

2. GNU Multiple Precision Arithmetic Library (GMP)、PARI 等 FreeBSD 標
準以外の数値演算ライブラリを利用してもよいでしょう。

298 :名無しさん@お腹いっぱい。:2006/08/29(火) 22:29:53
カーネルの設定で64bitにするにはどうしたらいいの

299 :名無しさん@お腹いっぱい。:2006/08/30(水) 10:51:41
hackしろ

300 :名無しさん@お腹いっぱい。:2006/08/30(水) 11:22:55
ついでに見てやったぞ。
i386なら、/sys/i386/include/npx.hの__INITIAL_NPXCW__
amd64なら/sys/amd64/include/fpu.hの__INITAIL_FPUCW__
を適当に変えろ。

301 :288,297:2006/08/30(水) 20:48:29
ソースを見て怪しい部分をさがせばいいのか
デーモン君みたいだな
よくわかんないけどがんばるよ


302 :名無しさん@お腹いっぱい。:2006/09/11(月) 14:40:45
octaveって(GNU Octave, version 2.1.73 (i686-pc-cygwin).

A=[
1 2
3 4
]

A=[\
[1,2];\
[3,4]\
]
って、CRLFをエスケープしなきゃダメ?


303 :名無しさん@お腹いっぱい。:2006/09/12(火) 14:43:02
やってみればわかる

304 :名無しさん@お腹いっぱい。:2006/09/12(火) 16:53:55
>>303
matlabだと
A=[
1 2
3 4
]
でいいのに、octaveだと\をつけなきゃならんのは、片手落ちだとおもう


305 :名無しさん@お腹いっぱい。:2006/09/13(水) 00:32:48
それ、 octaveじゃなくてターミナルの問題じゃね?

306 :名無しさん@お腹いっぱい。:2006/09/13(水) 10:45:57
>>305
あ、ちょっと言葉足らずだった。ごめん

A=[
1 2
3 4
]
って、g.mに書いて、
source("g.m")
ってすると、ダメなんですよ。

って書いていて気がついた。
そか。改行をCRLFじゃなくてLFにしなきゃだめなんだ→やってみた→うまくいった。


307 :名無しさん@お腹いっぱい。:2006/10/30(月) 13:21:51
卒研でoctave使って信号解析することになってるんだが。
音声ファイルの読み込みとかがいまいちよくわからん。
MATLABの本なんか見るとwavreadとかwavwriteとかsoundとかそういうのがあるっぽいんだけど
octaveではそういうのできるのかい?

308 :名無しさん@お腹いっぱい。:2006/10/30(月) 17:41:07
>>307
scilabならあるらしい?


309 :名無しさん@お腹いっぱい。:2006/10/30(月) 17:42:16
>>307
http://nis-ei.eng.hokudai.ac.jp/~aoki/book01.html
>(4) octave_programの中に,wavread.m,wavwrite.m,sound.m,test01.m,guitar_2048.wavをコピーする.


310 :307:2006/10/31(火) 11:31:52
>>309
うぉすげえ。サンクス。
っていうかこの本読んだんだけど
wavplay.exeについては書いてなかった気がするんだよなぁ。

311 :名無しさん@お腹いっぱい。:2006/11/04(土) 11:58:22
CygwinでfftwとATLAS込みのOctaveを2.1.73をソースからビルドしたけど
あんまり速度が速くならなくて悲しい

312 :名無しさん@お腹いっぱい。:2006/11/05(日) 16:53:22
Intel compiler + Intel MKLでOctaveビルドしてるいませんか?


313 :名無しさん@お腹いっぱい。:2006/11/10(金) 02:01:59
SCILABでニュートン法を使ってtan(x)=C を解くプログラムを作りたいんですけど、
だれか、スクリプトを教えてくれません?


314 :名無しさん@お腹いっぱい。:2006/11/10(金) 08:19:44
>>313
1)なんでわざわざニュートン法をプログラムするのか不明。解きたいならfsolveで。
2)その辺のCのプログラムでニュートン法のところ探してきて、まぁそれをそのまま書けばほぼOK
4)scilabのことはscilabのスレで


315 :名無しさん@お腹いっぱい。:2006/11/10(金) 21:03:30
>>313
宿題は自分でやりましょう

316 :名無しさん@お腹いっぱい。:2006/11/10(金) 22:11:47
(´-`).。oO( 3)はどうしたんだろう…)

317 :名無しさん@お腹いっぱい。:2006/11/17(金) 01:25:59
かなり時間のかかるプログラムを走らせる際に,進行状況を見るためにループ文の中で
if mod(n,50)==0 disp(n) ,end
という感じで表示させたいのですが,サブ関数のループ中でやろうとすると,計算中には
表示をせずに,計算が終わったあとにまとめて全部表示する形になってしまいます

上手くサブ関数中にリアルタイムで表示させるような方法はありますでしょうか?

318 :317:2006/11/17(金) 01:28:31
最後の文のサブ関数中には計算中にの間違いです・・・

319 :317:2006/11/21(火) 23:49:38
ttp://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/optim/tutori34.shtml
にあるように
options = optimset('Display', 'iter');
を使うことで解決しました.

320 :名無しさん@お腹いっぱい。:2006/11/22(水) 01:43:34
workshop使ってみたんだけど、これエラーメッセージが文字化けして使えんね
俺だけ?
ちなみにOSはXPsp2

321 :名無しさん@お腹いっぱい。:2006/11/22(水) 10:05:34
scilab 4.0でint16の挙動がWindows版とLinux版(どちらもバイナリ版をインス
トールしました)で異なっているんですが、どちらが正しいんでしょうか。

Linux版
------------------------------------------------------------------
-->int16([32767, 32768, 32769])
ans =

! 32767 -32768 -32768 !
------------------------------------------------------------------

Windows版
------------------------------------------------------------------
-->int16([32767, 32768, 32769])
ans =

! 32767 -32768 -32767 !
------------------------------------------------------------------



322 :名無しさん@お腹いっぱい。:2006/11/22(水) 12:44:56
一応Scilab関連スレを張っとく

SCILAB&SCICOSについて教えてください
http://science4.2ch.net/test/read.cgi/sim/980480122/

Scilabを触ってみるスレ
http://science4.2ch.net/test/read.cgi/kikai/1068735555/

SCILABな
http://science4.2ch.net/test/read.cgi/denki/1142648802/1-100

323 :名無しさん@お腹いっぱい。:2006/11/22(水) 13:52:21
>>322
誘導どうもです。そちらで聞いてみます。


324 :名無しさん@お腹いっぱい。:2006/11/24(金) 00:16:46
Octave(ライブラリ?)ってC言語(C++除く)から呼び出して使えますか?

325 :名無しさん@お腹いっぱい。:2006/11/24(金) 06:29:38
liboctaveはC言語からは無理じゃないでしょうか


326 :名無しさん@お腹いっぱい。:2006/11/25(土) 00:55:44
そっか残念。


327 :名無しさん@お腹いっぱい。:2006/11/27(月) 08:44:46


328 :名無しさん@お腹いっぱい。:2006/12/12(火) 17:50:45
octave はガロア体上での計算できますか?
GF(2^16) くらいでいろいろやりたいんですが。

329 :名無しさん@お腹いっぱい。:2006/12/12(火) 18:43:49
とりあえず手元の Debian にパッケージ入れてみたら・・
gf() なんていう関数が見あたらんと・・

330 :名無しさん@お腹いっぱい。:2006/12/18(月) 00:28:52
質問です。

二重積分の計算をしようとして、以下のようなoctave
スクリプトを書きました。

function y=a(x1)
y = exp(-x1);
endfunction

function y=b(x2)
y = quad("a",0,x2);
endfunction

quad("b",0,4)

すると、以下のようなエラーが出ました。

error: quad: invalid recursive call
error: evaluating assignment expression near line 8, column 5
error: called from `b'
error: quad: evaluation of user-supplied function failed

Octave のバージョンは 2.1.53 です。

なぜこのようなエラーとなるのか、教えていただけませんか。

331 :名無しさん@お腹いっぱい。:2006/12/30(土) 19:34:23
ループ中のグラフのアニメーションを、キー入力で途中で止める機能を付けたいので、ループ中に

x=kbhit();

として、xの中身によりbreakするようにしたいのですが、上記の文を書くと、

error: value on right hand side of assignment is undefined
error: evaluating assignment expression near line 4, column 2
error: near line 4 of file `kbhit.m'

といったエラーが出ます。左辺のx=を書かずに、kbhit();だけだとエーラが出ません。
また、上記の文だけを書いたMスクリプトでも同様のエラーが出ます。

ちなみに、GNU Octave, version 2.9.9 (x86_64-redhat-linux-gnu)です。
アドバイスください!

332 :名無しさん@お腹いっぱい。:2007/01/06(土) 15:27:37
アゲ☆アゲ☆


333 :名無しさん@お腹いっぱい。:2007/01/06(土) 23:38:42
サゲ☆サゲ☆

334 :名無しさん@お腹いっぱい。:2007/01/07(日) 20:28:55
アゲ♂アゲ♂everynight


335 :名無しさん@お腹いっぱい。:2007/01/07(日) 21:47:52
サゲ♂サゲ♂everynight

336 :名無しさん@お腹いっぱい。:2007/01/07(日) 22:08:07
上げてしまう?
なかなかbuildがうまくいかない、Mac OSX版octave/octave-forge
HPCで、2007/1月版が出てました。(gcc 4.3/gfortranも)
http://hpc.sourceforge.net/

が、依然として、画像系が駄目。Octave.mのベンチマークすらも途中でこける。
Linuxでdual bootか、と転びそうな日々です。

337 :名無しさん@お腹いっぱい。:2007/01/09(火) 14:08:24
答えを入れたファイルX個。これの平均をとってプロットしたいんだがどうすればよいのですか?

338 :名無しさん@お腹いっぱい。:2007/01/12(金) 00:09:50
>>337

> xmean = mean(x)*ones(0,length(x)) ;
> plot(xmean,'-')

こんな感じかな。

339 :名無しさん@お腹いっぱい。:2007/01/13(土) 18:01:35
cygwin版のoctaveが起動せずに終了してしまうんだけど
みんなもそうですか?

340 :339:2007/01/13(土) 18:16:40
パスに/usr/lib/lapakが入ってないだけだった
すまん

341 :名無しさん@お腹いっぱい。:2007/01/27(土) 04:12:29
すんません、ちょっと遊んでると memory exhausted とか言われてしまうのですが、
どのくらいのサイズのリストまで作れるんでしょうか。

87 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)