
揚力と抗力をPythonで計算する|飛行機が飛ぶ力を数値で見る
2026-09-19 ・ 実践
飛行機が飛ぶのは翼が生む 揚力 のおかげ。一方、進行を妨げる 抗力 もある。この2つをPythonで計算し、飛行の効率を測る「揚抗比」まで求めます。航空機設計の基礎になる数式を手を動かして理解します。
揚力と抗力の式
どちらも同じ形をしています。
揚力 L = ½ × ρ × v² × S × C_L
抗力 D = ½ × ρ × v² × S × C_D
ρ=空気密度、v=速度、S=翼面積、C_L/C_D=揚力/抗力係数。速度の2乗で効くのがポイントです。
準備
pip install numpy
① 旅客機の揚力を計算
巡航中の旅客機で、揚力が機体重量を支えているか確かめます。
import numpy as np
rho = 0.4 # 高度10,000mの空気密度 kg/m³(地上の約1/3)
v = 250 # 巡航速度 m/s(約900km/h)
S = 120 # 主翼面積 m²
CL = 0.5 # 巡航時の揚力係数
lift = 0.5 * rho * v**2 * S * CL
print(f"揚力: {lift/1000:.0f} kN")
print(f"支えられる質量: {lift/9.81/1000:.1f} トン")
出力は揚力 約750kN=約76トンを支える計算。中型機の重量に見合います。巡航では「揚力=重量」でつり合っています。
② 抗力と揚抗比
抗力を計算し、飛行効率の指標「揚抗比(L/D)」を出します。
CD = 0.03 # 抗力係数(揚力係数よりずっと小さい)
drag = 0.5 * rho * v**2 * S * CD
print(f"抗力: {drag/1000:.1f} kN")
LD = CL / CD
print(f"揚抗比 L/D: {LD:.1f}")
揚抗比は 約16.7。「1の抗力で16.7倍の揚力」を生む効率です。旅客機はこの値が15〜20程度で、大きいほど燃費が良く、遠くまで飛べます。
揚抗比=滑空性能
エンジンが止まっても、揚抗比の数だけ水平に滑空できます。L/D=17なら、高度1kmから約17km進める。グライダーはL/Dが40以上あり、だからあれほど長く滑空できるのです。
係数は状況で変わる
C_L・C_Dは迎え角や速度で大きく変わります(失速すると揚力が急減)。今回は巡航時の代表値での概算です。実際の設計では風洞試験やシミュレーションで係数の変化を細かく求めます。高度で空気密度ρが変わる点も重要です。
まとめ
- 揚力・抗力は ½ρv²S × 係数。速度の2乗で効く
- 巡航では揚力=重量でつり合う
- 揚抗比(L/D)は飛行効率の指標。旅客機で15〜20
- L/Dはそのまま滑空性能(高度1kmでL/D分の距離)
もう少し詳しく(背景と理論)
揚力と抗力は、どちらも L = ½·ρ·v²·S·C の形(C は揚力係数 CL または抗力係数 CD)で表され、動圧 ½ρv² と翼面積 S に比例します1。両者の比 **L/D(揚抗比)が空力効率の中心指標で、これが大きいほど少ない抗力で大きな揚力を得られ、滑空距離や航続性能に直結します2。係数は迎え角に依存し、迎え角を上げると揚力は増えますが、ある角度を超えると気流が剥離して失速(stall)**します3。速度の2乗で効くため高速では小さな面積でも十分な力が出る一方、再突入のように超音速域では衝撃波が絡み、係数の振る舞いが大きく変わります。
次の一歩 🌸
飛ぶ原理は飛行機はなぜ飛ぶ、次世代機は未来の航空、電動垂直離着陸機のeVTOLへどうぞ。