• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python integrate.quadrature函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中scipy.integrate.quadrature函数的典型用法代码示例。如果您正苦于以下问题:Python quadrature函数的具体用法?Python quadrature怎么用?Python quadrature使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了quadrature函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: cos_square_avg

def cos_square_avg(J):
     global tol
     global nint
     norm,error1 = quadrature(func_norm,0,pi,args=(J,),tol=tol,maxiter=nint)
     avg,error2 = quadrature(func_avg,0,pi,args=(J,),tol=tol,maxiter=nint)
     avg *= 1.0/norm
     return avg
开发者ID:IcyVein,项目名称:FDTD,代码行数:7,代码来源:alignment_boyd.py


示例2: TR

 def TR(self,**kwargs):
     """
     NAME:
        TR
     PURPOSE:
        Calculate the radial period for a flat rotation curve
     INPUT:
        scipy.integrate.quadrature keywords
     OUTPUT:
        T_R(R,vT,vT)*vc/ro + estimate of the error
     HISTORY:
        2010-05-13 - Written - Bovy (NYU)
     """
     if hasattr(self,'_TR'):
         return self._TR
     (rperi,rap)= self.calcRapRperi()
     if rap == rperi: #Rough limit
         #TR=kappa
         kappa= m.sqrt(2.)/self._R
         self._TR= nu.array([2.*m.pi/kappa,0.])
         return self._TR
     Rmean= m.exp((m.log(rperi)+m.log(rap))/2.)
     TR= 0.
     if Rmean > rperi:
         TR+= rperi*nu.array(integrate.quadrature(_TRFlatIntegrandSmall,
                                                  0.,m.sqrt(Rmean/rperi-1.),
                                                  args=((self._R*self._vT)**2/rperi**2.,),
                                                  **kwargs))
     if Rmean < rap:
         TR+= rap*nu.array(integrate.quadrature(_TRFlatIntegrandLarge,
                                                0.,m.sqrt(1.-Rmean/rap),
                                                args=((self._R*self._vT)**2/rap**2.,),
                                                **kwargs))
     self._TR= m.sqrt(2.)*TR
     return self._TR
开发者ID:derkal,项目名称:galpy,代码行数:35,代码来源:actionAngleFlat.py


示例3: complex_integral

def complex_integral(func,a,b,args,intype='stupid'):
    real_func = lambda z: np.real(func(z,*args))
    imag_func = lambda z: np.imag(func(z,*args))
    if intype == 'quad':
        real_int = integ.quad(real_func,a,b)
        imag_int = integ.quad(imag_func,a,b)
#        print(real_int)
#        print(imag_int)
        return real_int[0] + 1j * imag_int[0]
    elif intype == 'quadrature':
        real_int = integ.quadrature(real_func,a,b)
        imag_int = integ.quadrature(imag_func,a,b)
#        print(real_int)
#        print(imag_int)
        return real_int[0] + 1j * imag_int[0]
    elif intype == 'romberg':
        real_int = integ.romberg(real_func,a,b)
        imag_int = integ.romberg(imag_func,a,b)
#        print(real_int)
#        print(imag_int)
        return real_int + 1j * imag_int
    elif intype == 'stupid':
        Npoints = 500
        z,dz = np.linspace(a,b,Npoints,retstep=True)
        real_int = np.sum(real_func(z))*dz
        imag_int = np.sum(imag_func(z))*dz
#        print(real_int)
#        print(imag_int)
        return real_int + 1j*imag_int
开发者ID:qLuxor,项目名称:sagnac,代码行数:29,代码来源:Benn_Kolo.py


示例4: p_avg

def p_avg(x):
     global tol
     global nint
     norm,error1 = quadrature(func_norm,-1,1,args=(x,),tol=tol,maxiter=nint)
     avg,error2 = quadrature(func_avg,-1,1,args=(x,),tol=tol,maxiter=nint)
     avg *= 1.0/norm
     return avg
开发者ID:IcyVein,项目名称:FDTD,代码行数:7,代码来源:alignment_hookandhall.py


示例5: TR

 def TR(self,**kwargs): #pragma: no cover
     """
     NAME:
        TR
     PURPOSE:
        Calculate the radial period for a power-law rotation curve
     INPUT:
        scipy.integrate.quadrature keywords
     OUTPUT:
        T_R(R,vT,vT)*vc/ro + estimate of the error
     HISTORY:
        2010-12-01 - Written - Bovy (NYU)
     """
     if hasattr(self,'_TR'):
         return self._TR
     (rperi,rap)= self.calcRapRperi(**kwargs)
     if nu.fabs(rap-rperi)/rap < 10.**-4.: #Rough limit
         self._TR= 2.*m.pi/epifreq(self._pot,self._R,use_physical=False)
         return self._TR
     Rmean= m.exp((m.log(rperi)+m.log(rap))/2.)
     EL= self.calcEL(**kwargs)
     E, L= EL
     TR= 0.
     if Rmean > rperi:
         TR+= integrate.quadrature(_TRAxiIntegrandSmall,
                                   0.,m.sqrt(Rmean-rperi),
                                   args=(E,L,self._pot,rperi),
                                   **kwargs)[0]
     if Rmean < rap:
         TR+= integrate.quadrature(_TRAxiIntegrandLarge,
                                   0.,m.sqrt(rap-Rmean),
                                   args=(E,L,self._pot,rap),
                                   **kwargs)[0]
     self._TR= 2.*TR
     return self._TR
开发者ID:SeaifanAladdin,项目名称:galpy,代码行数:35,代码来源:actionAngleAxi.py


示例6: _calc_angler

 def _calc_angler(self,Or,r,Rmean,rperi,rap,E,L,vr,fixed_quad,**kwargs):
     if r < Rmean:
         if r > rperi and not fixed_quad:
             wr= Or*integrate.quadrature(_TrSphericalIntegrandSmall,
                                         0.,m.sqrt(r-rperi),
                                         args=(E,L,self._2dpot,rperi),
                                         **kwargs)[0]
         elif r > rperi and fixed_quad:
             wr= Or*integrate.fixed_quad(_TrSphericalIntegrandSmall,
                                         0.,m.sqrt(r-rperi),
                                         args=(E,L,self._2dpot,rperi),
                                         n=10,**kwargs)[0]
         else:
             wr= 0.
         if vr < 0.: wr= 2*m.pi-wr
     else:
         if r < rap and not fixed_quad:
             wr= Or*integrate.quadrature(_TrSphericalIntegrandLarge,
                                         0.,m.sqrt(rap-r),
                                         args=(E,L,self._2dpot,rap),
                                         **kwargs)[0]
         elif r < rap and fixed_quad:
             wr= Or*integrate.fixed_quad(_TrSphericalIntegrandLarge,
                                         0.,m.sqrt(rap-r),
                                         args=(E,L,self._2dpot,rap),
                                         n=10,**kwargs)[0]
         else:
             wr= m.pi
         if vr < 0.:
             wr= m.pi+wr
         else:
             wr= m.pi-wr
     return wr
开发者ID:jobovy,项目名称:galpy,代码行数:33,代码来源:actionAngleSpherical.py


示例7: _calc_or

 def _calc_or(self,Rmean,rperi,rap,E,L,fixed_quad,**kwargs):
     Tr= 0.
     if Rmean > rperi and not fixed_quad:
         Tr+= nu.array(integrate.quadrature(_TrSphericalIntegrandSmall,
                                            0.,m.sqrt(Rmean-rperi),
                                            args=(E,L,self._2dpot,
                                                  rperi),
                                            **kwargs))[0]
     elif Rmean > rperi and fixed_quad:
         Tr+= integrate.fixed_quad(_TrSphericalIntegrandSmall,
                                   0.,m.sqrt(Rmean-rperi),
                                   args=(E,L,self._2dpot,
                                         rperi),
                                   n=10,**kwargs)[0]
     if Rmean < rap and not fixed_quad:
         Tr+= nu.array(integrate.quadrature(_TrSphericalIntegrandLarge,
                                            0.,m.sqrt(rap-Rmean),
                                            args=(E,L,self._2dpot,
                                                  rap),
                                            **kwargs))[0]
     elif Rmean < rap and fixed_quad:
         Tr+= integrate.fixed_quad(_TrSphericalIntegrandLarge,
                                   0.,m.sqrt(rap-Rmean),
                                   args=(E,L,self._2dpot,
                                         rap),
                                   n=10,**kwargs)[0]
     Tr= 2.*Tr
     return 2.*nu.pi/Tr
开发者ID:jobovy,项目名称:galpy,代码行数:28,代码来源:actionAngleSpherical.py


示例8: _calc_op

 def _calc_op(self,Or,Rmean,rperi,rap,E,L,fixed_quad,**kwargs):
     #Azimuthal period
     I= 0.
     if Rmean > rperi and not fixed_quad:
         I+= nu.array(integrate.quadrature(_ISphericalIntegrandSmall,
                                           0.,m.sqrt(Rmean-rperi),
                                           args=(E,L,self._2dpot,
                                                 rperi),
                                           **kwargs))[0]
     elif Rmean > rperi and fixed_quad:
         I+= integrate.fixed_quad(_ISphericalIntegrandSmall,
                                  0.,m.sqrt(Rmean-rperi),
                                  args=(E,L,self._2dpot,rperi),
                                  n=10,**kwargs)[0]
     if Rmean < rap and not fixed_quad:
         I+= nu.array(integrate.quadrature(_ISphericalIntegrandLarge,
                                           0.,m.sqrt(rap-Rmean),
                                           args=(E,L,self._2dpot,
                                                 rap),
                                           **kwargs))[0]
     elif Rmean < rap and fixed_quad:
         I+= integrate.fixed_quad(_ISphericalIntegrandLarge,
                                  0.,m.sqrt(rap-Rmean),
                                  args=(E,L,self._2dpot,rap),
                                  n=10,**kwargs)[0]
     I*= 2*L
     return I*Or/2./nu.pi
开发者ID:jobovy,项目名称:galpy,代码行数:27,代码来源:actionAngleSpherical.py


示例9: p_avg

def p_avg(p0,a1,a3,Ex,T,tol=1.0e-3,maxiter=50):
     args=(p0,a1,a3,Ex,T)
     norm,error_norm = quadrature(kernel,0,pi,args=args,tol=tol,maxiter=maxiter)
     cos_avg,error_cos = quadrature(func_cos_avg,0,pi,args=args,tol=tol,maxiter=maxiter)
     cos_square_avg,error_cos_sqr = quadrature(func_cos_sqr_avg,0,pi,args=args,tol=tol,maxiter=maxiter)
     cos_avg *= 1.0/norm
     cos_square_avg *= 1.0/norm
     return p0*cos_avg + (a1 + (a3 - a1)*cos_square_avg)*Ex 
开发者ID:IcyVein,项目名称:FDTD,代码行数:8,代码来源:static_reponse.py


示例10: _calc_anglez

 def _calc_anglez(self,Or,Op,ar,z,r,Rmean,rperi,rap,E,L,Lz,vr,axivz,
                  fixed_quad,**kwargs):
     #First calculate psi
     i= nu.arccos(Lz/L)
     sinpsi= z/r/nu.sin(i)
     if sinpsi > 1. and sinpsi < (1.+10.**-7.):
         sinpsi= 1.
     if sinpsi < -1. and sinpsi > (-1.-10.**-7.):
         sinpsi= -1.
     psi= nu.arcsin(sinpsi)
     if axivz > 0.: psi= nu.pi-psi
     psi= psi % (2.*nu.pi)
     #Calculate dSr/dL
     dpsi= Op/Or*2.*nu.pi #this is the full I integral
     if r < Rmean:
         if not fixed_quad:
             wz= L*integrate.quadrature(_ISphericalIntegrandSmall,
                                        0.,m.sqrt(r-rperi),
                                        args=(E,L,self._2dpot,
                                              rperi),
                                        **kwargs)[0]
         elif fixed_quad:
             wz= L*integrate.fixed_quad(_ISphericalIntegrandSmall,
                                        0.,m.sqrt(r-rperi),
                                        args=(E,L,self._2dpot,
                                              rperi),
                                        n=10,**kwargs)[0]
         if vr < 0.: wz= dpsi-wz
     else:
         if not fixed_quad:
             wz= L*integrate.quadrature(_ISphericalIntegrandLarge,
                                        0.,m.sqrt(rap-r),
                                        args=(E,L,self._2dpot,
                                              rap),
                                        **kwargs)[0]
         elif fixed_quad:
             wz= L*integrate.fixed_quad(_ISphericalIntegrandLarge,
                                        0.,m.sqrt(rap-r),
                                        args=(E,L,self._2dpot,
                                              rap),
                                        n=10,**kwargs)[0]
         if vr < 0.:
             wz= dpsi/2.+wz
         else:
             wz= dpsi/2.-wz
     #Add everything
     wz= -wz+psi+Op/Or*ar
     return wz
开发者ID:jobovy,项目名称:galpy,代码行数:48,代码来源:actionAngleSpherical.py


示例11: ps_to_xi

def ps_to_xi(k,ps,r,precision='mid'):
    xi = 0 * r
    if precision=='low':
        from scipy.integrate import trapz
        from scipy import sin
        
        for i in range(len(r)):
            xi[i] = trapz((ps/k) * sin(k*r[i]) / (k*r[i]),k)
    
    elif precision=='high':
        from scipy import sin
        from scipy.integrate import quad,quadrature
        from scipy.interpolate import interp1d
        for i in range(len(r)):
            psi = interp1d(k,ps)
            core = lambda k: (psi(k)/k) * sin(k*r[i]) / (k*r[i])
            A = quadrature(core,min(k),2.0/r[i],tol=1e-3)
            xi[i] = A[0]
        
    else:
        from scipy.integrate import trapz
        from scipy import sin
        from pylab import find
        import numpy as np
        for i in range(len(r)):
            cutoff = np.min(find(k>2.0/r[i]))
            kl = k[1:cutoff]
            psl = ps[1:cutoff]
            i1 = trapz((psl/kl) * sin(kl*r[i]) / (kl*r[i]),kl)
            psh = ps[cutoff+1:len(k)]
            kh = k[cutoff+1:len(k)]
            i2 = trapz((psh/kh) * sin(kh*r[i]) / (kh*r[i]),kh)
            xi[i] = i1+i2
                         
    return xi
开发者ID:berianjames,项目名称:pyhalo,代码行数:35,代码来源:pyhalo.py


示例12: lumdist

def lumdist(z, k=0):
	''' Calculate the luminosity distance for redshift z 

	Parameters:
		* z (float or numpy array): the redshift or redshifts

	Returns:
		The luminosity distance(s) in Mpc
	'''

	if not (type(z) is np.ndarray): #Allow for passing a single z
		z = np.array([z])
	n = len(z)

	if lam == 0:
		denom = np.sqrt(1+2*q0*z) + 1 + q0*z 
		dlum = (c*z/h0)*(1 + z*(1-q0)/denom)
		return dlum
	else:
		dlum = np.zeros(n)
		for i in xrange(n):
			if z[i] <= 0:
				dlum[i] = 0.0
			else:
				dlum[i] = quadrature(ldist, 0, z[i])[0]

	if k > 0:
		dlum = np.sinh(np.sqrt(k)*dlum)/np.sqrt(k)
	elif k < 0:
		dlum = np.sin(np.sqrt(-k)*dlum)/np.sqrt(-k)
	result = c*(1+z)*dlum/H0
	
	if len(result) == 1:
		return result[0]
	return result
开发者ID:hjens,项目名称:pynoise,代码行数:35,代码来源:helper_functions.py


示例13: c

def c(ni, nf): # eigenfunctions are real
    return integrate.quadrature(
        lambda x: eigen_f(nf, x) * eigen_i(ni, x), # < bra | ket >
        0., pi,
        rtol=1e-5, maxiter=1000,
        vec_func=False
    )
开发者ID:gderosa,项目名称:quantum-adiabaticity,代码行数:7,代码来源:evol.py


示例14: CalculateEnergyFlux

    def CalculateEnergyFlux(self,modelName,params):

        model = self.eFluxModels[modelName]
        #self.shit=params
        #print params
        try:
           args=params.tolist()
                
        except(AttributeError):
  
            args = tuple(params)
        #print args
        if (modelName == 'Band\'s GRB, Epeak') or (modelName =='Power Law w. 2 Breaks') or (modelName =='Broken Power Law'):

            
            
            
            val,_, = quadrature(model, self.eMin,self.eMax,args=args,tol=1.49e-10, rtol=1.49e-10, maxiter=200)
            val = val*keV2erg
            return val
            

        val,_, = quad(model, self.eMin,self.eMax,args=args[0], epsrel= 1.e-8 )

        
        val = val*keV2erg
        

        return val
开发者ID:drJfunk,项目名称:spectralTools,代码行数:29,代码来源:fluxLightCurve.py


示例15: computeLuminosityDistance

def computeLuminosityDistance(z):
    """

    Compute luminosity distance via gaussian quadrature.

    @param z: Redshift at which to calculate luminosity distance

    @return: Luminosity distance in Mpc

    """

    # constants
    H0 = 71 * 1000      # Hubble constant in (m/s)/Mpc
    Ol = 0.73           # Omega lambda
    Om = 0.27           # Omega matter
    G = 6.67e-11        # Gravitational constant in SI units
    c = 3.0e8           # Speed of light in SI units

    # proper distance function
    properDistance = lambda z: c/H0*np.sqrt(Ol+Om*(1+z)**3)
    
    #def properDistance(z):
    #    
    #    Ez = np.sqrt(Ol+Om*(1+z)**3)
    #    
    #    return c/H0/Ez

    # carry out numerical integration
    Dp = si.quadrature(properDistance, 0 ,z)[0]
    Dl = (1+z) * Dp

    return Dl
开发者ID:LindleyLentati,项目名称:PAL,代码行数:32,代码来源:PALutils.py


示例16: test_quadrature_single_args

    def test_quadrature_single_args(self):
        def myfunc(x, n):
            return 1e90 * cos(n * x - 1.8 * sin(x)) / pi

        val, err = quadrature(myfunc, 0, pi, args=2, rtol=1e-10)
        table_val = 1e90 * 0.30614353532540296487
        assert_allclose(val, table_val, rtol=1e-10)
开发者ID:ProkopHapala,项目名称:scipy,代码行数:7,代码来源:test_quadrature.py


示例17: comoving_distance

def comoving_distance(z,cosmo=None):
    """
    Calculate the line of sight comoving distance
    
    parameters
    ----------
    z: float
        redshift
    
    cosmo: astropy.cosmology object, optional
        cosmology object specifying cosmology.  If None,  FlatLambdaCDM(H0=70,Om0=0.3)
    
    returns
    -------
    DC: float
        Comoving line of sight distance in Mpc
    """
    
    if cosmo==None:
        cosmo = astropy.cosmology.FlatLambdaCDM(H0=70, Om0=0.3)
    
    f = lambda zz: 1.0/_Ez(zz, cosmo.Om0, cosmo.Ok0, cosmo.Ode0)
    DC = integrate.quadrature(f,0.0,z)[0]
    
    return hubble_distance(cosmo.H0.value)*DC
开发者ID:duncandc,项目名称:custom_utilities,代码行数:25,代码来源:cosmology.py


示例18: comoving_volume

def comoving_volume(z,dw,cosmo=None):
    """
    Calculate comoving volume
    
    parameters
    ----------
    z: float
        redshift
    
    dw: float
        solid angle
    
    cosmo: astropy.cosmology object, optional
        cosmology object specifying cosmology.  If None,  FlatLambdaCDM(H0=70,Om0=0.3)
    
    returns
    -------
    VC: float
        comoving volume in Mpc^3
    """

    if cosmo==None:
        cosmo = astropy.cosmology.FlatLambdaCDM(H0=70, Om0=0.3)

    DH = hubble_distance(cosmo.H0.value) 
    f = lambda zz: DH*((1.0+zz)**2.0*angular_diameter_distance(zz,cosmo)**2.0)/(_Ez(zz, cosmo.Om0, cosmo.Ok0, cosmo.Ode0))

    VC = integrate.quadrature(f,0.0,z,vec_func=False)[0]*dw
    
    return VC
开发者ID:duncandc,项目名称:custom_utilities,代码行数:30,代码来源:cosmology.py


示例19: find_gb_omega

def find_gb_omega(omega, energy_low, energy_high, system, efermi, temp, delta):
	"""
	Integrate gb_integrand function over range of energies to find Gilbert damping
	"""
	scaling = 1 / omega
	out = (delta**2)*(scaling) * integrate.quadrature(lambda energy: gb_integrand(energy,omega,system,efermi,temp), energy_low, energy_high, vec_func = False,tol=10e-5)[0]
	return out
开发者ID:georgemattson,项目名称:many-body-modeler,代码行数:7,代码来源:gilbert_damping.py


示例20: test_quadrature_rtol

    def test_quadrature_rtol(self):
        def myfunc(x, n, z):  # Bessel function integrand
            return 1e90 * cos(n * x - z * sin(x)) / pi

        val, err = quadrature(myfunc, 0, pi, (2, 1.8), rtol=1e-10)
        table_val = 1e90 * 0.30614353532540296487
        assert_allclose(val, table_val, rtol=1e-10)
开发者ID:wangdayoux,项目名称:OpenSignals,代码行数:7,代码来源:test_quadrature.py



注:本文中的scipy.integrate.quadrature函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python integrate.romb函数代码示例发布时间:2022-05-27
下一篇:
Python integrate.quad函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap