• ベストアンサー

数値シミュレーションの勉強に役立つ文献

数値シミュレーションの勉強に役立つ文献を教えてください。 数値シミュレーションを勉強したいと考えています。  ※ここでいう数値シミュレーションは    ・Flow3D    ・CAE   といった、既存のソフトを使用するものではなく、   C言語などを用いて実際に自分でプログラムをくむことを言っています。   伝わりますかね。 実際にシミュレーションを組む流れは  1:支配方程式を導き  2:数学的な計算方法を盛り込む(ex ルンゲクッタ) といったものという認識でいます。 上記らを体系的に学びたいと考えています。 それに必要な文献や資料を、ご教授願います。ⵁ

質問者が選んだベストアンサー

  • ベストアンサー
noname#221368
noname#221368
回答No.2

>伝わりますかね。  たぶん伝わってると思います。昔は簡単な事をするFEMソフトもなかったので、みんな自分で自作したものです。  CAEソフトは、大別して4種類に分けられる気がします。   ※CAEは、個々の解析ソフトを指す言葉ではありません。でも言いたい事はわかります。   (1)有限要素法関連   (2)境界要素法関連   (3)差分法関連   (4)個別要素法,粒状態コードと言われるもの,離散化極限解析,不連続変形法など  (1)については何といっても「有限要素法ハンドブック,陪風館」があります。(2)については、「境界要素法の基礎,境界要素法研究会」などがあります。これらは現在、絶版かも知れませんが、本気ならアマゾンなどで探してみて下さい。また大学の図書館には、必ずあるはずです。  (3)差分法については、あまり知らないのですよ。あまりやった事がないので。  で(1),(2)だけだと、次の分野が抜け落ちる可能性があります。   ・流体力学および電磁気学.  例えば電磁気学では、シンプレテクィック形式に基づいた差分法が現在は、主流のようです。また流体力学は、粘性を考慮するととんでもなく計算が難しいので、(1)~(3)を全て併用してるみたいです。  (4)は、(1)(2)の現代的発展です。  こんなところでどうでしょうか?。 ※追伸  造船工学における無限遠境界の扱いなどは、境界要素法の独壇場で非常に面白かったです。ところが局所的定式化を行う差分法なんかにも、妥当と言わざる得ない方法があったりするんです。この辺りは、数値解析理論の深さだと思います。  数値計算だからといって、馬鹿にするなかれ・・・(^^;)。

その他の回答 (3)

回答No.4

1. 支配方程式を導き の部分は, ものすごく難しいです. ここは, 個々の問題に対して, 考える必要があるため、一概にこうということは言えません. 2. 数学的な計算方法を盛り込む という点に関しては, アルゴリズムや数値解析の分野になりますので, 今までの先人の知恵が使えます. 2に関しては, 下記の文献を参考にしてください: http://phystitech.kuizu.net/Entry/15/

回答No.3

極私的な観点からまずはこんなのでどうでしょう というのを列挙いたします(もっと良い本があるかもしれませんが プロではないので追いきれません。念のため)。 1.まず、プログラミング言語(C言語)に関して準備が必要であれば、   以下のようなものがあればよいと思います(不要ならとばしてください)。   ・サイエンス社『実践 Cプログラミング―基礎から設計/実装/テストまで』鈴木正人著    http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-1195-3&YEAR=2008   ・エスアイビー・アクセス『S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル第5版』    S・P・ハービソン3世とG・L・スティール・ジュニア著、玉井浩訳     ※アマゾン等で入手できます。        必要に応じて、   ・翔泳社『独習 C 第4版』ハーバート・シルト著 (株)トップスタジオ訳    http://books.shoeisha.co.jp/book/b72093.html   など。 2.物理カテだったので以下のようなものを挙げておきます。   巻末にCとフォートランのコードが載ってます(小さい文字ですが・・・)   ・朝倉書店『計算物理学 基礎編』小柳義夫 監訳    http://www.asakura.co.jp/books/isbn/978-4-254-13086-7/       ・朝倉書店『計算物理学 応用編』小柳義夫 監訳     http://www.asakura.co.jp/books/isbn/978-4-254-13087-4/ 3.プログラミング実践で役に立つ書籍。   ・技術評論社『NUMERICAL RECIPES in C [日本語版]』省略(多数のため)    ※どうやら新版がでるみたいです。現行版はまだアマゾン等で購入できるようです。   ・共立出版『数値計算の常識』伊理正夫・藤野和建 著     http://www.kyoritsu-pub.co.jp/bookdetail/9784320013438 あとは参考文献等から追ってみてください。 見当違いでしたらお許しください。

  • Tann3
  • ベストアンサー率51% (708/1381)
回答No.1

 シミュレーションというのは、単なる手段・テクニックであり、しかも「現実の実験」の代わり(現実には難しいため、お金がかかるため)であることが多いのです。  従って、現実に起こっていることを一定の精度でトレースし、現実の動きを検証したり予測したり、条件を変えてどうなるかを見ることが目的です。  このため、「何を模擬したいか」「どんな現実の現象をトレースしたいか」から出発するのが普通です。  シミュレーションの方程式が既に求まっているものは、単に計算すればよいだけの話で、いかに現実をトレースできる方程式を導くか、それが現実に合っていることをどう検証するか、その精度をどの程度に確保するか、現実と合わない部分をどう補正するか、というのがシミュレーションの「肝(きも)」です。  「何の現象を模擬したいか」と明確にして、その現象をどのように分析・定式化するか、というための文献、資料を探す必要があると思います。  地震のメカニズム、ミクロの世界の現象、宇宙の現象、生命現象、脳内の現象、建物の耐震など、分野は様々です。  質問者さんの模擬したい現象が明確にならないと、答えようがないと思います。  質問者さんが、「シミュレーションのテクニック」の方に興味があるのであれば、的外れな回答ですみません。  こちらであれば、一般の参考書はたくさんあると思います。

関連するQ&A

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

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

  • java 単振り子 ルンゲクッタ法

    javaを使って単振り子の運動方程式をルンゲクッタ法を使って、数値計算し、結果をappletを使ってグラフにするという課題に取り組んでいます。 恥ずかしながらjavaは始めたばかりで、いろいろソースも調べたのですが違う言語や、appletでないものしかありません>< ですので、javaでルンゲクッタ法を使って単振り子の運動方程式を数値計算するソースの書き方を教えてもらいたく質問させていただきました。グラフ化はどうにかがんばるのでその数値計算のところをぜひ教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • 常微分方程式の数値計算

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

  • オイラー法、2次ルンゲクッタ法、4次ルンゲクッタ法のC言語プログラムに

    オイラー法、2次ルンゲクッタ法、4次ルンゲクッタ法のC言語プログラムについて教えてください! 課題なのですが、まったくわからず困ってます>< 1 常微分方程式 dy/dx=f(x,y),y(0)=1 の数値解をオイラー法を用いて計算するプログラムを作為せよ。ただし、f(x,y)=3-6x^2-4x+2xyとする。 2 α=1,β=1,γ=1/2,σ=1/2 の場合の2次ルンゲクッタ法を考える。1と同じ常微分方程式(f(x,y)も同じ)を考え、その数値解を求めるプログラムを作成せよ。また、オイラー法と2次ルンゲクッタ法の実行結果を示して、2つの近似精度を比較せよ。 3 1と同じ常微分方程式(f(x,y)も同じ)を考え、その数値解を4次ルンゲクッタ法を使って求めるプログラムを作成せよ。また、オイラー法、2次ルンゲクッタ法、4次ルンゲクッタ法の実行結果を示して、3つの近似精度を比較せよ。 以上の3つです。 休んでいた自分が悪いのですが、ネットで調べてもよくわからなくて… わかる方、よろしくおねがいします…

  • 数学科で勉強する手順

    今年4月から数学科に入学する、数学教師を志す者です。 なんせ4月まで時間があるので、この間はやく身につけたいです。 この質問をするまでとりあえず命題論理や述語論理など、大学で学ぶ上で最低限必要な数学言語の本を読みました。 数学にはおおまかに3つに分けられていると言われていますが、実際勉強し始めるとなると、偏微分方程式、常微分方程式、統計学、複素関数、微分積分、線形数学、ベクトル解析などと、本屋に行くとさまざまな分野に分かれているとわかりました。 そこで質問なんですが、どのような順番でこれらを勉強すればよろしいのでしょうか。 例えば私は今IIICの知識しかないのですが、この予備知識から理解できるような手順を教えてください。 例えば (1)微分積分→(2)線形数学→(3)・・・・・ という感じでお願いします。 余裕がありましたらわかりやすいおすすめの本を教えてください。(私は理解力がある方ではありません)

  • 移流方程式の差分解法について。

    移流方程式の差分解法について。 等間隔格子での片側差分です。 3点差分方程式の導出過程を教えて頂きたいです。 文献:乱流の数値シミュレーション p.28

  • 数値計算ができるようになりたいのですが…

    現在、大学院修士課程1年です。 将来はアカデミックな研究者を目指しています。 今行っている研究で、非線形方程式(多変数)の解を数値計算を用いて得たいと考えています。 今まで数値計算はやったことがないのでこれから勉強をはじめるところなのですが、少し悩んでいます。 今は数値計算に便利なMATLABのような市販ソフトがあることが分かっており、勉強すれば短時間で実際に研究につかうことができそうです。 しかし、やはり研究者を目指すなら、そのようなソフトに頼らず、しっかりと数値計算の理論を理解したうえで、FORTRANなどで自らプログラムを書くべきなのでしょうか。 良いアドバイスがありましたらよろしくお願いします。

  • シュミレーションと現実のギャップについて

    現在数値解析法(主に固体材料)の研究をしている院生です。経験ある方のアドバイスを頂ければと思い投稿しました。 私は企業で機械設計や生産技術者として働き、設計段階での誤った方針が後工程(部品加工業者や社内後工程)で大きなロスを生む事を身をもって体験してきました。そこで仕様を満足する為の正しい工学上の方向性を出す道具として、CAEは有効だと体感しそれを学ぶ為に院へ戻りました。目的は新しい解析技術を提供し、社会の設計者と後工程の方の苦労を少しでも軽減し、日本の物作りに貢献したいと思ったからです。 しかし、現在所属する研究室は数値解析の専門家のラボですが、少し違和感を覚えているのが正直なところです。理由は支配方程式を構築し、それを解く手法に重点を置き、実際の現場(現象)を見る事無く数式だけで研究を進めている点です。せめて実験等で見れる物は現場で見る事で得るものは多いと思いますが、そうはしません。実験屋と理論屋は別れています。それがアカデミックな世界では当然なのかもしれませんし、現物が見れない場合(原子レベル等)は仕方がありませんが、実際の現象を見ずに「らしい解」を得る解析手法の研究に近い印象を現在は受けています。 私が企業で現場主義だった為かもしれませんが、大学での数値解析手法とはやはり現象を実際見ずに進めたりする物なのでしょうか?現場の方や研究者の方のアドバイス宜しくお願いします。

  • C言語;関数をfor文に入れる(物理のシミュレーション)

    C言語;関数をfor文に入れる(物理のシミュレーション) こんにちは、いつもお世話になっています。 for文、関数、それぞれC言語で勉強したのですが、そこで質問です。 今、複数の質点について考えています。 1つ1つの動きはルンゲクッタ法を使って解くことが出来ます。 もしこれを複数解くことになる場合を考えたとき、最初にまず思いついたのが i番目の質点をルンゲクッタ法 (参考にしたサイトが   http://www.geocities.jp/supermisosan/rk.html     です) で関数f1(t,x[i],v[i])などを用いて書き、for(i=0;i<Nmax;i++)により 全質点について計算するといったことです。(質点同士の相互作用は考えません。) が、私が書いたものではどうもうまくいかず・・・ このような場合どうしたらよいのでしょうか? main()の外に関数f1の定義を書きましたが、その書き方に問題があるのかもしれません。 私はこのように書いてみたのですが・・・ double f1(double t,double x[i],double v[i]){ return v[i]; } 説明がうまく出来ず申し訳ありません。 わかる方よろしくお願いします。

  • 統計解析の勉強で使うデータ

    大学3年で、数学を勉強しています。 今はルベーグ積分や微分方程式を勉強していますが、統計にも興味があります。 本屋さんで統計のコーナーを見ると、数学に近いけど、若干違うのかな、という配列人なっている感じがします。 統計学って、数学科よりも工学系の学科や経済学部で勉強した方がいいのでしょうか? そもそも、統計って、それを分類したり解析したりするもので、教科書にのっているものは、数値の個数が少なかったり、当たり前の子ことを調べるためのデータのような気がします。どういうデータを使って勉強したらいいのでしょうか。