【问题标题】:Multifold integration with Matlab与 Matlab 的多重集成
【发布时间】:2015-06-23 04:05:16
【问题描述】:

这个问题可能看起来很傻,但我自己找不到解决方法。我需要用Matlab做一些范围是无限的多倍积分(至少四倍),我没有找到任何合适的函数。

比如下面的积分应该怎么做:

积分[f(x,y,z,w),{x,-\infty,\infty},{y,-\infty,\infty},{z,-\infty,\infty},{ w,-\infty,\infty}]

函数 f 可以定义为

f=1/(x-y)*1/(z-w)exp(-0.25(x^2+y^2+z^2+w^2))

在 Matlab 中,有时需要在参数后面添加一个点以便函数可以执行,这让我很困惑。

如果有人可以提供帮助,我将不胜感激。

【问题讨论】:

  • 如果您的意思是 symbolic 集成,请在您的答案中添加“symbolic-math”标签

标签: matlab symbolic-math


【解决方案1】:

我假设您的意思是符号集成。为此

  1. 定义您的symbolic variables
  2. 定义这些符号变量的函数。
  3. 重复应用int 以对每个变量进行积分。这假设该函数满足 Fubini's theorem 的假设(它为您的示例函数所做)。

所以:

>> syms x y z w                           %// step 1
>> f = exp(-x^2-y^2-z^2-w^2)              %// step 2
f =
exp(- w^2 - x^2 - y^2 - z^2)
>> F = f
F =
exp(- w^2 - x^2 - y^2 - z^2)
>> F = int(F,x,-inf,inf)                  %// step 3: x
F =
pi^(1/2)*exp(-w^2)*exp(-y^2)*exp(-z^2)
>> F = int(F,y,-inf,inf)                  %// step 3: y
F =
pi*exp(- w^2 - z^2)
>> F = int(F,z,-inf,inf)                  %// step 3: z
F =
pi^(3/2)*exp(-w^2)
>> F = int(F,w,-inf,inf)                  %// step 3: w
F =
pi^2

【讨论】:

  • 感谢您的回答。是的,最终我会进行符号计算。但是,被积函数是我自己定义的函数。对于这些函数,似乎有时需要在参数后面加一个点来运行积分,但我对此很不擅长。我刚刚编辑了这个问题以包括这个,你能看看吗?如果您愿意提供帮助,我将不胜感激。
  • 你的意思是element-wise multiplication
  • 也许......我需要做的事情是首先对 w 和 z 进行积分并得到一个作为 x 和 y 函数的结果,如果解析表达式不能得到。然后我需要将 x 和 y 的结果函数与 x 和 y 的另一个函数相乘,并对它们的乘积进行积分
  • 因此您需要参数化集成。但这就是int 所做的。看我的例子。我整合了x,然后整合了y。其结果是wz 的函数,即pi*exp(-w^2-z^2)。您可以将该结果分配给符号变量(在我的示例中为F),将其乘以其他函数,然后继续对其他变量进行积分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
相关资源
最近更新 更多