プログラミング言語には多種多様な言語があります。

今回紹介するのは「Octave」という言語についてです。

数値を計算するためのプログラミング言語・Octave。この記事では以下の情報をご提供致します。

  • Octaveの基本知識
  • Octaveの特徴
  • Octaveの機能
  • Octaveを使用するメリット
  • Octaveを使用する上で気をつけたいこと
  • Octave利用者の評判
  • Octaveの導入方法
  • Octaveの基礎的な使い方

この記事はOctave初心者でもわかりやすいように詳しく解説しています。

Octaveについての知識を得たい人や使ってみたいと考えている人はぜひご一読ください。

Octaveの概要



Octave(GNU Octave)とは、数値解析することができる高いレベルのプログラミング言語。

線形や非線形問題を数値として解くためのものです。

とても高い機能を持つ電卓と思っておいて良いでしょう。

この項目では、そんなOctaveの概要についてご紹介します。


名前の由来

Octave(オクターブ)の名前の由来は、イートンの指導教官・元オレゴン州立大学教授であるオクターブ・レヴェンシュピール(Octave Levenspiel)から。

オクターブ・レヴェンシュピール教授は概算計算のスピードが速い人でした。

Octaveはその教授にちなんで名付けられたのです。


開発者

現在のOctaveを開発したのは、ジョン・イートン(John W. Eaton)です。


歴史

化学反応器設計の授業で使用するため、Octaveの開発がスタートしたのは1988年頃のこと。

Wisconsin-Madison大学のJames B. Rawlings氏。そして、Texas大学のG. Ekerdt氏が携わりました。

1992年からはジョン・イートン(John W. Eaton)が開発を開始。

1993年1月にアルファ版、1994年2月に正式版。そして、2007年12月にはバージョン3.0、2015年5月にはバージョン4.0が公開されました。


主にどういったことに利用されているか?

計算機として開発され始めたOctave。

今では計算機としての役割を越えて、学術的・工業的な利用をされています。

有名どころでは、アメリカのピッツバーグ・スーパーコンピューティング・センター (Pittsburgh supercomputing center) 。

ここでは大規模並列計算によって、社会保障番号が攻撃に晒される脆弱性の検証をおこなうためにOctaveを使用しています。


対応OS



クロスプラットフォーム(マルチプラットフォーム)

WindowsやmacOS、UNIX。UNIX系プラットフォームなどで実行可能です。


ライセンス

GNU General Public License。Octaveはオープンソースであるため、ライセンス条件をクリアすれば無料で使うことができます。


Octaveの特徴



この項目では、Octaveの特徴について詳しく説明します。


MATLABとの互換性あり

OctaveはMATLABとの互換性があります。

MATLABと互換性があるツールにはOctaveの他にもScilabなどがありますが、OctaveはScilabよりもMARLABとの互換性が高いです。

MATLABの特徴と使い方をわかりやすく解説!MATLABでできることは?ダウンロードの手順と行列・配列の演算方法も紹介


GUI開発環境がある

前のバージョンまではGUIは対応していませんでした。

しかし、現在のバージョンはGUIの開発環境が整っています。


構造化言語

Octaveを使うための命令系統は計算機言語です。

C言語と同じく構造化言語であると認識しておいて良いでしょう。C言語の標準ライブラリに入っているほとんどの関数はOctaveでも使用可能です。

他にもUNIXのシステムコールなども使えます。


編集・複製・利用が無料

先に述べたとおり、Octaveはオープンソースです。

GNU General Public Licenseの規約を遵守するなら、Octaveを改変したり複製したり、利用したりは全て自由におこなうことができます。


Octaveの機能



Octaveを使えばどんなことができるのでしょうか。

この項目では、Octaveでできることについて解説します。


四則演算

足し算、引き算、掛け算、割り算などの四則演算。


関数

Octaveでは関数も扱えます。


複素数・定数

複素数円周率などの定数を示すことが可能です。


コマンドライン入出力・編集

入出力関数を使ったりできます。また、コマンドラインでコマンド編集内容に対応するキーボードキーを押下して、コマンド編集の短縮も。


条件文・制御文・反復文

条件文や条件を組み合わせてみたり、if文だったりを扱えます。

繰り返しfor文やwhile文、コメント文などの反復文もお手の物です。

上記以外にも、行列計算数値積分2次元・3次元のグラフ出力などをおこなうことができます。

計算分野のみならず、データ解析ツールとして使用することも可能です。


Octaveのメリット



Octaveを使用すると、どんなメリットを享受できるのかをお伝えします。


MATLABとの互換性

「Octaveの特徴」でも書きましたが、Octaveは行列演算などをスムーズに記述し実行できるMATLABと互換性があります。

MATLABで書いたプログラムでも修正せずとも、ほとんどが動作します。

MATLABは有料ですが、Octaveは無料で使えるところも見逃せません。

「あまりコストをかけたくない」という人はOctaveを選択するのが正解です。


数値計算が簡単にできる



Octaveを使えば色んな数値計算(多項式や線形・非線形方程式、関数の数値積分など)が簡単におこなうことができます。

もちろん、数値計算をおこなうのはC言語でもできますが、簡単さはOctaveが抜きん出ています。

C言語の場合、簡単な計算であってもテキストファイルにおまじないを記述。そして変数の型を宣言。

そして、計算プログラムを記述しコンパイル…ようやく計算をスタートといった流れになります。

Octaveは、起動してコマンド画面に数式を入力してENTERキーを押すのみ

どちらが簡単かは一目瞭然です。


グラフなどの出力がラク



計算で配列を準備してしまえば、あとはplot関数を入れるのみ。それだけで、グラフの表示が可能です。

なお、Octaveでグラフを描くためには「gnuplot」というツールが必要になりますが、これはOctaveをインストールする際に、一緒にインストールすることができます。

そのため、煩わしさを感じることはありません。

C言語でグラフを表示させる場合は、外部アプリを活用しないと不可能ですし、設定も面倒です。


型宣言しなくて良い

Octaveは型宣言しなくてもOKです。

例えば「n」に整数3を代入するコードを記述する場合、C言語なら「int n=3」と書かなければなりません。

Octaveなら「n=3;」だけで完了です。

Octaveの注意点



ここでは、Octaveを使用する時に注意すべき点についてご紹介します。


計算速度が遅い

我慢できないくらい遅いわけではありませんが、C言語と比較するとOctaveは計算する速度が遅いです。

原因は「型宣言しなくても良い」というところにあります。

「Octaveのメリット」で説明しましたが、型宣言しなくても良いということは記述する煩わしさの軽減に繋がります。

ですが、一方で計算スピードが遅くなるというデメリットも孕んでいるのです。

あくまでC言語で計算する場合と比べたら…という遅延なので我慢できないほどではありません。

ですが、forループで何千~何万回単位で計算するとその違いは歴然とするでしょう。

型宣言なしでやると、何故計算時間が遅くなるのでしょうか。

それは、計算をおこなう度に変数の型をチェックする作業が生じるためです。


変数の型を覚えない

簡単に計算がおこなえる=ラクといえます。ですが、裏を返せば「変数の型をいつまでたっても覚えられない」ということでもあります。

型を知らずともプログラムを組むことは可能です。しかし、変数の型がエラーを起こしてしまったら…。

変数の型を知らないと、なぜエラーが起こっているのか原因が掴めずにエラーの解消にかなりの時間を要してしまう可能性があるでしょう。


柔軟性が低い

Octaveは簡単に計算をおこなうことができますが、それ故にできることに限りがあります。

もし自由度の高いものを求めるなら、OctaveでなくC言語などを使って計算をおこなうことをおすすめします。


Octaveユーザーの口コミ



この項目では、Octave利用者の口コミをご覧ください。


計算だけでなくデータ解析にも使用可能

数値計算や数値線形代数に強い言語というイメージを持つ人が多いOctaveですが、データ解析にかなり使えるという評価も。

「sum(データ総和)」「median(中央値)」、「mean(平均値)」などに対応する関数も準備されています。

hist関数を使ってヒストグラムの表示もできるところが高い評価に繋がっています。


簡単な検証はこれで

本格的な検証になるとMATLABを使っている(ライセンス制約により)けれど、簡単な検証はOctaveでおこなっているという利用者もいます。

数値計算や信号処理の検証に使用する機会が多いようです。


もっと類似ツールとの差別化を図って欲しい

MATLABと互換性があるソフトウェアはどんどん増加していっています。

その中で、Octaveが最もMATLABと互換性が高いツールであるべくMATLABの機械学習・深層学習にも対応してほしいという激励の口コミも。

こういう口コミが挙がるということはすなわち、Octaveがユーザーから期待されている・愛用されているツールという証拠といえるでしょう。


多くのOSで動作する

WindowsOSやmacOS、Linuxなど色んなOSで動作することを評価する口コミも見られました。


コストがかからない



統計解析ソフトウェアを導入しようと思うと高額な製品がほとんどですが、Octaveは無料で使えるのでコスパが最高とのこと。


資料の充実を期待

操作する際につまずくことがあるので、資料やサポートをもっと充実させてほしいという声もありました。


Octaveのダウンロード・インストール



Octaveについての知識を獲得したところで、次は実際にOctaveをインストールしてみましょう。


公式サイトへアクセスする

まずは公式サイトにアクセスし、「Download」ボタンをクリックしてください。


OSの選択

自分が使っているOSを選択します。


Octaveのインストーラーを起動

もし、JREが入っていないと警告ポップアップ画面が表示されます。

JREが入っていない人は先にJREをインストールしてから先に進みましょう。

「Welcome to GNU Octave Setup」の画面が出て来たら、「Next」ボタンを押下します。

同意画面に移行するので、そこでも「Next」ボタンをクリックしてください。


オプションを選択する

全てチェックが入った状態なので、何もいじることなく「Next」ボタンで先に進みます。


インストール先を決める

Octaveファイルのインストール先を決定し、「Install」ボタンを押しましょう。


インストール開始

インストールがスタートします。黒い画面が表示されることもありますが、慌てることなくしばらく待ちましょう。


インストール完了

インストールが完了したら、「Next」ボタンを押しましょう。

すると、「Octaveへようこそ!」と日本語で書かれた画面が表示されます。

「次」ボタンを押して先へ進んでください。最新のニュースを表示するかどうかを選択し、インストールは完了です。


Octaveの使い方①基礎的なこと



この項目では、Octaveの基本的な動作をご覧ください。


ファイルの実行


  1. $ octave

Octaveを起動させ、ディレクトリに存在するファイル名で実行します。

  1. octave > astar

この場合、ファイル名は「astar.m」。


コメントアウト

コメントアウト(コンピュータが処理しないもの)したいものは、冒頭に「#」を記述しましょう。

  1. # こうすることで、この行をコメントアウトできます。


計算

  1. >> 2+3

上記の記述を終えて、ENTERを押してみましょう。

  1. >> 2+3
  2. ans = 5

自動で答えが出力されます。


変数

  1. >> x=2
  2. x = 2

x変数に2という数値を代入し、xは2と見なされることなります。

  1. >> x=2
  2. x = 2
  3. >> y=3
  4. y = 3
  5. >> x+y
  6. ans = 5

次に、y=3を代入して「x+y」と記述してENTERキーを押下してみましょう。

「5」という答えが返ってくるはずです。


Octaveの使い方②公式ドキュメントを確認



Octaveには公式マニュアルが存在します。

詳しい使い方はこちらから確認してみましょう。


まとめ



以上、Octaveの詳細について紹介しました。

これからOctaveを使うという人は今回紹介した「Octaveの基本的な使い方」を参考にしてもらえると幸いです。

どんなプログラミング言語を扱う場合も、最初は戸惑うはず。

これまで使用したことがある言語との違いに躓くこともあるかもしれません。

ですが、今だからこそ…アフターコロナに向けて技術を磨いてみてはいかがでしょうか。


SHIFTフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。

エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。