微分

微分を見つける

次のサンプルは、データセットの微分を計算する方法を示しています。 differentiate Xファンクションが使われ、高次微分を行うこともできます。

// データをインポート
newbook; 
fname$ = system.path.program$ + "\Samples\Spectroscopy\HiddenPeaks.dat";
impasc;
 
// 列2のデータの一階微分および二階微分を計算: 

// 出力はデフォルトで次に利用可能な列、列3
differentiate iy:=Col(2);      
// 出力はデフォルトで列4に       
differentiate iy:=Col(2) order:=2;    
 
// 元データと結果をプロット
 
// 各プロットはx値として列1を使用
plotstack iy:=((1,2), (1,3), (1,4)) order:=top;

スムージングで微分を検索

differentiate Xファンクションは、Savitsky-Golay スムージングを使って微分を計算できます。この機能を使う場合、smooth 変数を1にセットします。そして、多項式の次数やSavitzky-Golayスムージング法で使われるウィンドウのポイントを指定して、スムージングをカスタマイズできます。 以下はこの例です。

// ノイズ付きでサンプルデータをインポート
newbook;
fpath$ = "\Samples\Signal Processing\fftfilter1.DAT"; 
fname$ = system.path.program$ + fpath$;
impasc;
bkname$=%h;
 
// Savitsky-Golayスムージングを使って微分
differentiate iy:=col(2) smooth:=1 poly:=1 npts:=30;
 
// 元データと結果をプロット
newpanel row:=2;
plotxy iy:=[bkname$]1!2 plot:=200 ogl:=1;	
plotxy iy:=[bkname$]1!3 plot:=200 ogl:=2;