Scilab覚書き
MATLAB/Scilabで理解する数値計算を読んで学んだ点についてメモ。
- 関数の定義
--> deff('[y]=f(x)','y=sin(x)+sin(2*x)');
--> x=linspace(0,10,100);
--> fplot2d(x,z); - スプライン補間
--> x=[0 0.5 1 1.5 2 2.5 3];
--> f=sin(x).*exp(-x);
--> plot2d(x',f',-1);
--> fi=smooth([x;f],0.1);
--> plot2d(fi(1,:)',fi(2,:)'); - 高速フーリエ変換
--> N=8;
--> w=exp(2*%pi*%i/N*(0:N-1));
--> f=exp(w);
--> F=fft(f,-1);
--> real(F/N)' - 固有値
--> A=[1 2 ; 2 1];
--> [V,D]=spec(A);
--> V
--> diag(D) - 多項式の解
--> x=poly(0,'x');
--> f=x^4-5*x^3+5*x^2+5*x-6;
--> roots(f)
- 行列を与える関数
zeros(2,3):要素がすべて0の行列
ones(2,3):要素がすべて1の行列
eye(2,3):単位行列
diag([1 2;2 3]):対角要素のベクトル
rand(2,3):要素が乱数の行列 - ベクトル要素とスカラー演算
c=(a1+α,...,an+α):c=a+alpha
c=(α×a1,...,α×an):c=alpha×α
c=(α/a1,...,α/an):c=alpha ./ α
c=(a1/α,...,an/α):c=a/alpha
c=(α^a1,...,α^an):c=alpha .^ α
c=(a1^α,...,an^α):c=a .^ alpha - ベクトル/行列の操作
sum([1 2 3]),sum(A,1),sum(A,2):行列の値の和
prod(v),prod(A,1),prod(A,2):行列の値の積
mean(v):平均値
max(v):最大値
min(v):最小値
length(A):Aの全ての要素の数
[m,n]=size(A):行列の行数と列数
fliplr(v):左右の反転
flipud(v):上下の反転 - 行列の要素の指定
A(2,3):Aの(2,3)要素
A([1 3],1):Aの第1列の第1行と第3行
A(1:5,1):Aの第1列の第1行から第5行
A(:,1):Aの第1列
v($):vの最後の要素