Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - Русский


int2d

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

Синтаксис

[I, err] = int2d(X, Y, f)
[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]

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

  • mesh2d — Triangulation of n points in the plane
  • int3d — определённый трёхмерный интеграл методом квадратуры и кубатуры
  • intg — определённый интеграл
  • intl — интеграл Коши
  • intc — интеграл вдоль прямой на комплексной плоскости
Report an issue
<< impl Дифференциальное счисление, интегрирование int3d >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:41:12 CEST 2023