python quad:集成一个变量,同时将另一个变量视为常量?
我在做简单的积分,唯一的问题是我想保持'n'作为一个变量。我如何在仍然在t上积分的情况下执行此操作python quad:集成一个变量,同时将另一个变量视为常量?,python,scipy,numerical-integration,Python,Scipy,Numerical Integration,我在做简单的积分,唯一的问题是我想保持'n'作为一个变量。我如何在仍然在t上积分的情况下执行此操作 import numpy as np import matplotlib as mpl from matplotlib import pyplot as plt import scipy.integrate as integrate from scipy.integrate import quad import math as m y = lambda t: 3*t T = 4 #per
import numpy as np
import matplotlib as mpl
from matplotlib import pyplot as plt
import scipy.integrate as integrate
from scipy.integrate import quad
import math as m
y = lambda t: 3*t
T = 4 #period
n = 1
w = 2*np.pi*n/T
#for odd functions
def integrand(t):
#return y*(2/T)*np.sin(w*t)
return y(t)*np.sin(n*w*t)
Bn = (2/T)*quad(integrand,-T/2,T/2)[0]
print(Bn)
使用quad时,您不能。也许你在寻找像用笔和纸一样的符号整合;我可以在这里帮助您:
导入sympy
x=符号(“x”)
t=符号(“t”)
T=符号(“T”)
n=符号(“n”,正=真)
w=2*sympy.pi*n/T
y=3*t
out=2/T*sympy.integrate(y*sympy.sin(n*w*T),(T,-T/2,T/2))
打印(输出)
如果要计算多个n
的积分,可以帮助:
import numpy as np
from quadpy import quad
y = lambda t: 3 * t
T = 4
n = np.linspace(0.5, 4.5, 20)
w = 2 * np.pi * n / T
# for odd functions
def integrand(t):
return y(t) * np.sin(np.multiply.outer(n * w, t))
Bn = (2 / T) * quad(integrand, -T / 2, T / 2)[0]
print(Bn)
import numpy as np
from quadpy import quad
y = lambda t: 3 * t
T = 4
n = np.linspace(0.5, 4.5, 20)
w = 2 * np.pi * n / T
# for odd functions
def integrand(t):
return y(t) * np.sin(np.multiply.outer(n * w, t))
Bn = (2 / T) * quad(integrand, -T / 2, T / 2)[0]
print(Bn)
[ 2.95202424 4.88513496 4.77595051 1.32599514 -1.93954768 -0.23784853
1.11558278 -0.95397681 0.63709387 -0.4752673 0.45818227 -0.4740128
0.35943759 -0.01510463 -0.30348511 0.09861289 0.25428048 0.10030723
-0.06099483 -0.13128359]