тройное интегрирование для блока в R: числовая ошибка - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь выяснить, как надежно вычислить массу твердого тела с переменной плотностью, которую я моделирую, используя функцию регрессии.

Моя коробка имеет следующие размеры:

w = 50
l = 150
h = 15

Чтобы помочь мне обрести интуицию в использовании числового интегратора в pracma, я представил, что у блока есть две области плотности (h <10 -> 50, h> = 10 -> 100).

l*w*(5*100 + 10*50) # => 7500000

Тем не менее, когда я передаю это числовому интегратору, я получаю:

library(pracma)
density = function(x, y, z) ifelse(z > 10, 100, 50)
integral3(density, xmin = 0, xmax = 50, ymin = 0, ymax = 150, zmin = 0, zmax = 15)

Возвращает 7530340. Можете ли вы помочь мне понять, что здесь происходит, и как я могу улучшить вычисление интеграла?

...