データ解析ツールoctaveを語ろう Part 2
知る人ぞ知る強力なデータ解析ツール octave ...
unixを科学研究で使っている香具師には非常に心強い味方のはずだ。
matlab互換を主張しながら、微妙にバージョンアップを続ける
octaveについて語ろう。
そのPart 2です
前スレ
データ解析ツールoctaveを語ろう
http://pc12.2ch.net/test/read.cgi/unix/1086016412/ >>271 起動はUbuntuなどのUnixではとても速いです。起動がWindows用に最適化
されていないように感じます。 >>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とは別に起動してそこで編集してみてください。
>>271 >>263
Cygwin版octaveで、試してみました。FLTKマウスぐりぐりでも、Octaveハング
しません。ただし、マウスぐりぐり自体は少し変ですが。
# Cygwin版では、octave-forgeパッケージはauto loadでないですね。 >>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++ が
(少なくとも私の環境では)起動するようになった。
>>270
できました!
すごい。9の時点で動いたので、これからはnotepadにコードを作って
そのたびに5から8の動作をして確かめたいと思います。
本当にありがとうございました:D 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 matlab風に使いたいのでoctave workshopのinstaller付のwin版を
ダウンロードしたのですが、インストールはできたのに起動しません。
原因をご存知の方がいればお教えください。
>>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が使用できませんが。) 278です。
GUI Octaveをインストールしたのですが
Error message: Redirect console error: 3
と表示されてしまいます。
たびたび申し訳ありませんが、原因をご存知の片がいればお教えください。 >>281 私は,GUI に興味がないので使用したことがないので,お役に立てません。
ここで回答がつかなければ,GUI Octaveは生きているプロジェクトのようです
ので敷居は高いですが,GUI Octaveの英語のフォーラムで尋ねられるとよいか
と思います。
>>280
Octave-3.2.4をインストールしていない
に1票
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
を、ありがたく、よく読んでからな〜 FreeBSD 9.0Rが出たので入れてみたメモ
octaveはpackagesから入れると起動時にGLIBCXXなにがしというエラーが出ます
portsから入れるとmake途中で同じエラーが出ます
原因はglibcのバージョンの問題で
LD_LIBRARY_PATH
の先頭に
/usr/local/lib/gcc46
を入れてください。
一応正常そうに動きました。 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 上のコードは自分で作成しました。
もし、n=5であれば、5つの図を出したいのですが、
上記の場合ですと、1つ目の図はプロットされていますが、
2つ目以降のグラフは、grid とtitleなどが表示された図が表示されるだけで
プロットされてません。
なお、xx1やxx2はちゃんと値が入っているので数字的ミスはまったくないです。
forで回すのは、figureを作成するうえでやめたほうがいいんでしょうか?
よろしくお願いします。 >>288
それぞれの図を描くとき
drawnow
が入っていないのが原因なのでは? t=0:dt:t;
octaveにかけると、この文でエラーになるけど?
>>290
上のコードはこれ単独では動きません。
動かすには,tとdtの設定のほかにも,xx1とxx2の定義が必要ですので。
できれば,単独で動いて動作確認できるコードをあげていただけると
答えがつきやすいと思います。
ところで
t=0:dt:t; はループの外に出すでしょう。ループの中にいれるのは,
間違いでないけど意味が不明です。 やってみました。たしかにループでなく描画するとグラフかけますね。
バグかもしれません。
Octaveのバージョン,Windows,Mac,Linuxなどお知らせください。 >>
おっと, windows版octave 3.4.3で試してみました。 >>287
よくコードを読むと
t=0:dt:t;
がfor loopの中に入っているためn=2からは
区間ではなくなってますね。
t=0:dt:t
をloopの外に出すと正しく動くようです。
以上
Octave team で開発中のOctave-GUIの現在のスナップショット
http://www.geocities.co.jp/tmoctwin/files/OctaveGUI0.8.5.html
Windows上のスナップショットですが,Ubuntuでもほぼ同じイメージでした。 >>213
bode線図でこけるのは,control packageのせいではではなく,
fltk graphic_toolkit が対数軸でのマウスオペレーションがこける
ためのようです。
https://savannah.gnu.org/bugs/?35292
>>296
Scilabも5.4.0-alphaからコマンドウインドウの左右に
補助ウインドウが出るようになりました
ただしScilabは左が、変数&履歴ウィンドウ、右がファイルブラウザ
まあでもド素人にMatlab系のプログラミング技術を教えるだけなら
FreeMATでいいかもしれないです
インストールが簡単だし、dos画面じゃないし、
グラフもgnuplotとかではなくてネイティブだし >>298
FreeMATって、コントロールパックとかあるんでしたっけ?
伝達関数とか、それのインパルス応答とか、ボード線図かくやつ。
>>299
無いですね
tfもzpもstepもbodeも
制御をやる目的ならscilabの方がいいと思います
scilabはmatlabから入ると流儀がわからないかもしれませんが
慣れればどってことないです
octaveは限界が高いですけど
初心者がやるにはハードルも高いと思います
dos画面だけってのは初心者は面くらうでしょう
それで電卓代わりに使う目的ならfreematで十分という話です >>300
OctaveはもともとUnix由来のソフトですし,Windowsの開発陣のリソースは実に
薄い。UnixではTerminalでのソフトはまだ一般的ですし,UnixのTerminalは
コマンドプロンプトよりは使いやすい。
#Windows 2000からはコマンドプロンプトが正しい名称であって
#ドスプロンプトではないです。まあ,それのほうがつうじますが。 >>301 ちょっと舌足らずした。
とはいうもののUnixでもGUIのご時世なので,Octave本体もやっと
真剣にGUIインターフェースをつくりはじめています。
ちとお待ちください。 遅ればせながら、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、一瞬期待したのに…! >>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ですか。たしかにあるといいと思いますが今の開発陣のマンパワー
だとどうかなという気がします。そこらへんに強い人が開発陣に参戦される
ことを期待したいのですが。 octaveってデフォルトで上三角の連立方程式 U x = y を高速に解けないの?
ちょっと使ってみようと思ってググったら2003年の記事出てきたんだけど、
http://www.math.meiji.ac.jp/~mk/labo/text/a-remark-lu.pdf
これ未だにfixされてない? >>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回計算してる。上の時間は平均値 >>309
試してというか、インストールすらまだしてないw
ちょっとoctave使ってみようかな、ありがとう 久々です
少し訳の分からないエラーが出たので質問したいのですが…
今サクラエディタ上で次のようなプログラムを作ってました
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)
こんな感じのエラーでした
しかし窓でプログラムを制作した場合は何故かエラーなしでグラフを表示することができました
何でこんなエラーが出たのでしょうか?
^ >>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.
>>311 >>312
上のスクリプトをスクリプトmファイルと認識させたいならfunctionキーワードの
前に命令を入れる。例えば
1;
function dx = f(x,t)
dx = 1/(1+t^2);
end
1;は無意味な命令だがそのおかげで,octaveはこのファイルをスクリプトm
ファイルと認識できる。
>>313
解決しました!
ありがとうございます! 流石に課題丸投げは行けないと思うが、悩みに悩んだ結果積んでしまったので教えてください
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) >>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が正の整数かロジカルでないといけないので,こういう書き方は許されません。 >>316
(ip(k,n)に関して、kが整数ではないからエラーがでる)って書いてありましたね。
すみません。 >>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)
は一応等高線はでるが,目指しているものと同じかわかりません。 >>318
contourf(ip)
は
contourf(1:5, 1e-9:0.1:1, ip)
か
contourf(1e-9:0.1:1, 1:5,ip')
にすればよいかも。 >315-319
要は配列の概念とcontoturfの使い方がわかっていないのかなと思います。
ヘルプを読めばいいのですが,英語ですしね。無理もないかもしれません。
pdfをダウンロードできました。
もう少しいじる必要があると思いますが,基本的にはこれでいいのかな。
あとは自力で頑張ってください。 >315-319
要は配列の概念とcontoturfの使い方がわかっていないのかなと思います。
ヘルプを読めばいいのですが,英語ですしね。無理もないかもしれません。
pdfをダウンロードできました。
もう少しいじる必要があると思いますが,基本的にはこれでいいのかな。
課題ですので,あとは自力で頑張ってください。 まだ,公式には発表されていませんが,Michael氏がMSVC版のoctaveの復活に意欲
を見せておられます。さて,どうなるでしょうか。 まだ,公式には発表されていませんが,Michael氏がMSVC版のoctaveの復活に意欲
を見せておられます。さて,どうなるでしょうか。 いきなりの質問ですみません。
2つほど質問があります。
1.2段のワードの形式で論文を書いているのですが、
どうしても、ワードの大きさに縮小してしまうと、メモリどころか
線すらはっきり映りません。これをどう解決すればよいのでしょうか?
2.グラフを描くときに、色ではなく破線や点線はどのようなコードを
打てばよいのでしょうか?
なにとぞよろしくお願いします。特に1番目の質問が深刻です。
>>326
?? プロットした図が縮小すると見えなくなるということでしょうか。
ワードだからWindowsですよね。octave-3.2.4でしょうか。
gnuplotの画面をコピーしてワードに貼り付けているということでしょうか。
私はoctave の図をそのまま使わないので良くわかりませんが,
print コマンドでemfか何かでセーブした図を使ったほうがいいかもしれません。 octave-3.6.0で
1.1
ans = 1.10000000000000
single(1.1)
ans = 1.10000002384186
となります。これってどうなんですか?
どなたか教えて下さい。 >>329
補足するとsingle(単精度)の有効桁は10進に治すと約6-7桁なので
それ以上の桁数の数値についての保証はなく
>>330
の方がおっしゃるように,単精度の範囲では問題ないことになります。 octave 3.6.1-mingwで例えば
text(0.5,0.5,"{\pi}","interpreter","tex")
とやってもTeXでπで書いてくれません。
対処法を教えていただけませんか。
お願いします。 >>333 graphics_toolkit gnuplot
でなんとかなりませんか?
octave 3.6.1-mingwはgraphics_toolkitはfltkがデフォで,texはまだfltkでは
対応していないと思うので。 最近はJuliaというのが出てるらしいです
http://julialang.org/ >> 335
へー…。
そういえば、OctaveにもJIT Compilerを実装するプロジェクトが、
今年のGSoCに登録されてました。
これは、期待してもいいんでしょうか…
http://jit-octave.blogspot.jp/ SourceForgeに登録されてるWindowsバイナリの3.2.4、3.4.3、3.6.1
(MinGW版、いずれもクリーンインストール)を、現在XPで使用中
なのですが、3.2.4と比較して3.4.3、3.6.1の起動がやたらと遅くなって
おります(30secくらい?CPU100%)。
どなたか、回避策をご存知の方とかいらっしゃいませんでしょうか? >>337
全く同じ事で悩んでいたけど、
windows7/64bit+Corei7+16GBRAMに買い換えたら起動が速くなったよ
>>338
おぉ、やはり他の環境でも再現することがあるのですね。
ぐぐっても何も出てこないので、困ってました。
時間ができたら、起動シーケンスを追っかけてみることにします。Thx! >>337 >>338
MinGW版はXPではやたらと起動が遅くなるようです。
MSVC版だとそれほど遅くならないようです。 >>340
そうなんですか…情報感謝。
ただ、MSVC版は開発環境が揃ってないんで、自作octが
コンパイルできないのがネックです。
コンパイラだけでなく、dllとかもぼろぼろ抜けてるような… >>341
>コンパイラだけでなく、dllとかもぼろぼろ抜けてるような…
それはこまったことですね。 337の件、追加でご報告。
どうも、時間が掛かってるのはoctaveのmain関数が呼ばれる前で、
main関数に入ってしまえばコンソールにアクセスできるまで
1秒もかかってません。
dllのロードが重いのかとrebase.exeとか使ってみましたが、効果なし。
私にはここから先のアプローチが思いつかないのですが、どなたか
ヒントお願いします… octave-3.6.2 mingw版ですが、peaksなどなんでも良いのですがグラフを書いてもちゃんと描いてくれません。refreshすると描いてくれます。以前にもこんなことありましたが対処法はありますか。 345の件
graphics_toolkit("gnuplot")
putenv("GNUTERM","wxt")
でとりあえず希望どおりに動きました。 345の続き
putenv("GNUTERM","wxt")の状態でpeaksなどとしてグラフを描くと、グラフは
ちゃんと描いてくれますがwindowsのターミナルが大きくなってしまいます。
どなたか教えてくれませんか。
最近、書き込みが少なくて寂しいです。 答えてあげたいけど、Linux版を使ってるしグラフも余り書かないから答えてあげられない・・・ > 男性は聯合ニュースの取材に対し、
暴行を受けている間も警察は積極的に止めようとせず、
男らは韓国人を差別する暴言を吐いたという。
警察はチョンの見方ですから有り得ません。
日本人にどうしても有事を惹起せしめたい欧米軍産複合体の意図じゃん
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
誰か試してみません? Windows(MSYS)版を使ってますが、ファイル選択ダイアログを表示してパスを
取得できる関数、あるいはそういう機能が使えるようになるパッケージって
ないもんでしょうか? >>351
使ったことないのでよくはわからないが,uigetfile なるものがあるらしい。
ttp://www.gnu.org/software/octave/doc/interpreter/I_002fO-Dialogs.html#I_002fO-Dialogs おぉ、望みどおりのことができました。
GTKなのか見た目はショボいですが、機能的には十分です。 画像データを読み込んで行列にしたりそれを表示したりできますが、
この行列データに対して直線や円を描画する関数とかないですか? >>354
それは表示した状態に書き込むのか,
それとも画像の実体(行列)に書き込むのか? 行列に対してです。
一応Bresenhamのアルゴリズムとか調べてみましたけど、既に実装
されているものがあればそっちを使いたいなぁと。 そういえばScilab-5.4.0がβ3まで来ましたが
xcosが不安定で使い物にならないですね
5.3.3は安定なんですけど、AFFICH_mがバグって使えない(実行中に数値を表示しない) Scilabが5.4.0のβ3が不安定なのを認めてひっこめましたね
原因が特定できたらしいので
リリース時には急に落ちる事はなくなりそうです MatlabのGUIを自宅でやりたいんだけどOctaveでできますか? >>360
ありがとうございます
では、他のフリーソフトで行うことはできませんか?
どうしても自宅でやりたいんですが・・・ >>361
SIMULINKをやりたいってことですかい? imcropがoctaveにはないけどトリミングはどうすればいいの? 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つの独立変数を式にどう表せばいいのかが分かりません。 前のスレから
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に変えました。これで、動かし方を理解できました。
どうもありがとうございます。 [f,p]=leasqr(x,y,pin,"F")と、「x*x→x.*x」ですね。
ありがとうございました。
試してみます(月曜にならないとためせないんですが)。 Octave-3.6.2-vs2010-setup
って、ライブラリもインストールできるのはいいんですが、
pkg rebuild -auto
ってやってもロード出来ない(再起動しても、autoLoadされていない)
のはしょうがないんですかね?
(pkg load all って打てば大丈夫だから、スタートアップに入れておけばいいんだけどさ) >>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)について、各整数画像座標位置に対して与えられる
とある値(例えば標高値)を関数でフィッティングしたいんです。 参考になりますかどうか。
あと、複素数で表すことも出来ます。
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