New In

Векторное численное интегрирование

Основные моменты

  • Удобное решение для вектора задач интегрирования

     

  • Аддитивная квадратурная модель

     

  • Устойчивость к сингулярным точкам

Численное интегрирование используется во многих вычислениях интегралов, когда аналитические решения недоступны или их трудно вычислить. Векторное численное интегрирование аппроксимирует вектор одномерных численных интегрирований одновременно.

Новый класс Мата, QuadratureVec(), функционально такой же, как Quadrature(), за исключением того, что он более удобно обрабатывает вектор задач интегрирования. Точнее, QuadratureVec() численно аппроксимирует вектор одномерных интегралов адаптивным методом Гаусса-Кронрода (для сравнения также приводится адаптивный метод Симпсона).

QuadratureVec() используется так же, как и Quadrature(), всего за четыре шага, а именно: создание экземпляра класса QuadratureVec(), указание функций-оценщиков, установка пределов и выполнение вычислений.

Давайте посмотрим, как это работает

Новый класс Mata QuadratureVec() создан для хранения и вычисления векторного численного интегрирования.

Приведем пример аппроксимации следующих трех интегралов:

 
 

Определив функции-оценщики, мы выполним четыре шага, которые требуются каждый раз, когда мы используем класс QuadratureVec(). Во-первых, мы создаем экземпляр q класса QuadratureVec():

: q = QuadratureVec()

Во-вторых, мы используем функцию setEvaluator(), чтобы указать на функции оценщика, определенные как оценщик векторов столбцов:

: evaluator = (&f1() \ &f2() \ &f3())
: q.setEvaluator(evaluator)

В-третьих, с помощью функции setLimits() мы задаем нижнюю и верхнюю границы, определяемые как пределы:

: limits = ((1, 2) \ (0,pi()) \ (0,1))
: q.setLimits(limits)

В-четвертых, мы используем integrate() для вычисления аппроксимаций: