数値計算って出来ないとマズい?
■ このスレッドは過去ログ倉庫に格納されています
理論物理学の研究したいと思ってるんだけど C言語つまんなすぎてやる気出ない マスメティカとか使えれば問題ない? 因に今学部2年です 理論物理の大部分はプログラミングだよ つまらないと思ったらやめておけばいい 俺には無理だった 数値計算くらいやっておいたほうがいい。 数式では理解できないことがわかる。 >>3 マジかよ・・・・orz ただ実験はなぁ 実験結果とかを見るのは好きだけど 自分で実験をしたいとは思わないんだよなぁ >>4 そうなのか やっぱ数値計算は必要なのか マスメティカとかじゃ代役はきかない感じなの? >>3 4流物理学者の修行は大変だな。 我が**論研究所で人間コンピュータ でこき使ってやるっぜ。 素粒子論をやるのなら数値計算ができるかどうかよりも学部のうちに Lattice の教科書を読んでコアを理解しておくくらいでないとやって いけないよ。おれの先輩は学部の卒論でもうLatticeの数値計算くらい は軽くできてたし。 >>5 >マスメティカとかじゃ代役はきかない感じなの? 何を計算するかによる。Mathematicaでどうにかなるのもあるし、 無理なものもある。両方使えるようになるのが望ましい。 手持ちの武器は多いに越したことはない。 学部レベルの物理って「解析的に解ける問題」ばかり扱ってるから錯覚してしまうけど ほぼ全ての問題ってのは解けないから数値計算の知識は必須だよ 物性論にしろ素粒子論にしろ、普通は研究では多体問題を扱うからね まずはCよりもFortranをやってみたほうがいい Cは、C++までやらないのならあまり意義がないと思う fortranやれというのはその通りと思うが ラティスだのソロンなんてのはお勧めできない 別にFORTRANの必要はないだろ C++でもFORTRANでも好きな方選べばよい 敢えてpure Cやる必要もないと思うが ぬはー そうか、そんなにいろいろやんないといけないのね・・・・ 大変そうだけど、後回しにするともっと大変そうだし今からちょっとずつやっていくか 本質を研究するならエクセルVBAで十分だと思うよ。 わしは今それをやってるんだ。とくにVBAは事務計算でも 有用だから、君達、会社にいずれ入るのならいいんじゃない。 >>13 Javaって、GCJとか使えば速度出るのか? 中間言語は遅いという印象はあるけど てか、全部自分で書くんだったらJavaだろうが何だっていいけど、現実的じゃねーだろ。先人の書いたコードを参考にして(パクって)、ライブラリは使わせてもらって、ってことになるんだから。 いずれにしてもだから、Fortranは勉強必須。その上で、なんかもう一つ二つは使えるようになんなきゃいけないってこった。アプリのマクロとかでもいいけど。 個人的にはPythonお勧め。超便利。 >>18 そういうやつはベクトル計算機+専用ライブラリかアセンブラを使えば いきなりこれを使う馬鹿はいないと思うが ふぇー、まだFortranなのか、歴史だなー 知り合いのFortran使えない奴はF2CでCに変換してたが使い物になるんだろうか? >>20 ネイティブにコンパイルすればC++やFORTRAN同様速くなるのか?と問うているが、全然回答に見えないんだけど アセンブリは開発効率悪すぎで、pure Cもそこまでではないがメモリ管理が面倒だから敢えて使わない RAIIのあるC++はGCと遜色ないと思うから、あとは実行速度の問題だと思うけど、 そこがどうなのか俺はJAVAやらないから誰かに教えてほしい C++は必要あればメモリ管理を自分でやることもできるのもメリットだけど >>19 ガチの計算屋で、研究室代々秘伝の継ぎ足し継ぎ足し使われてきたソースみたいなのがあれば別だが、 俺は理論ベースで、全くFORTRANは使わないがちっとも困っていない 普通に自分の好きな言語で十分だろ 既存のライブラリなら、元はFORTRANで書かれてようがCから呼び出し可能だし 今はFORTRANは必要に迫られたときに勉強すべき言語に過ぎず、それよりは言語非依存のアルゴリズムからやればよい さすがに軽量言語で全部計算をやるわけにはいかないにしても >>22 おや、どこにそんなことがかいてあるの? 後だしじゃんけん、パー ふぇー、なんか人によって何の言語をすれば良いかが割れてるなー この中にいる人って皆、理論系の研究室に属してる院生なの? それなら自分の好きな言語から始めても問題ないと思えるんだけど 文法とかは日本語話すより簡単だし、少しでもモチベーションのあるうちに気になったやつ全部、勉強するくらいでちょうどいい。 >>23 ネイティブコード吐ける「GCJ」とか「中間言語」とか書いてあるし、 数値やってる人なら当然そういう文脈が読み取れるものと疑わなかったんだけど、 知識足りなくて読み取れない人のことまで考えてなかった、ごめんね >>26 すごいね、めもめも 予算と権限があるからスパコンのCPUタイムも確保できるわけか いやー、まいった うゎ、今までGCCを C Compiler と勘違いしてた! (口に出さなくて良かった) GCJ も C に変換?と思って念のためググったら、驚愕の事実!アホなだけや〜ん >>26 [蛇足] うまく書くとC++とたいして速度がかわらんらしいけど [馬耳] GCJはJDKのじゃまだから速攻削除してる 数値「計算」と数値「実験」は違うと思うぞ。 数値「実験」だと、シミュレーションとかのことだろ? 必須ではない。 平均場の扱いが妥当かとかの確認は最低でも数値実験が必要じゃないかなあ。 >>18 アセンブラを知らないような奴が使うと効率の出るアルゴリズム選択が できないので素人ほど言語が持つ悪い面を多用する為に非常に遅くなる。 抽象的にハードウエアを扱うような概念ほど無駄にリソースを使うわけ。 CPUに命令語に存在するクロックカウンタを日常的に使い複数の アルゴリズムを試しどのように組めば早くなるかを知らないと 動けばいいという処理方法は恐ろしく無駄なCPU時間を消費してしまう。 そもそも学部の講義レベルの数値計算なんてやる気に関係なくできるくらいと理論物理なんてやるべきではない 卒研でやる程度なら大丈夫かもしれないけど理論で修士以上に行くのは絶対にお勧めしない 素直に実験にいった方が良い 数値計算楽しいよ。 数値流体とかやるとベクトル解析の理解が段違い。 >>39 なかなか厳しい意見ですね それでも理論系に進むつもりですが ご忠告ありがとう 数値計算出来た所で、それで?って思う 実験どころでなく就職した方がいいと思う 民間も公務員も厳しいと思うが 今はアイデアの正当性はまず数値解析で確認するのが普通。 で、正しそうだと思ったら理論を考えればいいが、これは才能がいる。 ブライアン・グリーンの超弦理論の本にも理論の確認に数値解析 を使う場面が出てくるよね。 そもそも数値計算もできないような奴に理論なんてできるわけがない 数値計算=データベースから値を当てはめて実測値を計る。 数学的理論=理論を数学的に理解する。 アイデア=仕事の仕組みなどを考える。 こう考えると、この中で一番才能を要求されるのはアイデアなんじゃないかな? 上二つは数学の勉強をすれば誰でも理解できる。 アイデアは数学の勉強をし、理解を深めたからって出てくるものじゃない。 アイデアを考えると言う事は、数学的にもある程度理解している人じゃないと無理だと思う。 そしてそのアイデアがほんとうに優れている見込みがあり、実現するというのならば、 数値計算に基づく実測データを元に構造を作り替えたり、仕上げたりしていくんじゃないの。 つまり、数値計算の以前の段階ですでに、企画なり狙いなり、数学的にもかなり根拠に基づかないとダメでしょ。 逆に数値計算しかできない人が沢山いても仕方ない。 アイデアだけだと論文は書けないので、それを実証する数値計算もやれという話だろう あと、高度な数値実験は専門的な技能を必要とするので、 そういう技能を有する人であれば数値しかできなくても価値があるし、十分食っていける >>40 >数値流体とかやるとベクトル解析の理解が段違い。 ここ興味あります。たとえばどんなふうにですか? ノーベル賞をとったト・フーフトのゲージ理論繰り込みの研究でも 確認はフェルトマンが作ったコードを使っている。理論研究でも、 紙と鉛筆だけで研究可能なテーマなんて残って居ないだろう。 計算機系の知識、能力は不可欠。もちろん天才なら別だが。 ディラックくらい変態になると理論の正しさを理論の美しさで判断していたらしい IQが高いと高度な数値計算の類が苦手になる。これマジだから。 IQの高さは単純な処理能力であり高度に複雑化されたものは 手法の単純さ能力の高い性質により、すべてが合理化させ単純化に 誘導され複雑なものほど分解してはいけない形にして処理してしまう。 創造して設計するような領域には無能であるのは明白である。 割り切ってはいけない類を割り切れば滑稽(嘘)なんだよ、原理を 組み合わせて表す総体の組の素を成す原理を更に分解した素で 最初の総体の仕組みを表現するようなもの、知的に単純なやつには理解できない 領域な。 周波解析をして、ノイズ拾って適当に分解した後に帳尻合わせるのがあんた等のせいぜいの仕事。 IQが高い人間は、そのノイズが出る根本的理由が理解出来るという事。 もともと解析を行う上でノイズが発生しないだろう構造を考慮したところから始められるという事。 偏差値だけでは、その先見的な発想ができない。作ってみたものを解析する事しかできない。 だからどんどん帳尻合わせが別の帳尻合わせを必要とし、無駄に構造が肥大して手が付けられない事になる。 で、結局は廃棄。 まあ頑張りな。 普通の物理学者は、解析的計算なり数値計算なり実験なりで「問題を解く」手と、インスピレーションと深い洞察によって「問題を作る」頭の両方があって当たり前。 問題を解いて始めて次の問題が見えて来る。頭だけで手が動かせなきゃ(理論だけでは、という意味じゃないのは言うまでもないよね?)一人前じゃないってこった。 まあアインシュタインとかディラックとかを超える(彼らは計算ー当時は解析的計算になるけどーも超得意だったよね)天才のことは分からんので、まあ頑張ってくれ。 学部でパソコン使って計算するならBASICで十分 院に進んで大型汎用機やスーパーコンピュータを使うならFORTRAN でもFORTRANなんてBASIC知ってればすぐに理解できる 今BASICなんて手に入るのかなあ? VBはBasicじゃないし(BASICの良さもなくなってる)。これおっさん向けの釣り針? 今初心者向けに推奨されてる言語って何? 今も (すこし) 昔も、はじめにプログラミングを学ぶには C をやるのが手っ取り早いと思う (FORTRAN 使ってる人は、C キモいとか言うけど)。 あとは java, C++ あたりだけど結局のところ基本は C だし (でも、今は C++ とかの方が勉強してる人は多いのかな)。 話題は少し離れるけど Mathematica, Maple, Maxima あたりを使って解析するって講義も結構あったね。 あとは Excel とか R とかで統計処理したり差分方程式解いたりパーセプトロンつくったりあとなんかするとかって講義もたぶん存在する。 でも具体的に何やるかは、先生の趣味だったり講義の対象となる学部専攻だったりでかなり変わってくるし、 少なくともガチガチの物理/化学の数値計算っていうのはないと思う。 Cはメモリ管理が面倒なので、初学者には勧めない メモリ管理をサボれるC++からいきなり始めて、あとで必要に応じてメモリ管理を学ぶ方がいい 数値計算にしか使うつもりないなら、Fortranから入ってもいいと思う 数値計算関係ないならPythonやRubyあたりが入門用にいいと思うけど、 本格的に計算させるとなると遅いのが難点 >>59 BASICとは会話型言語、つまりコンパイラではなく逐次実行し どの段階でも停止でき、さらに再開やプログラムの途中からでも初期として 開始できるもの。停止中にプログラムを変更しても、変更した時点で再開 できる機能を有する言語である。 一般的に上書きされたbasicとは大文字ではなく小文字で表せて文法的に BASIC言語と互換しているだけのコンパイラ言語(非会話型言語)である。 BASIC言語は初心者向けというのはコンパイルしてデバックする能力が無い 其の場しのぎのいい加減な手法で切り貼りしながら偶然動いたという状況を 試せる環境である。 BASICはDOS窓やsh(unix系)のスクリプトの類と考えたほうがいい、 sh系の多機能のそれならばBASIC並に高度なことも出来たと思うけど。 昔のBASICならばPC98やら8ビット系のコンピュータをプラットホーム 全体をエミューレーションする類で行えばいい。 移植されたそれらでも忠実さを選択しているので最先端のデバイスを 扱えるわけではない(例:ファイルサイズなどの空間制限で表にでる) http://ja.wikipedia.org/wiki/Python ↑たぶん現状の普及とお勧めはこれになると思う。 >>60 >>61 詳しい説明ありがとうございます CとFortranどっちから始めようか迷いましたが結局Cにしました 学校ではCをしてましたし講義で使われたプリントも手元にありますし 少ないながらも知識も残っているという理由で。 メモリ管理とかは全く考えずにやってるんですがマズいんですかね... Cをある程度出来るようになったらMathematicaとかMatLabとかの方にも 手を出していこうと考えてます >>63 可変長配列とか使いたくなったらCだと否応なくメモリ管理を自前でやる必要があるが その辺をC++だとサボれるということ まあ、いざヤバくなった時にまた勉強すればよいが あと、別にMathematicaはCと並行してやればいいと思うけど ちょっとしたことならMathematicaの方が無論得意だから メモリ管理は単純だがやらない方が良い。 もしかしたら端末〜PC間が共有される日が来るかもしれないし。 物理計算ってポインタを使わないのか。 馬力で計算している様が目に浮かぶ。 大体はstd::vector, std::stringと参照で話が済まない? STLのオーバーヘッドが無視できないケースってそんなに多くはないと思う スタンダードな4次ルンゲ・クッタ法で調和振動子とかの1次元系解いてみると オイラー法とかに比べて誤差すげー小さいのな 高次の解法でも数値解と厳密解がわかりやすく大きくズレちゃう系とかないかな 例えば調和振動子でも周期に比べて十分長時間積分して、 エネルギーの時間変動確かめてみ? あるいは、van der Polでεが十分小さい場合、 熱方程式で空間刻みが十分小さい場合なんかで、 4次のRunge-Kutta使ってみるとどうなる? いずれもRK4よりも適切な積分法が存在する例 音速関連の実験をしたのですが温度が低い方が高い方より数値が10高いのですがこれは異常ですよね? グラフも高い方の頂点が低い方より左側にあります… もし発表するならこの結果を逆にした方がそれっぽく見えますよね? C++全然興味ないんですが、純粋なCで問題ないんですよね? 問題ないけど、C++の方が楽だよ わざわざ茨の道を進むので良ければ >>72 場合による 研究室によっては先輩の研究の引継ぎでC++で書かれたものを読まなきゃいけないこともある 分野によってはFortran必須みたいな所もあるし まあC使えるなら少し勉強すれば物理の数値計算で使われる大体の言語には対応できるから問題ないといえば問題ない 第一原理DFT(密度汎関数理論)計算シミュレーションは如何? 日本は世界トップクラスのスーパーコンピューターを持ちながら、 第一原理計算できる人が育ってない。 理論物理が何なのかはわからないが、解析レベルでわかるのは単純化されたモデル のみ。実際的には数値計算は絶対に必要。あるネットに転がってた某工業大学教授の論文 を読んでみたら近似しまくって結果がとんでもないことになってた。数値計算から逃げ続けて きたジジイの末路は実に見苦しいものだよな。ルンゲクッタやガウスザイデルなどは当然として有限要素、境界要素 などシミュレーション技術も身に就けておいた方がいいとおもう。物性系なら。 ちなみに言語は何でも良いと思う。地頭力に自信がないならライブラリが豊富なCやFortran あたりを選ぶと良いと思う。 解析的な近似だろうと数値的な近似だろうと、合わないときは合わないので、あんまり迂闊な事を言うものじゃない。 数値計算は確かに幾らでも細かく調べられるけど、結局使ってるモデルとパラメータによってどこにカットオフがあるかとかは、 解析的に (というほどでもない場合が多いけど) 考える必要はあるし、 そこを見誤ると「第一原理」と称しつつも現実から外れた予測をしてしまうことになる。 数値屋さんは数値計算のメリットを強調しがちだけれど、あくまでモデルの裏付けのための計算機であって、 計算機自体はソースコードを投げたら物理を吐き出す魔法の箱ではない。 理論物理の中の計算機であって、解析的な方法とは車の前輪と後輪のようなものであることこそ強調しなくてはいけないと思うよ。 あとやっぱり C を使うのは面倒臭いと思う。C 好きだけど。 業績を作るって言う観点からは、手計算で出来てかつ意義あるところまで話を落とし込むアイデアか 世界トップクラスの手計算能力(数学の知識とか能力?)がないと辛いのは目に見えている。 けど、数値計算がどうしても嫌いだって言うのなら死ぬ気で手計算にこだわってもいいんではないか。 最近は C++ で数値計算する体制が割と整ってきているように思う。 とはいえ積分に関しては自分で書くくらいじゃないとまだまだかな。 数値計算ならJuliaはなかなか良いよ。 スクラッチで作るならrustなど新しい言語は良いよ。 メモリ管理や並行性のサポートがはじめからついている。 マセマティカこそ至高!これ使えたらすごいぞー!頑張ってマスターしよう! 数値解析からの点プロットして近似的にグラフ作れるぞ! まぁ、これエクセルでもできなかないんだがな^^ 小山幸司 弘前 強姦 殺人 麻薬 インサイダー取引 コーラン燃やし 小山幸司 青森県 詐欺 変態 淫行 レイプ 拉致 在日二世 犯罪者 小山幸司 理科教員 異常性癖 破産 詐欺 犯罪歴 隠蔽 戸籍捏造 物理学もおもしろいけどネットで儲かる方法とか グーグルで検索⇒『羽山のサユレイザ』 OBJOL 僕の知り合いの知り合いができた在宅ワーク儲かる方法 時間がある方はみてもいいかもしれません 検索してみよう『立木のボボトイテテレ』 LKO 「算数の天才なのに計算ができない男の子の話」っていう絵本があります。 計算問題が全くできない少年が、なぜか代数ができて評価されるという物語ですが、 「計算力」と、数物の問題を「概念で捉えて理解する」能力はまた違うのです。 大昔は理論屋が手回し計算機で原子核の計算とかやってたようだから信じられん。 >>91 原子エネルギーの機械的計算が行われていたのは事実。 「計算機の歴史」によれば 量子力学の完成直後に、従来の半古典的なボーアの原子モデルとエネルギー計算値が 精密実験の値と評価するためにヘリウム原子の基底状態の計算が実施された。 計算はヒレロースにより電動の機械式10桁計算機でシュレディンガー方程式の 摂動を長時間掛けて計算、量子力学の値が数値的にも正確であることが証明された。 イオン化エネルギーの実験値 24.46eV 量子力学近似 24.35eV ボーアモデル 28eV 現代ではコーネル大学の木下東一郎博士の理論計算により誤差1千万分の1以内で 精密実験データと一致する。 最近は不一致があるかもという話になってきているがな>>94 7月6日 PFNとENEOSは汎用原子レベルシミュレータMatlantisをラウドサービス提供開始 量子力学原理が完成後、現実世界の物質を扱えるようになるまでには長い年月が必要だった。 Matlantisは、量子力学を用いたエネルギー計算である「第一原理計算」がベースにある。 沢山の原子配列に対してエネルギーをスパコンで計算し、その大量のデータをもとにAIを学習させる。 最終的な学習モデルは原子配列を入れると、ほとんど瞬時にエネルギーが計算できて物性が求まる。 通常のシミュレータに比べて、10万倍から1,000万倍もの高速処理ができる。 誰かModelica使ってない? 代入文じゃなくて方程式書けるのと、商用・オープンソースで複数のプラットフォームで使えるのは魅力。 https://virtualmbdlabmodelica.net/ 一応先週は卒業報告出まくってまだない若手女優なんだな やっぱり顔デカくなったし叩きでしか名前出ないな いくらなんでこんなことには神回 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる