有没有可能强迫Symphy计算一个积分,或者告诉我为什么它不能计算积分?

2024-05-19 03:22:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算分段函数的积分,特别是拉普拉斯变换

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可以得到相同的结果

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


Tags: 函数fromimporttrueforoutoointegrate
1条回答
网友
1楼 · 发布于 2024-05-19 03:22:34

试试这个:

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

相关问题 更多 >

    热门问题