質問: 理学部の数学系の3年生です。 何かプログラミングを身に着けたい、と思うのですが、プログラム言語を身に着けたとして、数学ではどのように生かせるでしょうか。 思いうかぶのは、Prime95とか、整数の数値計算、それも割り切れるかどうか、といった問題で、解析の稠密な実数とかの計算では生かせない気がします。 Marhematicaは少し使えますが、自分でプログラムみたいなのはできず、単発で指揮を作るだけです、 数学、得に解析系の問題、課題を解決するのに使えそうなプログラム言語があれば教えてください。
回答: 有名なところでは円周率πの計算ですね。πを級数の形に展開して、極限まで計算していくのです。計算が進むほど計算量が多くなるので、数式やプログラムに工夫の余地が出てきます。また、コンピュータの性能を測る指標にもなります。 ご存じの通り、πは次にどんな数字が現れるかを予測することができません、実際に計算しなければ分からないのです。123456789 という並びが現れたかと思うと111111111111という並びが現れたりします。次の数字は誰にも分かりません。 マンデルブロ集合なんかも興味あります。ごく単純な数式が収束するか発散するかで2次元プロット上に色分けしていくと、もじゃもじゃしたきれいで複雑な模様が現れます。特徴的なのは拡大していっても同じような模様が延々とより小さい構造で現れます。これも無限に拡大できます。 あと純粋な数学では分からないですが、いろいろな難問の証明にツールとして大いに役に立つのではないでしょうか? 実生活に役に立つものでいうと、サラリーマン巡回問題といわれるもの、要するに宅配便の最適ルートを計算するものです。最適ルートというものは実は数学的に難問で、膨大な計算が必要になることが分かっています。 あと、CDはじめデジタルアナログ変換で必ず出てくるのがフーリエ変換を改良した高速フーリエ変換です。この辺りはもうハードウエアで処理していまいます。 そして、今はなきスーパーコンピューター「京」です。大量の数を一瞬で計算し、次々と流れ作業的に処理していくことができるノードが数万とか集まったものです。未来の気象予想に使われていたようですが、やっていることは空気と空気の相互作用とか太陽からの熱とか雲、雨(水分)とか海の蒸発とかを数学的にシミュレーションして100年後の気象を予想するとかやってたようです。 プログラム言語について: 数学の統計解析に向いている言語としては「R」という言語があります。 プログラミング一般の基礎を学びたい場合は「C言語」を一通りマスターしておかれるとよろしいでしょう。C++、JAVA、 PHP など、は C言語から派生、拡張されたものです。