Интегрируйте квадратную функцию - PullRequest
0 голосов
/ 30 апреля 2018

Мне нужно сделать ряд Фурье квадратной функции.

Чтобы получить это есть функция у = квадрат (т)

мне нужно сделать интеграл от (2 / p) * (квадрат (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: Поставляемая функция не возвращает допустимое значение с плавающей точкой.

1 Ответ

0 голосов
/ 01 мая 2018

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)
...