如何集成2平方函数?

问题描述

enter image description here

enter image description here

我想做的是计算i(rms)

我有初始值和i(t)函数

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作为函数名称不是最佳做法。