課題がわかりません><
Posted: 2013年12月23日(月) 15:48
投射のシミュレーションをC言語でプログラミングするのですが、全くわかりません;;
どなたか教えてくださいm(_ _)m よろしくお願いします。
二次元直交座標系(x, y) において、質量m[kg] の質点の運動方程式はニュートンの運動の第二法則より、
m*d^2*x/(dt^2)=fx
m*d^2*y/(dt^2)=fy
ここで(fx, fy)は質点に作用する力[N]のx成分、y 成分である。
上式は2階線形常微分方程式であるが、それぞれ1階連立線形常微分方程式にできる。
m*du/dt=fx
dx/dt= u
m*dv/dt= fy
dy/dt= v
ここで(u, v)は質点の速度[m/s]のx成分、y成分である。初期条件は時刻t = 0における質点の座標(x(0), y(0))と速度(u(0), v(0))が与えられればよい。
具体例として、地上での質点の投射問題を考える。水平方向をx軸、鉛直上向きをy 軸とする。空気抵抗が無視できる場合には質点に作用する力は重力のみで運動方程式は
m*du/dt= 0
dx/dt= u
m*dv/dt= −mg
dy/dt= v
ここで重力加速度g = 9.80665[m/s2] である。
オイラー陽解法によって離散化する。時間の離散化をあらわす添え字は上付き添え字のnを用いている。
m*(u^(n+1) − u^n)/Δt= 0
(x^(n+1) − x^n)/Δt= u^n
m*(v^(n+1) − v^n)/Δt= −mg
(y^(n+1) − y^n)/Δt= v^n
よって差分式は、
u^(n+1) = u^n
x^(n+1) = x^n + Δt*u^n
v^(n+1) = v^n − Δt*g
y^(n+1) = y^n + Δt*v^n
シミュレーションプログラムを作成し、シミュレーションを実行せよ。
初期条件として、時刻t=0における質点の座標(x0, y0)と速度 (u0, v0) を自分で決める。ただし速度の大きさは1m/s程度。時間間隔はdt=0.1。出力データファイル名を付け、プログラムを実行し計算結果を出力する。
MS Visual C++ 2010 Express を使っています。 C++ではなくCでプログラミングしています。
C言語は初心者です>< 具体的なプログラムを教えてください よろしくお願いします。
どなたか教えてくださいm(_ _)m よろしくお願いします。
二次元直交座標系(x, y) において、質量m[kg] の質点の運動方程式はニュートンの運動の第二法則より、
m*d^2*x/(dt^2)=fx
m*d^2*y/(dt^2)=fy
ここで(fx, fy)は質点に作用する力[N]のx成分、y 成分である。
上式は2階線形常微分方程式であるが、それぞれ1階連立線形常微分方程式にできる。
m*du/dt=fx
dx/dt= u
m*dv/dt= fy
dy/dt= v
ここで(u, v)は質点の速度[m/s]のx成分、y成分である。初期条件は時刻t = 0における質点の座標(x(0), y(0))と速度(u(0), v(0))が与えられればよい。
具体例として、地上での質点の投射問題を考える。水平方向をx軸、鉛直上向きをy 軸とする。空気抵抗が無視できる場合には質点に作用する力は重力のみで運動方程式は
m*du/dt= 0
dx/dt= u
m*dv/dt= −mg
dy/dt= v
ここで重力加速度g = 9.80665[m/s2] である。
オイラー陽解法によって離散化する。時間の離散化をあらわす添え字は上付き添え字のnを用いている。
m*(u^(n+1) − u^n)/Δt= 0
(x^(n+1) − x^n)/Δt= u^n
m*(v^(n+1) − v^n)/Δt= −mg
(y^(n+1) − y^n)/Δt= v^n
よって差分式は、
u^(n+1) = u^n
x^(n+1) = x^n + Δt*u^n
v^(n+1) = v^n − Δt*g
y^(n+1) = y^n + Δt*v^n
シミュレーションプログラムを作成し、シミュレーションを実行せよ。
初期条件として、時刻t=0における質点の座標(x0, y0)と速度 (u0, v0) を自分で決める。ただし速度の大きさは1m/s程度。時間間隔はdt=0.1。出力データファイル名を付け、プログラムを実行し計算結果を出力する。
MS Visual C++ 2010 Express を使っています。 C++ではなくCでプログラミングしています。
C言語は初心者です>< 具体的なプログラムを教えてください よろしくお願いします。