集成平方功能

时间:2018-04-30 20:48:04

标签: python python-3.x scipy integrate

  

我需要制作方形函数的傅里叶级数。

要得到这个,有一个函数y = square(t)

我需要将(2 / p)*(square(t)* cos((2pi / p)* t))的积分从0变为变量I类型,例如p = 10但我不能使这个积分,因为每次我尝试用scipy做这个,我得到方形函数的错误。

from scipy.signal import *
from scipy.integrate import quad
from numpy import *
p = 10
na = arange(0,10,1)
def integrand(t, a, b):
    return square(t)*cos(b*((2*pi)/a)*t)
i,err = quad(integrand,0,p, args=(p,na))
y = i
  

quadpack.error:提供的函数不返回有效的float。

1 个答案:

答案 0 :(得分:2)

quad返回2个参数,错误的积分和绝对值,你只需要解压缩它。

from scipy.signal import *
from scipy.integrate import quad
from numpy import *
p = 10
def integrand(t, a):
    return square(t)*cos(((2*pi)/a)*t)
i, err = quad(integrand,0,p, args=(p,))
y = (2/p)*i

<强>更新

from scipy.signal import *
from scipy.integrate import quad
from numpy import *
p = 10
na = arange(0,10,1)
y = []

def integrand(t, a, b):
    return square(t)*cos(b*((2*pi)/a)*t)

for e in na:
    i,err = quad(integrand,0,p, args=(p, e))
    y.append(i)

print(y)