Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python quad:集成一个变量,同时将另一个变量视为常量?_Python_Scipy_Numerical Integration - Fatal编程技术网

python quad:集成一个变量,同时将另一个变量视为常量?

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

我在做简单的积分,唯一的问题是我想保持'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      #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]