我想用渐近来计算1-abs(x-y)从-10到10的积分.我设置了以下代码片段:

import sympy as sym
from sympy.abc import x, y

x = sym.Symbol('x')
y = sym.Symbol('y')

fu_0 = 1 - sym.cos(x-y)
print(sym.integrate(fu_0, (x, -10, 10)))
fu_1 = 1 - sym.Abs(x-y)
print(sym.integrate(fu_1, (x, -10, 10)))

输出如下所示:

sin(y - 10) - sin(y + 10) + 20
Integral(1 - Abs(x - y), (x, -10, 10))

显然,Sensy在求解所需函数fu_1的积分时存在问题.有人知道这里出了什么问题吗?症状和sympy.Abs的问题在不久前已经在这里修复了https://github.com/sympy/sympy/pull/13930.

推荐答案

您链接的Pull请求提供了一些关于SymPy何时能够将绝对值重写为分段的清晰信息.自由符号必须是真实的.

x = sym.Symbol('x', real=True)
y = sym.Symbol('y', real=True)

fu_0 = 1 - sym.cos(x-y)
print(sym.integrate(fu_0, (x, -10, 10)))
# sin(y - 10) - sin(y + 10) + 20
fu_1 = 1 - sym.Abs(x-y)
print(sym.integrate(fu_1, (x, -10, 10)))
# (1 - y)*Min(10, Max(-10, y)) - (y + 1)*Min(10, Max(-10, y)) + Min(10, Max(-10, y))**2 - 80

Python相关问答推荐

分组数据并删除重复数据

如何在BeautifulSoup中链接Find()方法并处理无?

由于NEP 50,向uint 8添加-256的代码是否会在numpy 2中失败?

try 在树叶 map 上应用覆盖磁贴

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

如何列举Pandigital Prime Set

如何将Docker内部运行的mariadb与主机上Docker外部运行的Python脚本连接起来

优化器的运行顺序影响PyTorch中的预测

Python+线程\TrocessPoolExecutor

Odoo 16使用NTFS使字段只读

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

如何在PySide/Qt QColumbnView中删除列

如何杀死一个进程,我的Python可执行文件以sudo启动?

手动设置seborn/matplotlib散点图连续变量图例中显示的值

Polars将相同的自定义函数应用于组中的多个列,

Pandas:计算中间时间条目的总时间增量

导入错误:无法导入名称';操作';

奇怪的Base64 Python解码

大Pandas 中的群体交叉融合