# int2d

определённый двумерный интеграл методом квадратуры и кубатуры

## Последовательность вызова

    [I,err]=int2d(X,Y,f [,params])

## Аргументы

X

  массив 3 на `N`, содержащий абсциссы вершин `N` треугольников.

Y

  массив 3 на `N`, содержащий ординаты вершин `N` треугольников.

f

  внешняя (функция или список или строка), определяющая подынтегральное выражение. `f(u,v)`

params

  вещественный вектор `[tol, iclose, maxtri, mevals, iflag]`. Значение по умолчанию `[1.d-10, 1, 50, 4000, 1]`.

  tol

    желаемые пределы ошибки. Если `iflag=0`, то `tol` интерпретируется как предел по относительной ошибке; если `iflag=1`, то предел по абсолютной ошибке.

  iclose

    целочисленный параметр, который определяет выбор методов LQM0 или LQM1. Если `iclose=1`, то используется LQM1. Любое другое значение `iclose` приводит к использованию LQM0. LQM0 использует значения функции только во внутренних точках треугольника. LQM1 обычно гораздо точнее, чем LQM0, но включает в себя вычисление подынтегральной функции на большем количестве точек, включая некоторые на границах треугольника. Обычно лучше использовать LQM1 несмотря на то, что подынтегральное выражение имеет точки неопределённости на границах треугольника.

  maxtri

    максимальное количество треугольников в конечной триангуляции области.

  mevals

    максимальное число разрешённых вычислений функции. Это число будет эффективным в ограничении вычислений только если оно меньше, чем `94*maxtri`, когда определён LQM1, либо `56*maxtri`, когда определён LQM0.

  iflag

    если `iflag=0`, то `tol` интерпретируется как предел по относительной ошибке; если `iflag=1`, то предел по абсолютной ошибке.

I

  целочисленное значение.

err

  оцененная ошибка.

## Описание

Функция `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]

## Смотрите также

- intc
- intl
- int3d
- intg
- mesh