Я пытаюсь оценить следующий двойной интеграл численно с помощью функции Integral2 из пакета R pracma.Для тех, кто интересуется контекстом, это связано с прообразом проблемы Эйлера «Пифагорейский муравей».Ниже приведен фрагмент кода, который я пробовал:
library(pracma)
f <- function(x, y) (2*pi - pi/2 - atan((40-y)/x) - atan((30-x)/y))/(2*pi)
xmin <- 0
xmax <- function(y) (30 - 0.75*y)
ymin <- 0
ymax <- 40
prob_integral <- integral2(f, xmin, xmax, ymin, ymax)
Возвращает следующее сообщение об ошибке:
> Error in integral2(f, xmin, xmax, ymin, ymax) : is.numeric(xmax) is
> not TRUE
Я попробовал их пример кода, и он работает.
f <- function(x, y) sqrt(1 -x^2 - y^2)
xmin <- 0; xmax <- 1
ymin <- 0; ymax <- function(x) sqrt(1 - x^2)
I <- integral2(f, xmin, xmax, ymin, ymax)
I$Q # 0.5236076 - pi/6 => 8.800354e-06
Мне интересно, не работает ли мой код из-за того, что некоторые точки не имеют оценки с функцией arctan внутри интеграла.например (0,40), (30,0).Если это так, то какое альтернативное решение я могу использовать?
Спасибо за вашу помощь!
Брайан