HelioCoreNode类是一个用于模拟非线性动力学系统(如临界失稳边界附近的演化)的核心组件。其实现基于一组耦合的常微分方程,并通过欧拉法进行数值积分。
核心实现解析
1. 类定义与初始化
class HelioCoreNode: def __init__(self, rho: float, alpha: float, rho_c: float, alpha_c: float, eta: float): # G层本体状态 self.rho = rho self.alpha = alpha # 临界失稳边界 self.rho_c = rho_c self.alpha_c = alpha_c # B层归藏阻尼(裂隙吞吐阻力) self.eta = eta- 状态变量:
rho(实存深度)和alpha(张力强度)是系统的两个核心状态。 - 临界参数:
rho_c和alpha_c定义了系统的临界点或失稳边界。 - 阻尼系数:
eta控制系统的耗散或回归速率。
2. 动力学方程与数值积分 (step方法)
def step(self, dt: float): """LD-002 非线性动力学步进(欧拉数值积分) dρ/dt = -η*(ρ - ρ_c) - alpha*ρ 本体回归临界区间 + 张力消耗实存 dα/dt = (rho_c - rho) - eta*alpha 本体偏差生成张力 + 归藏阻尼缓释张力 """ drho_dt = -self.eta * (self.rho - self.rho_c) - self.alpha * self.rho dalpha_dt = (self.rho_c - self.rho) - self.eta * self.alpha self.rho += drho_dt * dt self.alpha += dalpha_dt * dtdrho_dt:由两项组成。-eta*(rho - rho_c)表示系统向临界点rho_c的线性回归趋势;-alpha*rho表示张力alpha对实存深度rho的非线性消耗。dalpha_dt:同样由两项组成。(rho_c - rho)表示当rho偏离临界点时会产生张力;-eta*alpha表示张力的线性耗散。- 积分方法:采用显式欧拉法,使用当前时间步的状态计算导数,并乘以时间步长
dt来更新状态。
3. 扰动与观测方法
def perturb(self, delta_rho: float, delta_alpha: float): """瞬时外部扰动,放大G-S裂隙""" self.rho += delta_rho self.alpha += delta_alpha def observe(self, t: float) -> Dict: """快照观测,输出三层核心指标""" # S层衍生指标:符号演化率γ gamma = np.abs(self.alpha / (self.rho + 1e-8)) # B层归藏指标:距临界边界拓扑距离 dist_critical = np.abs(self.rho - self.rho_c) + np.abs(self.alpha - self.alpha_c) return { "t": t, "rho": self.rho, "alpha": self.alpha, "gamma": gamma, "dist_to_critical": dist_critical }perturb:对状态变量rho和alpha施加瞬时、加性的扰动。observe:返回包含原始状态和衍生指标的快照。gamma:定义为|alpha / rho|,可解释为张力与实存的比率,其临界值通常为1。dist_to_critical:使用曼哈顿距离度量当前状态与临界点的距离。
典型使用模式HelioCoreNode通常被封装在Experiment类中进行系统性模拟和可视化。标准工作流程如下:
# 1. 配置并创建实验 exp = Experiment( name="稳定性测试", rho_0=0.9, # 初始实存深度 alpha_0=0.48, # 初始张力强度 delta_rho=0.05, # 对rho的初始扰动 delta_alpha=0.02, # 对alpha的初始扰动 T=50.0, # 模拟总时长 dt=0.02, # 积分步长 rho_c=1.0, # 临界实存深度 alpha_c=0.5, # 临界张力强度 eta=0.3 # 阻尼系数 ) # 2. 运行模拟 times, history = exp.run() # `history` 是包含每个时间步 `observe()` 输出字典的列表 # 3. 可视化结果 fig = exp.plot(times, history) plt.show()关键参数影响分析
| 参数 | 物理/数学意义 | 对系统行为的主要影响 |
|---|---|---|
eta | 阻尼/耗散系数 | 值越大,系统回归平衡或耗散扰动的速度越快,可能抑制振荡。 |
rho_c | rho的临界值 | 定义了rho的“吸引子”或平衡点。系统会倾向于向此值演化。 |
alpha_c | alpha的临界值 | 主要用于计算观测指标dist_to_critical,在给定动力学方程中不直接参与导数计算。 |
dt | 数值积分步长 | 影响模拟的精度和稳定性。步长过大可能导致欧拉法发散。 |
delta_rho,delta_alpha | 初始扰动大小 | 决定系统偏离初始平衡的程度。扰动过大可能使系统跨越临界点进入不同动力学区域。 |
应用场景与扩展
- 稳定性分析:通过设置不同的初始条件
(rho_0, alpha_0)和扰动,观察系统是回归原状态、收敛到新平衡点还是失稳发散。 - 参数扫描研究:系统性地改变
eta、rho_c等参数,研究它们对系统稳定边界和演化轨迹的影响。 - 模型扩展:
- 更复杂的动力学:可在
step方法中修改微分方程,例如引入非线性项、随机噪声或时变参数。 - 高级积分器:将欧拉法替换为龙格-库塔法等精度更高的数值积分方法。
- 网络耦合:创建多个
HelioCoreNode实例,并通过耦合项连接它们的step方法,以模拟相互作用的节点网络。
- 更复杂的动力学:可在