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

Python中是否存在支持n=1/3的广义指数积分E₁/₃函数?

计算广义指数积分E₁/₃(x)的Python方案

方案1:使用mpmath的expint函数

mpmath库直接支持非整数阶的指数积分计算,它专为任意精度数值计算设计,能无缝处理n为分数的情况。

示例代码:

import mpmath as mp

# 可选:设置计算精度(默认15位小数)
mp.mp.dps = 20

def e_13(x):
    return mp.expint(1/3, x)

# 使用示例
x = 2.0
print(f"E₁/₃({x}) = {e_13(x)}")

方案2:利用Scipy的gammaincc结合积分恒等式

非整数阶的Eₙ(x)可以通过上不完全伽马函数推导得到,恒等式为:

Eₙ(x) = x^(n-1) × Γ(1 - n, x)

其中Γ(a, x)是上不完全伽马函数,Scipy的scipy.special.gammaincc函数可以直接计算它,且支持非整数的a值。

示例代码:

import numpy as np
from scipy.special import gammaincc

def e_13_scipy(x):
    n = 1/3
    return np.power(x, n - 1) * gammaincc(1 - n, x)

# 使用示例
x = 2.0
print(f"E₁/₃({x}) = {e_13_scipy(x)}")

注意事项:

  • 针对不同的x取值(尤其是极小或极大值),建议对比两种方法的结果以确保数值稳定性。
  • 如果不需要任意精度,Scipy方案的计算速度通常快于mpmath,因为它使用了优化的浮点运算逻辑。
  • 若用于数据拟合,可将这些函数包装成Scipy拟合工具(如scipy.optimize.curve_fit)兼容的形式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 17:43:12