矢の速度と再加速の計算

5月に更新された新型AIではもう十分にアーチェリー業務で実用的なレベルにあるという記事を書いてからは結構利用させていただいています。先日、歴史学で弓についての研究(?)というか研究の中で、矢の威力を扱っているものを読みましたが、計算がぜんぜん違うよな…となりまして、具体的には矢と銃弾を混同していて、銃弾は基本的にほぼ真っすぐ飛び、長距離になると下に落ちていきますが、矢は高さの到達点から落ちていきながら、位置エネルギーによって再加速されるのです。

質問をするために自分で矢の威力を計算したいとなりましたが、運動方程式が難しすぎるので、AIに任せてみました。AI(Copilot Pro)は自分では計算できないようです。よく考えれば、LLM(大規模言語モデル)ですので、計算はしないか。計算するためのコードは書いてくれるので、自分で計算することにしました。

計算するに当たり、初期設定としては初速などが当然必要ですが、この数値の中で、空気抵抗係数だけがわからないのですが、ここも勉強してみたら難しそうだったので、調べたら直径7mm・20gのイーストンシャフトで測定した論文がありました。

こちらの論文では空気抵抗係数は1.94ということになっていましたのでこの数字を使って1、計算すると、一発で結果が出ました。

60m/sで40度で打ち出した場合、到達距離は237m、129m時点で最高高度に到達して59m。そこからは59mからものを落とすと加速するのと同じ理由で、最高点での33m/sから、的中までに7m/s(22%)、40m/sまで加速します。Copilotありがとう。考古学や歴史学で弓の威力について書かれる場合に、矢が再加速する性質を持っていることが無視される傾向にあると思います。

  1. H. O. Meyer, Applications of Physics to Archery, 2015 ↩︎
使用コード(Google Colab)
import math
import csv

# 初期設定
v0 = 60.0  # 初速度 (m/s)
angle = 40.0  # 発射角度 (度)
mass = 0.02  # 矢の重さ (kg)
Cd = 1.9  # 空気抵抗係数
rho = 1.225  # 空気の密度 (kg/m^3)
A = 0.000036  # 矢の断面積 (m^2)
g = 9.81  # 重力加速度 (m/s^2)
time_interval = 0.01  # 時間間隔 (s)
total_time = 10  # 計算する総時間 (s)


# 角度をラジアンに変換
angle_rad = math.radians(angle)

# 水平方向と垂直方向の初速度成分
v0x = v0 * math.cos(angle_rad)
v0y = v0 * math.sin(angle_rad)

# 速度と位置の初期値
vx = v0x
vy = v0y
x = 0
y = 0

# 結果を保存するリスト
trajectory_data = []

# 時間経過に伴う位置と速度の計算
for t in range(int(total_time / time_interval)):
    # 空気抵抗力
    Fd = 0.5 * Cd * rho * (vx**2 + vy**2) * A
    # 空気抵抗による加速度
    ax = -Fd / mass * (vx / math.sqrt(vx**2 + vy**2))
    ay = -Fd / mass * (vy / math.sqrt(vx**2 + vy**2))
    
    # 重力の影響を加えた垂直方向の加速度
    ay -= g
    
    # 速度の更新
    vx += ax * time_interval
    vy += ay * time_interval
    
    # 位置の更新
    x += vx * time_interval
    y += vy * time_interval
    
    # 現在の速度
    velocity = math.sqrt(vx**2 + vy**2)
    
    # 地面に達したら計算終了
    if y <= 0:
        break
    
    # 結果をリストに追加
    trajectory_data.append((t * time_interval, x, y, vx, vy, velocity))

# CSVファイルに保存
with open('trajectory_with_drag_and_velocity.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    # ヘッダーを書き込む
    writer.writerow(['Time (s)', 'X Position (m)', 'Y Position (m)', 'X Velocity (m/s)', 'Y Velocity (m/s)', 'Total Velocity (m/s)'])
    # データを書き込む
    writer.writerows(trajectory_data)

print('CSVファイルに軌道と速度のデータが保存されました。')

The following two tabs change content below.
アバター画像

Ryo

熱海フィールド・あちぇ屋代表。日本スポーツ人類学会員、弓の歴史を研究中。リカーブ競技歴13年、コンパウンド競技歴5年、ベアボウ競技歴2年。リカーブとコンパウンドで全日本ターゲットに何度か出場、最高成績は2位(準優勝)。
アバター画像

最新記事 by Ryo (全て見る)

5 thoughts on “矢の速度と再加速の計算

  1. ヤマハの技術者は正しい知識があると思うのでこのような資料は作らないと思います。

    > その発射角 θ(°)、水平到達距離を D(m)とすると、こんな式になります。前述の条件で90mで10点に的中させようとするなら、水平面から7°の角度で射ち出すことになります。

    リンク見ましたが、60m/sの打ち出し角度7度で90m先の10点に当たるとしていますが、違います(重力加速度を9.81として)。
    7度で射る場合、下の8点あたりに当たります(計算では高さ-15cmの場所に当たる)。

    このサイトに関しては、根拠も算出時期もないのでこれ以上は想像です。

    以前の記事で70年代のデータを2000年になっても正しいとしてアーチェリー教本に掲載されているけど、正しいわけないという記事を書きました。
    https://archerreports.org/2021/08/%e6%ad%b4%e5%8f%b2%e3%81%aa%e3%82%93%e3%81%a6%e8%aa%bf%e3%81%b9%e3%81%a6%e4%bd%95%e3%81%97%e3%81%a6%e3%81%84%e3%82%8b%e3%81%ae%e3%81%8b/

    画像を見るとイメージの解像度が著しく低いです。これも70年代のデータであると仮定すると、3:2というデータ算出はX7などで計算されていると考えられます。そこで70年代のワンピースボウ&1914のような大型シャフトと仮定して、矢の初速を遅くして、断面積を大きくして、矢を重くした結果、おおよそ、3:2の軌道をシミュレーションから得ることが出来ました。

    私の見解としてはこのシミュレーションは50年前に行われたと推測します。当時の前提条件としては妥当かもしれませんが、今は2024年です。

  2. コメントしたきっかけはこれを読んで思わず失笑してしまったからです。

    > 具体的には矢と銃弾を混同していて、銃弾は基本的にほぼ真っすぐ飛び、長距離になると下に落ちていきますが、矢は高さの到達点から落ちていきながら、位置エネルギーによって再加速されるのです。

    銃弾は矢よりも圧倒的に初速が早いので水平に発射しても見た目上直進して見えるだけで、上に向かって発射すれば高さの到達点から落ちてくるときに位置エネルギーを得られるし、矢だって水平に打てば位置エネルギーを得られずに失速するだけです。
    最初はつりかな?と思ったのですが、どうやらマジでそう考えてるみたいですね。

    > 矢の初速を遅くして、断面積を大きくして、矢を重くした結果、おおよそ、3:2の軌道をシミュレーションから得ることが出来ました。

    リンク先の図では重力だけが作用する場合の定数として
    距離=90m
    初速=毎秒60m
    飛翔時間=1.6秒
    降下距離=11.025m
    発射角=7°
    と書いてあるのに初速を変えてさらに距離=35m、降下距離=3mで3:2になったとしてもそれはただの数字合わせで何の検証にもなってないですよ。
    式にデータを代入して合わなかったのであれば合わなかったという結果で十分なのでは?

    > 私の見解としてはこのシミュレーションは50年前に行われたと推測します。当時の前提条件としては妥当かもしれませんが、今は2024年です。

    ちょっと調べてみたのですが、弾道学の歴史は古く18世紀までさかのぼるそうです。AIを使って調べるのは2024年だと思いますが、記事にある式はシンプルなのでそれなりに古いものじゃないですかね?最新というのであれば揚力・抗力、コリオリ力、マグナス効果のパラメータが欲しいですね。

  3. >最初はつりかな?と思ったのですが、どうやらマジでそう考えてるみたいですね。

    私もこちらのコメントは冗談かなと思ったのですが、長く書いていただいたので、マジで返信させていただきます。
    大前提としてこれは現実の話です。ここを理解してください。夢の世界の話ではありません。

    現実があって、シミュレーションに意味があります。
    確かに理屈としてはおっしゃるとおりですが、”現実”において、銃弾はその直進性を利用した運用をされていて、矢はその弧を描く弾道を使用した運用がされています。


    矢を大きな角度をつけて使用した記録は世界中に存在しますが、銃器を大きな角度をつけて運用した記録は少なくとも私は知りません。
    初速が非常に高速な場合には着弾がある程度適切であれば良い砲弾にしか存在しない運用方法です。

    現実に存在しない「銃弾の位置エネルギー利用」についてご意見を頂いても…でも、それ誰も使わないじゃん。としか言えません。
    (追記) なぜ存在しないのか記事にしました。
    https://archerreports.org/2024/06/bullets-from-the-sky/
    (追記ここまで)

    記事は読んでいただいてるようなので、まず、これは歴史についての話です。
    宮本武蔵は五輪書で「弓の一徳は、はなつ矢、人の目に見へてよし。鉄炮の玉ハ、目にみヘざる所不足なり。」と書いています。

    現代訳 弓の一つの長所は、放つ矢が人の目に見えて、(それが)よいのである。鉄砲の玉は目に見えないところがよくない。
    (https://musasi.siritai.net/themusasi2/gorin/g104.htmlより)

    弓の軌道、空から加速しながら落ちてくる視覚的効用については古くから語り継がれています。対して、銃弾も物理的には上から落ちてくるように飛ぶとしても、
    宮本武蔵ほどの達人であっても見えないとしている以上、語る意味があるとは思いません。

    (続く、後半は数字について検討します)

    *銃弾の位置エネルギーによる事故は世界中で起きているので、無視できるとは思っていませんが、歴史上において戦闘に用いられたかという話をしています。
    https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14161131614

  4. (前のコメントの続きです)

    >リンク先の図では重力だけが作用する場合の定数として
    >距離=90m
    >初速=毎秒60m
    >飛翔時間=1.6秒
    >降下距離=11.025m
    >発射角=7°

    繰り返しになりますが、↑という与えられた数字で、まず空気抵抗を考慮しない方法で計算しても、10点に当たりません。6時方向の8点になります。そちらの計算ではどういう結果ですか?

    この時点でこのシミュレーションは正しくないと回答させていただきました。

    >と書いてあるのに初速を変えてさらに距離=35m、降下距離=3mで3:2になったとしてもそれはただの数字合わせで何の検証にもなってないですよ。

    根拠も使用した式について私は公開していますが、リンク先のページでは何も示されていないので、そもそも検証のしようがありません。
    検証してほしいのであれば、示してください。
    その上で、3:2になる場合とかあるのかなと思って数字をいじってみて、

    「ワンピースボウとX7ならそうなるかもね」

    と回答させていただきましたが、このサイトに関しては、根拠も算出時期もないのでこれ以上は想像です。とお断りさせていただいたはずです。
    私が「検証した」と言っていないものを「検証になっていない」とマジで言われても…想像だとお伝えしたはずです。

    >ちょっと調べてみたのですが、弾道学の歴史は古く18世紀までさかのぼるそうです。AIを使って調べるのは2024年だと思いますが、記事にある式はシンプルなのでそれなりに古いものじゃないですかね?最新というのであれば揚力・抗力、コリオリ力、マグナス効果のパラメータが欲しいですね。

    欲しいがっていることは伝わりましたが、他人に欲しがるばかりではなく、自分でも勉強してみたらどうですか? 私は今、学者の方と連絡を取って勉強させていただいていますが、相手が書かれたものについて間違っていると考えた場合には、その根拠や自分で再計算して、相手に対して指摘することが最低限の礼儀です。自分で汗もかかずに、「山口さん、私は匿名のものですが、亀井さんはあなたと違うこと書いていますよ」などという指摘はただの無礼です。

    こんなことではあなたは「議論をする者」ではなく、ただの礼儀知らずになります。ご注意ください。

    ニュートンの運動方程式はアインシュタインによって否定されました。それは20世紀前半のことです。しかし、今でも多くの人はニュートンの方程式を使います。”揚力・抗力、コリオリ力、マグナス効果のパラメータ”を使用することで結果がどれだけ変わるのかについては、どのような見識をお持ちですか?

    最後にAIに聞いてみました。(1000km/時にしたのは私が今まで乗った一番速い乗り物が飛行機だからです。)

    Q.時速1000kmの時、ニュートンの運動方程式とアインシュタインの運動方程式の結果はどれだけ違う?

    A.時速1000km(約277.78m/s)では、ニュートンの運動方程式とアインシュタインの運動方程式の結果には顕著な違いはありません。

    知恵袋ではこの差について計算した人がいるらしく、

    “飛行機の速さを100m/sとして計算した場合、1秒につき、約3×10^-7秒遅れます。ちょうど1年間に1秒遅れるぐらいです。80歳が寿命の人で24時間80年間飛行機に乗ったままだと、現実時間の80秒だけ長く生きれます。”

    だそうです。

    *AIはCopilot Proを使用
    **知恵袋 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1271369392

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です