python中积分怎么表示_Python中的快速数值积分

我有一个程序涉及多次计算一个定积分,并一直在努力寻找一种方法来快速完成.我需要解决的积分有以下形式:

我必须为r的许多不同值求解这个积分,这既影响积分的极限,也影响积分(通过函数g).因此,我没有找到一种方法来对问题进行矢量化,而必须依赖于循环.这显着减慢了问题,因为我需要在每个循环中进行函数调用.下面是使用循环(使用组合数据和函数)的一种方法:

import numpy as np

f = lambda x: x**2

g = lambda x: np.log(x)

b=1000

r = np.arange(10,500,10)

a = 1.1*r+r**-1

def loop1(r,a):

integration_range=[np.linspace(a[i],b,1000) for i in range(len(a))]

out=np.zeros(len(r))

i=0

while i

out[i]=np.trapz(f(integration_range[i])*a_pdf(integration_range[i]-r[i]),integration_range[i])

i=i+1

return out

这大约需要17.7毫秒,这对我目前的需求来说太慢了.我不太关心积分是否超精确;我很满意一个解决方案,它给出的近似值在真实值的1%以内.任何帮助将不胜感激!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值