python - 如何从 SymPy 分段对象中提取函数?

标签 python

我正在尝试计算傅立叶积分系数的结果。当我使用 integrate() 并打印结果时,我得到一个带有多个参数的 Piecewise 对象,其中之一就是我正在寻找的答案。但是,我只需要那个参数,找不到从分段函数中减去它的方法。

我读到过,分段对象的每个参数都是一个定义表达式和条件的二元组。我试过使用商品编号,但我得到:

TypeError: 'Piecewise' 对象不可迭代

我也尝试过将结果转换为列表并且它有效,但是我得到了一个包含整个分段函数的项目的列表,所以我遇到了同样的问题。

代码相当简单:

from sympy import *
x = Symbol('x')
w = Symbol('w')

func = exp(-abs(x))
a = integrate(func*cos(w*x), (x, -oo, oo))
print (a)

傅立叶系数的结果是2/(w^2 +1),但是输出是:

分段((2/(w**2 + 1), Eq(2*Abs(arg(w)), 0)), (Integral(exp(-Abs(x))cos(w x), (x, -oo, oo)), 真))

如您所见,我正在寻找的函数就在那里,在第一个参数中,但我找不到一种方法来仅从对象中获取第一个参数并仅获取表达式。我没有使用 Python 的经验,所以我认为我没有尝试过所有可能的解决方案,有什么想法吗?

最佳答案

使用a.args[index]会给出一个对应的元组(expr, cond), a.args[index][0] 给出 expr,[1] 给出 cond

关于python - 如何从 SymPy 分段对象中提取函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58253165/

相关文章:

python - 如何打印属于单个数组的 2 个类变量?

python - 使用 shell=True w/list 时忽略 subprocess.call() 参数

Python Pandas - 错误 : Can only compare identically-labeled Series objects

python - 使用 python 进行线程处理 : local variables trouble

python - Python 中带有 4 个面板 (2 x 2) 的 Seaborn 直方图

python - 'NoneType' 对象没有属性 'split' : Django 1. 11

python - 读/写文件问题

python - Django queryset update() in += 方式

python - 通过 GCS 触发器在云功能中获取用户信息

python - 下拉菜单在 Kivy (Python) 中部分可见