Cislunar Space Beginner's GuideCislunar Space Beginner's Guide
Satellite Orbit Simulation
Cislunar Glossary
Resources & Tools
Blue Team Research
Space News
AI Q&A
Forum
Home
  • 简体中文
  • English
Gitee
Satellite Orbit Simulation
Cislunar Glossary
Resources & Tools
Blue Team Research
Space News
AI Q&A
Forum
Home
  • 简体中文
  • English
Gitee
  • Resources & Tools

    • Introduction
    • Cislunar Space Research Datasets

scipy

scipy is a Python scientific computing library that provides a wide range of numerical algorithms and tools, widely used in cislunar orbit design and analysis.

Main Modules

ModuleFunctionCislunar Application
scipy.integrateNumerical integration, ODE solversOrbit integration, dynamics propagation
scipy.optimizeOptimization algorithms, nonlinear equation solversOrbit design, parameter optimization
scipy.linalgLinear algebra operationsMatrix computation, eigenvalue analysis
scipy.interpolateInterpolation functionsData interpolation, smoothing
scipy.specialSpecial mathematical functionsSpherical harmonics, elliptic integrals

Installation

pip install scipy

Example Applications

Orbit Integration

import numpy as np
from scipy.integrate import solve_ivp

def orbital_dynamics(t, state, mu):
    """CR3BP dynamics equations"""
    x, y, z, vx, vy, vz = state
    
    r1 = np.sqrt((x + mu)**2 + y**2 + z**2)**3
    r2 = np.sqrt((x - 1 + mu)**2 + y**2 + z**2)**3
    
    ax = 2*vy + x - (1 - mu)*(x + mu)/r1 - mu*(x - 1 + mu)/r2
    ay = -2*vx + y - (1 - mu)*y/r1 - mu*y/r2
    az = -(1 - mu)*z/r1 - mu*z/r2
    
    return [vx, vy, vz, ax, ay, az]

# Initial state
state0 = [0.8, 0, 0, 0, 0.5, 0]
mu = 0.01215

# Integration
t_span = [0, 10]
sol = solve_ivp(orbital_dynamics, t_span, state0, args=(mu,))

print(f"Integration complete, {len(sol.t)} time points")

Parameter Optimization

from scipy.optimize import minimize, differential_evolution

def objective(params):
    """Objective function: minimize orbit deviation"""
    x, y = params
    return (x - 1)**2 + (y - 2)**2

# Local optimization
result = minimize(objective, [0, 0], method='BFGS')
print(f"Local optimum: {result.x}")

# Global optimization (differential evolution)
result = differential_evolution(objective, bounds=[(-5, 5), (-5, 5)])
print(f"Global optimum: {result.x}")

Resources

  • scipy Documentation
  • scipy Tutorials
Improve this page
Last Updated: 3/31/26, 7:46 PM
Contributors: ouyangjiahong
友情链接
地月空间入门指南   |