Численно оцените тройной интеграл
q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax)
q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,Name,Value)
Функция integral3
пытается удовлетворить:
abs(q - Q) <= max(AbsTol,RelTol*abs(q))
q
является вычисленным значением интеграла, и Q
является (неизвестным) точным значением. Абсолютные и относительные допуски обеспечивают способ обменять точность и время вычисления. Обычно, относительный допуск определяет точность интегрирования. Однако, если abs(q)
является достаточно маленьким, абсолютный допуск определяет точность интегрирования. Необходимо обычно задавать и абсолютные и относительные допуски вместе. Метод 'iterated'
может быть более эффективным, когда ваша функция имеет разрывы в области интегрирования. Однако лучшая производительность и точность происходят, когда вы разделяете интеграл в точках разрыва и суммируете результаты нескольких интегрирований.
Когда интеграция по непрямоугольным областям, лучшей производительности и точности происходит когда любые из пределов: ymin
, ymax
, zmin
, zmax
является указателями на функцию. Постарайтесь не устанавливать значения функции подынтегрального выражения обнулять, чтобы объединяться по непрямоугольной области. Если необходимо сделать это, задайте метод 'iterated'
.
Используйте метод 'iterated'
когда любые из пределов: ymin(x)
, ymax(x)
, zmin(x,y)
, zmax(x,y)
является неограниченными функциями.
При параметризации анонимных функций, иметь в виду, что значения параметров сохраняются для жизни указателя на функцию. Например, функциональный fun = @(x,y,z) x + y + z + a
использует значение a
в то время, когда fun
был создан. Если вы позже решаете изменить значение a
, необходимо переопределить анонимную функцию с новым значением.
Если вы задаете пределы с одинарной точностью интегрирования, или если fun
возвращает результаты с одинарной точностью, вы, возможно, должны задать большие допуски абсолютной и относительной погрешности.
Чтобы решить 4-D и интегралы высшего порядка, можно вложить вызовы integral
, integral2
и integral3
. Другая опция должна использовать функцию integralN
на MATLAB® File Exchange, который решает интегралы порядков 4 - 6.
[1] Л.Ф. Шемпин “Векторизовал Адаптивную Квадратуру в MATLAB”, Журнал Вычислительной и Прикладной математики, 211, 2008, pp.131–140.
[2] Л.Ф. Шемпин, "Программа MATLAB для Квадратуры в 2D". Прикладная математика и Вычисление. Издание 202, Выпуск 1, 2008, стр 266–274.