Главная > Математика > Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

5.7. Применение сплайнов для численного интегрирования

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

Рассмотрим применение сплайнов для вычисления определенных интегралов или так называемую сплайн-квадратуру [19]. Пусть необходимо вычислить интеграл вида

Разобьем интервал на участки

на каждом из которых подынтегральную функцию заменим кубическим сплайном

Тогда интеграл (5.41) запишется как сумма интегралов от сплайнов

Последняя формула упрощается при подстановке в нее выражений (3.26), (3.34) и (3.35) для коэффициентов

Нетрудно видеть, что первая сумма в формуле (5.42) есть формула трапеций, а вторая сумма - поправочное слагаемое для формулы трапеций, примененной к сплайнам, так как при малых значениях коэффициенты близки по величине, коэффициент следовательно,

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

Алгоритм (5.42) реализован в программах 5.5.

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

пределы интегрирования (строка 30). Алгоритм реализован для случая равноотстоящих узлов на расстоянии которое вычисляется в строке 40. Таблица узлов и значений подынтегральной функции в узлах формируется в подпрограмме, расположенной в строках 100-190. При обработке экспериментальных данных эта подпрограмма может быть такой же, как и в программе 3.6, где данные вводятся с клавиатуры ПК. Для вычисления коэффициентов сплайнов используется метод прогонки, подпрограмма которого размещена в строках 200-290 и взята без изменения из программы 3.6. Накопление сумм по формуле (5.42) осуществляется в подпрограмме в строках 300-390. При инициализации переменных для первой и второй сумм учтены граничные условия для свободных концов сплайнов При интегрировании функций, удовлетворяющих другим условиям на границах, следует изменить подпрограммы вычисления коэффициентов с; и интегрирования.

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

Отличие операторов циклов, а также операторов, содержащих индексированные переменные, в программе по сравнению с программами на Бейсике и Паскале связано с тем, что нумерация элементов массивов в Фортране начинается с единицы.

Для выбранного примера погрешность вычисления интеграла оказалась сравнимой с погрешностью, даваемой методом Симпсона при том же шаге интегрирования. Для интеграла при 8 сплайнах по программам 5.5 получено значение 1.99993, метод Симпсона (программы 5.3) с тем же количеством узлов дает приближенное значение этого интеграла 2.00027.

(см. скан)

(см. скан)

(см. скан)

<< Предыдущий параграф Следующий параграф >>
Оглавление