オンライン健康相談、gooドクター

素粒子実験,高エネルギー物理の研究がしたいです.加速器の検出器開発などです.
これらの研究でプログラミングは使いますか?
また,僕はシミュレーション物理もやってみたいです.高エネルギー物理では大規模な実験になりがちなので,シミュレーションが必要になる気がするからです.
加えて,趣味などでもYouTubeにあるような物理エンジンの動画みたいに遊んでみたいです.

大学では計算物理の授業をやり,fortranを学びました.シミュレーション物理の授業も受ける予定でそこでもfortranを使います.
シミュレーション物理をやるにはfortranが適しているのでしょうか?
最近はfortranはあまり人気ではないようで,書店に行っても置いてある本は他のプログラミング言語に比べてかなり少ないです.
授業はあるとしても,基本は独習で学んでいきたいので,わかりやすい参考書などがないときついです.実際に僕はプログラミングが得意ではなく,授業ではあまりプログラムをかけないことが多々ありました.


そもそもシミュレーションの方はやったことがないので,プログラミングとどう繋がるのかわからないです.

まとめると,授業があるのでfortranはやりますが,趣味や研究などで使うプログラミングやシミュレーションを学ぶための参考書がほとんどないので,どうやって学んでいけば良いのでしょうか?
あるいは参考書が充実している(?)C++やPythonなどをやってみるべきでしょうか?

gooドクター

A 回答 (7件)

>>最近はfortranはあまり人気ではないようで,書店に行っても置いてある本は他のプログラミング言語に比べてかなり少ないです.



Fortranって古い言語で、表現力が弱いから、人気ないのはわかります。
今日、丸善でコンピュータ書籍コーナを見たのですけど、Fortranという文字は見かけなかった気がしますね。

>>シミュレーション物理をやるにはfortranが適しているのでしょうか?

シミュレーション処理には、いろんなライブラリーが必要になります。自分で作っていては大変なので、すでに作成済みのものを使うことになります。
そのライブラリーがFortranで作られているからFortranが適しているってなるのでしょう。
例えば、現在流行のAI分野では、沢山のライブラリがPythonで作られているそうです。
となれば、「AIやるなら、Pythonで」っていう流れになるのと同じですね。

>>授業があるのでfortranはやりますが,趣味や研究などで使うプログラミングやシミュレーションを学ぶための参考書がほとんどないので,どうやって学んでいけば良いのでしょうか?

プログラムを作るためのアルゴリズムがわかれば、いろんな言語で実現可能です。
だから、Fortranなどの言語に限定せず、シュミレーションのアルゴリズムが説明された書籍を入手すればいいと思います。
また、他の言語で記載されたシュミレーションプログラムがあれば、それも参考になると思いますよ。
なお、パソコンで実行できるFortranも非商用であれば、無料で使えるものがネットで配布されていたはずなので、それを買って自分用のノートパソコンにインストールすれば、自宅や学校でプログラミングできると思います。

また、FortoranをC言語っぽくして、楽に記述するためのRatforってプリプロセッサもあったと思います。
    • good
    • 1

FORTRAN といっても、今は90や95が主流で昔のFORTRANとは別物。


書籍も豊富ですよ。

FORTRANは古くから科学技術計算に使われて来たため
科学技術計算に特化した並列化の技術が有り、比較的楽に
計算を高速化できるのが、FORTRANが愛される理由です。
スーパーコンピューターが手元にあるならFORTRANという
選択になるのでしょう。

大学の数値シミュレーションでは、研究室で計算に特化した技術を身に付けるのが
一般的だそうで、それまでは言語は何でも良いようです。

個人的には数値シミュレーションのライブラリが豊富で、可視化も用意な
pythonをお勧めしますね。
    • good
    • 1

FORTRANを使ってメリットがあるとしたら、過去のバグ取りの終わった、安定した工学系のライブラリーがあると言う事です。


ただし、FORTRAN77などの古いバージョンで作成されたものは、コンパイルされたライブラリーは使用できない場合もあり得ます。(非互換のライブラリーは、ソースの修正が必要です)
そう考えると、C++などの方が、最新のライブラリーが使用できる可能性は高いですね。
FORTRAN自体は、高級言語なので、プログラミング自体のテクニックはそれほど必要では無いです。
必要な技術計算部分は、豊富なライブラリーを利用すれば良いだけです。
処理時間の短縮の為にルーチンの最適化などを行えば良いだけですね。
基本的な処理ループの最適化は、他の言語でも、ルーチンの処理としては同じです。(ただし、標準で使用できる、関数・プロシジャー、データ形などで、やり方が違うと言う事です)
入出力インターフェースは、OSに依存するので、通常はOSに適したライブラリーを使用するのが、汎用性を高めます。
グラフィックインターフェースなどは、ライブラリーの使用以外は考えられないでしょう。
問題なのは、質問文にあるとおり、基本的に工学や科学技術計算でしか使わないので、一般向けの参考書が少ない事です。
FORTRAN77、95ならば、古書で参考書は豊富にあるでしょうが、内容が現在に合いません。
他の回答者の回答にあるとおり、無理にプログラミングしなくても、有限要素法などの場合は、優秀な商用ソフトがあります。
ただし、特定の物理現象を基礎方程式から作ってシミュレーションしたい場合は、自分でプログラミングする必要はあるでしょう。
処理時間の最適化を考えないならば、FORTRANでもかまわないと思います。(メインフレームの場合は、使用料金が高いので、最適化を考えないと、豊富な資金が必要になります)
    • good
    • 1

僕のような老人は,ほぼ FORTRAN だけで過ごしました。

工学系の連続体力学関連の仕事をしておりました。Cygwin のコンパイラ (C も入ってます) は Windows 上で無料で使えますので,自宅ではこれで,職場では職場のメインフレームとコンパイラを使っておりました。僕のかつてのボスもシミュレーションには C だと言って,1980 年代にほぼ初の卓上 UNIX マシンを買ってくれましたが,C は,K & R の本の数ページ目で挫折。引数の受け渡し等が FORTRAN と違う等のとまどいも原因の一つでした。結局メインフレームと UNIX 上の FORTRAN で論文書きました。が,結果を画像にする機能が FORTRAN には無いか,商用のライブラリを使わないといけませんでした。FORTRAN がわかっているなら BASIC はすぐ使えます。結局,図化やグラフィックスでインタラクティブなプログラムを作る場合は Visual BASIC (昔は Quick BASIC)を使いましたね。今も使ってます。ロハですし。前述のボスも最初は BASIC マシンを買ってくれましたね。ただ最近の研究上の大規模な計算と図化は,もう商用ソフト(有限要素法のプリポスト)でないと無理ですので,結局職場ではそれを買いました。Windows 上でも動きます。
    • good
    • 1

スーパーコンピューターのオプティマイザはFORTRANベースですが、そうでないインテルベースのコンピュータならFORTRANのアドバンテージはほとんどありません。

    • good
    • 1

「今の Fortran」だとそれなりなことができるんだけど, 誰もそこまでやってないんだよな~.



構造体もあるしポインタも使えるし, オブジェクト指向プログラミングも可能.
    • good
    • 1

fortranなんて 過去の遺物さ


Cやっておけばいい
javaも 制限おおいし
Cからの派生が多いから応用効く
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング