四則演算・べき乗
-->1+2 ← キーボード入力(1+2の直後にEnter)
ans =
3. ← Scilabが出した答え
--> ← 次の入力待ち
ベクトル・行列
-->v=[1,2,3] //横ベクトル
v =
1. 2. 3.
-->x=[1;2;3] //縦ベクトル
x =
1.
2.
3.
-->x(2) //ベクトルの第2成分
ans =
2.
-->A=[-1,2,3; 4,5,6; 7,8,9] //行列
A =
- 1. 2. 3.
4. 5. 6.
7. 8. 9.
-->A(2,1) //行列の2行1列成分
ans =
4.
-->A(2,:) //2行目の行ベクトル
ans =
4. 5. 6.
-->A(:,1) //1列目の列ベクトル
ans =
- 1.
4.
7.
-->A' //行列の転置
ans =
- 1. 4. 7.
2. 5. 8.
3. 6. 9.
-->B=diag([1,2,-3]) //対角行列
B =
1. 0. 0.
0. 2. 0.
0. 0. - 3.
行列とベクトルの積
-->v=[1,2,3] //横ベクトル
v =
1. 2. 3.
-->x=[1;2;3] //縦ベクトル
x =
1.
2.
3.
-->x(2) //ベクトルの第2成分
ans =
2.
-->A=[-1,2,3; 4,5,6; 7,8,9] //行列
A =
- 1. 2. 3.
4. 5. 6.
7. 8. 9.
-->A(2,1) //行列の2行1列成分
ans =
4.
-->A(2,:) //2行目の行ベクトル
ans =
4. 5. 6.
-->A(:,1) //1列目の列ベクトル
ans =
- 1.
4.
7.
-->A' //行列の転置
ans =
- 1. 4. 7.
2. 5. 8.
3. 6. 9.
-->B=diag([1,2,-3]) //対角行列
B =
1. 0. 0.
0. 2. 0.
0. 0. - 3.
複素数・ n 次方程式
-->%i //虚数単位
%i =
i
-->s=3+4*%i //複素数
s =
3. + 4.i
-->real(s) //実部
ans =
3.
-->imag(s) //虚部
ans =
4.
-->abs(s) //絶対値
ans =
5.
-->atan(imag(s),real(s)) //偏角 = arctan(虚部,実部)
ans =
0.9272952
2
-->roots([1,2,5]) //2次方程式 s + 2s + 5 = 0 の根
ans =
- 1. + 2.i
- 1. - 2.i
3 2
-->roots([1,2,5,7]) //3次方程式 s + 2s + 5s + 7 = 0 の根
ans =
- 0.1980924 + 2.0797481i
- 0.1980924 - 2.0797481i
- 1.6038152
固有値・固有ベクトル
-->inv(A) //逆行列
ans =
- 0.5 1. - 0.5
1. - 5. 3.
- 0.5 3.6666667 - 2.1666667
-->spec(A) //行列の固有値のみ
ans =
15.914193
- 2.7785
- 0.1356926
-->[T,ss]=spec(A) //固有値・固有ベクトル
ss =
15.914193 0 0
0 - 2.7785 0
0 0 - 0.1356926
T =
- 0.2084548 - 0.8843559 0.1585656
- 0.5287250 0.1036839 - 0.7998300
- 0.8227979 0.4551530 0.5789032
-->y = poly(A,"s") //Aの固有多項式
y =
2 3
- 6 - 46s - 13s + s
-->roots(y) //固有方程式 y=0 の根
ans =
15.914193 //spec(A)で求めた固有値と一致する
- 2.7785
- 0.1356926
ユーザー関数の定義
-->function y=angle(s) //1変数関数の定義
-->y=atan(imag(s),real(s)); //偏角 = arctan(虚部,実部)// ; を忘れるな!
-->endfunction //←ここまで
-->angle(3+4*%i) //偏角.5.3.4節の計算と一致
ans =
0.9272952
-->function y=g(m,c,k) //3変数関数
-->y=roots([m,c,k]);
-->endfunction //←ここまで
-->g(1,0.2,2)
ans =
- 0.1 + 1.4106736i
- 0.1 - 1.4106736i
関数のグラフ
-->tt=linspace(0,2,5)' //0〜2を5分割した等差数列ベクトルの転置
tt =
0.
0.5
1.
1.5
2.
-->yy = sin(tt) //[sin(0),sin(0.5),sin(1.5),sin(1),sin(2)]' の意味になる
yy =
0.
0.4794255
0.8414710
0.9974950
0.9092974
-->clf(); //グラフのリセット
-->plot(tt,yy) //2次元プロット