Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №6.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
185.58 Кб
Скачать

1.2 Интегрирование в системе matlab. Численное интегрирование

Система MATLAB позволяет вычислять неопределенные и определенные интегралы, первообразные которых заданы в виде аналитических выражений. Вычисление интегралов аналитическими методами осуществляется в системе MATLAB с помощью функций int, имеющей следующий синтаксис:

int(f(x), а, b)

где: f(х) – подынтегральная функция; а, b – пределы интегрирования; необходимо указывать только при вычислении определенных интегралов.

С помощью функции int можно выполнять операции со следующими видами интегралов:

• неопределенный интеграл;

• неопределенный интеграл с символьными переменными;

• определенный интеграл с символьными значениями пределов интегрирования;

• определенный интеграл от алгебраических функций;

• кратные интегралы;

• несобственные интегралы.

Перед использованием символьных вычислений в среде MATLAB необходимо задать символьные переменные (то есть такие переменные, которым не присваивается числовое значений) с помощью команды syms:

syms x, y, z

где: x, y, z – символьные переменные.

Для нахождения решения кратных интегралов необходимо произвести интегрирование результата, полученного от предыдущего значения интеграла.

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

Под численным интегрированием понимают совокупность различных численных методов нахождения значения определённого интеграла. Основная идея большинства методов численного интегрирования состоит в замене подынтегральной функции на более простую функцию, интеграл от которой легко вычисляется аналитически. При замене подынтегральной функции на полином нулевой, первой и второй степени получаются соответственно методы прямоугольников, трапеций и парабол (Симпсона). Часто формулы для оценки значения интеграла называют квадратурными формулами.

Одним из наиболее распространенных методов реализации численного интегрирования является метод построения интегральных квадратурных формул для равномерных сеток, известный как формулы Котеса. Основной идеей метода является замена подынтегральной функции каким-либо интерполяционным многочленом. Вычисление определенного интеграла можно представить в виде:

где: числа Hi называются коэффициентами Котеса и вычисляются как интегралы от соответствующих многочленов, стоящих в исходном интерполяционном многочлене для подынтегральной функции при значении функции в узле

xi=a+i∙h; h=(b−a)/N

h – шаг сетки; N – число узлов сетки; i – индекс узлов. Слагаемое rN(f) определяет погрешность метода, которая может быть найдена разными способами. Для нечетных N≥1 погрешность может быть найдена интегрированием погрешности интерполяционного полинома подынтегральной функции. Частными случаями формул Котеса являются: формулы прямоугольников (n=0), формулы трапеций (n=1), формула Симпсона (n=2), формула Ньютона-Котеса более высоких порядков (n≥3).

В системе MATLAB вычисление интегралов реализовано численными методами трапеций, парабол (Симпсона) и метод Ньютона-Котеса.

Формула трапеций имеет следующий вид:

где: у0 – значение подынтегральной функции при х=а; уn – значение подынтегральной функции при х=b; h – шаг интегрирования.

Численное интегрирование в среде MATLAB на основе применения метода трапеций реализовано с помощью функций cumtrapz и trapz.

Функция cumtrapz выполняет интегрирование с накоплением по методу трапеций. Выходным параметром этой функции является вектор промежуточных вычислений, состоящий из N элементов, где N – число интервалов разбиения диапазона интегрирования функции. Значение последнего элемента вектора определяет итоговое значение интеграла.

Отличие функции trapz от функции cumtrapz состоит в том, что осуществляется простое интегрирование без накопления, то есть выходной параметр функции trapz представляет собой общее значение интеграла.

Функции trapz и cumtrapz имеют одинаковый синтаксис и имеют две формы записи:

trapz(x, y)

В этом случае функция вычисляет интеграл, подынтегральная функция которого определена как y=f(x), при этом значения аргумента функции и значения самой функции задаются векторами.

Вторая форма записи функции имеет вид:

trapz(y)

В данном случае подразумевается, что по умолчанию элементы вектора аргумента x принимают значения номеров элементов вектора значений функции y=f(x).

Основным недостатком метода трапеций является большая погрешность результата вычисления интеграла.

Формула парабол (Симпсона) имеет следующий вид:

В этой формуле ординаты с нечетными индексами умножаются на 4, а с четными — на 2. В данном случае предполагается, что N — число четное, при нечетном N формула имеет вид:

Вычислительный алгоритм метода Симпсона с автоматическим выбором шага реализуется в среде MATLAB с помощью функции quad, имеющей следующий синтаксис:

quad(‘name’, a, b, tol, trace)

где: name – имя файл-функции, задающей подынтегральное выражение, а, b – пределы интегрирования; tol – опциональный параметр, задающий точность вычисления, по умолчанию равен 1.0e-06; trace – опциональный параметр, позволяющий получить информацию о ходе вычислений в виде таблицы, в столбцах которой представлены значение количества вычислений, начальная точка текущего промежутка интегрирования, его длина и значение интеграла; для задания этого параметра необходимо указать любое положительное число отличное от нуля.

В качестве параметра name можно использовать аналитическое выражение подынтегральной функции, взятое в одинарные кавычки.

Автоматический выбор шага интегрирования заключается в следующем: интервал интегрирования разбивают на n отрезков и вычисляют значение интеграла; если полученное значение не удовлетворяет заданной точности вычислений, то n увеличивают вдвое и вновь вычисляют значение интеграла, и так повторяют до тех пор, пока не будет достигнута заданная точность.

Функция quad8 реализует алгоритм численного интегрирования с помощью метода Ньютона-Котеса 8-го порядка.

Для вычисления двойного интеграла методом Симпсона используется функция dblquad, имеющая следующий синтаксис:

dblquad('name', a, b, c, d)

где: 'name' – функция с двумя переменными; а, b – пределы интегрирования по внутренней переменной; с, d – пределы интегрирования по внешней переменной.