gpt4 book ai didi

python - 使用 sympy 对具有符号输出的函数求和

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:44 27 4
gpt4 key购买 nike

我正在尝试使用 sympy 在 python 中对一个函数求和。我的功能是

x=symbols('x')
def f(k):
if k==0:
return x
else:
return 1

如果我问 f(0) 是什么,我得到 x,我可以很高兴地问类似的事情

integrate(f(0),(x,0,1))

如我所料,我得到了 1/2。

但是如果我写

summation(f(i),(i,0,3))

我得到 4,而不是 x+3。这看起来有点奇怪,特别是因为如果我不指定函数 f 并去 for

f=Function('f')

然后

summation(f(i),(i,0,3))

给我 f(0)+f(1)+f(2)+f(3)。那么,当 f 的定义如上时,为什么我最终得到的是 4 而不是 x+3?

稍后添加:我只是注意到我什至不需要符号 x 来表示行为不是我所期望的。例如

def f(k):
if k==0:
return 100
else:
return 1

summation(f(i),(i,0,3))

返回 4 而不是 103。

最佳答案

当你执行 f(i)

summation(f(i),(i,0,3))

你正在调用 f 函数:

def f(k):
if k==0:
return x
else:
return 1

i0 进行比较,然后返回 x1。由于 i == 0 的计算结果为 False,它返回 1,因此您实际上只是对 1 求和0 到 3。

summation 根本看不到 f。它只看到 1,因为 f(i) 调用在 summation 运行之前被完全评估。 求和只看到返回值。

关于python - 使用 sympy 对具有符号输出的函数求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41681842/

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