トップページtech
1001コメント301KB

C言語なら俺に聞け(入門編)Part 116

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2013/06/14(金) 20:22:05.73
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 115
http://toro.2ch.net/test/read.cgi/tech/1368444993/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&;andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 164代目
http://toro.2ch.net/test/read.cgi/tech/1370255305/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/C/C++の宿題片付けます 165代目
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0853 ◆QZaw55cn4c 2013/07/10(水) NY:AN:NY.AN
>>850
初期化しない分はたしかにそうだね
でも、初期化する分は、普通は、リンク前にすでに組み込まれているんじゃないの?

>>849
コード領域、スタック領域以外をヒープと呼ぶ人もいるようだ(昔なら DS セグメントレジスタでアクセスする分を全部ヒープといっていたようだね)。それに異論を唱えるつもりはない。

static な領域は、確保できないのならコンパイル&リンク時点ではねられるだろう?malloc() 失敗時にちまちま書くのが面倒なときは、えいや、と static にするね、配列なんか特にね。
0854 ◆QZaw55cn4c 2013/07/10(水) NY:AN:NY.AN
>>852
メモリ配置は環境によるね、その図の場合もあるし、ヒープとスタックが逆の場合もあるよ。静的領域(.data と .bss)は普通はコードの後ろに置くようだけれどもね。
0855デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>853
初期化する分もコード内に持っていて、プログラム起動時にヒープ領域にコピーされる
0856デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>853
>>static な領域は、確保できないのならコンパイル&リンク時点ではねられるだろう?

それは違う。メモリを割り当てるのはあくまでプログラム実行時(ロード時)。
0857デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
あーまたQzの馬鹿講義が始まったよ(ノ∀`)アチャー
0858 ◆QZaw55cn4c 2013/07/10(水) NY:AN:NY.AN
>>855
ふむ。.text, .rdata, .data 各セクションの実行時における配置にすきまがある環境もあるんだね、意識したことはないけど
でも「確保できないのならコンパイル&リンク時点ではねられる」という点はどうであれ同じだと思うだけれども?
コンパイルできたコードが実行時(プログラムロード時)にはねられることもあるの?
0859デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>858
クロス開発環境って知ってる?
0860デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>858
実行時のメモリ不足なんてコンパイル時に分かるわけないだろう
0861デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
どうやったらこんなアホ人間が出来上がるのやら

アホはアホらしく大人しくしていればいいものを
0862デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
link時にわかることもある
0863デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>861
もしかして自分の馬鹿さ加減を人に指摘されて喜ぶ究極のマゾなんじゃねw
0864デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
ちょっと分かりやすく補足してみる。

巨大なstaticな領域を取ったときに、exeファイルとしてNGとか、elfファイルとしてNGとかの
実行ファイル形式にならない場合はコンパイル時にエラーになる。

でもそうならなかったら、実行時にエラーしないとは言えない。
なぜならメモリにロードするのはあくまで実行時だから、実行時に十分なリソースが
なければロードできない。

あとOSによっては仮想アドレス空間は確保しても物理的に確保しない場合もあるから
実行開始したあとにエラーが出る可能性もある。
0865 ◆QZaw55cn4c 2013/07/10(水) NY:AN:NY.AN
>>859
厳密な意味ではやったことはない。同じアーキテクチャでコンパイルと実行を別の環境としたことはあるが

>>859 >>860
なんだかだんだん特殊な状況にはいってきたね、MS-DOS で FEP だのどーでもいい辞書だの TSR だのをバンバン載せた情況で MS-C がきどーしないとか‥‥‥

はじめの話はなんだったの?スタックに配列を載せるのと static に配列を載せるのとどっちが適切か、あるいは使い分けはどこにあるか?じゃなかったの?
0866 ◆QZaw55cn4c 2013/07/10(水) NY:AN:NY.AN
>>864
>物理的に確保しない場合もあるから実行開始したあとにエラーが出る可能性もある。
malloc() で OK が出てもそれを信用してはいけない、という話はよく耳にするね、でも、それって static な領域にも当てはまるものなのか‥‥‥
巨大な配列は、static に置こうが stack に置こうがあんまりかわらない、というのもなんだかねえ‥‥
0867 ◆QZaw55cn4c 2013/07/10(水) NY:AN:NY.AN
>>863
炎上学習法‥‥
0868デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>862
だよね〜

ROM で動作する環境もあるから、実行時でないと〜 とか言ってる奴はちょっと知識が足りない。
0869デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
staticを付けたほうがコンパイル時にメモリを多く確保する傾向がある。
0870デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
コンパイル時にauto変数 + static変数の領域を固定サイズで決定しているはずで
巨大なauto変数が生成されるとサイズがあふれて実行時に止まることはあるだろ?
0871デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>static な領域は、確保できないのならコンパイル&リンク時点ではねられるだろう?
>>static な領域は、確保できないのならコンパイル&リンク時点ではねられるだろう?
>>static な領域は、確保できないのならコンパイル&リンク時点ではねられるだろう?
>>static な領域は、確保できないのならコンパイル&リンク時点ではねられるだろう?
>>static な領域は、確保できないのならコンパイル&リンク時点ではねられるだろう?
>>static な領域は、確保できないのならコンパイル&リンク時点ではねられるだろう?
自覚してないバカは始末が悪いな。
バカのくせに見栄だけは一人前で特殊な状況と言い逃れようとしてるのが笑える。
0872デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
スタックは拡張できない場合もあるので、巨大な配列をスタックに
置くことは普通しない。しかしサイズを気にするならば、

>>824
> static char a[N][10] = {{0}};
こんな間抜けな事もしない。 WWWW
不要になった後その領域を再利用できない、データ領域では足りない場合がある。
からだ。 WWWW
0873デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
この場合、再利用しなくていいし、足りているからそうしてんだろw
0874デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
この場合に限定するのならstaticにする必要はない。
0875デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
Win32に決め打ちのリンカならstaticで2GBや3GBになるとエラー吐く事はあるけどな
一般にはそういうのは無視してリンクしてしまう
0876デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
細かいこと気にしてるとハゲるぞ
0877デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
ファイル探す時、ディレクトリツリーを辿るのが凄い面倒臭いんですが
どうしたらいいですか?お絵描きして遊んだ後に、Cやろうとしてファイル
探そうとしたらお絵描きフォルダがまず最初に開くので、Cのファイルまで
辿らないといけないので凄い面倒臭いです。
0878デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>877
よく開くフォルダはデスクトップにショートカットでも置いとけばいいじゃん。
0879デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>878
そんな事できるんですか...
初めて知りました。
後かなり困ってるんですがアプリケーションの関連付けを変えるにはどうしたらいいですか?
VC++ダウンロードしてからアイコンが全部VC++に変わりました。
メモ帳で開きたいのですが....
0880デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
僕もVCダウンロードしたのですがシリアルがわかりません><
0881デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>879
windows板いけ
0882 ◆QZaw55cn4c 2013/07/10(水) NY:AN:NY.AN
>>872
おひさしぶり。

>>872, 874
配列の0初期化を明示したかったから static をつけただけです、もっとも static つければ 必然として 零初期化されるし、この場合は意味がないようですね
自動変数の配列でも初期化できるようになったのはいつからだったっけ
0883デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>872
>データ領域では足りない場合がある。
いまどきのフラットなメモリ空間ではそんなこともないだろうに?もしかして 64KB の壁のことをいってるの?
0884デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
> 配列の0初期化を明示したかったから static をつけただけです
直後にforで初期化してるのに 意味ねー WWWW
配列は初期化するというのならbが初期化されてねー 一貫性ねー WWWW
そして、アルツハイマーの兆候 WWWW
>> 845 static をつけずにスタックに配列(というおおげさなもの)を置くという方が、むしろ制限を意識する。
>> 847 配列をスタックに置くのはどーかと思うよ。

>>883
バカにはわからない。 WWWW
0885デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
>>871
あまりに巨大な領域に初期値も指定すれば
コンパイル&リンク時に死ぬ事もあるとは思う
が、基本は実行時だよな
0886デフォルトの名無しさん2013/07/10(水) NY:AN:NY.AN
そっかーbss は実行時だねえ
0887デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
visualC++2010でデバックすると決まって

'stdio.h': No such file or directory

というエラーがでます。部活の先輩にもらったサンプルプログラムなので構文エラーではないです。
このエラーはどういった方法で直すことができるでしょうか?
0888デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
低学歴、かまってちゃん
0889デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
標準ライブラリってデフォルトでコンパイラに入ってなかったけ?
0890デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>889
そのはずなんですが何故かできないんですよね?

なにか初期設定のようなものが必要なんでしょうか?
0891デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>889
ヴァカに構うな
お前だけならまだしも他も迷惑する
0892デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
嫌がらせで全角が混じってる予感
0893デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
bss領域にリミッターが設定されてないとか?
0894デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
スタックに確保される領域は実行時でないとわからんけどね
関数のネストしだい?
0895デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>894
再帰使ってるとわからない。
再帰使ってないなら、最大値を計算することは可能で、そう言うツールもある。

あと .bss とか .data とかの大きさを指定できて、越えるとリンク時にエラーにするものは、組み込みだと珍しくない。
0896デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
再起があってもなくてもスタックサイズはコンパイル時に確定してるだろ?
深い再起で落ちるのはメモリ不足になるためだろ。
0897デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
C/C++ でプログラムをしているとつい忘れてしまうのがスレッドのスタックオーバーフローの問題。
最近の OS はスレッド当たり 2〜8MB のスタック領域を持っているため、よほどのことがない限りスタックが溢れてしまうことはない。
だが、再帰や alloca を積極的に使うようなプログラムではスタックオーバーフローを気にすべきだ。
http://www.nminoru.jp/~nminoru/programming/stackoverflow_handling.html


/F (スタック サイズの設定) (C++)
このオプションを指定しない場合、スタック サイズは既定で 1 MB に設定されます。
http://msdn.microsoft.com/ja-jp/library/tdkhxaks(v=vs.80).aspx
0898デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>896
反証 alloca
0899デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
ここでスタックのサイズって言ってるのは、スタックの消費量のことでしょ?
alloca()使わなくても、再帰がある時点でコンパイル時には不明なんじゃないの?
0900デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
staticで初期値書かなかったら0になるのは、何の仕様?
0901デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
それは規格です。
0902デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
構造体型配列と、memmove関数について質問があります。
以下のような構造体型の配列をmemmove関数でコピーするとき、
コピーを始める位置の指定((name + 1)の部分)は、下のようにしても問題ないのでしょうか?

#include <stdio.h>
#include <string.h>

typedef struct {
 char first[4], last[4];
} NAMESET;

int main(void) {
 NAMESET name[4] = {{"aaa","bbb"},{"ccc","ddd"},{"eee","fff"},{"ggg","hhh"},};
 NAMESET temp[4] = {};

 memmove(temp, name + 1, sizeof(NAMESET) * 2);

 printf("%s %s\n", temp[0].first, temp[0].last);
 printf("%s %s",  temp[1].first, temp[1].last);
 return 0;
}
結果:
ccc ddd
eee fff
0903デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>902
問題ないよ。
09049022013/07/11(木) NY:AN:NY.AN
>>903 返信ありがとうございます。
これと
memmove(temp, name + 1, sizeof(NAMESET) * 2);
これは
memmove(temp, &name[1], sizeof(NAMESET) * 2);
等価であると考えて大丈夫ですか?
後出しで申し訳ありません。
0905デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>904
同じ。

*(name + 1) と name[1] は同じ。
0906デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>903, >>905
すっきりしました。ありがとうございました。
0907デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
スタックとヒープがいつもどっちがどっちか分からなくなります(辞書的な意味で)
どうしたらいいでしょうか?
ポストイットに書いてディスプレイに貼るのはダサいので他の方法でお願いします
0908デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
ヒープ 動的に確保する器
スタック おおよそ後入れ先出しする器

スタックの実装段階でヒープを利用する ということも有り得る話
0909デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
「stack もクソもない山盛り heap」と覚えればいいと思うよ
0910デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
push,popって配列の0での作業なの?
それともstrlen-1での作業?
これが未だに分らない。
0911 ◆QZaw55cn4c 2013/07/11(木) NY:AN:NY.AN
>>910
ヒント:i8086 とかではスタックポインタ(のオフセット)を 0 で初期化するのが普通です
0912デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
スタック(LIFO)はアドレス操作をカプセル化したデータ構造なので、
伸びる方向が上方(順方向)でも下方(逆方向)でも好きな方で実装すればいい。
CPUスタックは下方伸長のものが多い。
0913デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
a
0914デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
当方 物理学科で趣味でプログラミングを趣味でやり始めたんだけど問題発生 一定の数の質点が相互作用しているプログラミングを作ってる最中なんだが
何故か全ての質点が互いに相互作用じゃなくて一個の質点とそれ以外の質点が相互作用するプログラムになっちゃった。
プログラムは全然分からんから教えて欲しいんだけどここで聞いていい?
0915デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>914
まずソースコードを貼れ、つ http://codepad.org/
ルンゲクッタは何次のを使ってる?
0916デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>914
>趣味でプログラミングを
>趣味でやり始めた

何でそんなに趣味であることをそんなに強調してんのコイツ
0917デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
ピタゴラス三体問題は誤差をなくすのに大変なんで勘弁
0918デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>915
//codepad.org/vawU35Ji
ルンゲクッタは4次です プログラミングについてはまったく無知なんでおかしいと思うけど。。
0919デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>916
ミスった
0920 ◆QZaw55cn4c 2013/07/11(木) NY:AN:NY.AN
>>914
>一個の質点とそれ以外の質点が相互作用するプログラムになっちゃった。
しか読んでない。

if (i==j)
Fx[i]+=0;
else
Fx[i]+=(a/dis[i][j])*res_x[i][j];

Fy も同じ処理で
こうするとどうなる?
0921デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
物理に使える数値計算、数式処理ソフトを使え。
ZEROから制作は馬鹿げてる。
0922デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
フリーの数値計算、数式処理ソフト

R言語 Octave Scilab Maxima Python(x,y)
0923デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>920
ありがとう というか自分のアホさかげんに呆れている 当たり前の事に気付かなかった
>>921
粒子法を開発した先生の本でc使ってたから俺もやり始めたんだけど他にいい方法があるのか
0924デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
?ttp://pc-physics.com/rk1.html
0925デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
実用上、フォートランやC言語は、計算速度不足のとき最終的に使えばいい。
とりあえず容易に計算でき、結果が出せたらいいだろう。
0926デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
太陽系の惑星とそれぞれの衛星も含めた全ての軌道を同時にシミュレーションしたいんですけど、どうしたらいいですか?
水星が木星の重力の影響を受けて楕円軌道が大きくなっていて、将来水星が太陽にぶつかって飲み込まれるかもしれないときいたので、
水星がなくなった場合の太陽系の他の惑星の軌道への影響を調べたり、
また水星以外にもそうした変化が起こっていないかなど調べたいのです
0927デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
数学板とか天文板とかに行った方がいいんじゃないか
0928デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
Rで多体問題を数値解析
古典物理学と言えばニュートンの運動方程式で、何かの軌道をプロットするのが定番です。
二個や三個であればPC上のRで計算できるので、試しにやってみましょう。
http://d.hatena.ne.jp/uncorrelated/20130618/1371565502


偏微分方程式の差分解法と Scilab を用いた数値計算
これは,2013年1月 (23,26,29,30,31日) に中央大学で行われた
集中講義・応用解析学 2(理工学部数学科),応用解析特別講義第二 (理工学研究科数学専攻) の講義テキストです.
http://www.infsup.jp/saito/modules/mydownloads/visit.php?cid=1&;lid=18

微分方程式の数値計算: ポチの電子回路論
http://ee-by-pochi.sblo.jp/article/57772181.html

Sympy : Python での記号計算
http://www.ike-dyn.ritsumei.ac.jp/~uchida/scipy-lecture-notes/advanced/sympy.html

Pythonの数式処理ライブラリ SymPy で遊んでみる
http://note.chiebukuro.yahoo.co.jp/detail/n145429

Octaveで遊ぶ数値解析入門
http://members2.jcom.home.ne.jp/keiko0/octavenumerical.pdf

Scipyで常微分方程式を解く
http://oceansciencehack.blogspot.jp/2010_08_01_archive.html

Maxima  常微分方程式
http://phys.hirosaki-u.ac.jp/wiki.cgi/maxima?page=%CA%FD%C4%F8%BC%B0

Maxima で数学を 多機能ぶり
http://ayapin-film.sakura.ne.jp/LJ/Docs/34th.pdf
0929デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
マジで多体問題やるつもりか
論文にしろよ
0930デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
>>896
確保する容量のことなら Windows は CreateThread( ) でスレッド作成時に指定できる
使う量のことなら、alloca( ) とか再帰で確定しない

要するに、実行するまでわからん場合があるということだ
0931デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
多体問題って今日はじめて知ったが。
N=3でも数値計算しか知られてなかったのが、最近、一般相対論でのN=3の一般解が解けたようだな。
一般相対論で4以上が不可能か証明されてるのか?




弘前大、一般相対論における三体問題の直線解の解析解を導出 2011年2月3日
弘前大学大学院理工学研究科の山田慧生氏と浅田秀樹准教授が、一般相対論における三体問題の直線解を導き、Physical Review 誌に掲載された。
多体問題においては、積分法による一般解の解析解は存在しないとアンリ・ポアンカレによって証明されており、問題解法には摂動や数値解析を用いた計算が従来行われていた。
2007 年に行われた研究会での浅田先生の発表資料 (PDF) によれば、日本天文学会では「三体問題にだけは手を出すな」「相対論にだけは手を出すな」という格言があるほどだったらしい。
http://www.excite.co.jp/News/it_g/20110203/Slashdot_11_02_03_044235.html
0932デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
Linux とかだと勝手にスタック延ばしてくれたりしないっけ?
0933デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
link時にスタックサイズを指定することである程度は回避出来ます
スタックを消費しすぎて、heap領域とかをぶっ壊すこともあるかな
heap領域を使いすぎて、スタック領域を使えない状態になることも

パソコンとかの富豪プログラム環境ではあんまり関係ないかも
0934デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
こっちはニュートン方程式で
http://sci.tea-nifty.com/photos/uncategorized/2013/02/24/pythagoras.gif
http://sci.tea-nifty.com/photos/uncategorized/2013/02/24/pythagoras_2.jpg
http://sci.tea-nifty.com/blog/2013/03/geogebra42gif-2.html

こっちは一般相対論らしい。
http://sci.tea-nifty.com/photos/uncategorized/2013/03/16/new3body01.gif
http://sci.tea-nifty.com/photos/uncategorized/2013/03/16/new3bodyproblem_2.jpg
http://sci.tea-nifty.com/blog/2013/03/13gif-5c3e.html


ピタゴラス3体問題をルンゲクッタ法で解いて見た。
http://www.marble-cafe.com/planet/Pythagoras/Pythagoras.html
にJAVAのソースがあったので、R言語に焼きなおして解いて見た。
http://blogs.yahoo.co.jp/runomee/62375764.html


一般相対論の方程式で弘大が快挙
http://blogimg.goo.ne.jp/user_image/0b/d2/a2f0ed85a1a2180e403f78a2405d99c4.jpg
http://blog.goo.ne.jp/ktonegaw/e/89d89ebc0097bb78a3af6d4e93a35c7a
09359142013/07/11(木) NY:AN:NY.AN
>>931
一般解は存在しないけど特殊解は存在していてニュートン方程式では知られていたけど
一般相対論では初めて見つかったって事だと思うよ
学部生で一般の解析解見つけるなんてすごいなぁ
0936 ◆QZaw55cn4c 2013/07/11(木) NY:AN:NY.AN
ここはCスレなんだが?
0937デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
古典力学で解けないことが知られてるのに、相対論的一般化では解けるってのはオカシイと思ったら、特殊の場合の解析解が求まったという話だった。



多体問題 - Wikipedia
多体問題は、互いに相互作用する3体以上からなる系を扱う問題である。
太陽と地球のような二体問題は厳密に解けるが、例えば月の運動も考える一般の三体問題以上になると解析的に解くことはできないとされる。
18世紀にはジョゼフ=ルイ・ラグランジュが研究を深め、19世紀末にアンリ・ポアンカレによって証明された。
ただしポアンカレの証明は積分法の範囲であり、この範囲以外の解法の存在については現在も不明である。


当たり前ですが,三体問題の一般解,と言うわけではなく,一般相対論の範囲で三体問題の直線解(三つの物体が一直線上に乗っている場合限定の解)を解いた,という物です.
http://slashdot.jp/comments.pl?sid=521452&;cid=1897426
0938デフォルトの名無しさん2013/07/11(木) NY:AN:NY.AN
カオスなのになあ
よく解けたとしか
0939デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
この話題、面白いんですが、C言語に限定したものではないし、
続けるならスレを立ててそちらで継続されたらいかがでしょうか?
0940デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
>>939
最終的にCに関わってくるから却下
0941デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
まぁPHPでやることはないだろうしなw
0942デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
軌道シミュレーションはよく研究されてて、ハードの性能だけの問題かと思ってたらそうでは無いんだな。既知の手法なら表彰されないしな。


第6回(平成21年度)日本学術振興会賞受賞者
「数値的一般相対論の開拓およびその応用」
中性子星やブラックホール形成は、一般相対論的効果が顕著に現れる現象であるが、これらの問題を解くための方程式は大変複雑になる。
柴田大氏は、一般相対論の基礎方程式であるアインシュタイン方程式を数値的に解き、
ブラックホールの形成や重力波放出を伴うような一般相対論的天体現象の理論的解明に多大な貢献をした。
特に、同氏は長時間安定に一般相対論の数値シミュレーションが行える新しい定式化を提案し、実際にその有効性を実証した。
これらは、「数値的一般相対論」と呼ばれる分野の本格的到来を導く記念碑的業績として世界的に高く評価されている。
同氏は、的確な問題設定と独創的な計算手法を駆使して、一般相対論・相対論的宇宙物理の分野において今後も世界をリードしていくことが期待される。
http://www.jsps.go.jp/jsps-prize/ichiran_6th/09_shibata.html
0943デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
この程度の脱線ならしょっちゅうあったのに、ついていけないときだけスレチだって喚かれてもw
0944デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
>>943
いや、そうじゃなく、このスレに埋もれてしまうより
単独で立てた方が良くないかと
0945デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
そんなに面白い話題ならたててくれ。
あと叩き台のコードもアップで。
0946デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
太陽系内での軌道計算すら大変そうだし、そこに彗星がやってきたときとかの軌道はどうやって求めてるんだ?
ほんの少しのズレでも、軌道が変わってしまうだろ。
たとえば球形の鉄玉を転がしたとき、磁石に衝突するかしないかは、少しの方向や速度や磁力の違いで変わる。
0947デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
どうせスレ立てても30レスくらいまでいったところで放置されるよ
0948デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
土星の輪には何故空隙が出来るか、誰かシミュレーションで説明して
0949デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
あの輪っかは土星の自転方向と関係あるの?
0950デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
「もし、地球に土星の輪があったら」
荒唐無稽な話のようですが、ロシュの限界などの物理的な考察をした上でのシュミレーション・アニメです。
http://www.youtube.com/watch?v=NqQbxV1d9v0
https://ja-jp.facebook.com/Dr.kanjukuamagi/posts/459544510793405

国立天文台、約502TFLOPSのCray製Xeonスパコンを運用開始  
〜計算天文学向けに開放、2014年度には1PFLOPSへアップグレード  2013/5/29
性能を高めた新スパコンの導入により、これまで計算できなかったような大質量の形成や、
土星の輪全体の構造などの計算、時間軸/空間軸の解像度を高めた解析などの実現に期待を寄せている。
http://pc.watch.impress.co.jp/docs/news/20130529_601423.html


高度なN体シミュレーション法 押野翔一 2013/1/23
土星環シミュレーション手法 : local shearing box + リープフロッグ法 + GRAPE-7
http://www.cfca.nao.ac.jp/files/oshino_13_4_0.pdf



土星の環は安定?
http://www.geocities.jp/planetnekonta2/hanasi/ring/ring.html


国立天文台 理論研究部 + 天文シミュレーションプロジェクト (CfCA) 研究成果 2012年度
土星の環におけるプロペラ構造の形成
土星の環でプロペラ状の構造の発見(Tiscareno et al. 2006)
環に埋もれた小衛星が原因
プロペラの形成条件をN体シミュレーションで調べた
プロペラの観測例 Michikoshi and Kokubo, 2011, ApJ, 732L, 23
プロペラ状の部分空隙が形成されることを確かめた
衛星の大きさと周囲の密度で 形成条件が決まっている
http://th.nao.ac.jp/research/2012/research_2012.pdf
0951デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
G(Mm/r^2)だっけ?と、
mrω^2だっけ?

だけで何とかならんの?
つーか久しぶりすぎてこの公式が怪しいw
0952デフォルトの名無しさん2013/07/12(金) NY:AN:NY.AN
とりあえず最初は彗星抜きで考えろよ。
純粋に今現在判明してる太陽系の惑星だけで。
レス数が950を超えています。1000を超えると書き込みができなくなります。