问题描述
我想做的是计算i(rms)
I0 = 1; T0 = 0.05; beta = 0.2
import numpy as np
from scipy import integrate
I0 = 1; T0 = 0.05; beta = 0.2
def i(x):
return I0*(np.sin(np.pi*x/T0)-beta*np.sin(2*np.pi*x/TO))
integ = integrate.quad(i**2,T0)[0]
irms = np.sqrt(integ/T0)
print("i(rms) = ",irms)
TypeError Traceback (most recent call last)
<ipython-input-40-b60f32acb4dc> in <module>
7 return I0*(np.sin(np.pi*x/T0)-beta*np.sin(2*np.pi*x/TO))
8
----> 9 integ = integrate.quad(i**2,T0)[0]
10
11 irms = np.sqrt(integ/T0)
TypeError: unsupported operand type(s) for ** or pow(): 'function' and 'int'
我该如何解决?
解决方法
您正在使用x**y
,就像使用pow。
当您将函数(i
)作为第一个参数传递时,pow函数需要2个数字。也许您想将通话结果传递给i
?
顺便说一句-使用i
作为函数名称不是最佳做法。