【混动动力学引论】暗线方程图像的绘制

求解超稳定周期轨道的mu值表达式的步骤

  1. 声明迭代方程 f ( μ , x ) = 1 − μ x 2 f(\mu,x)=1-\mu x^2 f(μ,x)=1μx2
  2. f ( μ , x ) f(\mu, x) f(μ,x)复合 p p p次( p p p为周期),得 f ( p ) ( μ , x ) f^{(p)}(\mu, x) f(p)(μ,x)
  3. 求解 ∂ f ( p ) ( μ , x ) ∂ x = 0 \frac{\partial f^{(p)}(\mu,x)}{\partial x} = 0 xf(p)(μ,x)=0方程的根,得出临界点 O O O(多个)
  4. 将临界点逐一代入 f ( p ) ( μ , x ) f^{(p)}(\mu, x) f(p)(μ,x),求关于 μ \mu μ的方程

绘制暗线方程代码

import sympy as sp
import numpy as np
import matplotlib.pyplot as plt

# 声明变量
x = sp.symbols('x')
mu = sp.symbols('mu')
# 迭代方程
fx = 1 - mu * x**2

# 求给定超稳定周期轨道的mu值表达式
def transStableTrackMu(fx, x, period):
    # 复合n次
    compositeFx = fx
    for i in range(1, period):
        compositeFx = compositeFx.replace(x, fx)
    # 一阶偏导数
    dif = compositeFx.diff(x)
    # 求解临界点方程
    boundaryPoints = sp.solve(dif, x)
    return [compositeFx.replace(x, fp) for fp in boundaryPoints]

# 超稳定轨道表达式列表
muExprList = transStableTrackMu(fx, x, 6) # 这里是画周期1~6的,如果画更多周期的,则需要把6改成指定周期数
# 超稳定轨道函数
muFuncList = [sp.lambdify(mu, muExpr) for muExpr in muExprList]

# 画出暗线方程图像
for muFunc in muFuncList:
    muVar = np.linspace(0,2, 100)
    yVar = [muFunc(mu) for mu in muVar]
    plt.plot(muVar, yVar)

plt.show(!)

运行所得图像:
在这里插入图片描述

  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值