数学の情報教育

数値計算法の教育


長嶋 秀世(工学院大学電子工学科教授)



1.はじめに

 情報化社会と言われる今日、コンピュータを扱えない者は有能な社会人と言えなくなっている。私達の身のまわりでは、天気予報、コンピュータグラフィックス、あるいは数値制御など数値計算法は多くのところで使われている。
 特に、気象予報のようなコンピュータを使って数値的に物理現象を解明するシミュレーションは、計算速度が格段に速くなった今日では各方面で重用されている。物理現象や社会現象が近似的に行列や微分方程式のように数式で表される場合は、シミュレーションを行うことができる。実際に、現象を経験しないでコンピュータにそれを代行させることは、資源のロスも少なく、時間や経費の節約になることは言うまでもない。
 工学的な問題を処理する場合、実際的にいろいろ起こりうるケースについて、そのままではコンピュータで簡単に解決できないことが多い。また、数値計算法が分からないと、コンピュータセンターにある微分方程式や代数方程式のサブルーチンを作ることができない。解析的に解くことが不可能な方程式の解を求めるには、これらの式をコンピュータで処理できるような近似式に変えることのできる数値計算法の知識が必要となる。


2.数値計算法の講義

 この授業では、学生が線形代数と解析の基礎的な知識を持っていることを前提に、数値計算に用いられる公式を導出し、その基礎となる考え方および応用を講義している。数値計算法の授業は第一、第二と2単位ずつに分けられている。数値計算法第一では、種々の解法の基礎となる差分法、画像処理や数値制御などに用いられる補間法、高等関数や複雑な関数を単純な多項式で置き換えたり、実験データなどから近似式を作るための関数近似、微分方程式や微積分の数値解を求めるための数値微分、数値積分などについて講義する。
 また、第二では通信、制御などに用いる行列の計算、固有値を求めるための非線形方程式や代数方程式の解法、人工衛星の軌道計算など物理的な現象や状態の解明に用いる微分方程式や偏微分方程式などの数値解法について講義する。
 数値計算に関連するテキストは、公式、定理、証明を数学的に厳密に述べるような非常に難しいものと、公式は与えられたものとし、そのアルゴリズムだけを説明しBASICやFORTRANで書かれたプログラムだけを載せたものに分かれている。しかし、それでは数値計算法にでてくる公式がどのようなときに使われるか、なぜ必要なのか、どのようにして求められるのか分からない。本学ではこのようなことを理解させるために、平易に述べた独自のテキストを提供している。


3.コンピュータを活用した数値計算法の教育

 数値計算法の講義で学んだ理論は頭の中では分かっているが、これを身を持って経験することはできない。そこで、パソコンを用いて数値計算法の実際的な知識と応用を学ばせたいが、プログラム言語を完全にマスターしていなければ効果がない。あるいは、多少プログラミングの勉強をしているからと数値計算法の授業にコンピュータを導入すると、授業はプログラミング演習になってしまう恐れがある。
 各大学ではプログラミング演習なる授業はたいてい低学年で行っているが、自由に使えるようになるのは3、4年生になってからであろう。ところが、数値計算の授業はたいてい2、3年に配置されているので、前述のようなことになってしまう。また、公式の本当の意味やアルゴリズムを理解させるには、手で計算をさせることも必要である。したがって、授業の後半の僅かな時間を使って、毎週演習を行うことになる。この演習は学生にとって面倒なことで、解を出すことに目的がすり替わり、その意味やアルゴリズムの理解は忘れ去られてしまうことが多い。しかも、このようにすると授業時間がかかり、限られた単位の中では教える項目が少なくなってしまう。また、授業の手間が普通の講義に比べて格段に多くなり、担当者の負担が重くなる。それではと、演習の内容をプリントして配ると試験のときにそれを丸暗記する者が出てくる。時間を節約し、内容を理解させるためにプログラミングを書いたプリントを配布すると、それをタイピングするだけでそのアルゴリズムを理解しない。
 学んだことを活用させるためには、長時間かけて、講義、演習、プログラミングを行わねばならないだろう。
 そこで、数値計算法の内容を理解させ、応用できるだけの力を身につける方法として次の二つのことが考えられる。

1)CAIの導入

 前述のように、数値計算法の演習は手間ひまがかかるので、コンピュータに演習の担当を任せてしまうのである。数値計算法に関するコースウェアを作成し、これを用いて授業の空いた時間を利用して学生が自習するのである。これはそれなりの効果はあると思われる。

2)数値実験の導入

 電子工学科では電子工学実験という科目があり、これ以前に学習した授業の知識を基に、伝送回路やアンテナの特性などを測定する。これは、すでに学んだ知識を掘り起こし、活かし、応用する力を身につける。情報工学科では情報工学実験という科目があり、演算回路の働きを理解するための実験テーマが並んでいる。ここで、コンピュータの仕組みやプログラミングおよび数値計算の知識を確かなものにするため、数値実験という科目を導入したらどうか。数値実験はある物理現象をシミュレーションするのである。これは物理現象を測定し、その近似式を作り、プログラミングを行い、コンピュータで演算させて値を出力するのである。この結果の評価は速度と精度である。誤差のない良い測定をし、誤差の少ない近似式を作り、誤差の増幅や伝搬を押さえる良いプログラムを作らないと、良い成果は得られない。
 これは、情報関連の科目の総合的な実力養成になるであろう。


4.むすび

 数値計算には何が大切なのか知らせるには、現実的な問題を解く以外にない。それには気象予報でも交通管制でもよい。しかし、これは卒業研究と同じくらい手間ひまがかかることになる。したがって、数値計算法に対する周囲の格段の理解と担当者の強い意志がないと、コンピュータを本当の意味で理解できる者は育たない。


【目次へ戻る】 【バックナンバー 一覧へ戻る】