- ベストアンサー
科学計算
CやC++で科学計算をしたいと思うのですが、計算用の基本的なツールのソースが公開されているサイトなどありましたら教えて頂きたいと思います。 また、CやC++での科学計算を説明しているサイトなどありましたら教えて頂きたいと思います。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
大変よくわかる補足です。ありがとうございます。 #3の方とかぶりますが。。。 プログラムを作るというのは、人間が考える手順を細分化し、機械にわかるように置き換える作業です。したがって、考える手順がわかっていなければプログラミングはできないのですが、そちらの知識は十分にお持ちである、と考えてよろしいのでしょうか。 一応googleを「"科学計算" C ソース」をキーワードに検索してみた(「科学計算」をダブルクォーテーションでくくらないと、「科学」と「計算」に分解してしまう)のですが、あまりパッとするところはありませんでした。もちろん、私の主観なので、gaitoさんの感じ方は違うでしょう。 補足の方では「微分方程式」、「モンテカルロ法」、「1次方程式」、「ニュートン法」と具体的な名称がありますからそれらで検索すると良いでしょう。これらについては、OKウェブないでもいくつか質問が上がっていますので、それらを参考にすると良いと思います。 自分で読んでわからなければ、自分と同じようにわからないといっていた人がいないか探す、というのも検索方法の1つです。そのためには、結果報告がされていなければなりませんが(なので、同じように結果報告をお願いします)。 とりあえず、検索のコツだけ、あげておきました。 ・検索サイトの「演算子」を知る ・同じ質問をした人がいないか、探す
その他の回答 (4)
- uyama33
- ベストアンサー率30% (137/450)
C言語 数学関数ハンドブック (技術評論社) をすすめます。 理由は、C++に書き換える 時に比較しやすいから。
お礼
書籍の御紹介ありがとうございました。
数値計算をCやC++で行いたいというのであれば、 「NUMERICAL RECIPES in C ニューメリカルレシピ・イン・シー」 ~C言語による数値計算のレシピ~ 技術評論社 を一冊購入するとよいでしょう。 上記はC言語ですが、C++を使うと複素数演算が楽になりますので、もっとシンプルで可読性のよいコードをかけます。 なんにしても大事なことは、数学上の取り扱い方です。C言語の技術ではなく、数学の技術が大事なのです。 上記の本は優れた回答を与えてくれます。 なお、実用的には自分でライブラリープログラムを書くのは現実的ではありませんから、数値演算ライブラリーを購入するなりして利用するのがベストです。 (フリーのライブラリーもあります。C言語であればGNUなど) サイトを紹介とありますが、非常に難しい話ですから、まずは基本は本を購入することをお勧めします。 その上で、本に乗っていない、あるいは応用編などはネットで探すとよいでしょう。
お礼
本の紹介ありがとうございました。 C++で複素数の演算が楽になるというのは初めて聞きました。これから勉強していく際、CからC++への移行を強く考えておきたいと思います。
- はなおか じった(@Jitta)
- ベストアンサー率42% (69/161)
「素人」というのはとても「否定的」な言葉で、こういうところに長く出入りしている人にとっては「私は検索のしかたも、質問のしかたも知りません。あなたがすべてをしてください」と読まれます。使い方にはご注意を。 それで、あなたのスキルはどれくらいなのでしょう?どのような計算をしたいのでしょう?どれくらいCやC++の文法を理解されているのでしょう?また、使用するベースとなるOSは? ね?何も必要な情報提供がされていないでしょう?だから「素人です」=「あなたにすべてを任せます」と読まれるのです。あなたが知っている情報を、他の人も持っているわけではありません。どの情報を提供するべきか、どの情報を提供すれば回答できるか、そういうところを考えてください。また、そういうところを考える癖を付けると、情報の海から目的の情報を見つけることもできるようになります。
補足
大変参考になる御意見、ありがとうございます。 確かに質問する側にも情報提供が必要ですね。 勉強しているのはC言語で、Windows上のBorland C++ Compilerを使っています。(将来はC++でやりたいと思っています。) スキルはポインタや関数などが何とか使えるようになったという程度でまだまだ勉強段階です。 勉強中ではあるのですが、次に何を勉強したらよいか考えたときに最終的な目標である計算をするために何が必要か知りたいと思いました。 (教科書にはデータ管理のような項目もあるのですが、これが私の目的に本当に必要なのかと疑問に思ったのです。) 行ないたいと思っていることは微分方程式を解いたり、モンテカルロ法によるシュミレーションをしたりということですが、そのためには簡単な1次方程式をニュートン法で解いたりということからはじめなければならないのかなあと考えておりました。 Jittaさんにはこういう場所での情報提供の求め方をいろいろ御指南頂きましてありがとうございます。 これも、大変勉強になります。
- はなおか じった(@Jitta)
- ベストアンサー率42% (69/161)
googleで検索する。それくらいの手間を惜しんではいけまん。 私にとって役に立つサイトが、あなたにとって必ずしも役に立つとは限らないと思いますが、いかがでしょう?
補足
説明不足で申し訳ありませんでした。 検索は質問の前より行なっておりますが、何分素人ですのでたくさんあるサイトのどこから手をつけるべきなのか途方にくれておりました。 確かに教えて頂いたものがそのまま役に立つかは定かではありませんが、経験のある方の御意見を聞いてみようと思っていた次第でした。 検索は引き続き行おうと思っていますが、「ここはお勧め」というものがあったらお願いします。
お礼
丁寧な御回答、ありがとうございました。 また、検索のコツも教えていただきましたので試してみたいと思います。 ダブルクォーテーションでくくる話は知りませんでした。 もう少しHPを絞り込めるかもしれません。