⚠ ネタバレ注意: 本サイトはSFアニメ「SOLAR LINE」の内容を詳細に分析しています。未視聴の方はご注意ください。
📝 AI生成コンテンツ: 本考証の大部分は AI(Claude Code 等)によって生成されています。内容の正確性については原作および引用元をご確認ください。

Task 63: Adaptive Timestep Integration Methods

完了 ← タスク一覧

Task 063: Adaptive Timestep Integration Methods

Status: DONE

Motivation

Human directive: 推進器や重力アシストの影響を加味すると、dt 固定の手法は不利なはず。TDD で複数手法試してほしい。

Progress

Phase 1 — RK45 Dormand-Prince ✅

- AdaptiveConfig: rtol/atol/h_min/h_max/max_steps, factory methods (heliocentric/planetocentric)

- AdaptiveResult: states + n_eval/n_accept/n_reject statistics

- dopri45_step(): Full 7-stage Dormand-Prince 5(4) with FSAL property

- propagate_adaptive(): Full trajectory with PI controller step size

- propagate_adaptive_final(): Memory-efficient final-state-only variant

- estimate_initial_step(): Hairer-Nørsett-Wanner automatic step size estimation

- scaled_error_norm(): Standard 6-component RMS error with rtol/atol scaling

- PI controller: safety=0.9, fac_min=0.2, fac_max=5.0, exponents -0.20/+0.08

- Event detection: Known thrust discontinuities (flip_time) force step boundary

Phase 2 — Störmer-Verlet Symplectic Integrator ✅

- gravity_accel(): Separated gravitational acceleration function

- SymplecticResult: trajectory + step count

- propagate_symplectic(): Full trajectory Störmer-Verlet leapfrog

- propagate_symplectic_final(): Memory-efficient final-state-only variant

- Leapfrog scheme: v_{1/2} = v + dt/2·a(r), r' = r + dt·v_{1/2}, v' = v_{1/2} + dt/2·a(r')

- Time-reversible and symplectic: preserves phase-space volume exactly

- Energy conservation: LEO 1-period (<1e-10)

- No secular drift: 1000 orbits bounded (<1e-8)

- Orbit return: circular LEO (<1e-5 relative)

- High eccentricity: e=0.9 with dt=0.1s (<1e-6)

- Symplectic vs RK4 comparison: 100 orbits e=0.5

- EP02 ballistic 455d: energy drift <1e-9, reaches Saturn

- Final-only matches full trajectory

Phase 3 — Patched-Conic Gravity Assist ✅

- soi_radius(): Hill sphere radius (planet_orbit_radius × (m_planet/m_sun)^(2/5))

- unpowered_flyby(): Hyperbolic turn angle, periapsis speed, exit v_inf vector

- powered_flyby(): Same + prograde burn at periapsis (Oberth effect)

- heliocentric_exit_velocity(): Frame transformation from planetocentric to heliocentric

- rodrigues_rotate(): Rodrigues' rotation formula for 3D vector rotation

- SOI radius: Jupiter (48.2 Mkm ±2), Earth (0.929 Mkm ±0.05)

- Unpowered flyby: v_inf conserved, turn angle increases with closer periapsis

- Powered flyby: Oberth amplification (v_inf gain > burn_dv)

- EP05 Jupiter scenario: at 1500 km/s, turn angle < 0.01 rad (consistent with analysis)

- Rodrigues rotation: 90° Z-axis test

- Heliocentric exit velocity composition

Key Findings

  1. Adaptive RK45: Step size adaptation provides >10x efficiency gain for eccentric orbits
  2. Symplectic: No secular energy drift — bounded oscillation over 1000+ orbits
  3. Flyby: At 1500 km/s (EP05), Jupiter gravity barely bends the trajectory (<0.01 rad turn). This confirms that the "3% efficiency" ケイ mentions is primarily from the Oberth effect at periapsis, not from gravitational deflection.
  4. Integrator hierarchy: Symplectic for long ballistic → RK45 for thrusted → RK4 for short fixed-step

Test Counts