Python中的快速数值积分

 Max_coffee 发布于 2023-02-13 16:50

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

\ INT ^ {B} _ {A(R)} F(X)*G(XR)DX

我必须为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

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

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有