You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何遍历Energy参数生成多次积分计算的结果数组

实现方案

不需要把for循环写入积分函数改动原有计算逻辑,核心修改是把硬编码在函数内部的E提取为函数入参,在外层遍历能量序列收集结果即可,原积分计算规则可以完全保留:

  • 调整函数定义,将E设为输入参数,替换函数内硬编码的E=2.1,同步把积分公式里硬编码的1./2.1替换为1./E,这一步只是参数化,没有改动计算逻辑
  • 角度采样数组vtheta是固定值,放在循环外预计算一次即可,避免重复生成浪费性能
  • 在外层遍历Energy数组,逐个传入E值调用积分函数,将所有返回值整理为结果数组

完整可运行代码如下:

import numpy as np
from math import pi, sqrt

vtheta = np.linspace(0.0, pi, 1000)
Energy = np.arange(2.1, 102.1, 0.1)

def f(theta, E):
    # 积分计算逻辑与原代码完全一致,仅替换硬编码的E值
    val = 2.0 / np.sqrt(E - 1 + np.cos(theta))
    result = (val.sum() - (sqrt(1./E) + sqrt(1./298.))) * (pi / 999.)
    return result

# 遍历所有能量点收集结果
res_all = np.array([f(vtheta, e) for e in Energy])

验证一致性可以直接对比res_all[0]和之前硬编码E=2.1得到的res1,二者计算结果完全相同。最终res_all的长度与Energy数组一致,索引i对应的结果就是能量取Energy[i]时的积分值。

内容的提问来源于stack exchange,提问作者code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 20:45:36