python - 将函数与 numpy 数组的每个元素集成为集成限制

标签 python arrays numpy scipy integrate

我在 python 中有一个函数(也使用 scipy 和 numpy)定义为

import numpy as np
from scipy import integrate
LCDMf = lambda x: 1.0/np.sqrt(0.3*(1+x)**3+0.7)

我想将它从 0 整合到一个 numpy 数组中的每个元素,比如说 z = np.arange(0,100)

我知道我可以为每个迭代的元素写一个循环

an=integrate.quad(LCDMf,0,z[i])

但是,我想知道是否有更快、更有效(和更简单)的方法来对每个 numpy 元素执行此操作。

最佳答案

您可以将该问题改写为 ODE。

enter image description here

odeint然后可以使用函数计算一系列 zF(z)

>>> scipy.integrate.odeint(lambda y, t: LCDMf(t), 0, [0, 1, 2, 5, 8])
array([[ 0.        ],    # integrate until z = 0 (must exist, to provide initial value)
       [ 0.77142712],    # integrate until z = 1
       [ 1.20947123],    # integrate until z = 2
       [ 1.81550912],    # integrate until z = 5
       [ 2.0881925 ]])   # integrate until z = 8

关于python - 将函数与 numpy 数组的每个元素集成为集成限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43718128/

相关文章:

python - 加快阵列中所有可能对之间的距离

python - 如何将 conda 环境从一个 python 版本克隆到另一个?

java - 打印偶数矩阵对角线

arrays - 在 VBA 中比较两个数组并添加行

C++ 数组值不变

python - 如何在训练数据集上使用 SMAPE 评估指标?

python - 使用Opencv python的椭圆错误

python - INFO : Crawled 0 pages (at 0 pages/min), 抓取了 0 件元素(0 件/分钟)

javascript - Python Selenium PhantomJS 单击元素后返回空源

Python像matlab一样删除带有bool索引的矩阵行