Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
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]
Смотрите также
Report an issue | ||
<< impl | Дифференциальное счисление, интегрирование | int3d >> |