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

如何针对不同e、m常数取值运行同一定积分并将结果存入列表

你需要调整被积函数的参数结构,遍历e和m的对应取值逐个计算积分即可,具体实现如下:

完整可运行代码

import numpy as np
from scipy import integrate, special

# 请根据你的实际场景修改以下物理常量取值
alpha_elm = 1/137  # 精细结构常数示例值
Nc = 3  # 色荷数示例值
Q2 = 10  # Q平方示例值

def f(z, r, e, m):
    return (e**2) * (alpha_elm * Nc / 2 * np.pi**2) * 4 * Q2 * (z**2) * ((1-z)**2) * (special.k0(r * (z * (1-z) * Q2 + m**2)) **2)

m_list = [0.14, 0.14, 0.14, 1.30, 4.50]
e_list = [2/3, -1/3, -1/3, 2/3, -1/3]

result_list = []
for m_val, e_val in zip(m_list, e_list):
    # 传入当前组e、m参数,执行积分
    integral_res, error = integrate.nquad(f, [[0, 1], [0, np.inf]], args=(e_val, m_val))
    result_list.append(integral_res)

# 输出所有积分结果
print(result_list)

关键修改说明

  • 原被积函数没有将e、m作为入参,调整后通过nquad的args参数传入每次计算的对应取值,避免全局变量冲突
  • 用zip配对两个列表相同位置的m和e,保证参数对应关系正确
  • 积分返回值第一个为积分计算结果,第二个为误差估计值,可按需决定是否保存误差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:24:02