• 締切済み

数値計算の参考書

物理に関する数値計算に関して、ある計算手法を使う時に 下記の事項が網羅されているものを探しています。 1) 手法の弱点、注意点 (例:こういう場合には誤差が大きくなる。) 2) 手法の効率的な使用方法 (例: こういうパラメータで計算が効率的になる。) 今の所、下記のような本を図書館で借りて内容を見ていますが、 他にお薦めな本などありますでしょうか? ----------------------- 数値解析 : 森 正武 数値計算の常識 : 伊理 正夫 計算物理 : 夏目 雄平 -----------------------

noname#29127
noname#29127

みんなの回答

  • walkingdic
  • ベストアンサー率47% (4589/9644)
回答No.1

"Numerical Recipes in C"は有名なものの一つです。

参考URL:
http://www.gihyo.co.jp/books/syoseki.php/4-87408-560-1
noname#29127
質問者

お礼

回答ありがとうございます。 Numerical Recipeに関しては、少し注意が必要ということを 聞いたことがあります。 初学では参考にするのもいいのかもしれませんが。 http://nakano.webmasters.gr.jp/nr.html

関連するQ&A

  • 一般的な数値計算法と、計算物理学

    こんばんは。数値計算法の本を読んで、それを物理に適用するのと、計算物理学の本を読んで物理の計算をするのとでは、どのへんが異なるのでしょうか。よろしくお願いします。

  • C言語による数値計算について

    C言語による数値計算について 研究で使うため、C言語による数値計算を覚えたいのですが、何をしたらいいかわかりません。 一応わからなくてもやってみたらいいとか言われますが、そんなこと言われても、なにをしたらいいかわからないのです。できるようになるビジョンも見えません。 よくわかるCとかいろいろ参考書はありますが、別に数値計算用に書かれたものではないですし、つながりが見えませんし、まず数値計算を抜きにしてプログラミングというものを覚えようとしても、本に書いてあることが、全く謎でとっかかりがありません。 数値計算の本を見てみると、プログラミングとか全く関係なしに数値計算の手法を書いてあるものとか、最後に付録としてできあがったプログラミングが書かれているだけとかで全く手順がわかりません。 どうしたらいいのでしょうか?アドバイスをお願いします。

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

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

  • ハイパースレッディングで複数の数値計算を完了する時間は速くなるのでしょ

    ハイパースレッディングで複数の数値計算を完了する時間は速くなるのでしょうか? 例えば、Core i7 だと ・コアが4つ ・スレッドが8つ(1コア2スレッド) となっています。 時間のかかる数値計算のプログラム(ロケットの軌道の計算など)をパラメータ(初期条件など)を変えて8つ計算したい時、 (1)8つの計算を一気に計算する のと (2)4つずつ、2回に分けて計算する のではどちらが効率がよい、あるいは、速く終了するでしょうか? ハイパースレッディングについての説明を読みました。あまり分かり易いものがなかなか見つからなかったのですが、↓ここを見て何となく原理が分かりました。 http://shop.tsukumo.co.jp/special/030626a/ これをみると、作業をする人(?)がハイパースレッドだとスレッド倍になるので、(1)のように、1つのコアに1つの作業をさせるより2つの作業をさせた方が良いのかなとも思います。 よろしくお願いします。

  • dounle型で計算時の誤差

    今、VC++(MFC)で、15桁の数値まで表示可能な電卓アプリを作成しています。 そこで今つまずいているのが、double型で計算したとき(演算結果が小数の場合)の誤差の問題です。 とりあえず、いろいろなHPなどの情報を見たりして、誤差問題解決を下記のようにしました。 「数値の頭(左側)から16桁目を四捨五入する」 小数の場合はほとんど誤差が生じるため、計算後、計算結果が小数ならば、必ず 上記の誤差処理を行っています。 しかしこれでは、以下の場合に不具合が出てしまいます。 ・ 0.99 999 999 999 999 ÷ 10 = 本来の答えは「0.09 999 999 999 999 9」 ⇒ しかし15桁までの表示なので、本来は「0.09 999 999 999 999」と15桁まで出力     させなくてはいけないのに、16桁目の「9」を四捨五入したせいで「0.1」という表示に     なってしまう。 16桁目を四捨五入しないと誤差をとることはできないし、でも上記の例だと正しい結果 が出力されません。 どうしたらいいのか頭を悩ませています。 何か良い解決法等あれば、ご教授お願いします!!

  • 一松信先生の「初等関数の数値計算」について

    下記のサイトに、一松信「初等関数の数値計算」(教育出版)先生の著書がります。 項6.3.3の問題の前に、下記の記述があります。 その中で『この部分の近似値を計算する際には特別の配慮をする必要がある』と有りますが、 桁落を含めて、私には残念ながら意味が解かりませんの、説明をお願いできないでしょうか。 尚、級数の計算はWindowsのjavaで行うことが出来ました。 ======================================== 但しこれでも不十分な部分がある。図6.3 はsin x の値(実線) と,Maclaurin 展開式(6.6) を用い た近似値の相対誤差(破線) をプロットしたものであるが,ちょうどsin x ≈ 0 となる部分で,相対 誤差が著しく増大しているのが分かる。これは展開式の計算で桁落ちが発生していることを示して いる。従って,この部分の近似値を計算する際には特別の配慮をする必要がある。 ======================================== http://na-inet.jp/nasoft/chap06.pdf 以上

  • FDTDの数値計算について

    光波の伝搬の計算としてFDTD法を用いる事を考え、Scilabを用いた1次元のFDTD法をまず行うことを考えています。想定する状況は左端に光源があり、空気(屈折率1)を伝搬するという単純なものです。 そこでプログラムを以下のようにしました。 各パラメータは波長ramuda=500*10^-9,dz=ramuda/20,dt=dz/c,透磁率と誘電率mu=ep=1としています。 Hy(1:M)=0; Ex(1:M+1)=0; For n=1:N, Ex(1)=sin(n*dt*c/ramuda); Hy=Hy-dt./mu.*diff(Ex)/dz; Ex(2:M)=Ex(2:M)-dt./ep.*diff(Hy)/dz; end 宇野先生や橋本先生、小舘先生などの本を読む限り条件等はこれでよいはずなのですが、全く伝搬するような計算ができませんでした。数値計算自体慣れていないため、足りない部分があるかと思いますが全く見当がつきませんでした。どうか何が足りていない、何が間違っているなどありましたらご指摘いただきけないでしょうか。

  • 小数点第2位の数値の計算

    下記のような処理があるとします。 Dim 変数1 As 宣言 Dim 変数2 As 宣言 Dim 変数3 As 宣言 Dim 変数4 As 宣言 変数1 = 0 変数2 = 0 変数3 = 0 変数4 = 0 変数1 = テキストボックス1.Text 変数2 = ラベル2.Caption 変数3 = ラベル3.Caption 変数4 = (変数2 + 変数3) - 変数1 ラベル4.Caption = 変数4 変数1~3には、小数点第2位までの 数値が入る事があるのですが、 例) 変数1 = 3.0 変数2 = 4.75 変数3 = 7.75 の場合、変数4 = 0 と計算される。 その場合、変数4の計算結果が 正しく出力されません。 宣言はDoubleを使うと計算結果は 16進数表示になり、Singleを使うと0になります。 正しい計算結果を出すには どのようにすれば良いでしょうか?

  • エクセルの計算

    エクセルの計算式なのですが、下記の場合どうやれば良いか教えてください。 A - B = C 例)14.75-15.345=-0.595 というような計算式で、 (1)Cが0の場合は、C欄に表示させない計算式はどのようにすれば良いですか? (2)絶対値(例:+-0.05)を決めておいて、Cの答えが以内か以上かで、数値の色を変えることが出来ますでしょうか? ※C欄の答えは、概ね小数点第3位までの数字となります。稀に0も有ります。 ※第4位以下を切り捨てて、表示します。

  • 分子動力学計算ってどうやって勉強したら良いですか?

    分子動力学計算ってどうやって勉強したら良いですか? よく分子動力学計算、モンテカルロ計算、といった計算方法の名前を耳にします。 図書館で計算物理学系の書籍を全て借りて読んでみたのですが、 単純に運動方程式を解けば良い、みたいな方法論は書かれてあるのですが、 実際にどうやって境界条件を決めるかや、どうやってアルゴリズムが組むかといった 方法がどの本にも書かれていません。 恐らく、一度計算をしたことがある人に聞くのは手っ取り早いのではないかと思うのですが、 周りにそのような人はいません。 一体どうやってこういった計算の手法を勉強すれば良いのでしょうか?