python利用函数求不及格率_python中概率分布函数加权的二次积分

本文介绍了如何在Python中计算一个依赖于两个变量的函数的高斯加权二维积分,特别是在处理不及格率问题时。通过定义高斯函数、球形函数以及内部积分函数,作者尝试解决在特定边界条件下的积分问题,但遇到了参数传递的错误。文章展示了代码示例,并提出了遇到的问题进行讨论。
摘要由CSDN通过智能技术生成

我有一个问题,在一个依赖于2个变量(q,r)的函数中执行二定积分,并且其中有一个额外的积分。

我想用高斯函数加权的函数是:

F(q,r)=f(q,r)+int_{0,r}(h(q,r')dr')

并且in必须再次积分才能用高斯函数加权:

I(q)=int_{0,inf}(F(q,r)^2*g(r)dr)

高斯g(r)位于坐标R的中心。在

你可以看到的主要问题是我把数组和标量混合在一起。对于高斯函数(np.ogrid和轴上求和)使用相同的方法可能是一个解决方案,但我不知道如何实现它。在import numpy as np

from scipy.integrate import quad

import math as m

R=53.

R0=40.

delta=50.

c=2.

qm, rm = np.ogrid[0.0005:2.0:0.0005, 20:100:500j]

#normalized gauss function

#g(r)

def gauss_grid(r,Rmin,pd):

def gauss(r,Rmin,pd):

sigma=1.5

return (1/sigma)*np.exp(-((r-Rmin)**2)/(2*sigma**2))

gauss_grid = gauss(r,Rmin,pd)

#normalization of gaussian

gauss_grid /= np.sum(gauss_grid)

return gauss_grid

#spherical function

#f(q,r)

def form(q,R):

return (4/3)*m.pi*3*(np.sin(q*R)-q*R*np.cos(q*R))/(q**3)

#FINAL function

#I(q)

def helfand():

def F(q,R):

#integral (0,R) of h(q,r)

def integral(q,Rmax):

#h(q,r)

def integrand(r,q):

return np.sin(q*r)*(r**2)/(q*r*(1+np.exp(c*(R0-r))))

return quad(integrand, 0, Rmax, args=(q))[0]

return (form(q,R)+delta*integral(q,R))**2

FF_hel=F(qm,rm)

FF_hel *= gauss_grid(rm,R,pd)

I=FF_hel.sum(axis=1)

return I,qm.ravel()

helfand()

*更新****

我试过用整合库(使用quad)和我做不到。就像它没有将正确的参数(q)传递给下一个函数。这里有一个非常简单的版本:

^{pr2}$

错误说明:Supplied function does not return a valid float.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值