今年もワールドカップの時期ですね。サッカーの物理法則についてお話しましょう。「不可能キック」についてはどうでしょうか?「不可能キック」とは、ボールが地面から離れた後に空中で曲線を描くキックのことです。もちろん実際には不可能ではないのですが、実現が難しいキックです。
実際にサッカーボールを蹴るのではなく、基本的な物理学を用いてボールの動きをモデル化したいと思います。まずは、空気の影響を受けずに蹴られたサッカーボールという、最も単純なケースから始めましょう。確かに非現実的ですが、理想的な状況から始めて、徐々に複雑な状況にしていくのは良いことです。
こちらは蹴られた後のボールの様子です。

この場合、ボールが蹴られた後に作用する力は重力だけです。また、この瞬間のボールの運動量を表すベクトルも示しました。運動量は質量と速度の積です。正味の力の性質は物体の運動量を変化させることであるため、運動量は重要です。
力は大きさと方向が一定なので、重力のみの作用による物体の運動をモデル化するのはそれほど難しくありません。ボールの軌道は、物理学の入門書に載っている基本的な運動方程式を使って決定できます。しかし、もっと良い方法、つまり数値計算を使って計算してみましょう。
数値計算では、問題(例えばサッカーボールの軌道全体における動き)を多数の小さな問題に分割します。これらの小さな問題のそれぞれにおいて、近似値を用いて計算を簡素化することができます。これらの小さな問題は軌道全体を解くよりも簡単に解けますが、簡素化には代償が伴います。1つの難しい問題ではなく、多数の単純な問題に集約されることになります。素晴らしいのは、解くべき問題はたくさんあるものの、それらは非常に簡単なので、コンピュータでも計算できるということです。
このボールの動きをモデル化するために使用する数値レシピは次のとおりです。
- ボールの位置と運動量の初期値から始めます。
- モーションを小さな時間ステップ (0.01 秒など) に分割します。
- 各タイムステップで、次の計算を行います。
- 物体にかかる力の合計を計算します (この場合、力は一定で変化しません)。
- この合計力と前のステップの運動量 (または初期運動量) を使用して、ステップの終了時の運動量を計算します。
- 勢いを利用してボールの新しい位置を見つけます。
- 飽きてしまうか、コンピューターが反乱を起こしてもう働かなくなるまで、上記の手順を続けます。
これが基本的なプロセスです。Pythonでも実行できます。それほど難しくはありません。このような計算についてより詳しいチュートリアルが必要な場合は、私が作成したオンラインワークショップから始めてみてください。
さて、空気との相互作用がないサッカーボールの実際のコードはこちらです。「Play」をクリックしてコードを実行し、鉛筆アイコンをクリックしてコード画面に戻ってください。コードの内容は自由に変更してください。変更によって永久的に何かが壊れることはありませんのでご安心ください。
この場合、サッカーボールは視聴者からまっすぐに蹴り出され、「フィールド」上の白い線を越えて飛んでいきます。必要に応じて、ビュー内で右クリックしてドラッグするか、Ctrlキーを押しながらクリックしてドラッグすることで、シーンを回転させることができます。ちなみに、軌道が放物線になっていることを確認するために、側面図も掲載しておきます。放物線は当然のことです。

では、空気を加えてみましょう。サッカーボールが空気中を移動するとき、空気抵抗という力を加えることで、この現象をモデル化できます。この空気抵抗力については、すでに経験があるでしょう。走行中の車の窓から手を出せば、その力を感じることができます。空気抵抗力は、車の速度が速くなるにつれて大きくなります。また、握りこぶし(面積が小さい)から開いた手(面積が大きい)に手を伸ばすと、空気抵抗力は大きくなります。最後に、空気抵抗力は空気の密度と物体の形状にも左右されます。
空気抵抗は物体の速度に依存するため、空中における物体の軌道を直接計算するのは非常に困難です。力の総和は速度を変化させ続けますが、力自体も速度に依存するからです。これは難しい問題です。確かに、紙の上で計算するのは大変ですが、数値計算するのはそれほど難しくありません。それで、私たちはそれをやっていきます。
実は、これまでの数値計算との大きな変更点は一つだけです。力を重力のみとするのではなく、重力と空気抵抗(計算が必要です)の合計とします。それ以外はすべて同じです。
ええ、嘘をつきました。下の計算ではサッカーボールが2つある以外は同じプログラムです。2つのボールは同じ速度と角度で蹴られますが、片方には空気抵抗があり、もう片方には空気抵抗がありません(黄色のボール)。こうすることで、2つの軌道の違いが分かります。
横から見ると、この 2 つのボールの違いが簡単にわかります。

すごいですよね?でも、空中でカーブを描く、ありえないキックはどうでしょう?そのためには、3つ目の力、マグヌス力を加える必要があります。回転するボールが空中を動いているとすると、ボールの片側はもう片側よりも空気に対して速く動きます。そのため、ボールは空気を横に「投げ飛ばす」ような状態になり、空気はボールを反対方向に押し戻します。このマグヌス力の方向は速度に垂直で、速度と角速度(ボールの回転速度)の両方に依存します。
マグナス力は次の式でモデル化できます。

注:Physics WorldのTakeshi Asal氏によるこの記事には、さらに詳しい情報が記載されています。さらにいくつか注意点があります。ωは角速度ベクトルです。回転軸に沿った方向を持ちます。sはボールの表面の粗さに依存するパラメータです。最後に、xは外積、つまりベクトル間の演算を表します(2つのベクトルを掛け合わせることはできません)。ああ、最後に一つ注意点があります。マグヌス力は実際には非常に複雑です。上記の式はあくまで近似値です。ワールドカップ決勝のフリーキックのような重要な場面では使用しないでください。
不可能と思われるショットを実現するために、数値計算にわずかな変更を加えるだけで済むことは、おそらくお分かりいただけるでしょう。このマグナス力を計算し、それを全体の力に加えるだけです。コードの残りの部分はほぼ同じです。ここでも、比較のために空気との相互作用がない2つ目のボールを用意します。
実際のサッカーのコーナーキックに近づけるため、ボールを少し右に「蹴る」ことにしました。それでも、なかなかかっこいいですね。結果にはかなり満足しています。もちろん、ここでの主旨はサッカーの話ではありません。数値計算の威力を見せることなのです!
WIREDのその他の素晴らしい記事
- パルマー・ラッキーの国境の壁建設計画の内幕
- LAはあなたの街よりも水資源をうまく利用しています。そう、あのLAです
- AIが映画を作った。恐ろしいほど励みになる
- Twitterのパワーユーザーの不安な影響力
- Windowsユーザーに最適なMacの代替品をご紹介します
- もっと知りたいですか?毎日のニュースレターに登録して、最新の素晴らしい記事を見逃さないでください。