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

如何在SymPy中插入求值竖线?实现分部积分u*v在A、B间求值显示

在SymPy中添加分部积分的“求值竖线”

如果你需要在SymPy里表示分部积分中$u \cdot v$在上下限之间的求值竖线,有几种实用的方法,我来给你拆解一下:

方法1:使用Subs类(推荐,适合符号化表示)

SymPy内置的Subs类专门用来表示未求值的变量代入,当你把它转换为LaTeX时,会自动生成带竖线的标准数学格式,完美匹配分部积分的需求。

举个例子,假设你要表示$x e^x$在$x=a$到$x=b$的求值:

from sympy import symbols, exp, Subs, latex

x, a, b = symbols('x a b')
u = x
v = exp(x)

# 构造uv的求值表达式
uv_evaluation = Subs(u * v, x, a, b)

# 打印SymPy表达式
print(uv_evaluation)
# 输出:Subs(x*exp(x), x, a, b)

# 转换为LaTeX(用于渲染成美观的数学格式)
print(latex(uv_evaluation))
# 输出:\left. x e^{x} \right|_{a}^{b}

这个LaTeX代码渲染后就是我们熟悉的$ \left. x e^{x} \right|_{a}^{b} $,完全符合数学书写规范。

方法2:手动构造求值格式(适合已计算出结果的场景)

如果你已经算出了$u \cdot v$在上下限的具体值,想要直接写出带竖线的表达式,可以结合SymPy的latex()函数手动拼接格式:

from sympy import symbols, exp, latex

x = symbols('x')
uv = x * exp(x)

# 计算上下限的值
upper_val = uv.subs(x, 1)
lower_val = uv.subs(x, 0)
eval_result = upper_val - lower_val

# 拼接带竖线的LaTeX表达式
print(f"{latex(uv)} \\bigg|_{{0}}^{{1}} = {latex(eval_result)}")
# 输出:x e^{x} \bigg|_{0}^{1} = 1

渲染后就是$ x e^{x} \bigg|_{0}^{1} = 1 $,清晰展示了求值过程。

方法3:结合分部积分的完整流程

如果你正在完整计算分部积分,可以把Subs和积分结合起来,还原数学上的分步过程:

from sympy import symbols, exp, Subs, Integral, latex

x, a, b = symbols('x a b')
u = x
dv = exp(x) * x.diff(x)  # 等价于exp(x)dx
v = exp(x)
du = u.diff(x)

# 分部积分的完整表达式
integration_by_parts = Subs(u*v, x, a, b) - Integral(v*du, (x, a, b))

print(latex(integration_by_parts))
# 输出:\left. x e^{x} \right|_{a}^{b} - \int_{a}^{b} e^{x}\, dx

这个结果完全对应分部积分公式$\int_a^b u , dv = \left. uv \right|_a^b - \int_a^b v , du$。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:34:06