определённый двумерный интеграл методом квадратуры и кубатуры
[I,err]=int2d(X,Y,f [,params])
массив 3 на N
, содержащий абсциссы вершин N
треугольников.
массив 3 на N
, содержащий ординаты вершин N
треугольников.
внешняя (функция или список или строка), определяющая подынтегральное выражение.
f(u,v)
вещественный вектор [tol, iclose, maxtri, mevals, iflag]
.
Значение по умолчанию [1.d-10, 1, 50, 4000, 1]
.
желаемые пределы ошибки. Если iflag=0
, то tol
интерпретируется как предел по относительной ошибке; если iflag=1
, то
предел по абсолютной ошибке.
целочисленный параметр, который определяет выбор методов
LQM0 или LQM1. Если iclose=1
, то используется LQM1.
Любое другое значение iclose
приводит к использованию
LQM0. LQM0 использует значения функции только во внутренних точках
треугольника. LQM1 обычно гораздо точнее, чем LQM0, но включает в себя вычисление
подынтегральной функции на большем количестве точек, включая некоторые
на границах треугольника. Обычно лучше использовать LQM1 несмотря на то, что
подынтегральное выражение имеет точки неопределённости на границах треугольника.
максимальное количество треугольников в конечной триангуляции области.
максимальное число разрешённых вычислений функции. Это число будет эффективным в
ограничении вычислений только если оно меньше, чем
94*maxtri
, когда определён LQM1, либо
56*maxtri
, когда определён LQM0.
если iflag=0
, то tol
интерпретируется как предел по относительной ошибке; если iflag=1
, то
предел по абсолютной ошибке.
целочисленное значение.
оцененная ошибка.
Функция int2d
вычисляет двумерный интеграл фукнции f
по области, состоящей из n
треугольников. Оценка общей ошибки получается
и сравнивается с допуском tol
, который является входным аргументом функции. Допуск
ошибки считается либо относительным, либо абсолютным в зависимости от входного значения iflag
.
Метод "локальный квадратурный модуль" (LQM) применяется к каждому входному треугольнику и оценивает общий
интеграл и вычисляются оценки общего интеграла и общей ошибки. Локальный квадратурный модуль является
либо процедурой LQM0, либо процедурой LQM1 и выбор между ними определяется значением
входной переменной iclose
.
Если оценка общей ошибки превышает допуск, то треугольник с наибольшей абсолютной ошибкой
делится на два треугольника медианой к его наибольшей стороне. Локальный квадратурный модуль
затем применяется к каждому из этих треугольников для получения новых оценок интеграла и ошибки.
Этот процесс повторяется до тех пор, пока (1) допуск ошибки не будет удовлетворён,
(2) количество сформированных треугольников не превысит входной параметр maxtri
,
(3) количество вычислений подынтегральной функции не превысит входной параметр mevals
,
либо (4) функция не почувствует, что ошибки округления начинают портить результат.
X=[0,0;1,1;1,0]; Y=[0,0;0,1;1,1]; deff('z=f(x,y)','z=cos(x+y)') [I,e]=int2d(X,Y,f) // вычисляет подынтегральное выражение по площади [0 1]x[0 1] | ![]() | ![]() |