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

基于Hit and Miss法求解定积分的R语言实现及绘图需求

用Hit and Miss(命中-错失)法计算定积分∫₀¹x³dx的R实现

没问题!我帮你写一套完整的R代码来实现Hit and Miss法计算这个积分,还包含可视化部分,用100000个随机数完全没问题~

先简单回顾下Hit and Miss法的核心逻辑:我们在**[0,1]×[0,1]的正方形区域**里生成大量随机点,统计落在曲线( y=x^3 )下方的点的数量占总点数的比例——因为正方形的面积是1,这个比例就近似等于积分值(积分本质是曲线下的面积)。

1. 核心计算代码

下面是生成100000个随机数并计算积分近似值的代码:

# 设置随机种子,保证结果可复现
set.seed(123)

# 生成100000个[0,1]区间的均匀随机数作为x坐标
x <- runif(n = 100000, min = 0, max = 1)
# 生成100000个[0,1]区间的均匀随机数作为y坐标
y <- runif(n = 100000, min = 0, max = 1)

# 统计命中次数:y <= x^3的点的数量
hit_count <- sum(y <= x^3)
# 计算积分近似值:命中次数 / 总点数
approx_integral <- hit_count / 100000

# 输出结果
cat("积分的近似值:", approx_integral, "\n")
cat("积分的真实值:", 1/4, "\n") # 因为∫₀¹x³dx = [x⁴/4]₀¹ = 1/4 = 0.25

运行这段代码后,你会得到一个接近0.25的近似值,用随机种子123的话,结果大概是0.249左右,和真实值非常接近。

2. 可视化命中/错失点的绘图代码

为了更直观展示方法原理,我们可以把所有随机点画出来,命中的点(在曲线下方)用蓝色,未命中的用红色:

# 创建空白画布,设置坐标轴范围和标题
plot(x = NULL, y = NULL, xlim = c(0,1), ylim = c(0,1), 
     xlab = "x", ylab = "y", main = "Hit and Miss法计算∫₀¹x³dx")

# 绘制曲线y = x³,用黑色实线,线宽2
curve(expr = x^3, from = 0, to = 1, add = TRUE, col = "black", lwd = 2)

# 绘制命中的点(蓝色)
points(x[y <= x^3], y[y <= x^3], col = "blue", pch = 16, cex = 0.5)
# 绘制未命中的点(红色)
points(x[y > x^3], y[y > x^3], col = "red", pch = 16, cex = 0.5)

# 添加图例
legend("topleft", legend = c("命中点", "未命中点", "y=x³"), 
       col = c("blue", "red", "black"), pch = c(16,16,NA), lty = c(NA,NA,1), lwd = 2)

运行这段代码后,你会看到一张清晰的可视化图:黑色曲线是( y=x^3 ),蓝色点集中在曲线下方,红色点在上方,能直观理解Hit and Miss法的统计逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:10:31