X



データ解析ツールoctaveを語ろう Part 2
■ このスレッドは過去ログ倉庫に格納されています
0291octave for windows メモの筆者
垢版 |
2012/01/15(日) 14:17:54.69
>>290

上のコードはこれ単独では動きません。
動かすには,tとdtの設定のほかにも,xx1とxx2の定義が必要ですので。

できれば,単独で動いて動作確認できるコードをあげていただけると
答えがつきやすいと思います。

ところで
t=0:dt:t; はループの外に出すでしょう。ループの中にいれるのは,
間違いでないけど意味が不明です。
0292octave for windows メモの筆者
垢版 |
2012/01/15(日) 18:49:34.46
やってみました。たしかにループでなく描画するとグラフかけますね。
バグかもしれません。
Octaveのバージョン,Windows,Mac,Linuxなどお知らせください。
0295octave for windows メモの筆者
垢版 |
2012/01/16(月) 12:17:54.38
>>287
よくコードを読むと
t=0:dt:t;
がfor loopの中に入っているためn=2からは
区間ではなくなってますね。
t=0:dt:t
をloopの外に出すと正しく動くようです。

以上
0298名無しさん@お腹いっぱい。
垢版 |
2012/01/27(金) 09:11:43.11
>>296
Scilabも5.4.0-alphaからコマンドウインドウの左右に
補助ウインドウが出るようになりました
ただしScilabは左が、変数&履歴ウィンドウ、右がファイルブラウザ

まあでもド素人にMatlab系のプログラミング技術を教えるだけなら
FreeMATでいいかもしれないです
インストールが簡単だし、dos画面じゃないし、
グラフもgnuplotとかではなくてネイティブだし
0299名無しさん@お腹いっぱい。
垢版 |
2012/01/29(日) 11:13:02.52
>>298
FreeMATって、コントロールパックとかあるんでしたっけ?
伝達関数とか、それのインパルス応答とか、ボード線図かくやつ。
0300名無しさん@お腹いっぱい。
垢版 |
2012/01/29(日) 14:56:20.91
>>299
無いですね
tfもzpもstepもbodeも

制御をやる目的ならscilabの方がいいと思います
scilabはmatlabから入ると流儀がわからないかもしれませんが
慣れればどってことないです

octaveは限界が高いですけど
初心者がやるにはハードルも高いと思います
dos画面だけってのは初心者は面くらうでしょう

それで電卓代わりに使う目的ならfreematで十分という話です
0301octave for windows メモの筆者
垢版 |
2012/01/30(月) 07:48:33.24
>>300
OctaveはもともとUnix由来のソフトですし,Windowsの開発陣のリソースは実に
薄い。UnixではTerminalでのソフトはまだ一般的ですし,UnixのTerminalは
コマンドプロンプトよりは使いやすい。

#Windows 2000からはコマンドプロンプトが正しい名称であって
#ドスプロンプトではないです。まあ,それのほうがつうじますが。
0302octave for windows メモの筆者
垢版 |
2012/01/30(月) 07:54:27.43
>>301 ちょっと舌足らずした。
とはいうもののUnixでもGUIのご時世なので,Octave本体もやっと
真剣にGUIインターフェースをつくりはじめています。

ちとお待ちください。
0304名無しさん@お腹いっぱい。
垢版 |
2012/01/31(火) 23:58:19.85
遅ればせながら、3.6.0のNEWSを読んでみた。

ぱっと目についた新機能は以下。

1.バイナリ演算子のブロードキャスト
  ex.) rv=(1:5)'、M=magic(5)の時、repmat(rv,1,5).*Mがrv.*Mと書ける
2.プロファイラの実装
  profile, profshow, profexplore
3.parfor(for文の並列処理)のサポート
  但し、内部動作はforのまま

parfor、一瞬期待したのに…!
0305octave for windows メモの筆者
垢版 |
2012/02/01(水) 06:16:26.76
>>303

Release 3.6.0 still not "official"
http://octave.1599824.n4.nabble.com/Release-3-6-0-still-not-quot-official-quot-td4345497.html

で3.6.1がでるようです。qhullのルーチンがごく最近改定されたのでちょうど
いいかもです。Windows版のビルドもATLASのバージョンを変えてテストが
終わりつつあるのでこれもいいかもです。

parforですか。たしかにあるといいと思いますが今の開発陣のマンパワー
だとどうかなという気がします。そこらへんに強い人が開発陣に参戦される
ことを期待したいのですが。
0308名無しさん@お腹いっぱい。
垢版 |
2012/02/10(金) 15:43:20.25
octaveってデフォルトで上三角の連立方程式 U x = y を高速に解けないの?
ちょっと使ってみようと思ってググったら2003年の記事出てきたんだけど、
http://www.math.meiji.ac.jp/~mk/labo/text/a-remark-lu.pdf
これ未だにfixされてない?
0309名無しさん@お腹いっぱい。
垢版 |
2012/02/10(金) 23:24:48.60
>>308
もしかして、試してすらいない?

うちの環境だとこんな感じ。
Octave 3.2.4, Linux 2.6.32, Core2Duo 1.8GHz

octave:1> lutest(5000);
P の掛け算の計算時間
Elapsed time is 0.0580444 seconds.
L による割り算の計算時間
Elapsed time is 0.0310717 seconds.
U による割り算の計算時間
Elapsed time is 0.0300882 seconds.
leftdivu() による割り算の計算時間
Elapsed time is 0.843658 seconds.
精度
ans = 1.1294e-06
ans = 1.1197e-06

※実際は100回計算してる。上の時間は平均値
0311名無しさん@お腹いっぱい。
垢版 |
2012/02/14(火) 21:52:48.99
久々です
少し訳の分からないエラーが出たので質問したいのですが…
今サクラエディタ上で次のようなプログラムを作ってました

function dx = f(x,t)
dx = 1/(1+t^2);
end

t = linspace(0,10,101);

x = lsode("f",1,t);

因みにプログラムの内容は微分方程式 X' = 1/(1+t^2)をlsodeを用いて解くというものです
コレをコンパイラしたところ以下のようなエラーが出てしまいます

warning: function name `f' does not agree with function file name (filename)
parse error near line 5 of file (filename)

syntax error

>>> t = linspace(0,10,101);

error: `t' undefined near line 2 column 12
error: called from:
error: (filename)

こんな感じのエラーでした
しかし窓でプログラムを制作した場合は何故かエラーなしでグラフを表示することができました

何でこんなエラーが出たのでしょうか?
^
0312octave for windows メモの筆者
垢版 |
2012/02/15(水) 07:42:59.15
>>311

今サクラエディタ上で次のようなプログラムを作ってました

というのは,以下の内容を含むmファイルを作成して(例えばfoo.m)
function dx = f(x,t)
dx = 1/(1+t^2);
end

t = linspace(0,10,101);

#**********:
Octave のプロンプトからfooと打ったということでしょうか。

Octaveのmファイルには,スクリプトmファイルと関数mファイルがある。

Octaveはfunctionで始まるmファイルは関数mファイルと考える。
上の例は関数定義のあとにlsodeがあり,明らかに関数mファイルではない。
したがって上のスクリプトは間違いである。

warning: function name `f' does not agree with function file name (filename)
は,関数mファイルは関数名とファイル名が一致しないといけないのでたwarning.

0313octave for windows メモの筆者
垢版 |
2012/02/15(水) 07:43:43.77
>>311 >>312
上のスクリプトをスクリプトmファイルと認識させたいならfunctionキーワードの
前に命令を入れる。例えば

1;
function dx = f(x,t)
dx = 1/(1+t^2);
end

1;は無意味な命令だがそのおかげで,octaveはこのファイルをスクリプトm
ファイルと認識できる。
0315名無しさん@お腹いっぱい。
垢版 |
2012/02/21(火) 22:33:37.23
流石に課題丸投げは行けないと思うが、悩みに悩んだ結果積んでしまったので教えてください
ttp://loda.jp/subject_2ch/?id=762
これが課題の内容(pdf形式)です
只今小問2に関するプログラムを制作してるのですが、どうしても等高線グラフができません
一応原因はある程度把握してますが(ip(k,n)に関して、kが整数ではないからエラーがでる)それに変わるプログラムが分からず…
以下に小問2に関するプログラムを載せますので、どこがどう違うのかを指摘してくれれば有難いです

1;
function dx = f(x,t,n1,k1)
dx = -k1*x^n1;
endfunction

t = (0:1:300);
x0 = 10;

for k = 10^-9 : 0.1 : 1
for n = 1 : 5
x = lsode(@(x)f(x,t,n,k),x0,t);

ip(k,n) = (x(21) - 8)^2 + (x(41) - 6)^2 + (x(61) - 5)^2 + (x(121) - 3)^2 + (x(181) - 2)^2 + (x(301) - 1)^2;
endfor
endfor

contourf(pi)
0316octave for windows メモの筆者
垢版 |
2012/02/23(木) 11:42:18.48
>>315
ttp://loda.jp/subject_2ch/?id=762
がダウンロードできないので,もとの問題についてはわかりませんが,

ip(k,n) = (x(21) - 8)^2 + (x(41) - 6)^2 + (x(61) - 5)^2 + (x(121) - 3)^2 + (x(181) - 2)^2 + (x(301) - 1)^2;

はkが正の整数かロジカルでないといけないので,こういう書き方は許されません。
0318octave for windows メモの筆者
垢版 |
2012/02/23(木) 12:13:15.01
>>315

1;
function dx = f(x,t,n1,k1)
dx = -k1*x^n1;
endfunction

t = (0:1:300);
x0 = 10;
k=1e-9;
for m = 1:10
for n = 1 : 5
x = lsode(@(x)f(x,t,n,k),x0,t);

ip(m,n) = (x(21) - 8)^2 + (x(41) - 6)^2 + (x(61) - 5)^2 + (x(121) - 3)^2 + (x(181) - 2)^2 + (x(301) - 1)^2;
k=k+0.1;
endfor
endfor

contourf(ip)

は一応等高線はでるが,目指しているものと同じかわかりません。
0320octave for windows メモの筆者
垢版 |
2012/02/23(木) 17:57:12.75
>315-319
要は配列の概念とcontoturfの使い方がわかっていないのかなと思います。

ヘルプを読めばいいのですが,英語ですしね。無理もないかもしれません。

pdfをダウンロードできました。
もう少しいじる必要があると思いますが,基本的にはこれでいいのかな。
あとは自力で頑張ってください。
0321octave for windows メモの筆者
垢版 |
2012/02/23(木) 18:04:53.50
>315-319
要は配列の概念とcontoturfの使い方がわかっていないのかなと思います。

ヘルプを読めばいいのですが,英語ですしね。無理もないかもしれません。

pdfをダウンロードできました。
もう少しいじる必要があると思いますが,基本的にはこれでいいのかな。
課題ですので,あとは自力で頑張ってください。
0323octave for windows メモの筆者
垢版 |
2012/02/28(火) 15:18:33.76
まだ,公式には発表されていませんが,Michael氏がMSVC版のoctaveの復活に意欲
を見せておられます。さて,どうなるでしょうか。
0324octave for windows メモの筆者
垢版 |
2012/02/28(火) 15:18:51.21
まだ,公式には発表されていませんが,Michael氏がMSVC版のoctaveの復活に意欲
を見せておられます。さて,どうなるでしょうか。
0326名無しさん@お腹いっぱい。
垢版 |
2012/03/03(土) 23:33:37.71
いきなりの質問ですみません。
2つほど質問があります。
1.2段のワードの形式で論文を書いているのですが、
どうしても、ワードの大きさに縮小してしまうと、メモリどころか
線すらはっきり映りません。これをどう解決すればよいのでしょうか?

2.グラフを描くときに、色ではなく破線や点線はどのようなコードを
打てばよいのでしょうか?


なにとぞよろしくお願いします。特に1番目の質問が深刻です。
0327名無しさん@お腹いっぱい。
垢版 |
2012/03/03(土) 23:42:00.21
2番目は解決しました。すみません。
0328octave for windows メモの筆者
垢版 |
2012/03/04(日) 17:42:22.14
>>326
?? プロットした図が縮小すると見えなくなるということでしょうか。
ワードだからWindowsですよね。octave-3.2.4でしょうか。
gnuplotの画面をコピーしてワードに貼り付けているということでしょうか。

私はoctave の図をそのまま使わないので良くわかりませんが,
print コマンドでemfか何かでセーブした図を使ったほうがいいかもしれません。
0329名無しさん@お腹いっぱい。
垢版 |
2012/03/05(月) 20:49:38.55
octave-3.6.0で
1.1
ans = 1.10000000000000
single(1.1)
ans = 1.10000002384186
となります。これってどうなんですか?
どなたか教えて下さい。
0332名無しさん@お腹いっぱい。
垢版 |
2012/03/07(水) 14:24:18.76
>>329
補足するとsingle(単精度)の有効桁は10進に治すと約6-7桁なので
それ以上の桁数の数値についての保証はなく 
>>330
の方がおっしゃるように,単精度の範囲では問題ないことになります。
0333名無しさん@お腹いっぱい。
垢版 |
2012/03/29(木) 13:44:37.57
octave 3.6.1-mingwで例えば
text(0.5,0.5,"{\pi}","interpreter","tex")
とやってもTeXでπで書いてくれません。
対処法を教えていただけませんか。
お願いします。
0334名無しさん@お腹いっぱい。
垢版 |
2012/03/30(金) 08:04:27.54
>>333 graphics_toolkit gnuplot
でなんとかなりませんか?
octave 3.6.1-mingwはgraphics_toolkitはfltkがデフォで,texはまだfltkでは
対応していないと思うので。
0337名無しさん@お腹いっぱい。
垢版 |
2012/06/21(木) 00:54:19.14
SourceForgeに登録されてるWindowsバイナリの3.2.4、3.4.3、3.6.1
(MinGW版、いずれもクリーンインストール)を、現在XPで使用中
なのですが、3.2.4と比較して3.4.3、3.6.1の起動がやたらと遅くなって
おります(30secくらい?CPU100%)。

どなたか、回避策をご存知の方とかいらっしゃいませんでしょうか?
0339名無しさん@お腹いっぱい。
垢版 |
2012/06/23(土) 13:28:04.11
>>338
おぉ、やはり他の環境でも再現することがあるのですね。
ぐぐっても何も出てこないので、困ってました。
時間ができたら、起動シーケンスを追っかけてみることにします。Thx!
0341名無しさん@お腹いっぱい。
垢版 |
2012/06/25(月) 22:54:11.86
>>340
そうなんですか…情報感謝。

ただ、MSVC版は開発環境が揃ってないんで、自作octが
コンパイルできないのがネックです。

コンパイラだけでなく、dllとかもぼろぼろ抜けてるような…
0344名無しさん@お腹いっぱい。
垢版 |
2012/07/15(日) 19:18:59.66
337の件、追加でご報告。

どうも、時間が掛かってるのはoctaveのmain関数が呼ばれる前で、
main関数に入ってしまえばコンソールにアクセスできるまで
1秒もかかってません。

dllのロードが重いのかとrebase.exeとか使ってみましたが、効果なし。
私にはここから先のアプローチが思いつかないのですが、どなたか
ヒントお願いします…
0345名無しさん@お腹いっぱい。
垢版 |
2012/07/25(水) 12:26:52.32
octave-3.6.2 mingw版ですが、peaksなどなんでも良いのですがグラフを書いてもちゃんと描いてくれません。refreshすると描いてくれます。以前にもこんなことありましたが対処法はありますか。
0346名無しさん@お腹いっぱい。
垢版 |
2012/07/27(金) 09:14:20.16
345の件
graphics_toolkit("gnuplot")
putenv("GNUTERM","wxt")
でとりあえず希望どおりに動きました。
0347名無しさん@お腹いっぱい。
垢版 |
2012/07/30(月) 20:02:25.49
345の続き
putenv("GNUTERM","wxt")の状態でpeaksなどとしてグラフを描くと、グラフは
ちゃんと描いてくれますがwindowsのターミナルが大きくなってしまいます。
どなたか教えてくれませんか。
最近、書き込みが少なくて寂しいです。
0349名無しさん@お腹いっぱい。
垢版 |
2012/08/17(金) 21:15:22.40
> 男性は聯合ニュースの取材に対し、
暴行を受けている間も警察は積極的に止めようとせず、
男らは韓国人を差別する暴言を吐いたという。

警察はチョンの見方ですから有り得ません。
日本人にどうしても有事を惹起せしめたい欧米軍産複合体の意図じゃん
0350名無しさん@お腹いっぱい。
垢版 |
2012/08/31(金) 22:01:03.02
Congratulations, Max Brister!
ttp://jit-octave.blogspot.jp/

Octave用のJIT Compilerに、とりあえず一通りの機能が揃ったらしい!
速度も期待を裏切らず、例えば下のコードが、34sec->0.1secになるとか。

result = 0;
for ii = 0:1e-7:1
  result += inc * (1/3 * ii * ii);
end

Octave本家にマージもされたらしく、次回のリリースにexperimentalとして含まれるという話。

ソースはこちら。
ttp://inversethought.com/hg/octave-max
誰か試してみません?
0351名無しさん@お腹いっぱい。
垢版 |
2012/09/04(火) 20:33:58.95
Windows(MSYS)版を使ってますが、ファイル選択ダイアログを表示してパスを
取得できる関数、あるいはそういう機能が使えるようになるパッケージって
ないもんでしょうか?
0352名無しさん@お腹いっぱい。
垢版 |
2012/09/05(水) 13:37:47.23
>>351
使ったことないのでよくはわからないが,uigetfile なるものがあるらしい。
ttp://www.gnu.org/software/octave/doc/interpreter/I_002fO-Dialogs.html#I_002fO-Dialogs
0354名無しさん@お腹いっぱい。
垢版 |
2012/09/08(土) 14:29:07.59
画像データを読み込んで行列にしたりそれを表示したりできますが、
この行列データに対して直線や円を描画する関数とかないですか?
0356名無しさん@お腹いっぱい。
垢版 |
2012/09/08(土) 19:05:27.78
行列に対してです。
一応Bresenhamのアルゴリズムとか調べてみましたけど、既に実装
されているものがあればそっちを使いたいなぁと。
0357名無しさん@お腹いっぱい。
垢版 |
2012/09/11(火) 01:08:11.79
そういえばScilab-5.4.0がβ3まで来ましたが
xcosが不安定で使い物にならないですね
5.3.3は安定なんですけど、AFFICH_mがバグって使えない(実行中に数値を表示しない)
0358名無しさん@お腹いっぱい。
垢版 |
2012/09/19(水) 13:27:37.39
Scilabが5.4.0のβ3が不安定なのを認めてひっこめましたね
原因が特定できたらしいので
リリース時には急に落ちる事はなくなりそうです
0361名無しさん@お腹いっぱい。
垢版 |
2012/10/21(日) 18:48:24.67
>>360
ありがとうございます
では、他のフリーソフトで行うことはできませんか?
どうしても自宅でやりたいんですが・・・
0367名無しさん@お腹いっぱい。
垢版 |
2012/12/08(土) 02:35:03.97
leasqrを使って、2変数関数のフィッティングをやりたいんですが、
どう書けばいいですか?

http://octave.sourceforge.net/optim/function/leasqr.html
によると、
x = vector or matrix of independent variables.
と、独立変数がmatrixでもいいように書いてあるので、
2変数でも使えるんじゃないかと思っています。
試しに、xを2次元で取って、それぞれ-1〜1の整数を代入してやると、
推定対象の関数f(x,p)の中で、x=(-1,0,1,-1,0,1)として認識されています。

その先、関数内で2つの独立変数を式にどう表せばいいのかが分かりません。
0368名無しさん@お腹いっぱい。
垢版 |
2012/12/08(土) 03:00:32.70
前のスレから

256 名前:名無しさん@お腹いっぱい。[sage] 投稿日: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に変えました。これで、動かし方を理解できました。

どうもありがとうございます。
0369名無しさん@お腹いっぱい。
垢版 |
2012/12/08(土) 15:59:35.11
[f,p]=leasqr(x,y,pin,"F")と、「x*x→x.*x」ですね。
ありがとうございました。
試してみます(月曜にならないとためせないんですが)。
0370名無しさん@お腹いっぱい。
垢版 |
2012/12/08(土) 18:04:46.43
Octave-3.6.2-vs2010-setup
って、ライブラリもインストールできるのはいいんですが、
pkg rebuild -auto
ってやってもロード出来ない(再起動しても、autoLoadされていない)
のはしょうがないんですかね?

(pkg load all って打てば大丈夫だから、スタートアップに入れておけばいいんだけどさ)
0371名無しさん@お腹いっぱい。
垢版 |
2012/12/09(日) 01:54:34.33
>>368 >>369
・・・って、思ったら「前のスレから256」は、独立変数xが1つの場合ですよね?

知りたいのは、例えば独立変数xが2種類(x1とx2とします)あって、
(x1,x2)の組に対して観測値yが1つあり、
ret = p(1)*x1 + p(2)*x2 + p(3)
みたいな場合に、x1とx2のそれぞれの取る値をmatrix xに入れた上で、
ret = F(x,p)
の式で、matrix xの中のx1に相当する値とx2に相当する値を
どう表現すればいいかってことなんですが・・・。

具体的には、画像座標(x,y)について、各整数画像座標位置に対して与えられる
とある値(例えば標高値)を関数でフィッティングしたいんです。
0372名無しさん@お腹いっぱい。
垢版 |
2012/12/14(金) 23:06:25.18
参考になりますかどうか。
あと、複素数で表すことも出来ます。

function z = f1(x,p)
x0=p(1); y0=p(2);
z = exp( -( (x(:,1)-x0).^2 + (x(:,2)-y0).^2 )/2 );
endfunction

% ns = xpoints*ypoints;
% z(ns,1), x(ns,1) = x of data, x(ns,2) = y of data
% p(1, parameters)

x0 = 0.1; y0 = 0.2;
xt = [-4:0.5:4]; yt = [-4:0.5:4];
[xm, ym] = meshgrid(xt, yt);
zm = exp(- ((xm-x0).^2+(ym-y0).^2)/2 );
plot3 (xm, ym, zm, "linestyle","none","marker","+");
input("type enter","s");

x = [xm(:),ym(:)]; z = zm(:);
pin = [0.3, 0.4];
[f,p,cvg,iter] = leasqr(x,z,pin,@f1);
p
0373名無しさん@お腹いっぱい。
垢版 |
2012/12/15(土) 09:55:39.53
ちょっと板違いかもしれませんが…
WindowsでC++からOctaveを呼ぶ場合、cygwinかMSYSのgccでしか使えないんでしょうか?
VC++で通常のWindowsアプリから使える方法はあるでしょうか?
0378名無しさん@お腹いっぱい。
垢版 |
2013/01/28(月) 19:37:43.92
octaveを使おうとインストールしたのですが、エラーが出てgnuplotが出ません。
error: feval: function `unimplemented' not found
と出ます。どうすればいいのでしょうか。
0381名無しさん@お腹いっぱい。
垢版 |
2013/01/30(水) 14:14:09.52
>>380
MSVC版ですか? MinGW版ですか?
名前にスペースのあるフォルダ (C:\Program Files 等)にインストールして
いませんか?
0385名無しさん@お腹いっぱい。
垢版 |
2013/02/25(月) 23:38:58.12
Windows VS2010版Octave 3.6.2のGUIで
実行するたびにコマンドラインが右にずれるのはなぜでしょうか
日本語ロケールがいけないのかな

ちなみにスタート直後にmoreがかかってるので
more off した方がいいです
0388名無しさん@お腹いっぱい。
垢版 |
2013/03/06(水) 13:58:23.32
>>387
>カーソル位置はずれるけど、
Fileメニューのsetteingでterminalタブでfontを
Lucida Consoleに選んて,chcp 437をかけると少しましになります。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況