Приближенное вычисление определенных интегралов по формуле трапеций. Алгоритм стандартной подпрограммы
Математическая модель и алгоритмическое описание процесса приближенного интегрирования. Применение составной квадратурной формулы трапеций для повышения эффективности вычислений при использовании подпрограммы. Тестирование стандартной подпрограммы.
Рубрика | Математика |
Вид | статья |
Язык | русский |
Дата добавления | 26.01.2019 |
Размер файла | 292,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
[8179-7426-9881] Руководство программиста
Приближенное вычисление определенных интегралов по формуле трапеций. Алгоритм стандартной подпрограммы
Содержание
Введение
1. Исходная формулировка задачи
2. Математическая модель процесса приближенного интегрирования
3. Алгоритмическое описание процесса приближенного интегрирования
4. Повышение эффективности вычислений при использовании подпрограммы
5. Тестирование стандартной подпрограммы
6. Область применения алгоритма
7. Текст стандартной подпрограммы
Введение
Руководство содержит данные, необходимые для составления стандартной подпрограммы на языке программирования высокого уровня.
Руководство предназначено для системных программистов.
1. Исходная формулировка задачи
Разработать алгоритм приближенного вычисления определенных интегралов
Применить в качестве теоретической базы формулу трапеций.
Выполним построение математической модели процесса приближенного интегрирования.
2. Математическая модель процесса приближенного интегрирования
Формула трапеций приведена в учебнике ([1], С.345). Для вывода формулы отрезок интегрирования разбивается точками на равных частичных отрезков .
На каждом частичном отрезке выполняется интерполирование функции . В качестве приближающей функции используется алгебраический многочлен первой степени . Узлами интерполяции выбираются точки, абсциссы которых равны. Требуется, чтобы значения функции в этих узлах совпадали со значениями функции :
.
Составим систему линейных уравнений, из которых однозначно определяются коэффициенты
Таким образом, приближающая функция имеет вид
На каждом частичном отрезке :
- значения функции в точках принимаются равными значениям приближающей функции
- вычисляются определенные интегралы от приближающей функции
Составляется сумма по всем частичным отрезкам
Сумма частных значений подынтегральной функции в узлах интерполяции с учетом их весов () принимается как приближенное значение интеграла, которое соответствует выбранному разбиению отрезка интегрирования на частичных отрезков,
. (2)
Формулу трапеций (2) применим для построения модели приближенного вычисления интеграла.
Если точное значение интеграла неизвестно, то для оценки погрешности формулы трапеций при выбранном разбиении отрезка интегрирования на частичных отрезков необходимо использовать остаточный член квадратурной формулы трапеций
где на отрезке . В противном случае формула трапеций мало пригодна
для приближенных вычислений интеграла.
В выбранном разбиении отрезка интегрирования формула трапеций содержит параметра: , которые не зависят от функции Указанные параметры надо выбрать так, чтобы погрешность формулы трапеций не превышала заданную погрешность. Среди перечисленных параметров только параметр является свободным, остальные параметры зависят от параметра . Таким образом, для обеспечения требуемой точности вычисления интеграла необходимо изменять значение параметра . С этой целью выполним последовательное разбиение отрезка интегрирования на 1, 2, … частичных отрезков и для каждого разбиения вычислим по формуле (1) суммы . Составим числовую последовательность Члены этой последовательности рассматриваются как приближения интеграла. Отметим три свойства этой последовательности, которые будут использованы при построении математической модели.
1) Последовательность для интегрируемых функций имеет своим конечным пределом ([1], С.327)
С помощью сумм значение определенного интеграла для каждой интегрируемой функции может быть вычислено с любой степенью точностью: при возрастании n до бесконечности абсолютная погрешность формулы трапеций безгранично убывает.
2) Последовательность имеющая конечный предел , удовлетворяет критерию
Коши ([1], С.107): для любого числа существует такой номер что для всех омеров и выполняется неравенство .
3) Извлечем из последовательности частичную последовательность, используя суперпозицию функций . Функция представляет собой возрастающую функцию от , принимающую натуральные значения и стремящуюся к бесконечности при возрастании . Суперпозиция функций дает сложную функцию , которая через посредство и сама является функцией от . В дальнейшем используется сокращенное обозначение функции
Установлено ([1], С.105), если последовательность имеет определенный предел , то тот же предел имеет и частичная последовательность
Последовательность может быть использована для построения гипотетической математической модели и разработки алгоритма. Однако в этом случае для получения в качестве окончательного результата алгоритма требуется большой объем вычислений (для расчета используется частных значений подынтегральной функции). Для построения математической модели используем вместо последовательности частичную последовательность . Последняя соответствует последовательному разбиению отрезка интегрирования на (k = 0,1,2,…) частичных отрезков, равной длины. Члены числовой последовательности примем в качестве приближений интеграла Для характеристики k-го приближения интеграла будем использовать следующие параметры: длина каждого частичного отрезка,
сумма частных значений подынтегральной функции в узлах интерполяции,
приближенное значение интеграла в данном разбиении отрезка интегрирования.
Эти параметры составляют четыре числовых последовательности.
Для определения числовых последовательностей применим рекуррентные формулы. Последовательности определяются заданием k-го члена последовательности. Вывод формул выполнен с помощью тождественных преобразований формулы трапеций.
Начальное приближение (для k = 0) выберем в виде
При расчете начального приближения выбираются два узла интерполяции , вычисляются частные значения функции в этих узлах и включаются в состав суммы .
Формулы для определения последовательностей для имеют вид
где длина каждого частичного отрезка (шаг между соседними узлами интерполяции на текущей итерации); множество узлов интерполяции, вновь выбранных на текущей итерации; шаг между узлами интерполяции, вновь выбранными на текущей итерации; число узлов интерполяции, вновь выбранных на текущей итерации (). При выполнении итерации вычислены частные значения функции в узлах интерполяции, вновь выбранных на текущей итерации, и включены в состав суммы . С помощью указанных формул установлено правило преобразования предыдущего приближения интеграла (в том числе и начального приближения) в следующее приближение при последовательном изменении параметра k от 1 с шагом 1. При этом погрешность -го члена последовательности при возрастании k до бесконечности безгранично убывает (основание: третье свойство частичной последовательности). Вычисления последовательности прекращают после того как два последовательных приближения совпадают с заданной степенью точности, т. е., когда выполнится неравенство
где заданная погрешность (основание: второе свойство последовательности).
Тогда в качестве приближенного значения интеграла полагают т. е. Эта математическая модель в дальнейшем используется для разработки алгоритма. В этом случае для получения в качестве окончательного результата алгоритма требуется вычислить частных значений подынтегральной функции. Для сравнения в гипотетической математической модели для получения такого же результата требуется вычислить частных значений подынтегральной функции.
Приведем алгоритм процесса приближенного интегрирования.
3. Алгоритмическое описание процесса приближенного интегрирования
Форма реализации алгоритмического процесса: стандартная подпрограмма. Имя подпрограммы устанавливается разработчиком. Определены следующие формальные параметры подпрограммы: нижний предел интеграла; верхний предел интеграла; абсолютная погрешность приближенного значения интеграла; символьная переменная, содержащая полное имя подпрограммы, предназначенной для вычисления значений подынтегральной функции. Форма выполнения алгоритмического процесса: вызов стандартной подпрограммы из основной программы. Вызов осуществляется по имени стандартной подпрограммы; после имени должны следовать аргументы, заключенные в круглые скобки. Из основной программы в стандартную подпрограмму передаются четыре аргумента, которые соответствуют формальным параметрам стандартной подпрограммы. Стандартная подпрограмма возвращает в основную программу приближенное значение интеграла. В соответствии с описанием четвертого формального параметра основная программа должна содержать подпрограмму для вычисления частных значений подынтегральной функции . Эта подпрограмма должна иметь в качестве формального параметра аргумент подынтегральной функции . Совокупность возможных исходных данных для алгоритма (стандартной подпрограммы) определяется четырьмя аргументами, которые передаются в стандартную подпрограмму из основной программы. Совокупность возможных результатов алгоритма определяется приближенным значением интеграла которое при выполнении стандартная подпрограмма возвращает в основную программу. Совокупность промежуточных результатов алгоритма определяется четырьмя числовыми последовательностями , которые заданы формулами и начальными условиями. Для вычисления каждого нового приближения интеграла используется итерационный метод. В состав промежуточных результатов также включены параметры предыдущей итерации В качестве этих параметров предварительно регистрируются параметры текущей итерации до перехода к следующей итерации. Выполнение алгоритма начинается с вычисления начального приближения интеграла (для )
Частные значения подынтегральной функции вычисляются с помощью подпрограммы. Вызовы этой подпрограммы в стандартной подпрограмме осуществляются с использованием макропеременной (см. четвертый формальный параметр стандартной подпрограммы). Для этого основная программа передает в стандартную подпрограмму в качестве четвертого аргумента символьную переменную, которой присвоено полное имя подпрограммы для вычисления значения подынтегральной функции. Последовательное вычисление каждого следующего приближения интеграла, исходя из предыдущего (в том числе и начального приближения) организовано в виде бесконечного цикла . В теле цикла последовательно выполнить следующие операции:
- вычислить число частичных отрезков
;
- вычислить длину частичного отрезка
- присвоить начальное значение абсциссе, которая определяет текущий узел интерполяции, вновь выбранный на текущей итерации
;
- вычислить шаг между узлами интерполяции, вновь выбранными на текущей итерации
;
- вычислить сумму частных значений функции в узлах интерполяции. На предыдущей итерации сумма частных значений функции в узлах интерполяции вычислена и установлена в качестве члена последовательности На текущей итерации эта сумма дополняется частными значениями функции в узлах интерполяции, вновь выбранных на этой итерации. Для вычисления суммы используется цикл со счетчиком (начальное значение счетчика равно 1, конечное значение равно В теле цикла последовательно выполнить следующие операции:
.
Здесь интерпретируется как вызов подпрограммы для вычисления значения подынтегральной функции; из стандартной подпрограммы в эту подпрограмму передается в качестве аргумента(абсцисса текущего узла интерполяции, вновь выбранного на текущей итерации);
- вычислить абсциссу следующего узла интерполяции, вновь выбранного на текущей итерации
и передать управление в начало цикла ;
- на текущей итерации после выполнения цикла вычислить приближенное значение интеграла
;
- проверить неравенство
.
Если неравенство выполнено, то в качестве приближенного значения интеграла принимается (окончательный результат алгоритма), осуществляется выход из цикла и работа алгоритма заканчивается. Стандартная подпрограмма передает в основную программу окончательный результат алгоритма. В противном случае параметры текущей итерации регистрируются в качестве параметров предыдущей итерации и управление передается в начало цикла для вычисления следующего приближения интеграла. Окончательный результат алгоритма обязательно получается для всех интегрируемых функций (свойство результативности алгоритма). Вычислительный процесс является оптимальным, если в качестве основного критерия принять объем вычислений (свойство эффективности алгоритма).
4. Повышение эффективности вычислений при использовании подпрограммы
приближенный интегрирование трапеция подпрограмма
Для повышения эффективности вычислений можно использовать составную квадратурную формулу трапеций. В этом случае исходный интеграл представляется в виде
и для вычисления интегралов по частичным отрезкам применяется стандартная подпрограмма. Как правило, необходимо использовать составную квадратурную формулу трапеций для приближенного вычисления интеграла функции которая имеет на отрезке интегрирования точки разрыва. Эффективность вычислений возрастает, если точки разрыва будут принадлежать частичным отрезкам небольшой длины.
5. Тестирование стандартной подпрограммы
Выполнено тестирование стандартной подпрограммы, разработанной на основе приведенного алгоритма. Результаты тестов подтвердили указанные свойства алгоритма. Оценка сложности данного алгоритма и сложности вычислений, выполняемых тестовой стандартной подпрограммой, по сравнению с другими аналогичными стандартными подпрограммами не проводилась.
6. Область применения алгоритма
Область применения алгоритма - вычисление определенных интегралов, которые не выражаются в конечном виде через элементарные функции. При этом подынтегральные функции одного действительного переменного должны принадлежать к одному из следующих классов интегрируемых функций: непрерывных функций на отрезке интегрирования; ограниченных функций, имеющих на отрезке интегрирования конечное число точек разрыва; монотонных ограниченных функций на отрезке интегрирования.
7. Текст стандартной подпрограммы
Для иллюстрации в качестве примера приведем текст стандартной подпрограммы
SPVM997.PRG. Среда программирования и выполнения подпрограммы: операционная
система MS DOS, система программирования CLIPPER 5.0.
// ------------------------------------------------------------
// ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ
// ПО ФОРМУЛЕ ТРАПЕЦИЙ. СТАНДАРТНАЯ ПОДПРОГРАММА
FUNCTION SPVM997 (pg1, pg2, pg3, pg4)
// pg1 - нижний предел интеграла
// pg2 - верхний предел интеграла
// pg3 - абсолютная погрешность приближенного значения интеграла
// pg4 - имя подпрограммы для вычисления значений подынтегральной функции
LOCAL is, pc1, pc2, pc3, pc4, pc5, pc6, pc7:= 0, pc8, pc9
// pc1 - длина отрезка интегрирования
// pc2 - длина частичного отрезка на текущей итерации (шаг между соседними
// узлами интерполяции на текущей итерации)
// pc3 - число частичных отрезков на предыдущей итерации
// pc4 - число частичных отрезков на текущей итерации
// pc5 - сумма частных значений подынтегральной функции в узлах интерполяции
// pc6 - приближенное значение интеграла на предыдущей итерации
// pc7 - приближенное значение интеграла на текущей итерации
// pc8 - абсцисса текущего узла интерполяции, вновь выбранного на текущей итерации
// pc9 - шаг между узлами интерполяции, вновь выбранными на текущей итерации
IF pg1 # pg2
pc1 pg2 - pg1
pc3 1
pc5 (&pg4.(pg1) + &pg4.(pg2)) / 2
pc6 pc1 * pc5
DO WHILE .T.
pc4 2 * pc3
pc2 pc1 / pc4
pc8 pg1 + pc2
pc9 2 * pc2
FOR is 1 TO pc3
pc5 pc5 + &pg4.(pc8)
pc8 pc8 + pc9
NEXT
pc7 pc2 * pc5
IF ABS (pc6 - pc7) < pg3 .AND. pc4 4
EXIT
ENDIF
pc3 pc4
pc6 pc7
ENDDO
ENDIF
RETURN pc7
// ------------------------------------------------------------
Примечания:
1. В приведенном примере вызов подпрограммы для вычисления значения подынтегральной функции из стандартной подпрограммы производится с использованием макропеременной &pg4.(pg1), где & - операция макроподстановки, pg4 - макропеременная, точка (.) является макроразделителем и используется для маркировки конца макропеременной и отделения ее от примыкающего текста в выражении, pg1 - аргумент, который передается из стандартной подпрограммы в подпрограмму для вычисления значения подынтегральной функции. В процессе выполнения стандартной подпрограммы содержимое макропеременной компилируется макрокомпилятором и выполняется. При этом скомпилированный код не сохраняется.
2. В приведенном примере вызов подпрограммы для вычисления значения подынтегральной функции может быть заменен исполнением блока кода. Например, в основной программе переменной bBlock присвоен блок кода bBlock := { | x | MyFunc(x) }, где MyFunc - имя подпрограммы для вычисления значения подынтегральной функции, x - формальный параметр блока кода. При вызове стандартной подпрограммы SPVM997 из основной программы в качестве четвертого аргумента указывается переменная bBlock. В этом случае в стандартной подпрограмме вместо макропеременной &pg4.(pg1) используется функция EVAL() для выполнения блока кода.
В частности, оператор pc5 (&pg4.(pg1) + &pg4.(pg2)) / 2 заменяется оператором
pc5 (EVAL(pg4, pg1) + EVAL(pg4, pg2)) / 2, оператор pc5 pc5 + &pg4.(pc8)
заменяется оператором pc5 pc5 + EVAL(pg4, pc8), где параметр pg4 содержит блок кода, параметр pc8 содержит аргумент, который передается при выполнении блока кода подпрограмме MyFunc. Блоки кода компилируются при компиляции основной программы, что обеспечивает их эффективность, не влияя на гибкость применения. Преимущество использования блоков кода вместо макроподстановок заключается в том, что блок кода компилируется только один раз. В то время как компиляция макроподстановки выполняется каждый раз заново.
Литература
1. Фихтенгольц Г.М. Основы математического анализа, т.1. 5-е изд. -М.: Наука, 1964. - С.440
Размещено на Allbest.ru
Подобные документы
Построение квадратурной формулы максимальной степени точности. Определение алгебраической степени точности указанной квадратурной формулы. Сравнительный анализ квадратурных формул средних прямоугольников и трапеций на примере вычисления интеграла.
лабораторная работа [195,9 K], добавлен 21.12.2015Понятие определенного интеграла, его геометрический смысл. Численные методы вычисления определенных интегралов. Формулы прямоугольников и трапеций. Применение пакета Mathcad для вычисления интегралов, проверка результатов вычислений с помощью Mathcad.
курсовая работа [1,0 M], добавлен 11.03.2013Способы определения точного значения интеграла по формуле Ньютона-Лейбница и приближенного значения интеграла по формуле трапеций. Порядок нахождения координаты центра тяжести однородной плоской фигуры ограниченной кривой, особенности интегрирования.
контрольная работа [459,6 K], добавлен 16.04.2010Использование численных методов, позволяющих найти приближенное значение определенного интеграла с заданной точностью. Анализ формул трапеции и параболы (Симпсона). Основной принцип построения формул приближенного вычисления определенного интеграла.
презентация [96,6 K], добавлен 18.09.2013Математическая формулировка задачи, существующие численные методы и схемы алгоритмов. Интерполирование функции, заданной в узлах, методом Вандермонда. Среднеквадратичное приближение функции. Вычисление интеграла функций по составной формуле трапеций.
курсовая работа [3,4 M], добавлен 14.04.2009Нахождение неопределенных интегралов (с проверкой дифференцированием). Разложение подынтегральных дробей на простейшие. Вычисление определенных интегралов, представление их в виде приближенного числа. Вычисление площади фигуры, ограниченной параболой.
контрольная работа [123,7 K], добавлен 14.01.2015Постановка задачи вычисления значения определённых интегралов от заданных функций. Классификация методов численного интегрирования и изучение некоторых из них: методы Ньютона-Котеса (формула трапеций, формула Симпсона), квадратурные формулы Гаусса.
реферат [99,0 K], добавлен 05.09.2010Вычисление относительной и абсолютной погрешности табличных определённых интегралов. Приближенные методы вычисления определённых интегралов: метод прямоугольников, трапеций, парабол (метод Симпсона). Оценка точности вычисления "не берущихся" интегралов.
курсовая работа [187,8 K], добавлен 18.05.2019Задача численного интегрирования функций. Вычисление приближенного значения определенного интеграла. Нахождение определенного интеграла методами прямоугольников, средних прямоугольников, трапеций. Погрешность формул и сравнение методов по точности.
методичка [327,4 K], добавлен 01.07.2009Математическая модель: определение интеграла и его геометрический смысл. Приближённые методы вычисления. Формула прямоугольников, трапеций, парабол. Программа для вычисления значения интеграла методом трапеций в среде пакета Matlab. Цикл if и for.
контрольная работа [262,8 K], добавлен 05.01.2015