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

如何在SymPy中将Si(x)、Ei(x)等特殊函数替换为其定义表达式?

解决SymPy输出特殊函数定义式而非简写的问题
  • 利用SymPy内置的特殊函数属性和rewrite方法,无需手动逐个替换即可将简写形式转换为对应的定义式。

具体实现代码

示例1:将Si(x)转换为积分定义式

import sympy as sym
x = sym.symbols('x')

# 计算sin(x)/x的不定积分
integral_result = sym.integrate(sym.sin(x)/x, x)
print("原输出:", integral_result)  # 输出 Si(x)

# 转换为积分定义式
expanded_result = integral_result.rewrite(sym.Integral)
print("展开后输出:", expanded_result)  # 输出 Integral(sin(t)/t, (t, 0, x))

示例2:将Ei(x)转换为积分定义式

# 直接处理Ei(x)表达式
ei_expr = sym.Ei(x)
print("原Ei(x)输出:", ei_expr)  # 输出 Ei(x)
print("展开后Ei(x)输出:", ei_expr.rewrite(sym.Integral))  # 输出 Integral(exp(t)/t, (t, -oo, x))

原理说明

SymPy中的特殊函数(如Si、Ei等)都内置了自身的定义逻辑,调用rewrite(Integral)方法会自动将函数转换为其标准的积分定义形式,这种方式适用于所有SymPy支持的特殊函数,无需针对每个函数单独编写替换规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:15:01