【问题标题】:Double Integral in R with 2 variablesR中带有2个变量的双积分
【发布时间】:2020-04-02 04:43:45
【问题描述】:

对不起。但我仍然很困惑如何从这些答案中得到我的问题。我的问题如下。

我想在 R 中编写这个计算:

在我的手上,它变成了 141,66666666 π。如果两个积分都来自使用adaptIntegrate()的精确数字,我知道如何取积分。但我不确定在我的情况下该怎么做。你们能帮帮我吗?非常感谢您。

【问题讨论】:

  • 你能展示一下你到目前为止尝试过的东西吗
  • 一种标准的处理方式是使用蒙特卡罗模拟来估计积分(如果进行大量模拟,您可以获得相当精确的估计)。如果将问题转换为随机变量问题,则可以对双积分进行估计

标签: r integral


【解决方案1】:

pracma::integral2:

library(pracma)

fun <- function(x,y) sqrt(2.5^2 * (1 - x^2/5^2 - y^2/8.5^2))
xmin <- 0; xmax <- 5
ymin <- 0; ymax <- function(x) sqrt(8.5^2 * (1-x^2/5^2))

integral2(fun, xmin, xmax, ymin, ymax)
# $Q
# [1] 55.6333
# 
# $error
# [1] 6.555276e-06

和你的结果不一样。

【讨论】:

    【解决方案2】:

    通过将函数与 1-dim 双重集成,您将获得类似的结果。 集成例程,例如 Base R 中的 integrate

    f = function(x) {
        integrate(function(y) {sqrt(1 - (x/5)^2 - (y/8.5)^2)},
                  0, 8.5*sqrt(1 - (x/5)^2))$value
    }
    
    (res = 2.5 * integrate(Vectorize(f), 0, 5)$value)
    ## [1] 55.63237
    

    您的手动计算可能是错误的。

    【讨论】:

      猜你喜欢
      • 2023-01-02
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 2017-08-28
      • 2020-11-08
      • 2018-08-12
      相关资源
      最近更新 更多