1D интеграция с многопараметрическим входом функции - PullRequest
2 голосов
/ 25 июня 2019

Чтобы продемонстрировать, давайте начнем с простой многопеременной функции f (x, y) = xy ^ 2.

Я пытаюсь найти команду, которая позволила бы мне численно интегрировать f (2, y) = 2y ^ 2 от y = 0 до y = 2. (т.е. исходная функция является многопараметрической, нопри выполнении интегрирования остается только одна переменная)

Мне нужно было определить функцию таким образом, чтобы получить результаты, используя разные значения x.(вероятно, будет включать цикл for, но это уже другая история)

Я попытался просмотреть руководство пользователя Cubature, но, по-видимому, не нашел ничего полезного.Может быть, я пропустил это

Может кто-нибудь помочь?

1 Ответ

2 голосов
/ 25 июня 2019

В таком случае проще всего использовать обертку анонимной функции:

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)
...