为了演示,让我们从一个简单的多变量函数f(x,y)= xy ^ 2开始。
我正在尝试找到一条命令,使我可以从y = 0到y = 2进行f(2,y)= 2y ^ 2的数值积分(即原始函数是多变量的,但只有一个变量实际进行集成时仍然存在)
我需要以这种方式定义函数,因为我需要使用x的不同值来获取结果。 (可能涉及for循环,但这是另一回事了)
我试图浏览Cubature的用户指南,但是显然没有发现任何有用的东西。也许我错过了
有人可以帮忙吗?
答案 0 :(得分:2)
在这种情况下,使用匿名函数包装器最简单:
using QuadGK
f(x,y) = x*y^2
intf(x) = quadgk(y -> f(x, y), 0, 2)
如果匿名函数的时间更长,您可以编写:
intf(x) = quadgk(0, 2) do y
f(x, y)
end
这与后者完全等效,但是do
语法允许您编写更长的匿名函数主体。
现在您可以编写例如:
julia> intf(1)
(2.6666666666666665, 4.440892098500626e-16)
julia> intf(2)
(5.333333333333333, 8.881784197001252e-16)
julia> intf(3)
(8.0, 0.0)