第23回 信号処理シンポジウム
2008年11月12日〜14日（金沢）

Scilab 5.0 の紹介
Introduction to Scilab 5.0
大野 修一

Shuichi OHNO

アブストラクト末岡 佑之輔広島大学工学研究科
東広島市鏡山 1-4-1

姫嶋 建造

Yunosuke SUEOKA
Kenzo HIMESHIMA
Hiroshima University
Kagamiyama 1-4-1, Higashi-Hiroshima, Japan

Scilab はオーブンソース・フリーソフト

説書が出版されており，学習環境も整っている．しかし，ウェアの数値計算ソフトウェアパッケージである．Scilab

同時に多数の学生がソフトウェアを利用する教育機関なは信号処理をはじめ，システム制御，最適化などのためどでは，十分な数の商用ソフトウェアを確保することがの多くの関数を持つ．2008 年 9 月，GUI などに大幅な改困難な場合がある．また，一部の機関以外は，年々国から良が加えられた Scilab 5.0 がリリースされた．本稿では， の交付金が減少しており，購入できていた商用ソフトウェ科学教育・研究のツールとして Scilab 5.0 を紹介する．

Abstract Scilab is an open-source free software package for numerical computations. Scilab has many usuful

アを今後も購入できるとは限らない．
数値計算ソフトウェア Scilab は，自由にソフトウェアを実行，複製，頒布，研究，変更，そして改良できるオーfunctions for signal processing, control, optimization andso on. Scilab version 5 was just released in September,2008. Scilab 5.0 has been greatly improved, e.g., on its

プンソース・フリーソフトウェアであり，インターネット

GUI. In this paper, we introduce Scilab 5.0 for education
and research in science.とプレゼンテーションのためのグラフィック作成機能を有などから無料で入手し利用することができる．無料とはいえ Scilab は数値シミュレーションに必要となる演算機能している．また，構文などが MATLAB と似ているため，Scilab が修得できれば容易に MATLAB に移行できる．
1

はじめに

Scilab は 2008 年 9 月に Scilab 5 にメジャーヴァージョ

理学や工学など数学や物理学を駆使する分野では，物ンアップし，その機能が大幅に強化されている．本稿は，理的な実験を行う前に，導出した理論や開発した技術をScilab 5 の基本機能と現状を紹介することで，Scilab が計算機上に実装し，シミュレーションを行うことで，そ大学や高等専門学校などの教育機関で科学教育・研究のの妥当性や有効性を確認する必要がある．また，理工学ツールとして利用できることを示す．

を学ぶとき，学んだ理論や技術に関する数値シミュレーションを計算機上で行うことで，理論や技術への理解を2深めることができる．

Scilab とはScilab[14] は，工学と科学のためのオープンな計算通常，シミュレーションを行うためプログラムを作成す環境を与える数値計算のソフトウェアパッケージである．理工学の数値シミュレーションには，FORTRAN やる．フランスの国立コンピュータ科学制御研究所 IN-

C 言語が数十年前より用いられてきた．実際，FORTRANや C 言語 により多くの有益な汎用科学技術演算プログラムが開発されている．しかし，FORTRAN や C 言語 のRIA(Institut nationale de Rechercheen Informatique eten Automatique)[9] と ENPC (École nationale des pontset chaussées)[3] が主にシステム制御や信号処理の向けのプログラムを作成するには，かなりの労力と多くの時間ソフトウェアとして Scilab の開発を始め，1994 年 1 月にをかけプログラミングを学ぶ必要がある．

Scilab 1.1 がリリースされた．

R は，わかり一方，数値計算ソフトウェア MATLAB °が作成できるため，多くの理工系の教育・研究機関で採用

Scilab 2.7 のリリースの後，2003 年 3 月に Scilab の開発を行う Scilab Consortium が発足した．2004 年に Scilab
3.0 が，2006 年に Scilab 4.0 がリリースされている．そしされている．また，洋書に限らず和書でもたくさんの解て，2008 年に Scilab Consortium が the Digiteo research

やすい構文で効率的に数値シミュレーションプログラム‑ 41 ‑

network [4] に統合し，2008 年 9 月に Scilab 5.0 がリリースされた．
Scilab 5.0 からは，GNU GENERAL PUBLIC LICENSE Version 2 [7] に相当する CeCILL ラインセンス[2] を採用しており，決められたルールのもとでユーザが自由にソフトウェアを実行，複製，頒布，研究，変更，そして改良できるオープンソース・フリーソフトウェアとなっている．

2.1

数値計算

数値計算を行うため FORTRAN や C 言語が長年利用され，FORTRAN や C 言語により LAPACK(LinearAlgebra PACKage) [12] などの多くの汎用数値計算のライブラリが開発されている．しかし，FORTRAN や C 言語によるプログラムが作成できるようになるためには，か図 1: Select Components

なりの労力と多くの時間をかけプログラミングを学ぶ必要がある．

MathWorks 社 [15] が開発している MATLAB は，汎用数値計算ライブラリを利用しており，簡単な文法で高度な科学技術計算が可能なソフトウェアである．MATLAB
は，工学系の数値計算ソフトウェアのデファクトスタンダードと言える．

MATLAB は購入しなければ利用できない商用ソフト

は基本関数以外の関数が少ない．

3

Scilab 5.0

Scilab 5.0 は ，Windows
GNU/Linux 上で利用できる．

2000/XP/VISTAとウェアである．一方，Scilab は MATLAB に似た数値計

Scilab 5.0 のグラフィカルユーザインターフェース(GUI) は Java の GUI ライブラリ Java Swing で書き算ソフトウェアであるが，オープンソース・フリーソフト直され，Windows も Linux も同じ GUI となる．

ウェアである．

MATLAB や Scilab は，多くの科学技術計算関数を装備し，計算結果やデータから高品質な図を簡単に作成す

3.1

インストール

本稿では，Windows XP にバイナリインストールするる機能などを持つ．また，命令文を入力すると，文は逐場合を考える．また，本稿の図は，Windows XP 上にバ次実行され，その結果が逐次表示するインタプリタとしイナリインストールした Scilab によるものである．ても動作するため，複数のコマンド文からなるプログラム (あるいはスクリプト) を比較的簡単に作成することがWindows XP へのバイナリインストールは簡単であり，Web ページ [14] から Scilab をダウンロードし，インスできる．

トーラの指示に従えばよい．

Scilab は Version 2.7 以降で，LAPACK [12] を線形計算ライブラリとして採用し，ATLAS (Automatically Tuned
Linear Algebra Software)[1] を利用することで線形代数

Components の画面において FFTW のチェックボックスにチェックを入れる (図 1)．Next を押すと FFTW をダ演算が高速化されている．Scilab 5.0 以降では，高速フーウンロードするか尋いてくる．FFTW をインストール

FFTW を利用したい場合は，インストーラの Selectリエ変換ライブラリ FFTW [6] も利用できるようになり， していなければ指示に従い，FFTW をダウンロードし，FFT を利用する計算が高速化された．Scilab は既存の有 FFTW のイントーラを起動し，FFTW をインストールし用なライブラリを取り込みながら成長しており，同じラた後，Scilab のイントールを続行する．FFTW をインスイブラリを利用する数値計算ソフトウェアと同等の計算トールした場合，Scilab のコマンド ﬀt は FFTW ライブ能力を持つ．

ラリを使用したものに置き換わる．

Scilab と同様のオープンソース・フリー数値計算ソフ

なお，リリースされたばかりの Scilab は，新しいライトウェアに GNU Octave[8] や FreeMat [5] がある．これブラリを利用している．そのため，古い (安定した) ライらは同じライブラリを利用しているため，基本的な演算ブラリからなる Linux ディストリビューションに新しく能力は大差はない．しかし，Scilab と比較すると GNUリリースされた Scilab をインストールすることが困難な

Octave は GUI 環境があまり整備されておらず，FreeMat場合がある．

‑ 42 ‑

3.2

基本機能用することで Scilab の理解を深めることができる．なお，インストールした Scilab は通常のアプリケーションと同様起動できる．図 2 のアイコンがデスクトップに置か

本書執筆時点において，ヘルプの言語は英語とフランス語だけである．

れるので，アイコンをクリックと起動できる．
起動後は図 3 のようなコンソールが表示される．Scilabのコンソールは，キーボードよりコマンド文をタイプする部分，結果を表示する部分，マウスを用いる最上部のメニューバーとその下のツールバー，右側 (および下側)のスライドバーからなる．
図 3 の-->をプロンプト，プロンプトのある行をコマンド行とよぶ．プロンプトのあとにコマンド文をタイプし，リターンキーを押すとコマンド文が Scilab に入力され，実行結果が表示される．

Scilab コンソールの最上部にあるメニューバーは，機能ごとに分類された File，Edit，Preferences， Control，Applications，? の 6 メニューある．メニューバー ? は，Scilab の情報に関するメニューバーで Scilab のヘルプを操作するヘルプブラウザを起動したり，Scilab のデモンストレーションが行える．
ヘルプブラウザを起動すると図 4 のような画面となる．
図 4 の左側にあるように，ヘルプの項目の一覧が表示される．スライドバーを操作することで表示されていない

図 4: ヘルプブラウザ項目を表示することができる．
十分なヘルプファイルが提供されており，ヘルプを利

図 2: Scilab アイコン

図 3: コンソール

図 5: デモンストレーション‑ 43 ‑

図 5 はデモンストレーションのメニュー画面である． 語 [10]，LabVIEW [11] へのインターフェースも提供され興味ある項目のデモンストレーションを実行することで， ており，他言語との連携も可能である．

Scilab でどういうことができるのかを知ることができる．
3.5
3.3

toolbox

グラフィックエディタ

グラフを作成すると図 7 のようなグラフィックウィン特定分野のプログラム集として，さまざまな toolbox がドウが開く．Scilab はオブジェクト指向言語ではないが，提供されている．図 4 のヘルプブラウザの左側は toolbox

Scilab のグラフはオブジェクトとして構成されている．オの一覧を示している．多項式，システムと制御，最適化， ブジェクトはさまざまなプロパティを持ち，そのプロパ
信号処理，サウンドファイル操作などの toolbox が標準で ティを設定・変更することでグラフの属性を設定・変更提供されている．また，GUI で，制御，通信，信号処理する．などのシミュレーションを行うための toolbox Scicos [13]も標準で装備されている．

プロパティは，GUI グラフィックエディタで設定・変更することができる．たとえば，図 7 のグラフィックウィンド

図 4 の左側で特定の toolbox を指定すると，その tool-box の関数一覧がヘルプブラウザの右側に表示される．たとえば，図 4 の右側は，signal processing toolbox の関数の一覧の一部を表示している．関数の一覧において関数名を指定するとその関数のヘルプが表示される．
標準装備されていない Toolbox は，Scilab の Web Page[14] などから入手できる．また，ユーザが toolbox を作成することもできる．

3.4

プログラミング

Scilab はプログラミング機能も提供しており，必要に応じてプログラム (スクリプト) を作成することができる．

Scilab は，Scilab プログラミング用のエディタ SciPad も提供している．(SciPad 以外のエディタを利用しても問題はない．) SciPad によるプログラムの作成例を図 6 に示す．なお，日本語などの 2 バイト言語が利用できるようになっているが，まだ十分には安定しているとは言えない．

Scilab は，FORTRAN，C 言語，C++ 言語，Java 言
図 7: グラフィックウィンドウ (Edit)

図 8: Figure Editor

図 6: エディタ SciPad‑ 44 ‑

ウにおいて，Edit の Figure Properties を選択すると図 8

参考文献のような画面が現われる．図 8 の左側 (Objects Browser)[1] ATLAS, http://math-atlas.sourceforge.net/

は図のオブジェクトを展開したものを示している．

[2] CeCILL, http://www.cecill.info/index.en.html

Figure(1) オブジェクトの子オブジェクトとして Axes(1)がある．Axes(1) は子オブジェクト Legend(1) ，Com-pound(1) を持ち，Compound(1) は子オブジェクト Polyline(1)，Polyline(2)，Polyline(3) を持つ．オブジェクトを指定し，プロパティを変更するとグラフの属性が変更[3] ENPC, http://www.enpc.fr/[4] Digiteo http://www.digiteo.fr/en[5] FreeMat, http://www.freemat.org[6] FFTW, http://www.fftw.org/

される．

Scilab で作成した図を画像として保存し，他のアプリケーションで利用することができる．Scilab で保存できる画像のファイルタイプは PNG, PPM，Enhanced
Metaﬁle image，Encapsulated PostScript image，FIGimage，PDF image，SVG image である．
4

日本における Scilab の現状と課題[7] GNU GENERAL PUBLIC LICENSE Version 2,
http://www.gnu.org/licenses/gpl.ja.html[8] GNU Octave http://www.gnu.org/software/octave/[9] INRIA, http://www.inria.fr/[10] Jave, http://jp.sun.com/java/[11] LabVIEW, http://www.ni.com/labview/ja/

日本でも，徐々にではあるが Scilab の教育・研究機関での利用が広まってきた．また，Scilab を利用する日本語の書籍も出版されはじめた．Scilab の普及を目指しフランス国立コンピュータ科学制御研究所 INRIA と国立情報学研究所は，2006 年より Scilab Toolbox Contest を開催[12] LAPACK, http://www.netlib.org/lapack/[13] Scicos, http://www.scicos.org/[14] Scilab, http://www.scilab.org/[15] The MathWorks, http://www.mathworks.com/

し，最優秀作品の製作者（グループの場合は代表者 1 名）をフランスの INRIA における Scilab チームでの 2ヶ月のインターンシップに招待している．
しかし，日本では Scilab はまだ十分認知されていないように感じられる．そのひとつの理由に Scilab に関する情報が多くないことが挙げられる．たとえば，教育機関で Scilab を利用しようとする場合，必要な情報を自ら準備し提供しなければならず，多大な労力が必要となる．また，一部の大学を除き，英語のヘルプファイルを読める，あるいは読もうと努力する学生が少なく，日本語のヘルプファイルのない Scilab の利用の敷居を高くしているように感じられる．

5

おわりにオープンソース・フリーソフトウェアの数値計算ソフトウェアパッケージ Scilab を紹介した．Scilab は 2008 年

9 月に Scilab 5.0 にメジャーヴァージョンアップし，その機能が大幅に強化されている．本稿が，大学や高等専門学校などの公的な教育機関における Scilab の利用の一助になれば幸いである．

‑ 45 ‑