【问题标题】:Integrating a function with an array of parameters, start, and end points in python在python中将函数与参数数组、起点和终点集成在一起
【发布时间】:2017-06-10 00:47:04
【问题描述】:

所以我正在尝试对一个想法进行简单的测试。基本上我有一些我定义的函数,它取决于一个变量和一个参数常量。我有一个参数值数组。对于第一个参数值,我有一组积分的起点和终点。对于第二个,我有一组不同的整合起点和终点。由于此链接Integrating functions that return an array in Python

,我的代码可以正常工作

而且基本上就是这样的形式。

我的问题是,如果我定义了一个带有 for 循环的函数,并且该函数看起来像:

def F(a):
    F = []
    for i in len(a):
        F[i] = scipy.integrate.quad(g,0,1,args = (a[i],))
    return F

(其中g 是我之前在代码中定义的某个函数),那么当我实现这个函数(或为a 插入一个数组)时,数组中的所有元素会连续运行吗?还是每个元素的积分会同时运行?

或者换句话说,在我在开头附加的链接中,当调用使用 for 循环定义的函数时,函数中的所有计算是否连续运行(如通过索引运行的 for 循环)或同时运行,因为所有元素都已定义?

【问题讨论】:

  • 感谢您的欢迎。我浏览了旅游信息。有没有机会回答我的问题
  • 你好。我推荐这次旅行,因为很明显您甚至没有执行该步骤来熟悉这个地方的运作方式。下一步是阅读如何创建Minimal, Complete, and Verifiable 示例。然后编辑您的帖子以提供该信息。例如,当我猜测时,您的代码显示simpy.integrate.quad,您的意思是scipy.integrate.quad。每当我们必须猜测时,我们更有可能继续前进并帮助那些花费更多时间让他们更容易获得帮助的人。
  • 我已经修正了那个错字。希望这能让它更清楚。虽然问题更多的是关于定义中的 for 循环在以后调用这些函数时如何运行。

标签: python arrays integration


【解决方案1】:

循环可以更好地表示为:

def F(a):
    results = []
    for element in a:
        results.append(scipy.integrate.quad(g, 0, 1, args=(element,)))
    return results

或作为使用列表理解的单行:

def F(a):
    return [scipy.integrate.quad(g, 0, 1, args=(element,)) for element in a]

在这两种情况下,集成将一次完成(连续)。

【讨论】:

  • 有没有办法在矩阵上应用积分,就像使用 numpy 同时应用其他操作(如加法)一样?这样 F(a) 是一个数组,其中每个元素都等于 F(a 的元素)?
  • 可能,但最好是问一个新问题。尽力创建Minimal, Complete, and Verifiable 示例。祝你好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多