X



データ解析ツールoctaveを語ろう Part 2
0273octave for windows メモの筆者
垢版 |
2011/12/30(金) 08:18:47.62
>>269

どうもoctavercおかしい、文字列をの''であって、""でないから、\\でなくて\が
パスセパレータですね。でも、おかしい

octave:1> edit
warning: unrecognized escape sequence `\P' -- converting to `P'
warning: unrecognized escape sequence `\N' -- converting to `N'
error: system: CreateProcess failed -- can't create child process
error: called from:
error: C:\Octave\Octave3.4.3_gcc4.5.2\share\octave\3.4.3\m\miscellaneous\edit.m at line 212, column 7

とりあえず、Notepad++をOctaveとは別に起動してそこで編集してみてください。
0274octave for windows メモの筆者
垢版 |
2011/12/30(金) 08:33:41.29
>>271 >>263
Cygwin版octaveで、試してみました。FLTKマウスぐりぐりでも、Octaveハング
しません。ただし、マウスぐりぐり自体は少し変ですが。

# Cygwin版では、octave-forgeパッケージはauto loadでないですね。
0275octave for windows メモの筆者
垢版 |
2011/12/30(金) 15:21:23.37
>>273 windows 7 64ビットだとNotePad++は
C:\Program Files (x86)\Notepad++
にインストールされる。
()は、認識されるかわからないので、コマンドプロンプトで
dir c:\ /X
古いプログラム互換のための短いパス名を調べて、Program Files (x86)
は、PROGRA~2であることがわかる。ついてにパスセパレータを\から
/に変更して、私の環境では、
EDITOR('C:/PROGRA~2/Notepad++/notepad++.exe');
としてみた。
これで、octave のコマンドプロンプトから、editで NotePad++ が
(少なくとも私の環境では)起動するようになった。
0276名無しさん@お腹いっぱい。
垢版 |
2011/12/31(土) 10:25:08.41
>>270
できました!
すごい。9の時点で動いたので、これからはnotepadにコードを作って
そのたびに5から8の動作をして確かめたいと思います。
本当にありがとうございました:D
0277octave for windows メモの筆者
垢版 |
2012/01/06(金) 15:14:04.04
New dependency libraries and toolkits for MinGW build are uploaded.

ttp://octave.1599824.n4.nabble.com/New-dependency-libraries-and-toolkits-for-MinGW-build-are-uploaded-td4267845.html
0278名無しさん@お腹いっぱい。
垢版 |
2012/01/06(金) 23:34:58.90
matlab風に使いたいのでoctave workshopのinstaller付のwin版を
ダウンロードしたのですが、インストールはできたのに起動しません。
原因をご存知の方がいればお教えください。
0279octave for windows メモの筆者
垢版 |
2012/01/07(土) 12:55:10.79
>>278
Octave Workshopのoctaveあまりにも古く,使用するのはあきらめてください。
GUI Octaveの方が現実的だと思います。
ttps://sites.google.com/site/guioctave/

GUI OctaveではOctave-3.2.4ですが,頑張ればOctave-3.4.3も使用できます。
ttp://guioctave79.freeforums.org/guioctave-stuck-with-gnu-octave-3-4-2-t108.html
(OpenGLのgraphicsが使用できませんが。)
0280名無しさん@お腹いっぱい。
垢版 |
2012/01/07(土) 21:22:43.08
278です。
GUI Octaveをインストールしたのですが
Error message: Redirect console error: 3
と表示されてしまいます。
たびたび申し訳ありませんが、原因をご存知の片がいればお教えください。
0281octave for windows メモの筆者
垢版 |
2012/01/08(日) 07:16:25.00
>>281 私は,GUI に興味がないので使用したことがないので,お役に立てません。
ここで回答がつかなければ,GUI Octaveは生きているプロジェクトのようです
ので敷居は高いですが,GUI Octaveの英語のフォーラムで尋ねられるとよいか
と思います。
0283名無しさん@お腹いっぱい。
垢版 |
2012/01/08(日) 12:30:30.35
Octave-3.2.4をインストールする前にGUI Octaveをインストールすると、
Error message: Redirect console error: 3
が出る。

これは、GUIOctaveの File/Options/Octave/GNUOctave Executable Files Directory に
パスが正しく設定されていないことでもわかる。
Octave-3.2.4を入れているのに、なぜかここにパスが設定されていないときは、
ここに 
C:\Octave\3.2.4_gcc-4.4.0\bin
を設定する。

そもそもOctave-3.2.4を入れていないのであれば、
一度GUIOctaveをアンインストールして、Octave-3.2.4を入れる.
これが正しく入っていると、GUIOctaveはインストール時に自動的にOctaveパスをセットしてくれるので
特に設定は要らない。

Octave-3.2.4を入れるときには
octave for windows メモの筆者さんの
http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html#100403
を、ありがたく、よく読んでからな〜
0286名無しさん@お腹いっぱい。
垢版 |
2012/01/11(水) 13:30:25.43
FreeBSD 9.0Rが出たので入れてみたメモ

octaveはpackagesから入れると起動時にGLIBCXXなにがしというエラーが出ます
portsから入れるとmake途中で同じエラーが出ます

原因はglibcのバージョンの問題で

LD_LIBRARY_PATH

の先頭に

/usr/local/lib/gcc46

を入れてください。
一応正常そうに動きました。
0287名無しさん@お腹いっぱい。
垢版 |
2012/01/14(土) 20:02:14.37
for i=1:1:n
t=0:dt:t;
figure(i)
subplot(1,3,1)
plot(t,xx1(i,:))
grid on
title('Displacement-time')
xlabel('time')
ylabel('displacement')

subplot(1,3,2)
plot(t,xx2(i,:))
grid on
title('Velocity-time')
xlabel('time')
ylabel('Velocity')

subplot(1,3,3)
plot(t,xx3(i,:))
grid on
title('Acceralation-time')
xlabel('time')
ylabel('Acceralation')
hold on
end
0288名無しさん@お腹いっぱい。
垢版 |
2012/01/14(土) 20:04:41.86
上のコードは自分で作成しました。
もし、n=5であれば、5つの図を出したいのですが、
上記の場合ですと、1つ目の図はプロットされていますが、
2つ目以降のグラフは、grid とtitleなどが表示された図が表示されるだけで
プロットされてません。
なお、xx1やxx2はちゃんと値が入っているので数字的ミスはまったくないです。

forで回すのは、figureを作成するうえでやめたほうがいいんでしょうか?

よろしくお願いします。
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
レスを投稿する


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