8月15日题目解答
主题活动
发布于 2025-08-18 21:52:52
查看 2过去314天
using QuadGK, HCubature
1. 计算第一个二重积分:∫₀²∫₀¹ (sin(x)√y + x) dx dy
function calculate_integral1()
# 内层积分(对x)在固定y时
inner_x(y_val) = quadgk(x -> sin(x)*sqrt(y_val) + x, 0, 1)[1]
# 外层积分(对y)
result, error = quadgk(inner_x, 0, 2)
return result
end
2. 计算三重积分:∫₀ᴾᴵ∫₀¹∫₋₁¹ (y sin(x) + z cos(x)) dx dy dz
function calculate_integral2()
# 最内层积分(对x)
function inner_x(y_val, z_val)
return quadgk(x -> y_valsin(x) + z_valcos(x), -1, 1)[1]
end
# 中间层积分(对y)
function inner_y(z_val)
return quadgk(y -> inner_x(y, z_val), 0, 1)[1]
end
# 最外层积分(对z)
result, error = quadgk(inner_y, 0, π)
return result
end
3. 计算概率 P(A):点落在以(0,0)为圆心,半径为2的圆内
function calculate_probability()
# 矩形区域总面积
total_area = 4.0
# 定义指示函数:在圆内返回1,否则返回0
function indicator(xy)
x, y = xy
return (x^2 + y^2 <= 4.0) ? 1.0 : 0.0
end
# 在矩形区域[0,2]×[0,2]上计算二重积分
integral, error = hcubature(indicator, [0, 0], [2, 2])
# 概率 = 圆内面积 / 总面积
probability = integral / total_area
return probability
end
主程序
function main()
println("8月15日 题目解答")
println("\n1. 计算积分结果:")
println("(1) ∫₀²∫₀¹ (sin(x)√y + x) dx dy = ", calculate_integral1())
println("(2) ∫₀ᴾᴵ∫₀¹∫₋₁¹ (y sin(x) + z cos(x)) dx dy dz = ", calculate_integral2())
println("\n2. 概率计算:")
pA = calculate_probability()
println("事件A发生的概率 P(A) = ", pA)
println("解析值 π/4 ≈ ", π/4, " (用于验证)")
end
执行程序
main()
所属专栏:Syslab基础平台
产品信息:Sysplorer系统建模仿真环境