今回から、「科学技術計算講座」と題して、実際に計算プログラムを作りながら科学技術計算を学んでいこうという講座を開きたいと思います。
世の中には、数々のCAEソフトウェアや科学技術計算のためのプログラムがあり、有償無償問わず使うことができます。とりあえず何か入力すれば、きれいな画像やアニメーションが出力され、いろいろな情報が得られます。
でも、ソフトウェアの中でどんな計算が行われているか、どういうプログラムが組まれているのか知らないと、出てきた結果がどういう意味を持っているのか、正しいのか間違っているのかもわからないということになりかねません。一方で、計算手法やプログラムについて少しでも知っていると、より深く結果を役立てることができるのかなと思います。また、自分でプログラムが作れると、今までできなかった検討や考察ができるようになって仕事の幅もぐんと広がります。
プログラミングは今や小学校でも習う時代になりました。子どもたちに負けてられないので、ぜひ一緒に学んでみませんか?
対象者
この講座の対象者は、
- 科学技術系のエンジニア、研究者、学生など
- プログラミングはやったことがない
- パソコンは普通に使える
- 科学技術計算やシミュレーション、数値計算について知りたい
という方を想定しています。
プログラミング言語
プログラミング言語は世の中にたくさんあります。技術計算に向くものや向かないものもいろいろですが、ここではPythonという言語を使うことにします。Pythonを使う理由は、
- 初心者でも簡単に使える
- グラフなどが簡単に出力できる
- 数値データの出力も簡単にできる
といった点です。プログラミング言語はたくさんあるのですが、細かいところは置いておいて、大雑把な流れや考えなどは共通なところが多いです。ひとつの言語を習得して、プログラミング自体の考え方に慣れてくると、他の言語でもとっつきやすくなります。細かい文法や詳細な構造は違っても、プログラムの考え方みたいなものは同じです。職場や学校で違う言語を使う必要がある場合でも、すんなり入りやすくなると思います。
ここでは、Pythonを使いますが、細かい文法を根堀葉掘り説明はしないつもりです。英語と同じで、文法ばかり詳細にやっても難しく感じるばかりで、眠くなってしまいます。まずは、細かいところは置いておいて、なるべく簡単に説明して動くプログラムを作ろうと思います。なので、専門のプログラマーから見れば、ちょっと端折りすぎたり、逆に回りくどかったりすることがあるかもしれません。
進め方
科学技術計算は、プログラミングだけが重要なわけではありません。それよりも、計算したい対象がどのような物理法則で成り立っているか、その物理法則がどのような数式で表現できるかということを考えることが、より重要です。この数式さえできれば8割終了といってもいいでしょう。あとは、この数式を解くプログラムを作り、コンピュータに計算させるだけです。
そこで、まずは計算したい対象を提示して、それが物理的にどのような数式で表現できるか説明していきます。次に、その数式をコンピュータで計算する手法を説明します。最後に、それをプログラミングして計算します。
題材はいろいろありますが、まずは簡単な微分方程式(この言葉だけで頭を抱えないでください。。)からやっていきたいと思います。簡単ですが、これができれば結構いろいろな計算に応用が効く基本となるものです。
今日はこの辺で終わりにします。次回は、とりあえずPython環境をインストールします。