[go: up one dir, main page]

コンテンツにスキップ

Scilab

出典: フリー教科書『ウィキブックス(Wikibooks)』
印刷用ページはサポート対象外です。表示エラーが発生する可能性があります。ブラウザーのブックマークを更新し、印刷にはブラウザーの印刷機能を使用してください。

ここでは、Scilabと呼ばれる数値解析ソフトウェアについて学ぶチュートリアルを提供します。Scilabは、フランスのINRIA(国立情報学自動制御研究所)で1980年代に開発された高水準の計算環境であり、科学技術計算やデータ分析に広く利用されています。Scilabはオープンソースであり、誰でも自由に利用することができます。このチュートリアルでは、Scilabを使って簡単な数値計算から複雑な数学モデルの解析までを学習するための手順を提供します。

Scilabの導入

Scilabとは何か

Scilabの特徴

Scilabのインストール

Scilabの基本操作

Scilabのデータ型と演算

スカラー、ベクトル、行列、テンソル

演算子と関数

変数と代入

数学関数と統計関数

Scilabの制御構造

条件分岐(if文)

繰り返し(for文、while文)

ブロック構造(begin-end、case-of)

Scilabでのグラフ描画

グラフ描画の基本

2次元プロット

3次元プロット

グラフのカスタマイズ

Scilabでの関数定義とデバッグ

関数の基本

グローバル変数とローカル変数

引数の渡し方

デバッグの基本

Scilabでの線形代数

行列演算の基本

行列の作成と操作

行列分解(LU分解、QR分解、SVD分解)

行列の特異値分解

Scilabでの数値計算

数値微分と数値積分

常微分方程式の数値解法

偏微分方程式の数値解法

線形方程式の数値解法

Scilabでの信号処理

サンプリングと量子化

離散時間信号と連続時間信号

フーリエ変換と逆フーリエ変換

フィルタ設計とフィルタ適用

Scilabでの統計解析

統計量の基本

仮説検定

回帰分析

主成分分析

Scilabの応用例

機械学習の実装

シミュレーションと最適化

ロボットの制御

複雑系の解析

用語集

  • Scilab: 数値解析・科学技術計算用のオープンソースの高水準プログラミング言語。MATLABに類似した文法を持ち、線形代数、最適化、シミュレーション、信号処理、画像処理、数値積分、微分方程式、統計解析などの機能を備える。
  • Workspace: Scilabが認識している変数、およびその値を表示する領域。
  • Console: Scilabコマンドの入力と結果出力を行う領域。
  • Editor: Scilabスクリプトファイルの作成・編集を行う領域。
  • Function: 処理を行う一連のコマンドをパッケージ化したもの。
  • Script: Scilabコマンドを順番に実行するファイル。
  • Comment: スクリプト内に埋め込む、人間が理解しやすい解説用の文章。
  • Variable: 数値、文字列、行列、グラフなどのデータを格納するために用いられる名前付きの箱。
  • Matrix: スカラー値およびベクトルを1つのオブジェクトとして扱うためのデータ構造。
  • Vector: 1次元の数値配列。
  • Sparse matrix: 行列の非ゼロ要素のみを記憶した、メモリ効率が高い行列。
  • Array: 1次元、2次元、あるいはそれ以上の次元を持つデータ構造。テンソルのように多数の次元も扱える。
  • Command window: Scilabから操作される各ウィンドウの簡易版。コマンドを入力し、実行結果を表示できる。
  • Graphics window: 2D/3Dグラフィックを描画するためのウィンドウ。
  • Handle graphics: Scilabで描画されるグラフィックをハンドルにより扱う方式。
  • Scicos: Scilabの拡張モジュールで、システムダイナミクス、制御系設計、信号処理、画像処理、電気回路設計などに用いられる。
  • Xcos: Scicosの改良版で、システムダイナミクスのモデル化・シミュレーションを行うためのツール。
  • ATOMS: Scilabのオンラインパッケージ管理システム。Scilabに追加機能を提供するためのモジュールが多数公開されている。
  • MList: Scilabでのファイル入出力用のフォーマット。MATLABの.mファイルと同様に、「変数名 = 値」という形式で保存される。
  • FPU: 浮動小数点演算器。Scilabはこれを使用して高精度な計算を行う。