【问题标题】:Function as variable of integration作为积分变量的函数
【发布时间】:2014-10-30 15:06:01
【问题描述】:

我想使用一个函数作为积分变量,例如在评估积分时:

e^(cos(x))f(sin(x))dcos(x)

其中 f(x) 是一个任意函数。

如何更改积分变量,以便通过 dcos(x) 而不是 dx(默认情况下)进行积分?

编辑:

在计算 a*x+b 等积分时,可以通过以下方式计算它:

  def f(x,a,b):
    return a*x+b

  print quadrature(f,0,1,args=(2,3))

在这个例子中,积分的变量是dx,但是现在我想把积分的变量改成一个函数,比如x**2(我知道这可以解析解决,但我想应用它所以无法解析解的函数。)或 cos(x)。

【问题讨论】:

  • 请查看stackoverflow.com/help/mcve 并发布有关该问题的一些具体细节...
  • 你的问题我一个字都不懂。你知道,这里不是每个人都有数学学位,我们中的一些人只是程序员......
  • 抱歉,我已将其更改为更易于理解的语言。但我认为这个问题会由至少理解第一部分的人来回答,因为它是大学一年级的微积分。
  • 这个问题似乎是题外话,因为它是关于一个纯粹的数学概念。可以在 math.stackexchange.com 上找到合适的解决方案
  • 这不是一个数学问题,纯粹是关于如何使用 Scipy 或 Numpy 来实现这个问题。

标签: python numpy scipy


【解决方案1】:

您似乎在问如何为您制作 numpy/scipy 更改集成变量。这通常需要符号计算(在您的示例中:您需要使用正弦和余弦之间的关系),而 scipy 没有。

最好的办法是用纸笔计算变量的转换,写下得到的积分,然后使用 scipy 进行评估。

如果您在 python 领域寻找符号计算工具,请查看sympy

编辑:当然,您始终可以在 x 的网格上对函数进行采样,使用插值构造一个隐式函数,然后将 [在您的示例中:在x,插值f vs xx vs cos(x)]。也许你的具体问题是值得的,所以 YMMV。

【讨论】:

  • 我不是在寻找符号计算,因为它不存在用于这个特定问题,所以手工计算也是不可能的。
  • 这不会改变 scipy 是否可以为您更改集成变量的问题的答案:它不能。
  • 这可能不是直接可能的,但是这个问题必须是数值可解的,在文献中已经做过很多次了,可惜他们从来没有指定他们的方法。
  • 查看我编辑的答案。在我看来,鉴于问题的详细程度和努力程度,您几乎不会得到任何更具体的答案。
猜你喜欢
  • 2016-11-05
  • 1970-01-01
  • 1970-01-01
  • 2020-04-14
  • 2019-08-04
  • 2021-09-23
  • 2016-10-06
  • 2016-12-16
  • 2020-02-25
相关资源
最近更新 更多