gpt4 book ai didi

python - 在 sympy 中集成分段函数时出现错误结果

转载 作者:行者123 更新时间:2023-11-28 18:22:51 24 4
gpt4 key购买 nike

我开始使用 sympy。我计算了一个卷积,但结果不正确:

enter image description here

enter image description here

这个结果是错误的:正确的结果是

enter image description here

那我做错了什么?我之前用sympy来整合分段函数,没问题...


代码:

from sympy import *
init_session()

f = lambda x: Piecewise( (1 , (x >= -1) & (x <= 1)) , (0 , True) )
Conv = lambda x: integrate( f(x-y)*f(y) , (y, -oo, +oo) )

最佳答案

你没有做错任何事。 Sympy 对两个分段表达式的乘积有疑问。通过调用 piecewise_fold(f(x-y)*f(y)),您可以看到它无法将此乘积分类,将其保留为嵌套的 Piecewise 构造。

Piecewise((Piecewise((1, And(x - y <= 1, x - y >= -1)), (0, True)), And(y <= 1, y >= -1)), (0, True))

符号积分例程在这个嵌套的东西上绊倒了,这可能值得 filing an issue on GitHub .

解决方法

如果您手动展平这个嵌套的 Piecewise,集成工作正常。

g = Piecewise((1, And(x-y <= 1, x-y >= -1, y <= 1, y >= -1)), (0, True))
integrate(g, (y, -oo, +oo))

输出 Min(1, x + 1) - Min(1, x + 1, Max(-1, x - 1))correct尽管可能不是人们期望的形式。

关于python - 在 sympy 中集成分段函数时出现错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43852159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com