python - 是否可以强制 SymPy 计算积分,或者告诉我为什么它无法计算积分?

标签 python sympy symbolic-math

我正在尝试计算分段函数的积分,特别是拉普拉斯变换。

w_k = k*t, 0 <= t <= 1/k
      1,   otherwise

所以我尝试将其集成如下:

from sympy import *
t, k = symbols('t k', positive=True)
w_k = Piecewise((k*t, (0 <= t)&(t <= 1/k)), (1, True))

integrate(w_k * exp(-s*t), (t, 0, oo)).doit()
Out:
∞                         
⌠                         
⎮ ⎧     -s⋅t          1   
⎮ ⎪k⋅t⋅ℯ      for t ≤ ─   
⎮ ⎪                   k   
⎮ ⎨                     dt
⎮ ⎪   -s⋅t                
⎮ ⎪  ℯ        otherwise   
⎮ ⎩                       
⌡                         
0                         

使用 laplace_transform 给出了相同的结果。

我知道有时需要满足某些条件才能通过 SymPy 集成该函数,但我真的不确定该函数除了正变量之外还需要什么。有没有办法强制 SymPy 计算积分,或者解释为什么它不可能?

最佳答案

试试这个:

import math
from sympy import *
s = Symbol('s', positive=True)
t = Symbol('t', positive=True)
k = Symbol('k', positive=True)
function = Piecewise((k*t, (0 <= t)&(t <= 1/k)), (1, True))
result = integrate(function * exp(-s*t), (t, 0, math.inf))

输出:

k/s**2 + exp(-s/k)/s + (-k - s)*exp(-s/k)/s**2

关于python - 是否可以强制 SymPy 计算积分,或者告诉我为什么它无法计算积分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60019941/

相关文章:

Python 无法从 phi 创建 mpf

javascript - JS : Resolve a Formula for x

python - pytest-html extras 自定义代码理解

python - 如何使用 python sympy 进行 z 转换?

python - 时间未添加到 Python 中的日期对象

python - 在 Sympy 中对总和进行微分

matlab - 检查符号计算

matlab - 如何在MATLAB中提取传递函数的符号系数

python - 混合使用 HTML5 Canvas 和 Python

python - 在函数之外使用局部变量