|
| |
|
|
|
![]() |
|
SAS/IML®対話型行列演算線形代数の表現に極めて近いコーディング法で行列を対象とした演算を対話的に実行。SAS/IMLは、SASの行列演算言語オプションプロダクトです。 SAS/IMLの機能行列演算言語の必要性数式を行列で表現することの本質は、思考の節約にあるといえます。たとえば、連立1次方程式
は、行列を使えば
と簡単に表すことができます。また、このときの解xは、Aの逆行列を使って、
と表現できます(ただしAはフルランクとする)。このように、行列を使えば与えられた問題やその解法をコンパクトに表現できるわけですが、それを通常のコンピュータ言語で実現するときには、元のスカラーに返ってその都度コーディングする必要があります。その点、SAS/IMLでは、一つの変数が行列に対応しています。たとえば、
とすれば、変数aに3×3の行列がディメンション宣言なしで代入できます。そして、上の連立1次方程式を解くには、そのための関数を使って、
と記述するだけで計算できます。逆行列を使って解くなら、
としても結構です。
を解くには、
または
と記述するだけで計算できます。 このように、線形代数レベルでの発想をそのままコンピュータに指示できるというのがSAS/IML言語の特徴です。固有値/固有ベクトル、特異値分解、一般化逆行列、非線形最適化(NLP)、乱数関数や各種分布関数、数値積分、常微分方程式など、よく使われる機能は組み込み関数としてあらかじめ用意されています。線形代数の数式で表現された新しい手法を実際に試してみたいユーザーに特にお勧めできます。 また、SAS/IMLには行(または列)方向に和をとる、あるいは平均値や最大値を計算するといった便利な機能も含まれています。 計算機言語としてのSAS/IMLSAS/IMLは計算機言語ですから、ファイルの入出力や条件判断、反復、モジュール他等の機能は当然備えています。最大の特長は対話的に実行できることです。つまり、プログラムの部分的実行や途中結果の表示ができます。たとえば、式を一つ実行させて結果を見るといったことができるわけです。また、グラフィックスの機能も特長の一つです。多次元のデータ表示などには線形計算を多用するので、SAS/IMLで容易にアプリケーションを作成することができます。SAS/IMLはSASの一部ですから、ある目的のためにアプリケーションを作成する場合、そのすべてを最初からコーディングする必要はありません。SASの他のプロダクトで実行できることはそちらに任せ、新規のアルゴリズムの部分だけを開発すれば良いのです。強力なSASをさらに補うための計算機言語として、SAS/IMLは問題の本質を損なうことなくコーディングの労力を激減させる効果があります。
SAS/IMLの数学関数とサブルーチンの例
統計数理研究所のTIMSACの一部、カルマンフィルター、ロバスト回帰、ウェーブレットの機能などもあります。 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
| Contact Us | サイトマップ | Terms of Use & Legal Information | Privacy Statement | 個人情報の取り扱いについて | Copyright © 2009 SAS Institute Inc. All Rights Reserved |