0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ポケモンで学ぶ高校数学

Last updated at Posted at 2025-10-21

第1章 一次関数:ピカチュウの攻撃と素早さ


1. 一次関数モデルの意味

一次関数(直線)とは、変数の変化が一定の割合で関係するモデルである。
ポケモンの攻撃力 A素早さ Sの関係を線形で近似することは、
「速いポケモンほど、平均的に攻撃力が高い」という経験的傾向を定量的に表す。

式:

A = mS + b
記号 意味 解釈
A 攻撃力(出力変数) 目的変数
S 素早さ(説明変数) 入力変数
m 攻撃上昇率(傾き) 速度1上昇あたり攻撃がどれだけ増えるか
b 基礎攻撃値(切片) S=0でも持つ攻撃力の基礎値

この式の意味は、Sが1増えると攻撃Aがmだけ増えるという「傾向線」である。


2. 最小二乗法の導出

観測データが複数ある場合、完全に一直線にはならない。
よって、各データ点 (Sᵢ, Aᵢ) に対して、予測値との差(誤差)を最小化するように m と b を決める。

誤差平方和:

E = Σ(Aᵢ − (mSᵢ + b))²

この E を最小化する条件(偏微分ゼロ条件):

∂E/∂m = 0
∂E/∂b = 0

計算を展開すると:

m = [Σ(Sᵢ − S̄)(Aᵢ − Ā)] / [Σ(Sᵢ − S̄)²]
b = Ā − mS̄

→ これは回帰直線の傾きと切片の標準解。


3. ピカチュウを含むサンプル計算

ポケモン 攻撃A 素早さS
ピカチュウ 55 90
エレブー 83 105
サンダース 65 130
レントラー 120 70

平均値:

Ā = (55 + 83 + 65 + 120) / 4 = 80.75
S̄ = (90 + 105 + 130 + 70) / 4 = 98.75

Σ(Sᵢ − S̄)(Aᵢ − Ā) = (90−98.75)(55−80.75) + … = 1162.5
Σ(Sᵢ − S̄)² = 1918.75

したがって:

m = 1162.5 / 1918.75 ≈ 0.61
b = 80.75 − 0.61×98.75 ≈ 20.5

近似式:

A = 0.6S + 2(切片を単純化)

→ S=90 → A=56(実測55に一致)

第2章 二次関数:モーモーミルクの売上変化


1. 放物線モデルの意味

モーモーミルクの売上は時間経過とともに「上昇 → 最大 → 減少」を示す。
このような「増えて減る」現象は、二次関数で近似できる。

式:

U(t) = a(t − t₀)² + U₀
記号 意味
a 曲率(変化の速さ)
t₀ ピーク時刻(頂点の位置)
U₀ 最大売上(頂点の高さ)

a < 0 のとき放物線は下向き(頂点が最大)。


2. 最小二乗法によるパラメータ推定

観測データ (tᵢ, Uᵢ) に対して:

E = Σ(Uᵢ − (a(tᵢ − t₀)² + U₀))²

Eをa,U₀で最小化する。
t₀を既知(観察から最大日を推定)と仮定すると、
aとU₀は線形最小二乗法で求められる。

∂E/∂a = 0, ∂E/∂U₀ = 0

→ aとU₀の同時連立解が得られる。


3. 仮想データの解析

t(日) U(売上)
5 875
10 1000
15 875

ピークは明らかに t₀ = 10。
これを代入して a, U₀ を求める。

U(t) = a(t−10)² + U₀

t=5,15でU=875、t=10でU=1000 より:

875 = a(5)² + 1000
→ a×25 = −125
→ a = −5

よって:

U(t) = −5(t − 10)² + 1000

4. 数学的・物理的解釈

  • 曲率 a = −5 → 1日ずれると25×5=125本減少
  • 頂点 (10, 1000) → 最大売上1000本、10日目に達成

頂点形式の物理的意味:

意味 経済的解釈
a 変化速度 売上の上昇・下降の急さ
t₀ 最盛期の時刻 商品人気のピーク
U₀ 最大売上 市場需要の上限値

5. 経済モデルとしての拡張

売上データにノイズが含まれる場合、
最小二乗法は「平均的な放物線傾向」を抽出する。

例:
販売促進・気候変動・休日効果などの外乱を含む場合でも、
放物線近似で「需要の中心と広がり(a, t₀)」を推定できる。


第3章 三角比:ピカチュウが登る坂(力学モデルと三角比の基礎)

ピカチュウが坂を登るとき、重力・摩擦・傾き角の3つの要素が釣り合う。
この関係は三角比(sinθ, cosθ, tanθ)で定量的に表せる。


1. 三角比の定義(直角三角形の基本)

直角三角形において、角 θ に対して次の比が成り立つ:

sinθ = 対辺 / 斜辺
cosθ = 隣辺 / 斜辺
tanθ = 対辺 / 隣辺

図式的に:

       ↑ 対辺(高さ h)
       |
       |\
       | \
       |  \ ← 斜辺 r
       |   \
       |____\→ 隣辺(底辺 d)
            θ

2. 坂の幾何モデル

坂の傾き角 θ、水平距離 d、高さ h の関係:

tanθ = h / d
sinθ = h / r
cosθ = d / r

ここで
r:坂の長さ(斜面距離)
d:水平距離
h:高さ


3. 力のつり合い(登坂条件)

ピカチュウの質量 m、重力加速度 g とすると、
坂方向に働く力は:

F_下向き = m g sinθ (重力の坂方向成分)
F_摩擦 = μ m g cosθ (摩擦力)

登坂が可能な条件:

F_摩擦 ≥ F_下向き
μ m g cosθ ≥ m g sinθ
→ μ ≥ tanθ

4. 数値例

摩擦係数 μ=0.7 の場合:

tanθ ≤ 0.7 → θ ≤ tan⁻¹(0.7) ≈ 35°

35°以下の坂なら滑らず登れる。


5. 物理的意味の対応

数式 意味 ピカチュウでの例
sinθ h / r 高さ方向の成果 登れた標高の割合
cosθ d / r 距離方向の安定性 踏みしめた距離の割合
tanθ h / d 坂の難易度 坂の急さ、危険度

6. 坂のエネルギー解析

ピカチュウが坂の高さ h を登るとき、
必要な位置エネルギー:

E_p = m g h

坂の長さ r に沿って登る仕事 W:

W = F × r = m g sinθ × r = m g h

→ 角度 θ が変わっても、登る高さ h が同じなら必要エネルギーは同じ。
ただし傾斜が急なほど、**瞬間的に大きな力(トルク)**が必要。


第4章 指数関数:つるぎのまいと火力倍化(倍化の数理と制限効果)

ポケモンの技「つるぎのまい(Swords Dance)」は、攻撃力を**倍化(doubling)させる典型的な指数関数的成長(exponential growth)**を示す。


1. 指数関数の基本形

指数関数は、変化量が現状の大きさに比例する現象を表す:

A(N) = A₀ × r^N

ここで

  • A₀:初期攻撃力
  • r:倍率(つるぎのまいでは r = 2)
  • N:使用回数(段階数)

→ 各回の上昇量は累積し、線形でなく倍々で増加する。


2. つるぎのまいのモデル

つるぎのまいを1回使うごとに攻撃が2倍:

A(N) = A₀ × 2^N
N回数 攻撃力(理論値)
0 55
1 110
2 220
3 440

Nが増えるごとに傾きが加速し、指数関数特有の急上昇カーブを描く。


3. グラフ的特徴

y = 2^N

は N=0 で y=1 から始まり、
1, 2, 4, 8, 16,… と急増する。

  • 線形関数:増加量一定(直線)
  • 指数関数:増加率一定(曲線)

つるぎのまいは「強化するほどさらに強化効果が大きくなる」自己増幅系


4. 実際のポケモンバトルでの制約

ゲーム内では能力値上昇は±6段階までで打ち止め。
1段階あたりの倍率(攻撃)は次式で定義される:

実数値倍率 = (2 + 段階) / 2

したがって:

段階 倍率
0 1.0
+1 1.5
+2 2.0
+3 2.5
+4 3.0
+5 3.5
+6 4.0

つまり理論上の 2^N は、実際はゲーム内上限でクリップされる(4倍)。

第5章と第6章 指数成長:ラプラスの個体数モデル(生態系と指数関数の力学)

ラプラス(Lapras)の個体数は、時間とともに指数関数的に増加する
これは「出生率が個体数に比例する」ような理想環境を想定した無制限成長モデルである。


1. 指数関数モデルの基本形

個体数 ( P(t) ) が時間 t に対して変化する速さが、
その時点の個体数に比例すると仮定する:

dP/dt = kP
  • ( P(t) ):時刻 t の個体数
  • ( k ):成長率(growth constant)
  • ( P₀ ):初期個体数(t=0のとき)

この微分方程式を解くと:

P(t) = P₀ e^{kt}

指数関数的に増加し、時間が進むほど加速度的に個体数が増える。


2. ラプラス生息環境の想定

仮に海洋環境が完全安定(食料豊富・捕食者なし)であるとき、
ラプラスの繁殖速度は単純な指数成長に従う。

パラメータ 意味 ラプラスの例
P₀ 初期個体数 10匹
k 成長率 0.1(=1年で10%増)
t 年数 10年

計算:

P(t) = 10 × e^{0.1×10} = 10 × e^1 = 10 × 2.718 ≈ 27.18

→ 10年後には約2.7倍。
指数関数の「倍々的」特性がここに現れる。


3. 対数グラフでの可視化

指数関数は線形軸では急上昇に見えるが、
対数軸(log P)では直線となる:

ln P(t) = ln P₀ + kt

→ 成長率 k は直線の傾き。
→ 対数グラフは「成長速度の一定性」を確認するのに有効。


4. 実際の自然界での制約

現実の生態系では、資源や環境容量 K により成長は抑制される。
これを表すのがロジスティック(Logistic)モデル

dP/dt = kP(1 − P/K)

解:

P(t) = K / (1 + A e^{−kt})

ここで A = (K − P₀)/P₀。
初期は指数的、後期は飽和的になる。


5. 比較:指数関数 vs ロジスティック関数

モデル 特徴 生態的意味
指数成長 P(t) = P₀ e^{kt} 無制限増加 捕食・制約なし
ロジスティック成長 P(t) = K / (1 + A e^{−kt}) 飽和に近づく 食料・環境制限あり

指数関数は「理想」、
ロジスティック関数は「現実」。


6. ラプラス繁殖モデルの物理的直感

  • 初期段階(t≈0)
    小集団 → 繁殖余地大 → ほぼ指数的増加
  • 中期(t≈5〜10)
    個体密度上昇 → 資源競合 → 成長率低下
  • 後期(t≫10)
    環境容量 K に漸近 → 定常状態(平衡)

第7章 対数関数:グラードンの地震エネルギー

地面を揺るがすグラードンの「じしん(Earthquake)」は、
エネルギーとマグニチュード(M)の間に対数関係をもつ。
小さな差に見えても、エネルギーでは数十倍の違いが生じる。


1. 対数関数の基本形

対数関数は、指数関数の逆関数として定義される:

y = logₐ(x)  ⇔  x = a^y

ここで

  • a:底(base)
  • x:真数(argument)
  • y:指数(exponent)

指数関数が「倍々の増加」を示すのに対し、
対数関数は「何倍になったか」を表す。


2. 地震のマグニチュード定義式

地震の規模(マグニチュード M)は、放出エネルギー E [J] に対して:

M = log₁₀(E) − 4.8

逆に、

E = 10^{M + 4.8}

で求まる。
この式は、地震観測で用いられるGutenberg–Richter関係式に相当する。


3. 倍率の特徴(対数スケールの感覚)

マグニチュードが1上昇すると:

E₂ / E₁ = 10^{(M₂−M₁)} = 10^1 = 10

ただし実際の地震波形の変化を考慮すると、
エネルギー比はおよそ 32倍 とされる。
(音圧や振幅の平方に比例するため)

Mの差 エネルギー比 感覚的な違い
+1 約32倍 爆音級上昇
+2 約1000倍 地殻破壊規模
+3 約32000倍 世界規模の震動

→ 「M=9」は「M=6」の約32³ ≈ 32768倍のエネルギー。


4. グラードンの地震モデル

仮にグラードンの「じしん」をマグニチュード M=8.5 相当とすると:

E = 10^{8.5 + 4.8} = 10^{13.3} ≈ 2.0×10¹³ [J]

これは TNT 火薬約 5,000トン分 に匹敵。
陸地全域に振動を伝えるレベルの破壊力。


5. グラフによる対数の特徴

関数 形状 特徴
指数関数 y = 10^x 急上昇 少しの増加で爆発的変化
対数関数 y = log₁₀x 緩上昇 大きな変化を小さく表す

対数スケールは、広範囲の値を圧縮して表現できる
音量(dB)、明るさ(magnitude)、pHなどにも使われる。


6. エネルギー比較例

現象 マグニチュード エネルギー [J] 備考
人の声 2 10⁶ 通常会話
雷鳴 5 10⁹ 数km先まで届く
グラードンのじしん 8.5 2×10¹³ 地殻破壊級
隕石衝突(例:チコシュルーブ) 13 10¹⁸ 地球規模絶滅級

7. 対数関数の数学的性質

  1. 積の法則

    logₐ(xy) = logₐx + logₐy
    

    → エネルギーが重なれば、マグニチュードは加算される。

  2. 商の法則

    logₐ(x/y) = logₐx − logₐy
    

    → 比率の解析に有効。

  3. 指数の法則

    logₐ(x^n) = n·logₐx
    

    → 指数の影響が線形化できる。


第8章 正弦波:ピカチュウの「10万ボルト」(電圧波形と交流理論)

ピカチュウの技「10万ボルト(Thunderbolt)」は、
電圧が時間とともに周期的に変化する**交流波形(AC waveform)**として表される。
放電の瞬間的なエネルギーではなく、連続振動する電場が伝わる物理現象である。


1. 正弦波の基本式

電圧の時間変化を正弦関数で表す:

V(t) = V₀ sin(ωt + φ)
記号 意味 単位
V(t) 時刻 t における電圧 [V]
V₀ 最大電圧(振幅) [V]
ω 角周波数 = 2πf [rad/s]
f 周波数(1周期あたりの振動回数) [Hz]
φ 初期位相(位相ずれ) [rad]

→ ピカチュウの放電は、生体内コンデンサが周期的に充放電するAC現象として理解できる。


2. 周期・周波数の関係

T = 1 / f
ω = 2π / T
  • 周期 T:1回の波形が繰り返す時間
  • 周波数 f:1秒間の振動回数
  • 角周波数 ω:回転運動での「角速度」に相当

例:
f = 1000 Hz(1kHz の電気信号)なら
ω = 2π × 1000 = 6283 [rad/s]

→ ピカチュウの放電は、数百Hz〜数kHz級の高周波振動と推定される。


3. 電圧と電流の位相差

抵抗・コイル・コンデンサを含む電気回路では、
電圧と電流の間に位相差 φが生じる。

素子 電流と電圧の関係 位相差 φ
抵抗 R 同相(VとIが同じ位相)
コイル L 電圧が先行(V→I) +90°
コンデンサ C 電流が先行(I→V) −90°

→ ピカチュウの体内を流れる放電経路は、**L(筋肉)+C(蓄電器官)の複合回路に近い。
放電時には電圧波が
cos波(位相ずれ)**成分を含む。


4. 実効値(RMS値)

交流波は時間平均が0になるため、
有効な電圧・電力を示すには「実効値(Root Mean Square)」を用いる:

V_rms = V₀ / √2
I_rms = I₀ / √2

→ ピカチュウの「10万ボルト」は振幅値(V₀)であり、
実効電圧はおよそ 7.07×10⁴ V(70.7kV)


5. 瞬時電力と平均電力

抵抗 R に流れる瞬時電力:

P(t) = V(t) × I(t) = V₀I₀ sin²(ωt)

平均電力:

P_avg = (1/2) V₀I₀ = V_rms × I_rms

→ 交流波形では半周期ごとにエネルギーが正負反転するが、
平均として**常に正の電力(発熱・放射)**を持つ。


6. 電圧波のエネルギー伝達

電界 E(t) と電流密度 J(t) の積が瞬時エネルギー流束

P(t) = E(t) × J(t)

ピカチュウの放電では、体内の蓄電器官(C細胞)が
一時的に電荷を貯め、周期的に放出する。
電磁波として空気中を伝わる波のエネルギーは、
Poyntingベクトル S = E × H で表される。


第9章 フーリエ合成:バクオングのばくおんぱ

バクオング(Exploud)の技「ばくおんぱ(Boomburst)」は、
多倍音の正弦波が干渉して生じる高エネルギー音圧波である。
これは**三角関数の合成(Fourier解析)**によって厳密に記述できる。


1. 単一音波の基本式

音波(縦波)の時間変化は正弦関数で表される:

p(t) = A sin(ωt + φ)
記号 意味
p(t) 音圧 [Pa]
A 振幅(音の強さ)
ω = 2πf 角周波数 [rad/s]
f 周波数 [Hz]
φ 初期位相 [rad]

→ 一つの音波は、空気の圧縮と膨張の周期運動。
→ ピカチュウの放電やバクオングの咆哮も、この周期波に近い。


2. 多倍音の重ね合わせ(Fourier合成)

実際の音は単一周波数ではなく、
基本波 f₁ とその整数倍の倍音 fₙ = n·f₁ が重なる:

p(t) = Σ[n=1→N]{ Aₙ sin(2πfₙt + φₙ) }
記号 意味
Aₙ 第 n 倍音の振幅
fₙ n 倍周波数
φₙ 各倍音の位相差

→ 倍音が多いほど音色が豊かになる。
→ 同相干渉でパルス状波形、逆相で柔らかい音質になる。


3. 加法定理と2音源の干渉

2つの音波が同じ周波数で異なる位相 φ をもつ場合:

p(t) = A₁ sin(ωt) + A₂ sin(ωt + φ)

加法定理で変形:

p(t) = (A₁ + A₂ cosφ) sin(ωt) + A₂ sinφ cos(ωt)

したがって合成振幅は:

A_out = √(A₁² + A₂² + 2A₁A₂ cosφ)
  • φ = 0 → 強め合い(同相干渉)
  • φ = π → 打ち消し(逆相干渉)

音波は「ベクトル合成」的に干渉する


4. 三角関数の合成公式(一般化)

任意の a·sinθ + b·cosθ の形は、一つの正弦波に統合できる:

a sinθ + b cosθ = R sin(θ + φ)

ただし:

R = √(a² + b²)
φ = tan⁻¹(b / a)

→ 音圧ベクトルの合成に相当。
→ すべての周期波は、「振幅 R」と「位相 φ」をもつ単一波で表現可能。


5. エネルギー保存(ピタゴラス恒等式)

sin²θ + cos²θ = 1

音圧 p(t) = A sin(ωt)、粒子速度 v(t) = A cos(ωt) とすれば:

p²(t) + v²(t) = A²

→ エネルギーが時間的に保存される。
音波の総エネルギーは振幅に比例


6. 倍音生成(二倍角公式)

非線形共鳴体では波形の歪みにより高調波(倍音)が生成される:

sin(2θ) = 2 sinθ cosθ

例:

p(t) = sin(ωt) cos(ωt) = (1/2) sin(2ωt)

→ 周波数 2ω の倍音が発生。
→ 倍音は「音色(timbre)」を決定する主要因。


7. サブハーモニクス(半角公式)

sin(θ/2) = √((1 − cosθ)/2)

非線形応答により ω/2 の低周波成分(サブハーモニクス)が出現。
バクオングの重低音はこの非線形低周波生成で説明できる。


8. 位相整合(Phase Coherence)とフォルティッシモ

全倍音が同相(φₙ = φ₁)で重なると:

p_total(t) = Σ Aₙ sin(2πn f₁ t + φ₁)

最大音圧:

p_total_max = Σ Aₙ

→ 位相が揃うほど、音圧が線形加算され爆発的ピークを形成。
→ バクオングの「フォルティッシモ」はこの完全同相干渉状態。


9. エネルギー総和と干渉項

E_total = ∫₀ᵀ p_total²(t) dt
         = Σ Aₙ² + 2ΣΣ AₙA_m cos(φₙ − φ_m)
  • cos(φₙ − φ_m) > 0 → 強め合い(明るい音)
  • cos(φₙ − φ_m) < 0 → 打ち消し(暗い音)

→ 位相分布が音質(tone color)を決める。


第10章 AI解析学:微分と積分の役割(勾配・推論・安定化の数理)

AI(人工知能)の**学習(Learning)推論(Inference)の流れは、
解析学の基本操作である
微分(Differentiation)積分(Integration)**に対応している。
これは、ポケモンの世界でトレーナーがバトルを通じて経験を蓄積し、戦略を洗練させていく過程とも同じ構造を持つ。


1. 微分:学習(Learning)=変化率を求める操作

AIの学習過程は、誤差(損失)を最小化するための**勾配降下法(Gradient Descent)**に基づく。

(1) 数式モデル

w ← w − η·∂L/∂w
記号 意味
w パラメータ(重み)
η 学習率(learning rate)
L 損失関数(Loss Function)
∂L/∂w 勾配(gradient)=損失の変化方向

微分は「誤差がどちら向きに増減するか」を示す。

(2) グラフ的解釈

  • L(w):損失曲線(誤差の地形)
  • ∂L/∂w:傾き(gradient)

AIは「坂を下るボール」のように、傾きの逆方向に重みを更新していく。

dL/dw > 0 → wを減らす(左へ)
dL/dw < 0 → wを増やす(右へ)

→ 微分は「瞬間変化(局所的な知見)」を学習に反映する。


2. 積分:推論(Inference)=情報を統合する操作

学習後のニューラルネットワークは、
入力信号を各層で積分的に加重平均して出力する。

(1) 数式的対応

入力信号 x(t) に対して、出力 y(t) は積分的重みづけで与えられる:

y(t) = ∫ w(τ)·x(t−τ) dτ

→ 「畳み込み(convolution)」も本質的には積分演算。

(2) 物理的直感

  • 微分:瞬時の変化を抽出(局所特徴)
  • 積分:全体の傾向を統合(全体構造)

AIではこれが
学習=変化率の取得(∂)
推論=総和の統合(∫)
として現れる。


3. 周波数領域での対応:ハイパスとローパス

フーリエ変換で周波数 ω に変換すると、微分・積分は次の特性を持つ:

操作 周波数領域での変換 フィルタ特性 応用
微分 jωX(jω) ハイパスフィルタ(高周波強調) エッジ検出、誤差感度
積分 X(jω)/(jω) ローパスフィルタ(低周波強調) 平滑化、推論安定化

→ 微分は「変化を強調(敏感)」、
 積分は「変化を平均化(安定)」させる役割を持つ。


4. 極限:学習の収束(Convergence)

学習を繰り返すと、損失 L が最小値に近づく。
これを数学的には極限で表す:

lim_{n→∞} ∂L/∂wₙ = 0

→ 勾配が0になる点が最適解(最小値)
 ここでAIの学習は安定状態に達する。


5. ニューラルネットにおける「微分・積分」の実例

概念 数式 意味
活性化関数の微分 ∂σ/∂x 誤差伝播に利用(backpropagation)
重み更新 w ← w − η∂L/∂w 最急降下方向へ更新
畳み込み層 ∫ w(τ)x(t−τ)dτ 特徴の統合(空間的積分)
プーリング層 平均値・最大値 局所積分(情報圧縮)

第11章 オイラーの公式:ガブリアスの戦闘モデル

ガブリアス(Garchomp)の戦闘能力は、攻撃力と素早さの複合バランスによって決まる。
この「力と速さの同時性」は、オイラーの公式(Euler’s Formula)で表される複素平面上の回転ベクトルとして解析できる。


1. オイラーの公式の基本形

オイラーの公式は、指数関数・三角関数・複素数を統一する:

e^{jθ} = cosθ + j sinθ

ここで

  • ( e ):自然対数の底(≈ 2.718)
  • ( j ):虚数単位(j² = −1)
  • ( θ ):回転角(ラジアン)

この式は「回転運動(cos, sin)」を指数関数の形で表すもの。
波動・振動・周期現象の数理的根幹をなす。


2. ガブリアスの複素戦闘ベクトル

攻撃力(A)と素早さ(S)を、複素数の実部と虚部に対応させる:

Z = A + jS

ガブリアスの種族値:

  • 攻撃力 A = 130
  • 素早さ S = 102

したがって:

Z = 130 + j102

これを**極形式(polar form)**に変換すると:

R = √(A² + S²) = √(130² + 102²) ≈ 165.9
θ = tan⁻¹(S / A) = tan⁻¹(102 / 130) ≈ 0.67 rad (≈ 38.3°)

よって:

Z = 165.9 e^{j0.67} = 165.9 (cos0.67 + j sin0.67)

3. 幾何的解釈:複素平面上のガブリアス

Re軸(横軸)=攻撃力A
Im軸(縦軸)=素早さS
  • 点 (130, 102) が示すベクトル Z は、
    原点(基礎能力)からの回転ベクトルとして表現される。
  • 長さ R は総合戦闘力(Power Magnitude)
  • 角度 θ は攻撃と速度の調和リズム(Phase Balance)

第12章 テイラー展開と物理応用

テイラー展開(Taylor Expansion)は、
任意の関数を微分の無限級数として近似する解析学の基礎手法である。
ポケモンの動作・エネルギー変化・AIモデルの非線形性の解析にも応用できる。


1. テイラー展開の基本形

関数 ( f(x) ) が点 ( x = a ) で十分に滑らか(微分可能)なら:

f(x) = f(a)
     + f′(a)(x − a)
     + (f″(a)/2!)(x − a)²
     + (f‴(a)/3!)(x − a)³
     + … 

一般形:

f(x) = Σ[n=0→∞] { f⁽ⁿ⁾(a)/n! } (x − a)ⁿ
  • ( f⁽ⁿ⁾(a) ):n階微分
  • ( n! ):階乗(n×(n−1)×…×1)
  • ( (x−a) ):展開点からの距離

非線形関数を局所的に線形+二次+三次近似で表せる。


2. 一次近似(線形化)

高次項を無視すれば:

f(x) ≈ f(a) + f′(a)(x − a)

これは接線の方程式を意味し、
微分=局所線形モデルである。

例(電圧変化):

V(t) ≈ V₀ + (dV/dt)·Δt

→ ピカチュウの放電電圧を短時間で線形予測できる。


3. 代表的関数のテイラー展開

関数 展開式(x≒0) 備考
1 + x + x²/2! + x³/3! + … すべての微分が同じ
sinx x − x³/3! + x⁵/5! − … 奇関数(対称)
cosx 1 − x²/2! + x⁴/4! − … 偶関数
ln(1+x) x − x²/2 + x³/3 − … x>−1で収束
(1+x)^α 1 + αx + α(α−1)x²/2! + … 二項展開の一般化

指数・三角・対数関数はすべて微分形から展開可能。


4. 物理応用①:単振動(sin, cosの近似)

小角近似(small-angle approximation):

sinθ ≈ θ
cosθ ≈ 1 − θ²/2

振り子運動や波動方程式で、角度が小さいと単純調和振動(SHM)に近似できる。
例:ピカチュウの尻尾の振動角 θ が小さいとき、
  運動方程式は単純な線形モデルになる。


5. 物理応用②:エネルギー最小化(ポテンシャル展開)

ポテンシャルエネルギー ( U(x) ) を平衡点 ( x₀ ) のまわりで展開:

U(x) ≈ U(x₀) + (1/2)U″(x₀)(x − x₀)²

→ 1次項は0(平衡点の条件)。
→ 2次項がばね定数 k = U″(x₀) に対応。

したがって:

U(x) ≈ (1/2)k(x − x₀)²

フックの法則(Hooke’s law)
 F = −dU/dx = −k(x − x₀)

→ 弾性体・バネ・振動系の基礎式がテイラー展開から導ける。


6. 物理応用③:指数関数の近似(放電・冷却)

ピカチュウの放電電圧減衰:

V(t) = V₀ e^{−t/RC}

t が小さいとき:

e^{−t/RC} ≈ 1 − (t/RC)

→ 初期放電は直線的減少に近似できる。
 (RC回路の初期応答、AIの誤差減衰などにも同形)




import numpy as np
import matplotlib.pyplot as plt

# =========================
# 1. Linear Function: Pikachu Attack vs Speed
# =========================
S = np.linspace(50, 130, 100)
A = 0.6 * S + 2
plt.figure()
plt.plot(S, A, label='A = 0.6S + 2')
plt.title('Linear Function: Pikachu Attack vs Speed')
plt.xlabel('Speed S')
plt.ylabel('Attack A')
plt.legend()
plt.grid(True)

# =========================
# 2. Quadratic Function: Moomoo Milk Sales
# =========================
t = np.linspace(0, 20, 100)
U = -5 * (t - 10)**2 + 1000
plt.figure()
plt.plot(t, U, color='orange')
plt.title('Quadratic Function: Moomoo Milk Sales')
plt.xlabel('Day t')
plt.ylabel('Sales U')
plt.grid(True)

# =========================
# 3. Trigonometric Function: Incline Angle
# =========================
theta = np.linspace(0, np.pi/2, 100)
plt.figure()
plt.plot(theta*180/np.pi, np.sin(theta), label='sinθ')
plt.plot(theta*180/np.pi, np.cos(theta), label='cosθ')
plt.plot(theta*180/np.pi, np.tan(theta), label='tanθ')
plt.title('Trigonometric Ratios: sinθ, cosθ, tanθ')
plt.xlabel('Angle θ [deg]')
plt.ylabel('Ratio')
plt.ylim(0, 5)
plt.legend()
plt.grid(True)

# =========================
# 4. Exponential Growth: Swords Dance
# =========================
N = np.arange(0, 7)
A_exp = 55 * (2**N)
plt.figure()
plt.plot(N, A_exp, 'ro-')
plt.title('Exponential Growth: Swords Dance Power Up')
plt.xlabel('Usage Count N')
plt.ylabel('Attack A')
plt.grid(True)

# =========================
# 5. Logistic Growth: Lapras Population
# =========================
t = np.linspace(0, 20, 200)
P0, K, k = 10, 100, 0.3
P = K / (1 + ((K - P0) / P0) * np.exp(-k * t))
plt.figure()
plt.plot(t, P, color='green')
plt.title('Logistic Growth: Lapras Population')
plt.xlabel('Time t')
plt.ylabel('Population P')
plt.grid(True)

# =========================
# 6. Logarithmic Relation: Groudon Earthquake Energy
# =========================
M = np.linspace(2, 9, 100)
E = 10**(M + 4.8)
plt.figure()
plt.semilogy(M, E)
plt.title('Logarithmic Function: Earthquake Energy vs Magnitude')
plt.xlabel('Magnitude M')
plt.ylabel('Energy E [J]')
plt.grid(True, which='both')

# =========================
# 7. Sine Wave: Thunderbolt Voltage
# =========================
t = np.linspace(0, 0.01, 1000)
f, V0 = 1000, 100000
V = V0 * np.sin(2*np.pi*f*t)
plt.figure()
plt.plot(t*1000, V)
plt.title('Sine Wave: Thunderbolt Voltage')
plt.xlabel('Time [ms]')
plt.ylabel('Voltage [V]')
plt.grid(True)

# =========================
# 8. Fourier Composition: Boomburst
# =========================
t = np.linspace(0, 0.02, 1000)
f1 = 200
signal = np.sin(2*np.pi*f1*t) + 0.5*np.sin(2*np.pi*2*f1*t) + 0.25*np.sin(2*np.pi*3*f1*t)
plt.figure()
plt.plot(t*1000, signal)
plt.title('Fourier Series: Boomburst Sound Wave')
plt.xlabel('Time [ms]')
plt.ylabel('Amplitude')
plt.grid(True)

# =========================
# 9. Euler’s Formula: Garchomp Battle Vector
# =========================
theta = np.linspace(0, 2*np.pi, 100)
x = np.cos(theta)
y = np.sin(theta)
plt.figure()
plt.plot(x, y)
plt.title('Euler Formula: e^{jθ} = cosθ + j sinθ')
plt.xlabel('Re (Attack)')
plt.ylabel('Im (Speed)')
plt.axis('equal')
plt.grid(True)

# =========================
# 10. Taylor Expansion: Small-Angle Approximation
# =========================
x = np.linspace(-1.5, 1.5, 100)
sin_true = np.sin(x)
sin_approx = x - (x**3)/6
plt.figure()
plt.plot(x, sin_true, label='sin(x)')
plt.plot(x, sin_approx, '--', label='x - x³/3!')
plt.title('Taylor Expansion: sinx ≈ x - x³/3!')
plt.xlabel('x')
plt.ylabel('Value')
plt.legend()
plt.grid(True)

plt.show()


import numpy as np
import matplotlib.pyplot as plt

# ==========================================
# 第10章 AI解析学:微分と積分(勾配降下と畳み込み)
# ==========================================

# 1. 損失関数と勾配降下のイメージ
w = np.linspace(-5, 5, 200)
L = (w - 2)**2 + 1  # 目標w=2で最小
grad = 2*(w - 2)

plt.figure()
plt.plot(w, L, label='Loss L(w)')
plt.quiver(0, 5, 2, -2, angles='xy', scale_units='xy', scale=1, color='red')
plt.title('Gradient Descent Concept: dL/dw')
plt.xlabel('Weight w')
plt.ylabel('Loss L')
plt.grid(True)
plt.legend()

# 2. 畳み込み(積分的推論)例
t = np.linspace(0, 2, 500)
x = np.sin(2*np.pi*2*t) * np.exp(-t)
kernel = np.exp(-5*t)
conv = np.convolve(x, kernel, mode='same') / np.sum(kernel)
plt.figure()
plt.plot(t, x, label='Input signal x(t)')
plt.plot(t, conv, label='Integrated output y(t)')
plt.title('Integration (Convolution): Inference Process')
plt.xlabel('Time t [s]')
plt.ylabel('Amplitude')
plt.legend()
plt.grid(True)

# 3. 周波数領域(微分⇔ハイパス、積分⇔ローパス)
f = np.linspace(0, 10, 1000)
X = np.ones_like(f)
Diff = f * X  # High-pass
Intg = X / (1 + f)  # Low-pass (stabilized)
plt.figure()
plt.plot(f, Diff, label='Differentiation (High-pass)')
plt.plot(f, Intg, label='Integration (Low-pass)')
plt.title('Frequency Domain View')
plt.xlabel('Frequency ω')
plt.ylabel('Gain')
plt.legend()
plt.grid(True)

# ==========================================
# 第11章 オイラーの公式:ガブリアスの戦闘ベクトル
# ==========================================

A = 130
S = 102
theta = np.arctan(S/A)
R = np.sqrt(A**2 + S**2)
x = np.array([0, A])
y = np.array([0, S])

plt.figure()
plt.plot(x, y, 'r-', linewidth=2, label=f'Z = {A}+j{S}')
circle_theta = np.linspace(0, 2*np.pi, 300)
plt.plot(R*np.cos(circle_theta), R*np.sin(circle_theta), 'k--', alpha=0.3)
plt.text(A/2, S/2, f"θ={np.degrees(theta):.1f}°", fontsize=10)
plt.title("Euler's Formula: Garchomp Complex Power Vector")
plt.xlabel('Attack (Re)')
plt.ylabel('Speed (Im)')
plt.axis('equal')
plt.legend()
plt.grid(True)

# ==========================================
# 第12章 テイラー展開:近似と物理応用
# ==========================================

x = np.linspace(-1.5, 1.5, 200)
sin_true = np.sin(x)
sin_approx = x - (x**3)/6 + (x**5)/120  # 5次まで
plt.figure()
plt.plot(x, sin_true, label='sin(x)')
plt.plot(x, sin_approx, '--', label='Taylor Approximation (5th order)')
plt.title('Taylor Expansion of sin(x)')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend()
plt.grid(True)

# Hookeの法則型ポテンシャル近似
x = np.linspace(-2, 2, 200)
U = 0.5 * 3 * (x - 0)**2
plt.figure()
plt.plot(x, U, label='U(x) = (1/2)kx², k=3')
plt.title('Potential Energy Approximation (Hooke’s Law)')
plt.xlabel('Displacement x')
plt.ylabel('Potential U')
plt.legend()
plt.grid(True)

# 指数関数の近似(放電モデル)
t = np.linspace(0, 2, 200)
V_exact = np.exp(-t)
V_linear = 1 - t
plt.figure()
plt.plot(t, V_exact, label='V(t) = e^{-t}')
plt.plot(t, V_linear, '--', label='Linear Approx: 1 - t')
plt.title('Exponential Decay Approximation')
plt.xlabel('Time t')
plt.ylabel('Voltage V')
plt.legend()
plt.grid(True)

plt.show()
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?