N88-BASICで斜方投射 (1回目)

2022/4/14(木)
N88-BASICで斜方投射 (1回目)
 
ニュートンの運動方程式
F = ma = mdv/dt = md2x/dt2 
より
a = dv/dt = d2x/dt2 
(距離の時間微分が速度
速度の微分が加速度)
 
a = const.(一定)として
 
v = ∫adt = at + C
(t = 0の時をv = v0とするとC = v0)
v = v0 + at
 
x = ∫(v0 + at)dt = v0t + (1/2)at2 + C
(t = 0の時をx = x0とするとC = 0)
x = x0 + v0t + (1/2)at2 
 
この式を使って
初速度v0角度θつまり
初速度 = |(v0cosθ, v0sinθ)| = v0
で高さhから斜方投射した時の飛距離
(水平距離)を計算する
 
上を正とすると垂直方向の
加速度a = -g(重力加速度g)
 
着地までの時間は
0 = h + v0sinθ・t - (1/2)gt2 
gt2 - 2v0sinθ・t - 2h = 0
t = {v0sinθ±√(v02sin2θ + 2gh)}/g
t ≧ 0で考えて
t = {v0sinθ+√(v02sin2θ + 2gh)}/g
 
水平方向の加速度はa = 0
2cosθsinθ = sin2θ
飛距離は
x = v0cosθ・t
= v0cosθ{v0sinθ+√(v02sin2θ + 2gh)}/g
= (v02/g)cosθ{sinθ+√(sin2θ + 2gh/v02)}
 
ここで
a = v02/g = const.(一定)
k = 2gh/v02 = const.(一定)
w = cosθ{sinθ+√(sin2θ + k)}
と置くと
x = aw
なので、wを最大とすればよい
 
θ-wグラフ(投射角と飛距離のグラフ)は
0<θ<90°とすると上に凸となるグラフで
あると予測できるので
接線の傾きが0の時xが最大となると思われる
 
接線の傾きdw/dθ
= -sinθ{sinθ + √(sin2θ + k)}
+ cosθ{cosθ + 2sinθcosθ・(1/2)
/ √(sin2θ + k)}
= {cos2θ√(sin2θ + k) + sinθcos2θ
- sin2θ√(sin2θ + k) - sin3θ - ksinθ}
/ √(sin2θ + k)
= [(cos2θ- sin2θ){√(sin2θ + k) + sinθ}
- ksinθ] / √(sin2θ + k)
=[(1 - 2sin2θ){√(sin2θ + k) + sinθ}
- ksinθ] / √(sin2θ + k)
 
√(sin2θ + k) ≠ 0つまり
sin2θ + k ≠ 0という条件で
z = sinθと置いて
(1 - 2z2){√(z2 + k) + z} - kz = 0
を解けば良い
 
(1 - 2z2){√(z2 + k) + z}{√(z2 + k) - z}
= kz{√(z2 + k) - z}
(1 - 2z2)(z2 + k - z2) = kz{√(z2 + k) - z}
1 - 2z2 = z√(z2 + k) - z2 
1 - z2 = z√(z2 + k)
(1 - z2)2 = z2(z2 + k)
1 - 2z2 + z4 = z4 + kz2 
(k + 2)z2 = 1
z2 = 1/(k + 2)
 
sin2θ = 1/(k + 2)
cos2θ = 1 - sin2θ = 1 - 1/(k + 2)
= (k + 2 - 1)/(k + 2) = (k + 1)/(k + 2)
tan2θ = cos2θ/sin2θ
= {1/(k + 2)}/{(k + 1)/(k + 2)}
= 1/(k + 1)
tanθ = 1/√(k + 1)の時のθが
最大飛距離の角度θ1となる
θ1 = Tan-1{1/√(k + 1)}
(k ≧ -1、sin2θ + k ≠ 0)
 
2gh/v02 + 1 > 0より
h > -v02 / (2g)と
h ≠ -v02sin2θ1 / (2g)は
-v02sin2θ1 / (2g) ≧ -v02 / (2g)より
h > -v02sin2θ1 / (2g)で満たされる
 
02 - (v0sinθ1)2 = 2ax = -2g(h+h1)なので最高地点は
h1 = h + v02sin2θ1/(2g)
  

結果
 
最大飛距離の角度
θ1 = Tan-1{1/√(2gh/v02 + 1)}
[h < -v0sin2θ1 / (2g)の時はボールが届かない]
 
滞空時間
t = {v0sinθ+√(v02sin2θ + 2gh)}/g
飛距離
x = (v02/g)cosθ{sinθ+√(sin2θ + 2gh/v02)}
 
NL-BASICとblg~.zip(throw001.bas)は
以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい












このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)