
以下の問題について
『原点に質量Mの天体があり、点(x.y)上にある質量mの天体が万有引力で引かれているとする。M>>mとして、質量Mの天体は動かないと仮定する。そのとき、質量mの天体の運動方程式は以下のようになる。
mdVx/dt=-GMmx/r^3
mdVy/dt=-GMmy/r^3
ここでGは万有引力定数でr=√x^2+y^2である。
問: 簡単のためにGM=1として、初期条件x(t=0)=0:5、y(t=0)=0:0、vx(t=0)=0、vy(t=0)=1:63のもとで、上の微分方程式をオイラー法によって解け。適当な力学の教科書を見れば、この初期条件では、答えは閉じた楕円軌道になることが、この系の持つ力学的エネルギーの値から分かる。また、長軸、短軸、周期なども、力学的エネルギーや角運動量の値から計算できる。この答えを実現するためには時間刻み
Δtの値はどの程度でないといけないかを調べよ。』
使用するc++のソースコードに間違いがあるのですが、よくわかりません。知識のある方に教えていただきたいです。↓ソースコード
//n.C
#include <iostream>
#include <cmath>
using namespace std;
main()
{
int n;
float vx=0.0;
float vy=1.63;
float x=0.5;
float y=0.0;
float t=0.0;
float dt=0.05;
float r, r3;
float x1, y1;
cout << x << " "<< y <<"\n";
for (n=1; n<=100; ++n){
x=x+vx*dt;
y=y+vy*dt;
r=sqrt(x*x+y*y);
r3=r*r*r;
vx=vx-(x/r3)*dt;
vy=vy-(y/r3)*dt;
cout << x << " "<< y <<"\n";
}
}
よろしくお願い致します!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームを開くときに、コンボ...
-
C言語 exitの使い方
-
VB6.0-整数と余りを求める
-
フリーランタイマーの時間差分...
-
ラジオボタンの値の取得につい...
-
2つの列で重複するキーの数と...
-
VBA コンボボックスの値をスピ...
-
3bitアップダウンカウンタ(Up/...
-
Excel-vba 文字列と変数を...
-
VBAでプロセデュア間で共有でき...
-
1つ前の値を変数に保存する方法
-
テキストボックスの値を変数に...
-
VBAでダブルコーテーション入り...
-
デジタルカレンダーでTo Do 事...
-
変数名の間接指定
-
変数にオフセットが付いている...
-
COLUMN(1:1)の意味を教え...
-
basp21のアップロード
-
C言語 exitで終了した関数の戻...
-
Variant型で宣言してるのにEmpt...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
Excel-vba 文字列と変数を...
-
フォームを開くときに、コンボ...
-
VB6.0-整数と余りを求める
-
VBAで配列のNULL判定
-
数字の位ごとの値を表示するプ...
-
フリーランタイマーの時間差分...
-
VBAの定数の使い方で、計算値を...
-
足して100になるような乱数のア...
-
Access2003 オートナンバーの現...
-
DWORDって
-
Xorshiftの値を絞り込む方法を...
-
ラジオボタンの値の取得につい...
-
C#で動的にコントロールを取得...
-
DataGridView 複数行同時変更...
-
VBA コンボボックスの値をスピ...
-
vbaで極大値を抽出する方法
-
コンボボックスの名前を変数に...
-
Nullってどういう意味ですか?
-
データ構造のmapとは?
おすすめ情報
回答ありがとうございます。これは課題として出されたものでして、前提として「このソースコードには間違いがあります」とされているのですが質問文に記載するのを忘れていたようです。申し訳ありません。