- ベストアンサー
数値計算の勉強をはじめるなら、MATLABに頼るべきか自分でプログラムを書くべきか悩んでいます
- 現在大学院修士課程1年の私は、将来アカデミックな研究者を目指しています。研究で非線形方程式(多変数)の解を数値計算で求めたいと考えているのですが、数値計算は初めてで迷っています。
- MATLABなどの市販ソフトを使えば短時間で数値計算を行うことができますが、研究者としては自らプログラムを書くことが望ましいのか悩んでいます。数値計算の理論をしっかりと理解した上でFORTRANなどでプログラムを作成する方が良いのでしょうか。
- 数値計算の勉強を始める際に、MATLABに頼るか自分でプログラムを書くか迷っている私に対して、アドバイスをいただけると助かります。研究者を目指すならどちらが望ましいのか教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
プログラム言語なんて、一つマスターすれば何でも一緒ですよ。 英語や中国語をマスターするより、全然易しい。 フリーソフトでFortrunコンパイラが入手できる時代ですので、 Fortrunに興味ありそうなのだから、書いてみれば良い。 あなたの場合、まさしく遅功より拙速です。悩むよりやってみることです。1日あればFortrunって何って判ると思いますよ。Matlabだって同じこと。 目的や環境で選んだ方が良いです。 僕は、自分の狙いの特性のアンテナが欲しかったので、理論式から解いて楕円関数が入ったからMathematicaで理論解を求め、CでFDTD法の伝搬解析プログラムを書いたことありますが、Cで書いたのは一番慣れているからで、「科学技術計算ライブラリ」の本を買ってきて複素数の取り扱いを参考にしてかいた。同じような内容がネットでもあったのでご参考。 http://www5.airnet.ne.jp/tomy/cpro/science.htm Fortrunの資産があればFortrunでも良いのでは。FortrunよりCが良いのは型の宣言が自由度あり変換も簡単だし、ポインタが使えるところかな。僕にとってはかゆところに手が届くのがCの方です。 まだ若そうな研究者のようなので、いろいろ経験してみることです。
その他の回答 (4)
- nagoyan777
- ベストアンサー率0% (0/1)
私が使ったFortranの"文法の"参考書です。 入門Fortran90 Larry Nyhoff,Sanfort Leestma プログラミングの手順や注意点が書いてあり参考になりました。 電気回路の電流値や仕事量の計算等の例題があります。 "数値計算法"の参考書ではありません。 web上では、京大の富田博之先生のHPが参考になります。 他の方も言われているように、簡単な言語なので webの情報を参考に一度プログラムを作ってみると良いと思います。 フリーで手に入るコンパイラには、GNUやIntelの評価版などがあります。 ちなみに、Fortranは現在Fortra2003まで策定されており、古い言語ではありません。 ただ、個人的には研究者は市販ソフトに頼るべきだと思います。 数値計算の理論を理解した上で、便利ツールを活用したほうが研究がはかどります。 矛盾したように聞こえるかもしれませんが、 プログラミングの技術を身につけた後、市販ソフトを使うのをおすすめします。
お礼
お礼が遅くなってすみません。 理論をしっかりと把握した上で市販ソフトを使ってみようとおもいます。ありがとうございました。
- gn_drive
- ベストアンサー率22% (175/789)
自分で解いた微分方程式や解析式を計算したいんですよね? MATLABやMathematicaで計算できることなら自分でコーディングするのは不要でしょう。 金の問題なら、フリーソフトのScilabとかもあります。 それらでは計算できないから、研究者だから市販のコードがないので自分でコーディングするのは分かります。その際は、Fortrunより、CとかC++の方が良いと思いますよ。趣味の問題ですが。 複素数の取り扱いも簡単にできるし。 SnやCnでもMathematicaで計算できるので、先ずが市販ソフトを使ってみるべきです。
補足
自分の研究でモデルを構築しており、実際のデータを用いてモデルのパラメータを推計するために、非線形最適化問題を解きたいのです。 市販ソフトでできないからというよりは、自分でプログラムを組んだほうが今後研究を発展させる上でも役立つのではないかと考えています。 科学計算にはFORTRANがいいと聞いた事があるのですが、C++の方が良いという点が具体的にありましたら教えていただけないでしょうか? また、非線形最適化の本などは読んでるのですが、そこには実際にどうプログラムするのかについてはあまり書いてなく、自分の中でなかなかプログラムと結びつきません。もし良い本がありましたら教えてください。C++でもFORTRANでも結構です。 よろしくお願いします。
- after_bad
- ベストアンサー率25% (1/4)
今でも数値計算・科学技術分野ではフォートランは現役です。 特に並列処理プログラミングでフォートランの右に出る言語は無いでしょう。 今後パソコンでもマルチコア化が進めばさらに有用になると私は考えてます。 修士課程は研究は新規性が問われますからMATLABなどの先人の業績に上にフォートランであなたの実績を積み上げてください。
補足
ありがとうございます。 科学計算にはFORTRANがいいと聞いた事があるのですが、もう古い言語というも聞きます。 もしこれから数値計算を学ぶならfortranとC++ではどっちが良いのでしょうか(参考書の量や質も含めて)。また、それ以外でいい言語などがありましたら教えていただけるとありがたいです。
- bodyshot
- ベストアンサー率14% (46/326)
今時フォートランという選択肢はありえないです。 まずはエクセル等で計算してみてはどうでしょうか。
お礼
ありがとうございます。 研究室でメインにつかっているものがFORTRANだったり、 数値計算にはFORTRANがいいというのを聞いたことがあったので…。 そうですね、他の言語、C++なども考えてみようと思います。
お礼
お礼が遅くなってすみません。 そうですねいろいろやってみようかと思います。 ありがとうございました。