Scilabを触ってみるスレ

このエントリーをはてなブックマークに追加
1名無しさん@3周年
目的は無いけれど、とりあえず触ってみよう。そんなスレ。

ちなみにフリーの数学臭いソフト。小難しい方程式を解いたりできるらしい。
Winで動く。ダウンロードはこちらから→  http://scilabsoft.inria.fr/
2名無しさん@3周年:03/11/14 00:03 ID:8VETlxwg
2ゲット。

まあ、俺は週末にしか触れそうにないわけだが。
PIDとかやれば工学だろ。
31:03/11/15 21:52 ID:9jGh88rP
とりあえず高校入試用の参考書解いていこうとして2ページ目で躓いた。

・無理数が無いっぽい
・素因数分解をする命令が見つからない

…前途多難。無理数は黙殺、単純な素因数分解のルーチンを書いてみる。
メニューの一番右のEditorってのが関数を書くための代物らしく、そこで
プログラムしてLoad into Scilabでオケー。

//my_factor::超ぶるーとふぉーすな素因数分解。
//入力チェックだけしてmy_factor_mainに投げます。
function [ret]=my_factor(arg)
//入力チェック
if ~(exists('arg')) then,error('***HIKISUU GA NAI!***'),end;//引数が無い
if ~('constant'==typeof(arg)) then,error('***TEISUU WO IRERO!***'),end;//定数じゃない
if ~(isreal(arg)) then,error('***JISSUU WO IRERO!***'),end;//実数じゃない
if ~(arg == int(arg)) then,error('***SEISUU WO IRERO!***'),end;//整数じゃない
if arg<0 then,error('***SEI NO KAZU WO IRERO!***'),end;//正じゃない
if arg==1 then ret = 1;return;end;
//本体は別。
ret = my_factor_main(arg,2);
endfunction
41:03/11/15 21:55 ID:9jGh88rP
…字下げ全滅かよ。泣ける。

//my_factor_main::素因数分解、つうか再帰な割り算。
//入力チェックしてないのでmy_factor()から呼ばれる。
function [ret] = my_factor_main(arg,n)
 if(modulo(arg,n)==0)then,//割り切れる
  arg = arg/n;
   if (arg == 1) then,
    //おしまい。
    ret = n
   else,
    //まだなんか残ってる。
    ret = [n,my_factor_main(arg,n)]
   end;
 else,
  //割り切れない
  ret = my_factor_main(arg,n+1);
 end;
endfunction
51:03/11/15 22:05 ID:9jGh88rP
今回のポイント:

function ... endfunctionでの関数作成
errorによる簡単なエラー処理
exists,typeof,isreal等による型等チェック
if ... then, ... else, ...end; による条件分布
行ベクトル返し
mod()でもrem()でもなく、modulo()

でした。で、スタートアップ時に自動でロードする方法はREADMEを読め、と。


61:03/11/16 01:29 ID:3d4KMMbl
酒飲みながらのんびりやっている訳だが、高校受験参考書5ページ目 x+(x-y) → 2x-y が出来ん。
つうかx+yっていう式の定義すらできん。
Mathematicaならこれぐらい10年前近く前でもマニュアル無しで出来ただろ。泣かすぞコラ。

Tips:
 pause - retrn:pause(Ctrl-C)で入ったローカルな世界からは、'return'で抜けることができる。
 環境および変数全般はメニューからセーブでき、ロードできる。
 chdir(pwd()+'\My Documents\Scilab') とかでカレントディレクトリを変更できる。
 clear('変数名')で変数を消去できる。
 who_user()でユーザ変数っぽいもの+αが表示される。

今回のポイント:
'...'+'...'で文字列の連結が出来る。

多項式の作成:
 poly([1,1],'x','coeff')//計数を指定して多項式を作る。1+x。
 poly([1,1],'x','roots') //解を指定して多項式を作る。1-2x+x^2。
 poly([1,1],'x')は、poly([1,1],'x','roots')と同値。1-2x+x^2。
 つうか、x = poly(0,'x')とすれば後は A=1+2*x^-+x*2 とかで簡単に定義できる。
71しかこのスレには居ません・・・:03/11/16 16:12 ID:3d4KMMbl
良くも悪くもUnixネイティブやね。.sciの行き当たりばったりな関連付け方法@Win。

ttp://www.dma.utc.fr/%7Emottelet/scilab/ から
ttp://www.dma.utc.fr/~mottelet/scilab/polyScilab1.0.zip
を拾ってきて例えば C:\Program Files\Scilab-2.7.2\polyScilab に展開。
で、polyScilab\callsci.bat のSCIDIRとWINを適当に変更、鬱陶しいので
copy /Y %SCIDIR%\polyScilab\scilab.ini %WIN%\scilab.ini
の行コメントアウト。

polyScilab\scilab.iniを何か別の名前にしてしまう。

エクスプローラか何かでフォルダオプション→ファイルの種類で
sci拡張子のopen動作にpolyScilab\callsci.batを関連付ける。

以上で一応動く。多分。

Tips:
 Scilab立ち上げのショートカットを弄って例えば↓を作業フォルダに指定。
  C:\Documents and Settings\(ユーザ名)\My Documents\scilab
 コントロールパネルのシステムの詳細設定→環境変数でユーザ変数
  変数名:HOME
  変数値:↑↑と同じディレクトリ。
 であまりムカつかなくなる。HOMEって大胆な環境変数を作るのがイヤなら
 scilab.starを弄る。
81:03/11/16 17:17 ID:3d4KMMbl
とりあえず、SymbolicToolboxとかに相当するものは見当たらない。
 s = poly(0,'s');
 A = 's+s';
 evstr(A)
で 2s 、ぐらいは単純化してくれるけど多変数も三角関数もダメ。
数値処理ソフトであって数式処理ソフトではない、ってことかね。

今回のポイント:
 ・evstr('...') で文字列を評価してくれるけど、数式処理能力は無い。
 ・似たようなものとして、execstr('...') で文字列を実行。
9相変わらず1だ。:03/11/17 00:20 ID:/fqMtMUq
Tips…?
 1:0.1:2 は1から2までの0.1刻みのベクトルを与える。
 sin(0:0.1:%pi)とかやるとそれぞれの値が得られるわけだ。
 1:5等、間の数字を省略すると刻みは1になる。

 2次元配列aはb=a(:)により列ベクトルに変換される。
 行と列の優先順位に注意。b(2)で読めるのはa(2,1)だ。つうか何故かa(2)でも読める。

 空行列、スカラー、ベクトルそしてマトリクスは定数ならtype,typeofで見ると一緒(constant matrix)。
 size()で行、列の数を得ることが出来る。hypermatrix (多次元配列)だとsize(size(行列))が大きくなるわけだ。

 length(配列名)は配列の要素数を返すように見えるが、多次元配列で怪しい。size(配列名,'*')が正解っぽい。


 ちなみにこれらのため、>>3-4の関数my_factorにベクトルとか突っ込むとエラー。難儀やね。
101:03/11/18 00:20 ID:XBzMDZGo
深度104。某謎の潜水艦スレと勝負できる日も遠くはあるまい。
とりあえず高校入試用の参考書を解いていくわけだ。

方程式の解(根): x^2+7x+10=0の解を求めよ
 A = poly([1,7,10],'x','coeff');
 roots(A)

約分 : (2x^3-18x)/2xを求めよ
 A = poly([0,-18,0,2],'x','coeff');
 B = poly([0,2],'x','coeff') ;
 [n,d]=simp(A,B)

ソート : 0.1,-0.3,2を小さい物から順に並べよ。また、最も小さい数を選べ。
 v = [0.1,-0.3,2] ;
 gsort(v,'g','i')
 min(v) 
 
二元一次方程式の解 : 2x+3y=1,5x-2y=12を解け。
 1/[2 3;5 -2]*[1 12]'
111:続き:03/11/18 00:24 ID:XBzMDZGo
プロット : y=-2x+4、y=3x+2のグラフを書け、等。
 ieee(2);
 xbasc();
 x = [-5:0.1:5]';
 plot2d(x,[-2*x+5 ((-4)./x)+2])
 plot2d2(x,[3*x+2 ((6)./x)+2],style=[3 4],leg='Hello@World!',axesflag=5,frameflag=8)
 plot2d3(x,-0.2*x+5,style=5,axesflag=5,frameflag=8)

↑のどうでもいいポイント:
 グラフをプロットする時に使うのは列ベクトル。
 グラフィックウィンドウクリアはxbasc();。
 零で除算のエラーはieee(2);。

今日のポイント:
 ベクトル/行列xに対し、x'で転置。
 xがベクトル/行列の時、1/xは行列演算。各要素毎は「./」、但し演算子の優先順位キモイ。
121:03/11/22 19:50 ID:AB82hL51
何故義務教育に「円周角」が入っているのだろう…とか思いつつ
参考書をパラパラめくっていたら最後のページにまで行き着いてしまった。

何か達成感が無いので教養のぺぇじ。乱数。
http://www001.upp.so-net.ne.jp/isaku/rand.html
メルセンヌ・ツイスタ(Mersenne Twister)って言葉だけ覚えてけばいいらしい。
13あげ:03/11/28 16:52 ID:Oy7hO4i6
あげ
14あげ:03/11/28 16:52 ID:Oy7hO4i6
>>8
s=%s;
A=s+s
15あげ:03/11/28 16:58 ID:Oy7hO4i6
>>10
x=poly(0,"x");
clean(roots(x^2+7*x+10))

16それでいいんだけど:03/11/28 17:03 ID:Oy7hO4i6
>>10
A=[2 3
  5 -2];

B=[ 1
  12];

inv(A)*B

と書くとカクイイ
17名無しさん@3周年:03/11/28 17:07 ID:Oy7hO4i6
つっか、>>1さんの求める物は
http://phe.phyas.aichi-edu.ac.jp/~cyamauch/maxima/
の方が近いと思われ
181:03/11/29 01:01 ID:Z3LhkJCO
(>>13-17)
まあお茶でもどうぞ(AA略。べんきょになります。

>>17
MAXIMA http://science.2ch.net/test/read.cgi/sim/1011102458/
むう。Scilabは確かに期待していたものとは違うのでちと困ってるんですが…
でも制御の方のマニアックな関数も触ってみたいんですが…
まずはcygwin上で動くか試してみます。

一応解説orTips:
>>14
 ・%s: 謎の演算子かと思いきや、スタートアップファイルscilab.star中に%s=poly(0,'s')とか書いてある。
 ・>>8のevstrはとりあえず無かったことに。

>>15
 ・clean:計算誤差で発生する小さい数を掃除してしまう。

>>16
 (´・ω・`)
19名無しさん@3周年:03/11/29 16:56 ID:UpPmzIH1
おい、入り口の入り口のところをおしえてくれよ
ダウンロードしたあとどうしたらいいんだ?
20名無しさん@3周年:03/11/29 18:01 ID:41gGgDVd
octaveはatlas使ってsse2使えるようにすれば10倍程度速度あがることもあるけど
scilabだとなかなかうまくいかないよ。
21名無しさん@3周年:03/12/01 10:05 ID:c4dZO+on
>>19
入り口: http://www.scilab.org
Windows版なら、ダウンロードして scilab272.exe を実行すれば、
普通にインストールされますので、普通にSCILABのショートカットを
「スタート」から起動すればいいですが?

Linux版とかは 知らね。

22名無しさん@3周年:03/12/01 10:15 ID:c4dZO+on
あと
diary("log.log")
というのもあるんだが、ファイルが存在するとエラーになるので
(アペンドしてくれりゃいいのに)
今ひとつ使い道がわからない。
23名無しさん@3周年:03/12/01 10:17 ID:c4dZO+on
>>18
ScilabとMAXIMAは、例えば
MATLABとMathematicaは、どっちもカバーしきれていない部分があるので、
それと同じ事ですね。

scilab.star っていうのがあるのか。それみて初めて
$=poly(0,'$')っていうのが使えるのを知りました。

24名無しさん@3周年:03/12/02 12:28 ID:vbLl7BpA
SCICOSの使い方

scicos();

以上。
251:03/12/02 23:02 ID:ccBQuWad
Windows版MAXIMAがちゃんとあったのでインストールしました。

ラプラス変換〜
LAPLACE(sin(t^2),t,s);
よくわからんけど数式がやたらと出てブラボー。
調子に乗って逆ラプラス変換…ILT(%*s,s,t)…通らない模様(w

私はしばらくMAXIMAに潜ります。線形代数あたりまで復習したら
こっちに帰ってきたほうが便利な面も出てきそうな雰囲気。
261:03/12/02 23:14 ID:ccBQuWad
>>24
俺みたいな素人さんがいきなりそこに行っちゃうと何やっていいのかサパーリ。
倒立振り子ネタぐらい使って遊べるようになりたいんですけどね。
27名無しさん@3周年:03/12/03 09:59 ID:87nvEw8o
SCICOSの解説しているページってポンポコさんのサイトくらいしかないもんね
28名無しさん@3周年:03/12/03 10:00 ID:87nvEw8o
>>25
つっかあんた、MAXIMAを触ってみるスレをたててくれよ(w
29名無しさん@3周年:03/12/04 22:38 ID:Eb1bNH80
>>27-28
MAXIMAのインストール以外に関するサイトもポンポコさんの所と後1つぐらいしか無いですね?(w
今はちょっと忙しいんだけど手が空いたらホントにMAXIMAスレ立てるかもしれません。
301:03/12/07 00:38 ID:o7fvwPv1
結局さっさとScilabに戻って遊んでるし。判る人には常識かもしれないのだが、
VC++でのexampleディレクトリのサンプルコンパイル方法メモ。

まず、一応ActiveTclをインストール。
ScilabディレクトリのMakefile.incl.makがVC++用のnmakeのインクルードファイルなんで、
こいつの中、Tcl/Tkの項を、
 TCLTK=c:\Tcl
 TKLIBS="$(TCLTK)\lib\tcl84.lib" "$(TCLTK)\lib\tk84.lib"
とかに書き換える。
PVMの項は関係なさそうなのでコメントアウト。
 #DPVM=-DWITH_PVM

んで該当exampleディレクトリで
 nmake /F makefile.mak
で通る。あとはそのディレクトリのREADME通り。
311:03/12/07 00:50 ID:o7fvwPv1
ちなみにMAXIMA最初の一歩

ヘルプ:DESCRIBE(〜); 、もしくは ? 〜; 
とりあえず、Windows版ではto_lisp();が死んでる臭い。quit();も通じない。
下半分は何を放り込んでもISOでエンコード。
MAXIMA>>って出たら:qって打て。

# :!=。
= :等号。
: :割り当て。
:= :関数定義。
$はただの出力抑制。
321:03/12/07 00:54 ID:o7fvwPv1
二歩目。ここらへんさえ何となく覚えてればMAXIMAは数式処理電卓として活躍してくれるものと思われ。

DIFF,INTEGRATE:微分と積分。
DIPENDS:関数の従属性を宣言する、つまりkはtの関数じゃよ、とか。LAPLACE()はこれを黙殺。
LOAD(FOURIE)、FOURIER、FOUREXPAND、FFT,IFT, POLARTORECT 、RECTTOPOLAR :フーリエ周り
LAPLACE、ILT:ラプラス変換。
ALGSYS:連立方程式を解く。
ALLROOTS :多項式の解を求める

LET()関連:置き換え規則を作る。
SUBLIST:リストから条件を満たす要素を返す。
SUBST (a, b, c) :要素の入れ替え。

XTHRU (exp) :共通の分母で纏める。
%E,%I,MAX,MIN,MOD,SORT,SQRT,EXPAND,EV,EVAL,IS.

MAXIMAネタここまで。
33名無しさん@3周年:03/12/07 19:49 ID:GRODvz+y
>>27
ttp://atmori.info/engineer/scilab/scicos/

前は scilabの説明しかなかったんだけど、軽く導入部の触りくらい説明してある。
34名無しさん@3周年:03/12/07 19:50 ID:GRODvz+y
351:03/12/07 20:53 ID:o7fvwPv1
>>33
イイ(・∀・)!

ちなみに今コンパイル待ち。
361:03/12/07 22:10 ID:o7fvwPv1
intersciが言うこと聞かない。コンパイラがエラー吐いた事しか判らん。
つうわけでソースを落としてきてScilabをVC6++でコンパイルした。手順を以下に。

注:Tcl/Tk8.4ではバージョンコンフリクト。
 8.4持ってるなら素直にアンインストールしてhttp://downloads.activestate.com/ActiveTcl/Windows/8.3.5/あたりからやり直すのが吉
 んで、Scilabのbinディレクトリに*83.dllをコピーしとく、と。
 8.4はちょっといじれば見掛けちゃんと動かせるけど根が深い臭いので幸せになれそうにない。

VC++のvcvars32.batをよくわからんが実行、
Makefile.incl.makのコンパイルオプションに/GX付けて、後>>30とかで適当にパス通す。
で、Scilabルートからnmake -f Makefile.mak。
一回目はf2c.exeがねえよって怒られるかもしれないけどもう一回やればオケー。
PVM関連が文句を言ってる気がするが気にしない。

以上で動いてるっぽい。testsディレクトリのmaketests.sceはノーエラーで通る。
これで何とかいろいろ覗き込む下地の出来上がり。

関係ないが、f2c.hの2行目からのコメントは微笑できる。小学館ってのがまた。
37名無しさん@3周年:03/12/09 08:36 ID:/Z/nrmmR
>>30
exampleディレクトリってコンパイルすると、何かいいことありましたっけ?
それよりSCILABそのものをコンパイルして、日本語(っていうか漢字)
が化けないようにしてくれたら神
381:03/12/10 00:57 ID:hZUkwdVo
>>37
examplesディレクトリには独自関数のScilabへのリンク方法やら外からScilab を呼ぶ方法やらが書いてあるようで。
exe実行するとScilabを勝手に叩いてグラフ書いたりするデモも。でもC++通らないんで下調べ中です。

ローカライズ、彷徨いついでに調べてみました。書置き。

入出力系:
 wtwxt.cのTextPutStr()、TextGetChE()は文字をバイトの細切れにしてTextPutCh()に放り込んでるだけ。
 TextPutCh()はUpdateText()を呼ぶ。こいつはおなじみのAPI、TextOut()を呼ぶ。これで2バイト文字は入出力ともに全滅。
 …read_line()呼んでるのは誰なんだ。見つからん。

メッセージ関連:
 error.fとmsgs.fにエラーメッセージの羅列。FORTRAN、f2cがマルチバイト文字通すかどうかは謎。
 basout()本体はroutines\sun\にあり、ぐるっと回って上のTextPutCh()に。

まあここらへんまでなら潜りついでに叩けるかも。
391:03/12/10 01:06 ID:hZUkwdVo
本体のマルチバイト化を思いついた人へ(まあ居ないだろうが)。
routines\system\getsym.fからgetch.f、cvname.f、cvstr.cあたりっぽい。
原理的には可能臭いけど俺には無理。神遠し。
401:03/12/13 22:28 ID:Zv1+KLU/
入力とかは一応日本語扱えるようになったぞ。IMEが変な所に表示されるけど。
多分、dllを入れ替えりゃオケー。でも8MBなんでウプする場所が無い。誰か要る?

ちなみに、エラーメッセージはコードを日本語に書き直しても通る模様。
41名無しさん@3周年:03/12/14 09:45 ID:M35EtImH
>>40
scilab.orgへ、「日本語β作ったからためしてみてちょ」ってメール希望。
42名無しさん@3周年:03/12/15 11:48 ID:Bihst8Cd
>>41
オイラもきぼん
431:03/12/15 18:12 ID:XyStjyNP
>>41-42
αですってば。SJISだし。むう。
とりあえずYahooGeocitiesに店出してみます。
44名無しさん@3周年:03/12/16 14:06 ID:pKhuzBih
>>43
是非希望
451:03/12/20 16:12 ID:8ZulvDZc
46名無しさん@3周年:03/12/20 18:57 ID:GIr12gsF
>>45
==========
scilab-2.7.2
Copyright (C) 1989-2003 INRIA/ENPC
==========



Startup execution:
loading initial environment

-->disp ">>1は神"

>>1は神

-->
47名無しさん@3周年:03/12/20 19:24 ID:KN8UyZmo
http://f24.aaacafe.ne.jp/~poemu/
愛のポエムサイト
48名無しさん@3周年:03/12/20 20:07 ID:nScXwsbV
>>45
すいません、そのLibScilab.dllを置き換えて使うと、うちの環境では
s=%s;
G=1/(s+1);
t=0:0.1:10;
sys=syslin("c",G);
y=csim("step",t,sys);

wn=0;xbasc(wn);xset("window",wn);xselect()
plot(t,y)

wn=1;xbasc(wn);xset("window",wn);xselect()
bode(sys)

で、bode(sys)でハングします。どうでしょか?
491:03/12/20 21:13 ID:8ZulvDZc
地雷踏みご苦労さまです。
(つうかまともにScilabを使ってる人がいたのか。いきなりバグ報告されてびびった。)

で、今確認しました。確かに。
で、原因はコンパイル時に色気を出した最適化オプション(/O2)。
誰ですかいい加減なコーディングしてるのは?

修正したものを上げておいたので入れ替えお願いします。
50惜しい!:03/12/21 10:28 ID:4XUhX+4y
>>49
bodeのハングが無くなりました。乙です。
あと、

a=1.234 ; printf("1)ans=%f\n",a)
a=1.234 ; printf("2)答えは=%f\n",a)
a=1.234 ; printf("3)%s%f\n","答えは",a)

で2)が化けます。
超期待していますので、がんがって下さい
511:03/12/21 21:46 ID:hmahn+ef
しゅーせー。

ちなみに複数行に渡る日本語をエディットしようとすると死にます。
ゴマカシの所為なんだけど修正がバッファのの構成上ちょっと苦しい。
52名無しさん@3周年:03/12/22 10:46 ID:OWXt2jTD
VineLinux2.7にscilab2.7のRPMを入れようとしたら入んない。
INRIAで公開されているRPMはREDHAT用なのか?
どうにかならんか?
53名無しさん@3周年:03/12/22 20:03 ID:g0cvXjq0
>>52
素直にWindows版使え
54OKです(・∀・):03/12/22 20:17 ID:g0cvXjq0
s=%s;
printf("1次遅れのパラメータを入れてください(1とか)");
a=scanf("%f");
G=1/(s+a);
t=0:0.1:10;
sys=syslin("c",G);
y=csim("step",t,sys);

wn=0;xbasc(wn);xset("window",wn);xselect()
plot(t,y)

wn=1;xbasc(wn);xset("window",wn);xselect()
bode(sys)
---------------------------------------------
ちゃんと通ります。もう少し使い込んでみます。
有難うございました。
551:03/12/23 09:07 ID:gHIRChx+
>>52
Linux解らん…

>>54
また何かあったらよろしくお願いします。
561:03/12/31 22:34 ID:G3OEteCy
保守。よい御年を。
571:04/01/12 14:12 ID:iKzGD9so
深度200。
58名無しさん@3周年:04/01/16 09:06 ID:Ej6dcuiM
あけおめことよろ
59名無しさん@3周年:04/01/17 11:38 ID:GxyAqJln
よろ。

教養のページ。Googleのページランク計算法について。
http://www.kusastro.kyoto-u.ac.jp/~baba/wais/pagerank.html
正直わけわからん(w

ちなみにScilabだとeig()の替わりにspec()やね。
60名無しさん@3周年:04/01/26 11:00 ID:4MkKxq/7
>>59
scicosの日本語化よろ
61名無しさん@3周年:04/01/26 23:50 ID:sXjNktoO
>>60
メニューとステータスバー以外に言葉でてこないじゃん…

ちなみに
test1 = 'disp(''まいどー'')';
test2 = 'disp(''どうもー'')';
Actions = ['execstr(test1)';'execstr(test2)'] ;
addmenu('てすと',['てすと1','てすと2'],list(0,'Actions'));
が通るのでメニューの日本語化は可能。
ただしmacros\scicos内のsetmenu/unsetmenu/addmenu/delmenu周りを全部書き換えにゃならん。骨。
62名無しさん@3周年:04/01/28 15:52 ID:IzfbrY4d
>>61
SCICOSにブロックを何か置いて、
Object/Identification でそのブロックをクリックすると、
ブロックに名前を付けられるのですが、それが漢字で表示できナインすよ。
つっか、MISCのID FONTSもそうなんだし。
63名無しさん@3周年:04/01/30 20:01 ID:XVWnLO8B
>>62
なるほど…SCICOSまだ使ってないので知らんかった。
ちょっと見てみる。
64名無しさん@3周年:04/02/27 10:30 ID:b7cdRtm/
気体あげ
65名無しさん@3周年:04/04/10 21:29 ID:hZUkwdVo
密かに保守。
66名無しさん@3周年:04/05/11 00:16 ID:znOhZS94
定期あげ
67名無しさん@3周年:04/05/25 22:07 ID:uqf7vAOF
保守sage
68名無しさん@3周年:04/06/16 15:51 ID:HL4RxvM7
つっか、scilab-3.0RC1
h_ttp://scilabsoft.inria.fr/get.html
f_tp://ftp.inria.fr/INRIA/Scilab/release_candidate/Scilab-3.0-RC1.exe
69名無しさん@3周年:04/07/22 22:05 ID:NZFG5BJE
ちょっと遅いけど,Scilab 3.0出てますよ.上げ.
ttp://scilabsoft.inria.fr/

70名無しさん@3周年:04/09/03 15:34 ID:m56byfG8
SCILAB3.0正式版出てますのでage
71名無しさん@3周年:04/09/11 22:16:52 ID:WqMtcUnl
http://science3.2ch.net/test/read.cgi/kikai/1094737017/
制御理論も余裕で扱えるてのひら計算機。
http://www.geocities.com/xxxsplinexxx/filez2.html
Linear systems & Control Pro(zac)
http://www.geocities.com/xxxsplinexxx/lin_help.html
古典制御から状態空間法までOK。
Octaveなどと違って解が数値でなく数式ででるので、
別のパッケージと組み合わせて安定条件の成り立つパラメーターの範囲などを
不等式を解いて明確に示すことが出来たりする。
http://triton.towson.edu/users/bbhatt1/ti/MathTools.htm
この中のisolveで一変数高次不等式が解けるので、それを組み合わせて
フルビッツ行列出して安定条件を求めさせてみた。
http://up.goraa.info/gazou/img-box/img20040902201444.jpg
http://up.goraa.info/gazou/img-box/img20040902201454.jpg
72400:04/10/03 18:58:05 ID:W8zdde1E
WIN版のSCILABで
SCICOSで波形出力の回路つくるまではできますが
音声ファイルに出力するにはどういう設定すればいいんですか
73名無しさん@3周年:04/10/05 08:31:53 ID:/2QdZqBO
>>72
help wavwrite
7472:04/10/09 23:33:20 ID:OoOgt6ID
ありがdです
75名無しさん@3周年:04/10/30 16:24:26 ID:qm4HFvm4
- 3.331D-16のD-16ってどゆこと?
76名無しさん@3周年:04/10/31 10:31:03 ID:ewQCUOoN
>>75
DはEと同じ。但し、倍精度の意味。
77名無しさん@3周年:04/11/23 02:58:21 ID:EB+zDPLt
>>12
メルセンヌ・ツイスタを初めて使ったけど痺れた
M系列なんか目じゃ無い
78名無しさん@3周年:04/11/27 15:45:34 ID:gBOdJxOC
質問なのですが・・・

これ、微分方程式は解いてくれるけど、微分はしてくれないんでしょうか。
関数の導関数を求めさせたいんですが・・・
それぐらい自分で手計算でやれということでしょうか

一応differentiateとかで調べてみたんですけど、見つかりませんですた
79名無しさん@3周年:04/11/27 16:56:48 ID:ZfBXZ4dl
>>78
それは数式処理。MAXIMAの話が>>31-32でちょっと出てるね。
80名無しさん@3周年:04/11/28 13:44:38 ID:oItCfyeJ
>>79
1) http://maxima.sourceforge.net/ から http://prdownloads.sourceforge.net/maxima/maxima-5.9.1.exe?download を辿り、ダウンロードしてインスト
2)起動したら
(C1)って出ているので、以下、
(C1) display2d:false$
(C2) diff(sin(x^2)+exp(x^2+1),x);
と打つと、微分されて
(D2) 2*x*COS(x^2)+2*x*%E^(x^2+1)
と表示される。scilabと使い分けて幸せに暮らしてください。
(ただ、ゴタブンニモレズ、MAXIMAはlispなので、覚悟が必要です。僕に足りないのは覚悟だ。)

81名無しさん@3周年:04/12/09 11:32:49 ID:BOAibH2f
微分はdiffコマンドでできますよ。
82名無しさん@3周年:04/12/10 18:26:21 ID:/7aGS8ze
>>81
それは
t=0:0.1:%pil
y=sin(t);
dy=diff(y);

ってな数値微分であって、>>78の求めているものではないと思われ
8378:04/12/10 21:41:10 ID:TeygnH9q
もともとの意図は、>82氏の通りだったりするのですが、、、

しかし、ニュートン法なんかに使う限りはそれでも大丈夫そうですね?
>81どうもです。
84名無しさん@3周年:04/12/21 23:32:03 ID:oB8MPv7z
インストール後GUI版起動時にVisualC++のランタイムエラーが発生するのですが、
何が問題なのでしょうか?
コンソール版でもplotコマンドなどでウィンドウが開くときに表示ができずに固まります。
同様の症状が発生して解決した方がいらっしゃいましたらアドバイスお願いします。
85名無しさん@3周年:04/12/22 00:13:20 ID:28pam///
>>84
OSとSCILABのバージョンは?
86名無しさん@3周年:04/12/22 00:20:49 ID:C+08ZLBu
OSがWinXPSP2でSCILABが3.0です
87名無しさん@3周年:04/12/22 01:58:39 ID:28pam///
とりあえず、Scilab2.7にしてみては?
ftp://ftp.inria.fr/INRIA/Scilab/distributions-2.7
88名無しさん@3周年:04/12/22 02:00:05 ID:28pam///
89名無しさん@3周年:04/12/22 02:16:26 ID:C+08ZLBu
>>88
ありがとうございました。
でも2.7も3.0のunstable版も試してみましたが残念ながら同じエラーが出ました。
システム自体が不安定になってるのですかね。
90名無しさん@3周年:05/03/15 10:57:11 ID:oyfEm+Ai
フリーだしいろいろわやわやとさわれそうなんだけど。
odeの取り回しというかテクニックというかで躓いてしまいました。

質点mを重さのない長さlのひもでつるし初速を角速度で与える。

振り子の角度と書く速度はodeで容易に計算できますが
計算途中で状態変数が(いずれかでも両方でも)条件を満たしたとき
モデルを変更したりすることはできないのでしょうか

上の例で言うとたとえば角度が鉛直下方向を0(rad)として計算途中π/3(rad)
となった瞬間に質量が2mに変わるというような計算はどうすればよいのでしょうか。
できれば単一のodeでまわしたいのですが。
シミュレーションとしては非現実的なモデル変換ですが
odeを使う手法でほかにもいくつか使いたい場面があるので
どなたかお分かりになりませんか。

ode関係ではode,odeset,oderootのヘルプを呼んでみましたが
いまいち使えないか自分の理解が足りないようです。
91名無しさん@3周年:05/03/18 01:39:00 ID:RTqLxYC4
>>90
odeで解く関数はdeffで定義するので、deffの中でif文を使えばいいんじゃないの?
92名無しさん@3周年:05/03/18 11:00:49 ID:mmA6pQew
>>91
なるほど1関数内は1モデルで頭が固まってました。早速試してみます。
ありがとうございます。
93名無しさん@3周年:2005/05/14(土) 07:50:07 ID:u+kE+hvL
94名無しさん@3周年:2005/06/13(月) 12:04:06 ID:ReCVtelO
保守age
95名無しさん@3周年:2005/06/30(木) 16:29:43 ID:Js55t9Gz
ppmファイルの画像処理をしたいんだけど,
そもそも,5次元のデータてプロットできないんですか?
つか,SCILABじゃ無理?
96名無しさん@3周年:2005/07/18(月) 19:44:34 ID:SDCH6uqP
97名無しさん@3周年:2005/11/04(金) 19:40:41 ID:rI7GkbpE
保守保守
98名無しさん@3周年:2005/11/24(木) 23:53:47 ID:4gM91QsB
99名無しさん@3周年:2005/11/30(水) 19:46:08 ID:/xx5sTSu
制御やるならRよりはこっちが良いのかな?
MATLAB/Simulink相当にはとても及ばないけど、MATLABは個人だと高過ぎるな。
Cで書くのは面倒すぎるし
100名無しさん@3周年:2005/11/30(水) 20:33:35 ID:ltovIhfH
100
101名無しさん@3周年:2005/12/04(日) 20:25:04 ID:tYMhdjp3
>>99
だな。
s=%s
H=5
G=1/(s+1)
GFB=syslin("c" , G/.H )
bode(GFB)

http://www.imgup.org/file/iup128571.png
102名無しさん@3周年:2005/12/08(木) 19:54:24 ID:kLVi7ali
for k=1:10
y= y+1
end

みたいなfor文でyの変化をグラフにするにはどうしたらいいんですか?
103名無しさん@3周年:2005/12/10(土) 16:54:55 ID:h1kAKWCV
>>102
こういうことが望みか?


y=1;
for k=1:10
y=y+1;
mtlb_plot(k,y,'ro');
mtlb_hold("on");
end
104名無しさん@3周年:2005/12/10(土) 19:29:38 ID:/RLSl4O/
>>103
それです!そんな方法があったんですね。
上手くいきました。ありがとうございました。
105103:2005/12/11(日) 15:57:23 ID:q8F7hK35
念のためmatlab互換コマンドを使用せずに
scilabのコマンドを利用する例

y=1;
set(gca(),"auto_clear","off")
for k=1:10
y=y+1;
plot2d(k,y,style=-1);
end
106SCILAB4.0:2005/12/26(月) 18:45:44 ID:yGTc/B5g
http://www.scilab.org/
Release Candidate 4.0 is available.
107scilabuser:2006/05/04(木) 17:23:22 ID:WZhhjrso
TAをやってる授業でScicosを使うことになったのと
研究室のM1にScilabを教えないといけなくなったので
こんなの作ってみました.

ttp://scilabuser.exblog.jp/

Simulinkに戻りたいが,お金の都合で無理らしい・・・.
108bo!:2006/05/26(金) 13:33:40 ID:1QGwhKJy
scilabのプログラムを考えてほしいんです。お願いします!!
「100000までの素数をすべて求めよ。」
誰かほんとにお願いします><。
109名無しさん@3周年:2006/05/28(日) 22:57:11 ID:gNjOxOR3
>>108 効率悪いけど。まぁループ終端をsqrt(N)にするとか、適当に直して。

lines(0)
N=100;

printf("N=%d\n\n",N)
p(1:N)=1;
p(1)=0;
for i=2:N
for j=i+i:i:N
p(j)=0;
end
end
for i=1:N
if p(i)<>0 then
printf("%d\n",i)

end
end

disp "finish"
110名無しさん@3周年:2006/05/28(日) 22:57:39 ID:gNjOxOR3
-->N=100

2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

finish
111名無しさん@3周年:2006/05/29(月) 13:07:31 ID:7GVgeN7V
すみませんがこの問題教えてください。。。。

x,yを1000までの自然数として
y^3=x^2+4 をみたすx,yの組をもとめよ

今日の17時が提出期限なんです↓
112プジョル:2006/05/29(月) 13:14:37 ID:7GVgeN7V
申し訳ないのですが、この問題をなるべく早く解いてもらえませんか?今日の5時までが期限なんです。お願いします。
自然数nに対し、
n=a^2+b^2+c^2+d^2
を満たす整数a,b,c,dを求めるプログラムを作れ。
です。お願いします
113名無しさん@3周年:2006/05/29(月) 13:52:20 ID:g7vqhy2y
ほいっ
114名無しさん@3周年:2006/09/04(月) 14:27:53 ID:9TlKPD9D
MacOS10.4 でScilabやってマス
playsnd()等音声出力ができないんですけど、何かほかに設定いりますか?
エラーメッセージは
>Audio capabilities not available
です。
115114:2006/09/04(月) 14:32:57 ID:9TlKPD9D

Scilab 3.11 と 4.0でやってみますた
上のエラーメッセージは 3.11のもので 4.0では
Writing Wave file: Microsoft PCM format, 1 channel, 22050 samp/sec
44100 byte/sec, 2 block align, 16 bits/samp
Finished writing Wave file, 132302 data bytes
と正常らしいですが、音はでませんです。
116名無しさん@3周年:2006/09/04(月) 23:30:28 ID:fBT/fxRq
playsndのsciファイルを見るとPlaySoundという関数?で実際の再生を行なっているので
こいつをscilabのunix関数とMacOSXのopen関数の組み合わせにすれば
音を鳴らすことはできると思う。
117114:2006/09/05(火) 22:02:34 ID:JROw1EaZ
即レス感謝です。
if MSDOS then
savewave(TMPDIR+'/_playsnd_.wav',y,rate);
PlaySound(TMPDIR+'/_playsnd_.wav');
return
else
if aplay<>'/dev/audio' then
// should send aplay to PlaySound
savewave(TMPDIR+'/_playsnd_.wav',y,rate);
PlaySound(TMPDIR+'/_playsnd_.wav',aplay);
これですね。
とりあえずTMPファイルをsavewave で作成してからそれをPlaySound関数で読み出しているっていう手順みたいです。
エラーメッセージからはとりあえずwavefileは作成できてるみたいですねー。
>こいつをscilabのunix関数とMacOSXのopen関数の組み合わせにすれば
実際どうすればいいか分かりません、スンマセン。octaveでは試してないですけど音出るみたいなんで、インスコしてoctaveのも見てみます〜。
118名無しさん@3周年:2006/09/05(火) 23:28:17 ID:n7WoAD8u
PlaySoundの行をを以下に書き換えたらできないかな?
(playsnd.sciからplaysnd.binを作り直す必要があるかも。
.sciファイルと.binファイルの関係は忘れました。)

unix('open '+TMPDIR+'/_playsnd_.wav');

ただし、デフォルトではiTunesが立ち上がると思いますので
ちょっと不便です。

Macのコマンドラインから音を再生するプログラム
(例えばplaysoundってのがあります)がインストール
してあれば

unix('playsound '+TMPDIR+'/_playsnd_.wav');

のように書き換えれば(playsoundというプログラムが
PATHの通っているディレクトリに入ってる必要が
あります)できると思います。

119名無し:2006/11/11(土) 04:11:29 ID:dpcozmDI
tan(x)=3をニュートン法で解くって、どうやったらいいですか??
120名無しさん@3周年:2006/11/11(土) 09:56:25 ID:v4O4lKQR
>>119
1)
atan(3)


2)
clear fx
function y=fx(x)
y=tan(x)-3
endfunction

fsolve(0,fx)

121名無し:2006/11/11(土) 11:54:09 ID:3TMpmDdE
早速のお返事、ありがとうございますっ
122名無しさん@3周年:2006/11/23(木) 12:08:33 ID:/va2RJ8W
scilab 4.0でint16の挙動がWindows版とLinux版(どちらもバイナリ版をインス
トールしました)で異なっているんですが、どちらが正しいんでしょうか。

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

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

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

! 32767 -32768 -32767 !
------------------------------------------------------------------
123名無しさん@3周年:2006/11/23(木) 12:33:44 ID:HXGqiJ6s
>>122
32769っていう時点で想定外なので、どーなっても構わないということになっているので
気にするな、っていうかそんな数入れるな。
124名無しさん@3周年:2006/11/23(木) 18:56:27 ID:/va2RJ8W
>>123
範囲外の値に対する動作は未定義ってことですね。

「Scilabで学ぶディジタル信号処理」という書籍で、sign bitが立つ値
は負値に変換されるという解説があり、Linux版のバグなのかと思ったもので。
125GCofSS:2006/12/07(木) 22:57:11 ID:kmVMOtUV
Scilabを画像処理に使っているのですが、以前Matlabで画像処理をやっていて急遽freeの
Scilabに書き換えなきゃならなくなって書き換えを行っているのですが、Matlabで使用している
imagescに替わるScilabの関数を教えてください!
126名無しさん@3周年:2006/12/08(金) 12:31:19 ID:MlXhpj8S
>>125
imagescって、ナニやるものですか?
SIP (Scilab Image Processing)とか?
127名無しさん@3周年:2006/12/08(金) 13:50:08 ID:6AyRveCp
>>126
そうですね。imagescとはデータをスケーリングし Image を表示するものです。
SIPにあるいろいろな関数を試してみたのですが、なかなかうまくいかなくて・・・。
128名無しさん@3周年:2006/12/23(土) 11:26:59 ID:9J/FO075
4.1age
129名無しさん@3周年:2007/01/01(月) 20:27:10 ID:LWLGrPE6
SCILAB-4.1をダウンロードしたのですが英語だらけで分かりません(>_<)すいませんが使い方を教えていただけないでしょうか?
130名無しさん@3周年:2007/01/02(火) 18:13:41 ID:G1wRsfB6
>>129
scilab の検索結果のうち 日本語のページ 約 81,200 件中 1 - 50 件目 (0.24 秒)
http://www.ecl.sys.hiroshima-u.ac.jp/scilab/introscilab/introscilab.html
131名無しさん@3周年:2007/01/06(土) 00:24:26 ID:4J7LQeFf
根号の部分が小数表示されるのですが、根号のまま表示させることは可能でしょうか?
132名無しさん@3周年:2007/01/06(土) 00:50:27 ID:714NIKRq
かたつむり
133名無しさん@3周年:2007/01/06(土) 10:33:38 ID:tAuRVBI1
>>131
MAXIMAじゃないんだから、計算しちゃうんじゃない?
134名無しさん@3周年:2007/01/06(土) 11:44:46 ID:M/ef4eID
-->a=0 と入力すると
a =

0. と自動的に表示されますが

これを表示させない方法はありますか?つまり
-->a と入力しない限り
a =

0. が表示しないようにしたいのですが。

よろしくお願いしま。
135名無しさん@3周年:2007/01/06(土) 11:45:44 ID:M/ef4eID
136名無しさん@3周年:2007/01/06(土) 13:12:59 ID:lormVx9K
>>134
-->a=0;
ではダメなの?
137名無しさん@3周年:2007/01/06(土) 13:45:11 ID:M/ef4eID
>>136
ありがとうございました、それで出来ました(・∀・)
138名無しさん@3周年:2007/01/11(木) 19:27:30 ID:YWhcPYHW
scilabでクラスは作ることはできますか?
ヘルプで検索してもJavaインタフェースとmarkovなんちゃらのことしかでてきません・・・
139名無しさん@3周年:2007/01/11(木) 19:31:15 ID:YWhcPYHW
>>138
tlistというのがあることがわかりました。
もうちょっと自分で調べてみます。
140名無しさん@3周年:2007/03/11(日) 17:59:19 ID:l8+Q/qiG
ScilabはCやFortranとの連携は出来るようですがC++はどうでしょうか?
141名無しさん@3周年:2007/12/20(木) 01:23:30 ID:tn69q6wz
ちょいメモ:
グラフのXY軸のラベル名を変更する場合はtlistを使用する
tlistでないと既定されているmatrixサイズが変更できない

a=gca();
a.x_ticks=tlist(['ticks' 'locations' 'labels'],[1:5],['o' 'b' 'a' 'k' 'a']);
142名無しさん@3周年:2008/01/15(火) 01:40:12 ID:/68kNl3s
これを解いていただけませんか?

(1)漸近安定性、可制御性、可観測性を調べる。
(2)極を(0.31±0.85*i)に配置するための、状態フィードバックゲインを計算。
(3)状態フィードバックの有無による状態変数の時間変化をシミュレーション。

◆状態方程式
x[i+1] = A*x[i] + b*u[i]
y[i] = c*x[i]
x[0]=[1;2]
A = [3, 8; 1, 5]
b = [1;2]
c = [1,0]

※不可制御となってしまう場合、A行列の数値の並びを変えてよい。
143名無しさん@3周年:2008/03/20(木) 20:04:30 ID:8ykkfMqd
保守
144名無しさん@3周年:2008/04/03(木) 23:54:52 ID:FSOW6Acv
保守
145名無しさん@3周年:2008/04/17(木) 00:23:13 ID:cm9SwHDQ
すいません。。自力で調べたのですがいまだに解決できないので、教えてください。

SIVPを用いてグレイスケール化された画像をg_imとしたとき、
位置P(i,j)とg_im(i,j)の値の関係を3次元プロットしたいと考えています。

plot3d関数を使おうと思ったのですが、できませんでした。

146名無しさん@3周年:2008/05/02(金) 21:52:54 ID:9/SQ+8wz
どうしてもjavaから呼べないんですけど、、教えてクンですみません。教えてください。
147名無しさん@3周年:2008/05/29(木) 23:46:44 ID:29CjSwco
>>142
1.rankを使って可制御行列、可観測行列のランクを調べる
2.ppolを使う
3.scicos使えば簡単
148名無しさん@3周年:2008/06/18(水) 03:39:36 ID:yC9nfMi+
寂れてますね・・・
みんなoctaveに引っ越したのかな
149名無しさん@3周年:2008/06/20(金) 00:09:55 ID:+OyVGt3V
はじめまして
突然質問でごめんなさい

うちの環境だと
csimで1000ポイント以上計算させると誤差が大きくなるんですけど
ポイント数が多くても精度を保って計算させる方法とかないですか?
150名無しさん@3周年:2008/06/20(金) 10:42:47 ID:kgx2Gyj2
>>149
csimのパラメータに、誤差を指定するパラメータ : tol あるんだけど、

y=csim(u,t,sl,x0,tol)

試してみた?
151名無しさん@3周年:2008/06/21(土) 21:58:27 ID:OBAHoZyz
>>150
どうもありがとうございます。

いろいろいじってみましたけど変わりません。


精度が悪くなるというかポイント数を増やすと
最終的に計算結果がめちゃくちゃになるんですよね。
152昨日からはじめた人:2009/01/11(日) 22:32:52 ID:eCuJyVOV
エディターで、

x=-π〜π
y=sin(x)

で、もしx>0 ならyを1にしたい場合、どういった記述に
するのが妥当なのでしょうか?

よろしくお願いします。
153昨日からはじめた人:2009/01/12(月) 00:14:39 ID:+ATel+I1
ちょっと質問が正しくなかったので訂正します。

変数に計算結果の行列を入れたいのですが、それに条件を入れたいのです。

たとえば、xの範囲を-πからπまで101ポイント取るとして、
y=sin(x)として
ynの結果が0以下であったならynの値を強制的に0とする..

といった感じにしたいのです。

よろしくお願いします。

154名無しさん@3周年:2009/01/12(月) 00:17:14 ID:YmhqvdsU
y .* (y<0) みたいなので
155昨日からはじめた人:2009/01/12(月) 00:47:17 ID:+ATel+I1
できますた。

ありがとうございます。
156155:2009/01/12(月) 17:34:35 ID:+ATel+I1
ちなみにWindowsのユーザー名が2バイト文字だと起動しないようですね。

修正ができず、新たに1カウント作っちゃいましたよ。
157昨日からはじめた人:2009/01/12(月) 19:53:58 ID:+ATel+I1
度々すみません・・・

演習として、ガウシアン分布の3Dプロット図を作ろうとしましたが、
xとyをマトリクスで演算させる方法がわかりません...。



d=0.5
x=[-2:0.01:2]';
y=[-2:0.01:2]';

z=exp(-2*((x/d)^2+(y/d)^2));

clf()
plot3d(x,y,z,)

よろしくご指南ください m(__)m
158昨日からはじめた人:2009/01/12(月) 20:03:44 ID:+ATel+I1
追記

要するに、xとyの行列同士のマトリクスの計算結果をzに入れたいのです。
159名無しさん@3周年:2009/01/12(月) 23:26:20 ID:YmhqvdsU
http://kiwi.emse.fr/SCILAB/sci-bot/x330.htm
のExample 2-1

あとユーザー名2バイト文字にすんなよ
160昨日からはじめた人:2009/01/13(火) 00:37:49 ID:Gh1DJUVm
うーん、せっかくですがわかりません...
161名無しさん@3周年:2009/01/13(火) 20:03:49 ID:p85x2yXD
d=0.5
x=[-2:0.1:2];
y=[-2:0.1:2];


z=exp(-2*((x/d)^2+(y/d)^2));

clf()
plot3d(x,y,z,)

for iy=1:length(y)
for ix=1:length(x)
z(iy,ix)=exp(-2*((x(ix)/d)^2+(y(iy)/d)^2));
end
end

plot3d(x,y,z)
162名無しさん@3周年:2009/01/13(火) 20:32:39 ID:Gh1DJUVm
>161
ありがとうございます。
参考にさせて頂きます。

一応努力してみました。

clear

d=0.5;

x = linspace(-2,2,101);
y = linspace(-2,2,101);

[X,Y] = ndgrid(x,y);

deff("z=f(x,y)","z=exp(-2*(x.^2/d+y.^2/d ))");

Z=f(X,Y);

plot3d(x,y,Z)
163名無しさん@3周年:2009/01/13(火) 20:35:16 ID:Gh1DJUVm
>161

要約すると

clear

d=0.5
x=[-2:0.1:2];
y=[-2:0.1:2];

clf()

for iy=1:length(y)
for ix=1:length(x)
z(iy,ix)=exp(-2*((x(ix)/d)^2+(y(iy)/d)^2));
end
end

plot3d(x,y,z)


こうですね。
164名無しさん@3周年:2009/06/07(日) 18:15:58 ID:DOrg7rdg
申し訳ないのですが
Nクイーン問題をC言語ではなくScilabを使って解くやり方を教えてください。。。
165名無しさん@3周年:2009/08/04(火) 22:26:22 ID:ulGsLK4m
この3月に発刊されたこの本は、有用でしょうか?
Scilab入門 フリーソフトで始める数値シミュレーション 計測・制御シリーズ 大野修一 CQ出版 2009/03/15 \2,310
http://www.cqpub.co.jp/hanbai/books/40/40991.htm
166名無しさん@3周年:2009/11/19(木) 15:16:52 ID:KhxtSXVQ
おお。まさか機械工学板に立ってるとは。
167名無しさん@3周年:2009/11/23(月) 18:09:30 ID:rEG86hTV
>>166
昔は、電電板とかシミュレーション板がなかったんでなー
168名無しさん@3周年:2009/11/23(月) 18:18:24 ID:QGDvlfAU
>>167
そうだったんすか。古いスレですね
今期から授業で使う事になったんで9月頃から導入しました
先日何となくググったら2000年くらいのスレが見つかって、
そこからこのスレをようやく見つけたところです
169名無しさん@3周年:2009/11/23(月) 19:03:09 ID:rEG86hTV
>>168
SCILAB&SCICOSについて教えてください
http://science6.2ch.net/test/read.cgi/sim/980480122/

こっちのほうがにぎやかかも
170名無しさん@3周年:2009/11/23(月) 19:26:32 ID:QGDvlfAU
>>169
ありがとうございます。色々見て回ってみます。
まだ数理統計の簡単な計算をすこし始めたところで、
質問や手助けできる事もあまりないですが、大変参考になります。
171名無しさん@3周年:2009/11/24(火) 00:34:34 ID:Jo5X+w17
>>170
統計処理なら

統計解析フリーソフト R 【第3章】
http://science6.2ch.net/test/read.cgi/math/1224142396/

こっちもよろしくww
172名無しさん@3周年:2009/11/24(火) 07:23:27 ID:UC9w99JB
>>171
ありがとうございます!
さうは一人で持ちきれぬ
ヨイヨイ。
173名無しさん@3周年:2009/11/26(木) 23:33:18 ID:Q4dEOwxg
SIVPでAVIファイル作成するときavifileを使用すると
エラーが出てしまうのですが対応方法ないでしょうか。
174名無しさん@3周年:2010/01/20(水) 15:55:02 ID:sHka/2tm
MatlabからScilabに書き換えてるのですが,以下のエラーの解決策が分かる方がいましたら,教えてください.

<以下エラーの内容>
ii =

2.
!--error 144
与えられたオペランドのための不確定の操作です。

負荷をかけすぎる関数 %s_3_s 定義、または、チェックです。

at line 34 of function bilinear called by :
-d2(ii),d1(ii-1)-d2(ii-1),F1(ii-1),in1,st1,va1)
at line 413 of exec file called by :
exec(%fileToExec); disp(msprintf(gettext("Execution done.\n")));
while executing a callback

どうやら,whileループでfunctionを実行しようとしたら1回目は回るのですが,2回目のループで引っかかるようで,Matlabでは上手く回るので,functionやmainに間違いは無いと思います.

どなたか分かる方がいましたらよろしくお願いします.
175名無しさん@3周年:2010/01/20(水) 19:37:27 ID:IeUNBLEE
>>174
元のプログラムを載せないで、わかるやつがいたとしたら、そいつは悪魔と思わないのか?
176名無しさん@3周年:2010/01/21(木) 17:53:56 ID:HL/y7STt
過疎ってますね...。質問なんですが、小数点で数字を0.1ではなく0.10のように表示するにはどうすればいいんでしょうか?
177名無しさん@3周年:2010/01/22(金) 00:42:37 ID:iyxzOJ57
>>176
-->printf("%7.2f",0.1)
0.10
178名無しさん@3周年:2010/01/22(金) 16:11:49 ID:mZLwzyPr
>>175
すみません,プログラムの権利の問題上全て載せるわけにはいかないですが,
引っかかってるところを載せます.

abs_dd = abs(dd)

is = 2;

if (ds <= 0) then
is = 1;
end;

sn = (is+is-3);

select (st.ll)

Whileループの中の関数のプログラムの一部で,どうやらifの条件式のところで引っかかってるようです.
179名無しさん@3周年:2010/01/25(月) 17:45:49 ID:2Pb1QDme
>>177
遅れましたが、ありがとうございました。無事解決しました。
180名無しさん@3周年:2010/01/28(木) 01:34:21 ID:uh1fpJvM
>>178
解決したかい?

-->a = sqrt(-1)
a =

i

-->a <= 0
!--error 144
与えられたオペランドのための不確定の操作です。

負荷をかけすぎる関数 %s_3_s 定義、または、チェックです。



-->A = cell(2,2)
A =


!{} {} !
! !
!{} {} !

-->A <= 0
!--error 144
与えられたオペランドのための不確定の操作です。

負荷をかけすぎる関数 %ce_3_s 定義、または、チェックです。


とかあやしいいかも!
181名無しさん@3周年:2010/02/01(月) 22:08:42 ID:9NeAN59d
A=[1,2,3,4,5,6,7,8,9]
の行列があるとき、三つごとの平均を出すにはどうすればいい?
B1=2
B2=5
B3=8
みたいに出したい。
182名無しさん@3周年:2010/02/02(火) 01:14:02 ID:ElKSgX7+
>>181
エレガントにやってもいいが、
てっとりばやくやるのなら、 for ループで回すほうが速いかな
183名無しさん@3周年:2010/02/02(火) 09:02:48 ID:caO7N3gM
>>180
すみません遅くなりましたが,無事解決いたしました.
原因は,dsが複素数になっていたらしく,if文の条件式で判定できなかったようです.
real(ds)にすることで無事に解決できました.
ありがとうございました.
184名無しさん@3周年:2010/02/16(火) 21:57:58 ID:00d+Pikm
Scilab6はいつころ出るかな。。。 予想では1.5年後くらいか。。

http://www.scilab.org/products/scilab/roadmap
Major Scilab 6 Family Objectives

より、期待できるのは、次の改良点か。

・New kernel (interpretor, syntax tree, memory management ...)

Fortran風の言語仕様を排除するらしい。

・Generator of C code
Enable Scilab to generate C code from Scilab script for embedded systems

ScilabからC言語コードを吐き出してくれると、確かにうれしい。
185名無しさん@3周年:2010/02/16(火) 22:00:57 ID:00d+Pikm

と思ったら、ScilabからC言語の生成は既にあるのか。

http://atoms.scilab.org/toolboxes/scilab2c/
Scilab 2 C
Translate Scilab code into C code

使ったことないから、知らねえ。
186名無しさん@3周年:2010/02/19(金) 21:55:45 ID:Vvdju4CM
>>185
Scilab5.2.0winでScilab2Cを試してみたんだがエラーでCコードは生成できなかった
おまいらもやってみてよ
187名無しさん@3周年:2010/04/23(金) 17:06:17 ID:s2MT2wIy
高階関数って使えます?

f(x) = ax+b
g(x) = gx+b

とあるときに
f(g(x))を関数として出力したいんですけど
188186:2010/04/23(金) 17:08:51 ID:s2MT2wIy
できました有難うございました
189名無しさん@3周年:2010/04/23(金) 21:10:34 ID:asvZDCqK
>>187
horner関数で代入する。
190名無しさん@3周年:2010/04/24(土) 08:36:32 ID:EC7SSe3P
191名無しさん@3周年:2010/05/10(月) 21:41:26 ID:n+KRhqro
複数の変数に一度に代入する方法はないだろうか?


関数だったら
-------------------------
function [x,y] = myfunc( a )
x = a*2;
y = a*3;
endfunction

[m, n ]= myfunc(5)
-------------------------
でOKだけど、

-------------------------
[x, y] = [3, 8];
-------------------------
はエラーなる。
どうしてだろう?


ベクトルとして、一度に複数の変数に値をセットできると、すっきりするのだが。
192名無しさん@3周年:2010/05/12(水) 20:05:19 ID:pYRZIkNv
えーっと、ス、ス、スシラブ
193名無しさん@3周年:2010/05/14(金) 20:42:58 ID:FyjEHlLi
Scilabは、サイラブ と呼びます。 もしくはサイラボ。
194名無しさん@3周年:2010/06/10(木) 23:55:13 ID:qlf27Rz7
scilabの正当後継は scilabなのかscicoslabなのか、
どっちなんだ?
195名無しさん@3周年:2010/06/16(水) 18:29:23 ID:QKfCXuvT
誤差の2乗面積が最小になる関数をscilabで数値探索で求めたいのですが
やり方が分かりません。
196名無しさん@3周年:2010/06/28(月) 22:12:13 ID:2IYAUqM8
>>195
> 誤差の2乗面積が最小になる関数をscilabで数値探索で求めたいのですが
> やり方が分かりません。

具体的に、どんな問題?
197名無しさん@3周年:2010/06/29(火) 10:44:42 ID:1nyoA5U8
式を立てられないのはScilabの問題ではないよね。matlabでも同じだろう。
198名無しさん@3周年:2010/07/06(火) 10:20:35 ID:hwX2la0w
199名無しさん@3周年:2010/08/25(水) 23:44:41 ID:gk8Hpwnv
>>198

初期のVer5,0のころに比べ
ver5.3 は動作が速くなった気がする。
200名無しさん@3周年:2010/08/26(木) 01:03:38 ID:ngjmfnLG
Scilab 5.3.0とか、Windows7 Professionl 64bitにいれているんだけど、
64bit版も、32bit版もキーボードの入力を受け付けなくて、
なんにもできない状態なんですが、何が間違っていますか?


201名無しさん@3周年:2010/08/29(日) 00:29:41 ID:0vVoCyrE
>>200

とりあえず、当方 WinXP(32bit)で Scilab5.3 beta2 は、それなりに動いています。

まだ、動作不安定なところがあるけど、Ver5.0のころと比べると、確実に安定かつ速くなっている。
202名無しさん@3周年
>>200
scicoslab にしろ。
これで全部解決だ