• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数値計算ができるようになりたいのですが…)

数値計算の勉強をはじめるなら、MATLABに頼るべきか自分でプログラムを書くべきか悩んでいます

nagoyan777の回答

回答No.5

私が使ったFortranの"文法の"参考書です。 入門Fortran90 Larry Nyhoff,Sanfort Leestma プログラミングの手順や注意点が書いてあり参考になりました。 電気回路の電流値や仕事量の計算等の例題があります。 "数値計算法"の参考書ではありません。 web上では、京大の富田博之先生のHPが参考になります。 他の方も言われているように、簡単な言語なので webの情報を参考に一度プログラムを作ってみると良いと思います。 フリーで手に入るコンパイラには、GNUやIntelの評価版などがあります。 ちなみに、Fortranは現在Fortra2003まで策定されており、古い言語ではありません。 ただ、個人的には研究者は市販ソフトに頼るべきだと思います。 数値計算の理論を理解した上で、便利ツールを活用したほうが研究がはかどります。 矛盾したように聞こえるかもしれませんが、 プログラミングの技術を身につけた後、市販ソフトを使うのをおすすめします。

noname#81447
質問者

お礼

お礼が遅くなってすみません。 理論をしっかりと把握した上で市販ソフトを使ってみようとおもいます。ありがとうございました。

関連するQ&A

  • 数値計算のための勉強の仕方

    私は現在大学院修士課程1年です。 とある事情で、学部の時とは異なった分野で研究をすることになり、 研究テーマを模索していたのですが、現在は数値計算を用いて研究をするという形になっています。 現在使用しているソフトはCADMAS-SURFと呼ばれるものです。 このソフトに関する文献などを読みながら、少しソフトを動かしてみているのですが、正直なところわからない箇所が多く、 手探り状態で進めている状態です。 様々な人に聞いてみたりしたのですが、このソフトを使用したことのある人が周囲にはいません。 また、私自身、学部の時にこうしたソフトを使用したことがないばかりか、物理学にもあまり精通しておりません。 現在、流体力学の本を読んだりしながら勉強はしているのですが、難しい計算式などが出てくると それがどのような状態を示しているのか頭の中でイメージできないことが多く、 用語も知らないものばかりで時間がかかってしまいがちです。 ちなみに、数値計算を使用して研究されている数少ない先輩の話では、その方も手探り状態で進めているとのことです。 また、その方からは本に書かれている基本的な理論などは理解した上で計算しないとダメだというアドバイスをいただきました。 したがいまして、私としましては、やはり地道に勉強しながら進めていくしかないのでは、と考えております。 物理学や数値計算に詳しい方、勉強・研究の進め方、おすすめの参考書についてなど、ご教授いただければ幸いです。 また、大学院にて大学の専攻と異なる分野で研究をしたことがある方、体験談などをお聞かせください。 よろしくお願い致します。

  • fortranプログラミングでの数値計算と可視化環

    現在fortran77により数値計算し、可視化する環境を探しています。素人なので、アドバイス頂ければ幸いです。 背景:matlabで既にプログラム済みファイルを、fortranで書き直したい。プログラムは数値計算をしてその結果をグラフ(2D,3D)で可視化する物。matlab環境では計算時間がかかる為、fortranで時間短縮したい。 環境:Win XPへ所有しているマイクロソフトビジュアルFortran77(Ver調査中。7年くらい前の物)をインストールして、それを使おうと考えています。 疑問:どうやって計算結果を可視化するか?ポストプロセッサーとして、gnueplotやmatlabを使用するのは可能だと思うがそれが一番効率的なのでしょうか?ビジュアルFortranには可視化ライブラリみたいな物があるのでしょうか? 不足情報あればアップいたします。初心者ですが、アドバイスを宜しくお願いします。 追伸:研究室の過去の資産の関係でFortranを考えています。多言語でのメリットもあれば教えて頂たいですが、基本古い言語使用に対する中傷「のみ」はご遠慮下さい。

  • フリーの数値計算ライブラリ

    皆さん,こんにちは。 世の中には,MKL,IMSL 等,数値計算ライブラリがいろいろあるようです。でも,有料なので個人で使うにはちょっと敷居が高いです。そこで,フリーの数値計算ライブラリを探しています。 線形代数ライブラリとしては,MTL/ITL を見つけました。その他,特殊関数,非線形方程式等まで含めたものは,まだ見つけられていません。liboctave は Windows で使うのは面倒臭そうなので,却下したいです。また,言語は C++ が希望ですが,Fortran 以外なら何でも構いません。Excel でも,XNumber や MATRIX なんていうのがあるみたいですね。 ちなみに,僕自身はこのようなライブラリを使ったことがないのですが,今後はこういったものをどんどん利用して作業を楽にしたいと思っています。 皆さんが使われている,お勧めの数値計算ライブラリを教えて下さい。よろしくお願いします。

  • 偏微分方程式の数値計算について

    偏微分方程式の解の数値計算の仕方についての質問です。 例えば、偏微分方程式の解が以下のような形だったとします。 T(x,y)=Σ(A1n*x^n+A2n*x^(-n))*cos(ny) nは変数分離定数です。A1n,A2nが積分定数です。またn=1~∞とします。 今、あるxにおけるTとyの数値計算をするとします。 つまりxを定数として扱います。 そして、上式を条件に代入して解を求めるのですが、 n=3の場合の結果が欲しい場合は、 n=1,2,3のとき連立方程式をそれぞれで解いて、 数値結果は、 (n=1の結果)+(n=2の結果)+(n=3の結果) という考え方であってますか? アドバイスをお願いします。 プログラムで数値計算をするのですがなかなかうまくいかずこまっています。

  • 行列式の計算を、パソコンで変数を変数のままで計算するには?

    複雑な行列の計算をパソコン上で行いたいのですが、行列の要素を変数のまま計算してくれるソフトや方法はありませんでしょうか? ちょっと質問の内容がわかりにくいかもしれませんが、たとえば A =[cos(a)] B = [sin(b)] とあった場合 A+B=[cos(a)+sin(b)] のような解が欲しいのです。 MATLABで計算しようとしたのですが、計算結果が数値でしか得られなかったので困っています。 よろしくおねがいします。

  • 数値計算上での対数計算について

    大学で卒研課題としてMATLABというソフトを使った電磁波の数値計算を行っています。 いま問題となっているのは、解析値X(生データ)を[dB]にするため、log_10(X)をとるのですが、この際Xの値が1.0に極めて近いとき(例えば:X=0.9997)のときの誤差が、ほかのときの値の誤差にくらべ、3桁程度大きくなってしまいます。 数値計算において対数計算がマクローリン展開を用いていることまではわかったのですが、誤差の原因についてはまったく見当がつきません。 どなたか、参考になりそうな文献、サイト等をご存知でしたら教えてください。 宜しくお願いします。

  • matlabによる非線形方程式の解法

    matlabを使って非線形方程式の解を求めようとしています。 例えばx^2-e^x=1という式です。これを解くにはどういったスクリプトを書けばよいでしょうか。

  • 高階連立常微分方程式の数値計算

    4次のルンゲクッタ法を用いた数値計算を勉強しています. 1階連立常微分方程式と高階常微分方程式は理解でき,プログラムも作成することができました. 次に高階の連立常微分方程式を解こうと思ったら,頭が混乱してしまいました. 4次のルンゲクッタ法を用いて高解連立常微分方程式を解く考え方を教えて頂ければ嬉しいです. また何か良い参考書があれば教えて頂きたいと思います. よろしくお願いします.

  • 常微分方程式の数値計算

    実験で常微分方程式の数値計算をしました y'(x)=2xy,y(0)=1.0(解はy=ex2)←eのx二乗の微分方程式できざみ幅h=0.1、区間〔0,2〕の条件で オイラー法と改良オイラー法とルンゲクッタ法を使って 表計算ソフトを使って求めよとあるのですが、 表計算で近似値のy座標とか Δt後のxの変化分K1とか求めるのですが、全然意味がわからなくて、 何かいい方法はないでしょうか?

  • 数値計算ソフト「MATLAB」について

    私は今大学生で、つい先日数値計算ソフト「MATLAB(マトラボ)」をのライセンスを購入し、さまざまなプログラムを実行しています。 しかし、当然ですが大規模なプログラムになればなるほど計算の実行時間が長くなってしまいます。 プログラムのループ文の見直しなどを行って計算の高速化を図ってみたりしましたが差は微々たるものでした。 なので、PCのスペックのほうを上げていきたいと思いました。 そこでみなさんにお聞きしたいのですが、 (1)MATLABの計算はサーバーPCとクライアントPC、どちらのスペックに依存しているのでしょうか。 (2)計算速度を速めるとしたら、どの部分の性能を一番高めるべきでしょうか。(例:CPU、メモリなど) どなたかお分かりになる方がいましたら、(1)(2)どちらか片方だけでも良いですので回答宜しくお願い致します。