You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R-Studio用cubature包做有限二重积分adaptIntegrate报错求解

问题核心原因

cubature包的adaptIntegrate()函数对被积函数的输入格式有固定要求:多元被积函数只能接受一个向量类型的输入参数,向量的第1个元素对应第一个积分变量,第2个元素对应第二个积分变量,以此类推,你两次编写的函数都不符合这个格式要求。


两次报错的具体问题

  • 第一次代码错误:你定义的f10需要传入两个独立参数x和y,但adaptIntegrate调用函数时只会传一个长度为2的向量进去,自然会提示y参数缺失。
  • 第二次代码错误:你把函数改成了只接受一个参数x,但函数体里直接调用了未定义的变量y,自然会提示y未找到。

可正常运行的正确代码

# 加载cubature包
library(cubature)

# 正确定义二元被积函数:输入是单个向量x,x[1]对应第一个积分变量,x[2]对应第二个积分变量
f10 <- function(x) {
  1/(sqrt(1 - x[1]^2) * sqrt(1 - x[2]^2))
}

# 调用二重积分计算
a10 <- adaptIntegrate(f10, lower = c(0, 0), upper = c(1, 1))$integral
print(a10)

该积分的理论值为$(\frac{\pi}{2})^2 \approx 2.4674$,运行上述代码会得到与理论值一致的计算结果。


内容的提问来源于stack exchange,提问作者Chandan Chaurasiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:36:05