プログラミングに物理はどのくらい必要か


2017年 08月 17日

プログラミングに数学はどのくらい必要か と言うのをちょっと前に書いた。
今回は、その物理版を書こうと思う。

 しかし、物理と数学ではプログラミングとの関係はあまりにも違う。
プログラミングで数学能力はとても重要で、数学的能力の方が大切になることさえある。

それに比較すると、物理は知らなくても、ほとんどの場合は困らない。
 最近は物理エンジンというものも普及していて、物体の運動などは適当に計算してくれるので、計算結果の利用のしかたを知っているだけで困らないことが多い。

・・・なんてことを書くと、物理など勉強しないでも大丈夫ということになるし、実際に物理など高校までで終っているというプログラマも多いだろう。
 となると、書くことがなくなるのだが、実際にコンピュータを使って物体を動かす、制御するなどの場合は、物理の原則を知らないダメである。

物理をうまく利用すれば、ちいさなモータでちゃんと動かせたりするし、走行ルートを上手に取ったりできるわけである。
ロボットなどの制御には知っていた方が良い。
さらに、コンピュータでシミュレーションをやるときにはとても物理は重要になる。

実際に物、装置を作る前に、コンピュータ上で入念にシミュレーションをしてから設計制作に入ることも多い。
こういうときには、物理も数式レベルまで分かっていないといけない。 何をやるかによって違うが、力学、電磁気学と数学、それも行列、微積分、フーリエ解析などを必要とすることが多い。
たとえ大学レベルでも、物理をきっちり勉強しようとすると、かなり大変になる。
 でも、とりあえず、理工系の2年までに習う物理の基礎部分くらいはプログラマなら習得していても損はない。
ということで、自習用としてお手ごろな本を紹介しよう。

DSCN0694 (600x450).jpg
mathema-physics-chart.jpg数学のときと同じ、マセマのキャンパス・ゼミである。
全6巻であり、各巻の関係は右図のようになっている。

実は、それぞれの分野で必要になる数学があり、数学的に詳しいことはマセマの数学の本を見るようにとの指示で説明が終っていることも多い。

もちろん、マセマなので、説明、計算はかなり丁寧に書かれており、計算しながら読んでいけば、ほぼ理解できるのではないかと思う。
このあたりは、数学シリーズとまったく同じ感覚だと思えばよいだろう。

ただし、もちろん基礎を丁寧に書いてはいるが、そんなに分厚くなく、範囲はかなり限定されている。量子力学が、たった1冊で終っているのだが、1次元の簡単な場合の説明に限っているからである。

このマセマの物理に限ったことではないのだが、最近の物理学のテキストは、実験のこと、実際の物質、物体を具体的に示したり、写真を使ったりしての説明がものすごく減っている気がする。
個人的には「これで物理の本?」と思うのが多い。

物理を理解するというより、なんだか試験対策みたいな気がするのだ。
マセマのシリーズには、常に「単位なんて楽に取れる!」と書いているのだから、まあ偽りはない。

WEBで動くアプリなどを作っている限りは、物理学は不要かも知れない。
数学と物理がプログラミングでいっぱい必要になるのは、物理シミュレーションであろう。
そういう世界では、まだまだFORTRANは現役で、スパコンで普通に使われている。
流体、天体、気象、、、、など色々あるのだが、そこまでやる人は少ないか。

今年の春、FORTRANで書かれた電磁波工学のシミュレーションプログラムに手を入れた。
それは、狭い領域のシミュレーションだったのだが、もう1本、広域でのシミュレーションが残っている。
必要な主な知識は、電磁気学(電磁波)、フーリエ解析、FORTRAN、3次元立体幾何学程度なのだが、誰か代わりにやってくれる人はいないものだろうか。