コンピュータアルゴリズム (前半 octave による数 …...1...

16
1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当 松岡 辰郎 公開版についての断り 本講義では,化学工学協会編「化学工学プログラミング演習」(旧版),橋本健治著 「改訂版 反応工学」などの培風館の書籍から引用を多数行っている。そのため,著 作権に配慮し,講義資料そのものは,パスワードをかけて講義受講者のみの公開とな っている。しかし,その点を除けばそれなりに使える資料だと思い,公開版を作成す ることにした。したがって,この公開版では,例題そのものはどこから引用したとの み書いてある。したがって,引用に使用した本がなければ中身がわからないがご了解 いただきたい。しかしながら,結果としての解くべき数式は載せてあり,場合によっ ては問題を抽象化して書き換え,単なる数値計算の問題化とするような工夫もしてい る。したがって, Octave を使うにあたっての入門用の資料として広く参照していただ けると思う。 この講義は,2 人担当制で松岡の都合により松岡の講義は 2 回行って中断した。そ の間に Octave のバージョンは 2.9.xx が標準になってしまい,記述に少し古い部分が あることは,否めない。しかしながら,それでも参考になると思い,公開するにいた った。この資料が Octave を使い始める方への資料として参考になることを願ってい る。 最後に, Octave Maintainer のがんばりで来年度は,もうすぐリリース予定の Ver.3.0 で講義できることを祈っている。(少なくとも 2.9.12 以降のものに変えるつもりでは いる。) なお,公開版は,通常の講義資料を改変して作成するため,ページ数の連番が各講 義資料の間で整合していないのでご容赦いただきたい。

Upload: others

Post on 23-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

1

コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当 松岡 辰郎

公開版についての断り 本講義では,化学工学協会編「化学工学プログラミング演習」(旧版),橋本健治著

「改訂版 反応工学」などの培風館の書籍から引用を多数行っている。そのため,著

作権に配慮し,講義資料そのものは,パスワードをかけて講義受講者のみの公開とな

っている。しかし,その点を除けばそれなりに使える資料だと思い,公開版を作成す

ることにした。したがって,この公開版では,例題そのものはどこから引用したとの

み書いてある。したがって,引用に使用した本がなければ中身がわからないがご了解

いただきたい。しかしながら,結果としての解くべき数式は載せてあり,場合によっ

ては問題を抽象化して書き換え,単なる数値計算の問題化とするような工夫もしてい

る。したがって,Octave を使うにあたっての入門用の資料として広く参照していただ

けると思う。 この講義は,2 人担当制で松岡の都合により松岡の講義は 2 回行って中断した。そ

の間に Octave のバージョンは 2.9.xx が標準になってしまい,記述に少し古い部分が

あることは,否めない。しかしながら,それでも参考になると思い,公開するにいた

った。この資料が Octave を使い始める方への資料として参考になることを願ってい

る。 最後に,OctaveのMaintainerのがんばりで来年度は,もうすぐリリース予定のVer.3.0

で講義できることを祈っている。(少なくとも 2.9.12 以降のものに変えるつもりでは

いる。) なお,公開版は,通常の講義資料を改変して作成するため,ページ数の連番が各講

義資料の間で整合していないのでご容赦いただきたい。

Page 2: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

2

はじめに 最初に長いが本講義の参考書でもある。大石進一著「MATLAB による数値計算」(培

風館)の「はじめに」から引用する。 「 引用削除 」 (ここに書いてあったことを要約すると,数値計算の研究者などの一部の人を除いて

は,数値計算はプロの作ったツールを利用して,効率よく学習したほうがよい旨が書

かれている。) 私は,この大石先生のご意見に大賛成である。そこで数値計算ツール Octave を使

った数値計算入門をコンピュータアルゴリズムの前半の講義で行うことにした。なぜ,

Octave なのかは後ほど説明する。 講義に移るまえに講義用のホームページの URL は, http://lecture.media.nagoya-u.ac.jp/course/h071088/ComputerAlgorithm07/07OctaveNum.html である。 講義を受けている学生には,ユーザー認証を行い ID とパスワードでフルバージョン

を手に入れることができる。(講義受講者でない人には申し訳ありません。) 第1章 化学工学と数値計算 化学工学は,定量的に物事を扱うため,現象を数式で表現し,それを解く事が不可

欠である。しかしながら,物事は複雑であるため,必ずしも数式を解析的に解けると

は限らない。(解析的に解けるとは,たとえば方程式の解がある場合。 12 =x など。解

析的に解けない場合の例として 1tan =− xx など) 化学工学の問題として「反応操作」で勉強した断熱型連続反応槽の問題を挙げる。

(化学工学協会編「化学工学プログラミング演習」(旧版)培風館,例題 4-4 である。) 教科書の記述したがって変形すると,最終的な式として, xT 250450+= (1-1)

( ) ⎟⎠⎞

⎜⎝⎛

+−=

− xx 2504501000020exp25.0

1 2

x (1-2)

式(1-2)を解けば反応槽の定常反応率 xが求められ,反応槽操作温度T も式(1-1)より求

められるはずであるが,この非線形方程式(とくべき変数が線形関係でない方程式の

こと)は解析的には解くことができない。したがって,数値的に解かなければならな

い。 上の例は一例であるが,化学工学では,非線形方程式,常微分方程式,偏微分方程

式,数値積分など数値的にしか解けない問題によく出くわす。したがって,数値計算

ができることは化学工学を志すものにとって大変重要なことである。

Page 3: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

3

第2章 数値計算の実現方法と注意点 2-1 どのような方法があるか 1.プログラミング言語による方法 C 言語,C++,Fortran など 利点:ちゃんとプログラミングすれば,開発したコードのスピードは速い。 欠点:習得に時間がかかる。簡単な問題を解くには,手間がかりすぎて,ト

ータルとしてみれば時間のロスになる場合がある。 2.数値計算ツールによる方法 MATLAB,Scilab,Octave,(Mathematica),

(Equatran) 利点:先人の作った豊富な数値計算のノウハウを比較的簡単に使うことがで

きる。 欠点:最適化して作成されたプログラミング言語によるコードにはスピード

の面でかなわない。 しかし,1に遭遇する場面はそう多くないが,できたプログラムのスピードは1の

ほうが一般的にいって速い。しかし,その手間をかける間に2で答えが出てしまう場

面が多い。したがって,トータルの時間の節約になる。また,これらのツールに載っ

ている数値計算アルゴリズムは優れたものが多い。1でやる場合は,ちゃんとしたア

ルゴリズムの書いてある教科書からアルゴリズムを探してくるか,数値計算ライブラ

リと呼ばれるものを準備する必要がある。したがって1,2どちらが優れているとい

うわけでなく,必要に応じて使い分けるというのが正解である。また,開発の初期に

2の数値計算ツールで計算の実証を試し,一回の実行時間が結構かかるとかもっと計

算を複雑にしたいという時点で1のプログラミング言語での方法に変更するという

場合もある。 「化学工学プログラミング演習」(旧版)では,第1章で挙げた例題を黄金分割法

というアルゴリズムでこれを解いている。その Fortran のコードは,次ページのよう

なものである。慣れた人から見ればそれほど長いコードでもなく,そう時間はかから

ないだろう。これを C 言語で書き直すこともなれた人には,それほどの手間ではない

だろう。しかし,それでもそれなりには時間がかかる。初心者にとってはなかなか手

ごわいと感じるのではないだろうか?

Page 4: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

4

化学工学プログラミング演習の解答 (Fortran の 30 行ほどのコードが書いてある。省略。) これをこの講義で紹介する Octave で解いた例を紹介しよう。 次ページのようなコードを Ex4_4.m というファイル名で用意する。

Page 5: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

5

disp("Demonstration of solving a non-linear equation");

%

function y=funcEx4_4(x)

y=x/((1-x)*(1-x))-0.25*exp(20-10000/(450+250*x));

end

%

[x, info] = fsolve ("funcEx4_4", 0.8)

T=450+250*x

詳しくは,後ほど説明するがこれを Octave が起動するフォルダにセーブをする。 つぎに次の画面のように後ほど詳しく説明するプロンプトとところに Ex4_4 と書い

てリターンキーを押せば,定常反応率 x の値と温度が表示されている。

数値計算ツールであれば,書き方は多少の差があるにしろこの程度の手間で解けるの

である。したがって,我々は,問題を整理して式(1-2)を作成すればよく,ここまでく

ればもう解けたものと同然である。したがって,数値計算にかける手間を少なくして

問題を解けるようになる。 2-2 MATLAB,Mathematica,Equatran 数値計算ツールとして,代表的なものは MATLAB というソフトウェアである。「は

じめに」で引用した本も MATLAB による数値計算の入門書である。これは,米国 The Math Works, Inc.が開発,販売しており,日本ではサイバネットシステムが販売してい

る。非常に優れたツールらしく,多くの研究機関,企業が導入しており,このサテラ

イトラボにも導入済みである。また,多くの研究機関が使用しているため,MATLAB上で動くツール(MATLAB では toolbox という。)もたくさんあるのが利点のようだ。

とくに制御系の GUI の toolbox である Simulink は,大変有名であり,制御系のツール

としてはデファクトスタンダート的なものであるそうである。このように優れたソフ

トウェアであるが手軽に買える代物ではなく,(学生版は安いものが用意されている

そうだが,)私の研究室では導入していない。(「らしい」を多用しているのは,私が

Page 6: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

6

MATLAB を本格的に使ったことが一度もないからである。サテライトラボで起動し

て,ちょっとだけ動かしたことはあるが。) 数値計算だけのツールではないが Mathematica という大変優れたソフトもある。販

売元は,WOLRAM RESEARCH である。先に示した問題では,Mathematica のほうが

むしろ簡単に解けるだろう。名古屋大学は,Mathematica のサイトライセンスを結ん

でおり,研究室のコンピュータであれば,無償で導入できる。(研究室が金を出さな

くていいだけであり,大学としては払っているのではあるが。)ただし,個人のコン

ピュータにこれをいれるわけにいかないので自宅で使うには有償で買う必要がある。

(学生版は,比較的安価で購入できる。)また,Mathematica は,数式処理もできる総

合的な大変優れたソフトであるが数値計算に特化した性能をみると MATLAB のほう

が優れているとされる。簡単な場合は,Mathematica で十分であるが数値計算をある

程度本格的やるツールとしてみた場合 MATLAB に比べると劣るようである。(筆者は,

双方とものユーザーではないので,推定でしかものをかけないが,世間の評判ではそ

のようにいわれているのは確かである。) Equatran は,(株)オメガシミュレーション製のソフトで,2 年次の「コンピュータ

利用学および演習」で利用した。数値計算ソフトというより,方程式解法ソフトであ

る。対象としている方程式は,線形,非線形方程式,線形,非線形常微分方程式であ

る。このソフトの特徴は,方程式を書いたまま解けるという点であり,方程式を解く

点でいえば手間などを考えると大変優れている。ただし,方程式解法ソフトなので数

値積分や行列計算などには使用できない。 2-4 Octave と Scilab : Octave を選んだ理由 MATLAB が優れたツールであるため,MATLAB と同様の目的をもったフリーソフ

トが開発されている。それが Octave と Scilab である。Scilab は,フランスの公的研究

機関 INRIA (フランス国立コンピュータ科学・制御研究所)が開発している。一方,

Octave は,米国ウィスコンシン大学の John W. Eaton 氏らが中心となって,有志が作

成している。ユーザーインターフェース,toolbox の完成度などでは,Scilab が Octaveより優れている。特に Scilab には Simulink に類似の Scicos と呼ばれる制御系 GUI toolbox を備えている。(Octave にも制御系の toolbox はあるが GUI ではない。) しかし,ユーザー数をみると,とある掲示板での話題の数でも Octave のほうが,

普及している。その理由は,明らかではないが私の推測では,Octave のほうが,Scilabより MATLAB との互換性が高いため,比較的少ない書き換えでコードを転用できる

という点が挙げられる。以上の観点から本講義では,Octave を選択した。フリーソフ

トであるので当然,諸君のパソコンにも導入できる。パソコンへの導入の仕方は,講

義のホームページを参考にされたい。 Octave,Scilab,MATLAB,Mathematica,Equatran のホームページへのリンクはそ

れぞれ以下である。 Octave : http://www.gnu.org/software/octave/ Scilab : http://www.Scilab.org/ MATLAB : http://www.cybernet.co.jp/matlab/

Mathematica : http://www.wolfram.com/index.ja.html Equatran : http://www.omegasim.co.jp/product/eqg/index.htm

その他,Google などで検索すればさまざまな情報が得られるはずである。

Page 7: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

7

2-5 Octave の名前の由来 Octave と聞くとなにか音楽に関係しているかと思われるが,実はまったく違う。

John W. Eaton.氏の本業は化学工学であり,彼の恩師が Prof. Levenspiel であり,そのフ

ァーストネームが Octave なのであり,それがこのソフトウェアの名前の由来である。

Prof. Levenspiel は,反応工学のバイブルの「Chemical Reaction Engineering」の著者で

ある。Octave は,化学工学の学生に手軽に数値計算の技法を身につけさせるために開

発がはじまったのだそうだ。John W. Eaton.氏は,そのソフトウェアに恩師のファース

トネームをつけたのだが,その理由として,Prof. Levenspiel は,計算が速く,あっと

いう間に封筒の裏に複雑な反応工学に関する計算をしてしまう。その能力に敬意を表

し,ソフトウェアを Octave と名づけたそうである。 この経緯は,Octave の公式マニュアルの Preface に記述されている。(もちろん英語)

これをよむと「はじめに」に書いたこととほぼ同じ主張がなされている。 現在では,Octave は化学工学だけでなく,多くの分野の自然科学や工学に使用され

ているが,Octave は,このように化学工学と因縁の深いソフトウェアであり,最近や

っと日本でも少しずつではあるが認知度が高まってきている。 2-6 数値計算ツールの注意点と本講義のねらい 先ほど,Ex4_4.m を

disp("Demonstration of solving a non-linear equation");

%

function y=funcEx4_4(x)

y=x/((1-x)*(1-x))-0.25*exp(20-10000/(450+250*x));

end

%

[x, info] = fsolve ("funcEx4_4", 0.5)

T=450+250*x

下線のように,0.8 を 0.5 にして実行してみたのがつぎの結果である。

定常反応率が問題で設定された範囲にはない値に収束している。

Page 8: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

8

Octave では,非線形方程式は,fsolveという後に述べる Newton-Raphson 法も基づ

く方法で解いている。0.8 とか 0.5 とかは,解を求めるための初期値である。この初期

値を正しく設定しないと正しい値に収束しない。したがって,数値計算ツールはブラ

ックボックスとして使うのは危険である。数値計算のアルゴリズムそのものを理解す

るのは難しくてもその原理および限界,弱点を知っておく必要がある。非線形方程式

の解法としてはその他に 2 分法などがあるが場合によっては,そちらを使う必要があ

る。 紙に穴を開ける2穴パンチというものがあるが,これを使って硬い金属板に穴はあ

けられない。金属板に穴を開けるには,ドリルを使ってあけるであろう。このように

作業するときには物にあわせて道具を変える必要がある。しかし,ドリルが必要だか

らといってドリルから作るだろうか。我々がしなければならないのは,物の性質の理

解をすることと道具の特性を理解し,適切な道具を選ぶことである。 実は,微分方程式にも硬い微分方程式というものがあってこれを解くためには通常

よく使われる普通のルンゲ-クッタのアルゴリズムは使えない。この場合は,それに

あった特別な微分方程式の解法を用いなければならない。このように数値的な問題も

その問題な性質を理解し,それにあったアルゴリズムを選択することが重要である。 コンピュータアルゴリズム前半の「Octave による数値計算入門」のねらいは,数

値計算アルゴリズムそのものを学ぶのではなく,数値計算ツールを化学工学計算の道

具として使うために必要となる数値計算のもつ特性とアルゴリズムの選択の重要性

を学ぶことにある。

また,ものづくりでも道具を組み合わせて部品を作成することと同様に既存のアル

ゴリズムを組み合わせてより複雑な問題を解くためのプログラミングの技法の初歩

を学ぶこともこの講義の目的である。 第3章 数値計算ツール Octave を,まずは使ってみる 3-1 UNIX,Windows, Cygwin,Octave Octave は,UNIX という OS を前提に作られており,Windows 上では cygwin という

UNIX 環境をエミュレートする仕組みを利用することにより使用可能になっている。

ベースが違う OS なので,Windows ユーザーの皆さんにはとまどうことがあると思う

が本講義ではその違いによることはできるだけ,意識しないですむように工夫をして

いる。(したがって,ダウンロードしてきたままの Octave ではない。) 最近は,Windows の Native な環境で使用できる Octave の構築が試みられており,

開発版である 2.9 シリーズでは,実際に2つほど Windows の Native な環境で使用でき

る Octave があるが,動作がまだ安定しておらず。素人には勧めない。(この時点では,

安定してなかった。いまは,だいぶいいものが出てきている。) また,今回は,cygwin を利用した Windows 用 Octave の 2.1 シリーズでは,少し古

い 2.1.50 を利用している。最新バージョン 2.1.73 は,ファイルの使用量が大きい割り

にいろんな問題で,かえって遅くなっている部分もある。(これは Octave の問題では

なく,cygwin のコンパイラの問題なので,UNIX そのものでは,この問題は生じてい

ない。)最新バージョン 2.1.73 は,大規模行列計算や FFT は高速化している,また,

3次元の配列が扱えるなど最新バージョン 2.1.73 ならではの利点もある。したがって

非常に悩んだが,本講義で扱う範囲では,2.1.50 で十分なので,ファイル容量の面か

ら 2.1.50 使用している。確認は取らないが,おそらく本授業で用いるスクリプトは,

Page 9: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

9

最新の 2.1.73 でも使用できると思われる。(この時点では,最新は 2.1.73 だったが現

在は,2.9.12 である。) また,Windows 用 Octave として配布されているものは,Octave-forge という拡張パ

ッケージが導入されている。Octave-forge の機能は,Octave 本体より,信頼性に劣る

面もあるとされているが,通常の使用ではそれほど問題にならないであろう。

Octave-forge が導入されているおかげで,MATLAB との互換性はより高まっている。 注:MAC ユーザーへ,MAC は OS X から UNIX をコアにした OS である。したが

ってOctaveのMAC版ももちろんある。ただし,私が詳しくないので紹介は割愛する。

MAC 版を使用したい人は,Octave の Homepage から自力で何とかしてほしい。 3-2 準備

さて,サテライトラボ 716 号室には,私が Octave を導入しておいた。それを使う

前に準備を進める。 1.マイコンピュータから自分の Z:ドライブにアクセスする。 2.講義用ホームページにいき,Octave 使用の準備で使うファイル「Octave.zip」

をダウンロードし,Z:ドライブの「My Documents」に保存する。すると次のペ

ージのように表示されるはず。

をダブルクリックし,中身を展開する。

Page 10: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

10

このような画面が表示されるので の「Octave」をクリックする

このように Z:ドライブの一番もとに展開されるので

この「Octave」というフォルダをわかりにくいが上のようにマウスでドラッグ

して「My Documents」の下に持っていく。 3.「My Documents」に「Octave」というフォルダができ,ファイルが数個とその

下に「Scripts」というフォルダができているはず。「Octave」のすぐ下にできて

いるファイルは設定に必要なファイルですから消さないように。 4.フォルダ「Scripts」には,「OctaveWithEditor」というショートカットと「Ex4_4」

と書いたファイルができる。「Ex4_4」は,実は,「Ex4_4.m」なのだが,MATLABに関連付けがなされているので,MATLAB アイコンで表示されていて拡張子

「.m」は,表示されない。(Octave が MATLAB と同じファイルの拡張子「.m」

を使い,サテラボのコンピュータには MATLAB がインストールされているた

めこのようになってしまう。)これで準備は完了となる。 (実はスタートメニューから)Octave を起動できるのだが,このようにしたのは

理由がある。その理由についてはまた説明する。 3-3 起動 「Scripts」のフォルダーにある「OctaveWithEditor」というショートカットをダブル

クリックする。 すると,Octave が起動し,簡単なサンプルプログラムが実行され,グラフが描かれ

Page 11: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

11

る。また,Octave のスクリプト(プログラムみたいなもの,プログラムとスクリプト

の違いはいずれのべる。)を記述するのに適した SciTE というテキストエディタが起

動する。(テキストエディタとはテキストファイル(文字情報だけのファイル。スク

リプトはテキストファイルで書かなければならない)を編集する道具で,Windows には標準でメモ帳がある。)

これは起動画面の様子。(実は,自宅のコンピュータでのスクリーンショットなので

実際とは違うが似たような画面が表示されるはず。) これが Octave 本体の起動画面。

Octave は,コマンドを打ち込み,その結果を画面に表示したり,グラフを描画すると

いう対話型のソフトウェアである。実は,Octave そのものには対話画面描画機能がな

く,rxvt というソフトで実現されている。Octave ではまた,グラフ描画機能は gnuplot(windows 版は,wgnuplot,ダブルニュープロットと読む。)というソフトで実現され

Octave 本体

wgnuplot

SciTE

Page 12: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

12

ている。rxvt には便利なマウス編集機能があり,これについては,のちほど述べる。 これがグラフ描画画面の wgnuplot の描画画面例である。

Octave での通常起動では,グラフは描かれないが,ここにインストールしてあるもの

は私が細工して,グラフが描画されるようになっている。 次はテキストエディタである SciTE の起動画面

これは,対話型使用では限界があるのでスクリプトを書くために用いる。これは通

常の Octave 2.1.50 のセットにはついてこない。したがって,これは私が導入したもの

である。ちなみに,Windows 用の 2.1.73 の Octave には SciTE がついてくるが,カス

タマイズがあまりよくないので,そのままでは使いにくい。SciTE のカスタマイズに

Page 13: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

13

ついては講義用ホームページを参照のこと。 注:Octave は,このように他のソフトを利用しているため対話画面ソフト,グラフ

作成ソフト,エディタを他のソフトに代えることができる。 諸君が自分や研究室のコンピュータでこれと同様な環境を簡単に実現するセッ

トを講義用ホームページからダウンロードできるように用意しておいた。 3-4.とにかく使って見る 1)コマンドの入力

上の>>の部分がプロンプトといわれコマンドを入力する部分である。ここでリターン

キーを押すと

のように計算結果が表示される。 いちいち全画面を書いていると大変なので

>>sin(1)

ans = 0.84147

Page 14: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

14

などのように書くことにする。 2)計算結果のコピー

のようにマウスでクリックしてドラッグし,マウスボタンを離す。これで,コピーさ

れている。これは,テキストエディタやワードなどに貼り付けることができる。 3)プロンプトへの貼り付け 他のエディタなどで書いたものをプロンプトへの貼り付けができると便利である。

ローラーつきマウスの場合は,ローラーを押すとプロンプトへの貼り付けができる。

ローラーがない場合は,Shift キーを押しながらクリックすると貼り付けることができ

る。 また,2)の図のようにドラッグした状態でローラーを押すまたは,Shift キーを押

しながらクリックすると,ドラッグした部分を貼り付けることができる。 また,

このように sin(1) をドラッグしながら右クリックを押すと

Page 15: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

15

プロンプトにドラッグした部分が貼り付けられる。これも使いようによっては,便利

な機能である。 4)History 一度打ちこんだコマンドは,History として記憶されていて,ふたたび利用できる上

下矢印キーでこれを使うことができる。かなり便利な機能である。 5)画面バッファ rxvt では,画面バッファ機能があり,マウスのローラーや左側のスクロールバーで

過去の情報をみることができる。 6)その他 キーワードの途中まで入力して1回ないし2回 TAB キーを押すと補完や候補表示

をしてくれる機能など,マスターすればほかにも便利な機能はあるが,とりあえず上

の1)-5)を使えるようにしよう。 3-5.終了 プロンプトで

>> exit

で押せば終了する。ただし,SciTE は,これでは終了しないので,別途終了する。 3-6 マニュアル マニュアルは,「スタートメニュー」の「プログラム」の「GNU Octave 2.1.50」か

ら見ることができる。これは,英語である。現在 2.1.73 用に日本語マニュアルが作成

中であるが,まだ未完成である。そこで,帯広畜産大学の増田 豊氏が作成した,「日

本語ハンドブック(リファレンス)」を収録しておいた。その他,日本語の参照とな

る資料があるが,これは講義用ホームページからリンクを貼ってある。 また,Octave の追加機能である Octave-forge のマニュアルはここにはおいていない。

インターネット上から http://octave.sourceforge.net/の Function Reference を見ることに

なる。ただし,この Octave-forge のマニュアルは 2.9 シリーズ向けなのでここに載っ

ている機能がすべて使えるとは,限らない。その場合 Octave 自身が持っているヘル

Page 16: コンピュータアルゴリズム (前半 Octave による数 …...1 コンピュータアルゴリズム (前半 Octave による数値計算入門)(公開版) 担当

16

プ機能で確認することになる。 3-7 ヘルプ Octave のプロンプトから,

>> help

と押すと,使用できる演算子やコマンド,関数のリストが出る。たとえば >> help fsolve

と押すと,以下のように説明がでる。

ただし,もちろん英語である。 3-7 その他の情報 講義用ホームページからリンクリストを用意しておいた。特に東京電気大の松田先

生の講義のページの「計算機物性物理学演習」と「計算機物性学」の pdf ファイルは

大変参考になるので必ずダウンロードしておくこと。