我试图做一个模拟,其中包含一个拟合参数m的求和。
例如,如果我加上一个m = 1的值,我可以得到70个和,但如果我加上m = 5。我只会做19个算术题。出现此错误。
TypeError:根据强制转换规则“same_kind”,无法将ufunc“add”输出(类型代码“O”)强制转换为提供的输出参数(类型代码“d”)
代码如下
from scipy.special import factorial2
m = 5
theta = np.linspace(0, 1.5, 100)
def I(n):
it = 0
for t in range(n+1):
it += ((2**t)*(m**t)*(np.cos(theta)**(2*t)))/factorial2(2*t+1)
return it
Itheta= I(20)
我试着看看错误是否出在阶乘运算符上,但如果你把它从循环中删除,错误仍然存在。
2条答案
按热度按时间disbfnqx1#
+=运算符还有另一个怪癖。Be careful with it .跟进我的评论:
TIO
omhiaaxx2#
错误不再以以下方式发生(即不要使用
it += ..
)。有趣的是,
it += ..
在使用以下步骤时不会导致错误。不幸的是,我真的不能向你解释为什么会这样。