Читайте также:
|
|
При решении инженерных задач возникают ситуации, когда аналитическое вычисление определённого интеграла затруднено или невозможно. В подобных ситуациях решение может быть получено одним из методов приближённого вычисления его значения.
Все методы приближённого вычисления определённых интегралов основаны на геометрическом смысле интеграла Ньютона–Лейбница. Он заключается в том, что определённый интеграл
численно равен площади S криволинейной трапеции, ограниченной графиком подынтегральной функции f (x) и осью абсцисс на отрезке [ a, b ] (см. рис.1).
Поэтому для приближённого вычисления определённого интеграла достаточно подсчитать площадь трапеции S. Можно указать множество способов её вычисления. Простейшие из них – формулы прямоугольников, трапеций и Симпсона.
Формула средних прямоугольников
В формуле средних прямоугольников криволинейная трапеция представляется набором прямоугольников (см. рис.2). В этом случае площадь криволинейной трапеции представляется в виде суммы площадей этих прямоугольников, а интеграл I приближенно вычисляется по формуле
или в развёрнутом виде
,
где – абсцисса центральной точки i -го участка разбиения [ a, b ], h = (b – a)/ n – шаг равномерного разбиения отрезка, n – количество участков разбиения.
Формула трапеций
Аналогично вычисляется определённый интеграл по формуле трапеций, где площадь криволинейной трапеции S заменяется суммой площадей элементарных трапеций (см. рис.3). Такой подход приводит к вычислению определённого интеграла I по формуле
или, раскрывая сумму
.
Формула Симпсона (J.Gregory(Грегори) 1668, Th.Simpson 1743)
В формуле Симпсона площадь криволинейной трапеции рассчитывается как сумма площадей ряда криволинейных трапеций, у которых криволинейная сторона представляет собой участок параболы, проходящей через три соседние точки на графике подынтегральной функции. Это можно видеть на рис.4. Поэтому число участков разбиения отрезка [ a, b ] в отличие от предыдущих способов обязательно должно быть чётным. Исходя из этого, значение определённого интеграла приближённо вычисляется по формуле
.
Оценка погрешностей численных способов интегрирования
Точность вычисления любой величины определяется погрешностью, которая может быть представлена в абсолютной или относительной форме. Абсолютная погрешность величины есть модуль разности между её точным и приближённым значениями. Например, между точным значением определённого интеграла и его значением, полученным выбранным численным способом при конкретном количестве участков разбиения отрезка [ a, b ]
.
Относительная погрешность является более информативным параметром точности вычисления искомой величины. Она оценивает ошибку решения в долях точного (или лучшего из имеющихся) значения этой величины и вычисляется как отношение абсолютной погрешности к точному или к лучшему из имеющихся значений интеграла
.
Анализ формул численного интегрирования непрерывно дифференцируемых на отрезке [ a, b ] подынтегральных функций f (x) позволяет получить следующие оценки абсолютных погрешностей вычисления интегралов:
- для формулы средних прямоугольников ;
- для формулы трапеций ;
- для формулы Симпсона .
На практике, такое вычисление погрешностей при интегрировании затруднено, так как требует решения дополнительной, зачастую даже более сложной, задачи поиска максимума высших производных подынтегральной функции. Поэтому чаще для вычисления погрешности методов используют апостериорные оценки, базирующиеся на правиле Рунге (правило двойного счёта). В основу этого подхода к оценке погрешности методов интегрирования положено утверждение, заключающееся в том, что все формулы для погрешностей имеют одну и ту же структуру
,
где коэффициент Cm включает в себя длину участка интегрирования, максимум модуля производной и соответствующий коэффициент, а степень m определяется видом используемой формулы численного интегрирования (m = 2 для формул средних прямоугольников и трапеций и m = 4 для формулы Симпсона). Использование этой зависимости при уменьшении шага интегрирования вдвое позволяет записать погрешность вычисления интеграла в виде
.
Сравнение последних двух формул даёт основное соотношение правила Рунге, справедливое для всех способов приближённого вычисления интеграла
,
где S (h /2) и S (h) – приближённые значения интеграла, вычисленные при шагах разбиения отрезка [ a, b ], отличающихся друг от друга в два раза. Исходя из этого, для оценки погрешности вычисленного значения интеграла с выбранным шагом надо повторить вычисления, удвоив величину шага, и воспользоваться приведённым выше соотношением.
Например, если требуется вычислить интеграл
с относительной погрешностью, не превышающей 0.5%, то для выполнения задания можно воспользоваться формулой средних прямоугольников, выбрав в качестве первоначального значения шага интегрирования h = 0.5, т.е. разбив отрезок [0, 1] на два участка с граничными точками 0, 0.5 и 1.0. Тогда приближённое значение интеграла будет
.
При уменьшении шага интегрирования вдвое (h = 0.25), т.е. при разбиении отрезка интегрирования на 4 участка, значение интеграла будет равно
.
Таким образом, абсолютная и относительная погрешности вычисления последнего значения интеграла могут быть вычислены по правилу Рунге
,
.
В связи с тем, что требуемая точность вычисления интеграла не достигнута, решение продолжается: шаг интегрирования уменьшается ещё в два раза (h = 0.125). В этом случае значение интеграла будет равно 0.6141, а его абсолютная и относительная погрешности составят 0.0046 и 0.75%, соответственно. Видно, что требуемая точность опять не достигнута, поэтому шаг интегрирования уменьшается ещё в два раза (h = 0.0625) и вычисления повторяются. С таким шагом значение интеграла получается равным 0.6152, его абсолютная погрешность – 0.0011, а относительная – 0.18%. Таким образом, при шаге интегрирования h = 0.0625 решение задачи, равное 0.6152, получено с заданной погрешностью.
Если постановка задачи требует получение результатов с меньшей погрешностью, чем была задана ранее, то очевидным действием является дальнейшее уменьшение величины шага разбиения отрезка интегрирования [ a, b ]. Однако этот процесс нельзя продолжать бесконечно. Он ограничивается точностью представления данных в ЭВМ: существует некоторое минимальное значение шага разбиения отрезка [ a, b ], дальнейшее уменьшение которого вызовет рост погрешности вычисления интеграла.
Пример решения в среде Matlab
Пусть надо вычислить интеграл
с относительной погрешностью не хуже, чем 0.001.
Сначала можно применить метод трапеций. Для оценки погрешности приближённого значения интеграла по правилу Рунге следует вычислить его дважды. Например, разбить интервал интегрирования [–1, 1] на 10 отрезков 10 (шаг h = 0.1) и на 20 отрезков (шаг h = 0.05). При необходимости, если требуемая точность не будет достигнута, придётся увеличить число разбиений отрезка интегрирования до 40 участков. Если же и этого окажется не достаточно, то число разбиений придётся еще раз удвоить и т.д. до тех пор, пока не получится погрешность, меньшая 0.001.
Запуск среды Matlab выполняется последовательность команд File®New®Script (см. рис.5):
Рис.5.
В результате открывается окно редактора. Желательно сразу сохранить пока ещё пустой файл в своей папке с расширением.m (см. рис.6), например, integral.m.
Открывшееся окно редактора предназначено для написания последовательности инструкций встроенного в Matlab языка программирования. В данном случае она будет иметь вид, показанный на рис.7. Команды x1=-1:0.2:1 и x2=-1:0.1:1 задают массивы ординат точек разбиения отрезка интегрирования [–1, 1] с шагами 0.2 и 0.1 соответственно. По командам Y1=exp(-x1.^2) и Y2=exp(-x2.^2)
Рис.6.
Рис.7.
вычисляются массивы значений подынтегральной функции в точках разбиения. Команды Z1=trapz(x1,Y1) иZ2=trapz(x2,Y2) позволяют вычислить приближенные значений интеграла с использованием встроенной в среду Matlab функции trapz, реализующей формулу трапеций для указанных массивов значений аргумента и функции. Инструкция dz=(Z2-Z1)/Z2/3 реализует правило Рунге и позволяет оценить погрешности приближенного значения интеграла, вычисленного для разбиения отрезка интегрирования интервала на 20 частей, которое хранится в переменной Z2.
После написания программы следует сохранить файл с её текстом, а затем, выбрав в окне Current folger с помощью навигации по папкам внешней памяти компьютера сохраненный файл integral.m, следует запустить его на выполнение командой run контекстного меню. В результате в окне Command Window (см. рис.8) появится резуль-
Рис.8.
тат вычислений по данной программе. Полученное приближённое значение интеграла равно z2=1.4924, а оценка его погрешности есть dz=8.2303*10-4.
Требуемый результат в данном примере достигнут. Если же нужный уровень погрешности не был бы достигнут, то в файле integral.m надо было бы изменить строчки x1=-1:0.2:1 и x2=-1:0.1:1, задавая в два раза более мелкое разбиение отрезка интегрирования.
В Matlab’е, помимо trapz существует множество специальных встроенных функций. Одна из них quad реализует формулу Симпсона с автоматическим подбором шага интегрирования для достижения требуемой относительной погрешности. У неё обязательными являются три параметра:
- имя подынтегральной функции, которая предварительно должна быть задана в m-файле с именем. Перед именем в обращении к процедуре ставится знак @;
- нижний предел интегрирования;
- верхний предел интегрирования.
По умолчанию функция quad вычисляет приближенное значение интеграла с погрешностью 10–6. Для изменения точности вычислений следует задать дополнительный четвертый аргумент – погрешность решения, например 0.001.
Чтобы применить процедуру quad, создаётся m-файл, содержащий следующие инструкции:
function f = myfun (x)
f = exp(-x.^2)
Он сохраняется в своей папке с именем myfun.m, а в командном окне даётся команда:
q=quad(@myfun,-1,1,0.001)
Получающийся результат приведен на рис.9.
Рис.9.
Для реализации метода средних прямоугольников с расчётом погрешностей по правилу Рунге можно предложить следующий вариант программы, которая не пользуется встроенными функциями:
a=-1; b=1 задание нижнего и верхнего пределов интеграла
n=20 задание числа участков разбиения отрезка интегрирования
h=(b-a)/n вычисление шага разбиения отрезка интегрирования
x=a+h/2:h:b вычисление ординат средних точек для случая n участков
x2=a+h:h*2:b вычисление ординат средних точек для случая n /2 участков
Y=exp(-x.^2) вычисление значений подынтегральной функции для случая n участков
Y2=exp(-x2.^2) вычисление значений подынтегральной функции для случая n /2 участков
s1=sum(Y2)*h*2 вычисление интеграла для случая n участков
s=sum(Y)*h вычисление интеграла для случая n /2 участков
ds=abs(s-s2)/abs(s)/3 вычисление погрешности по правилу Рунге
Результатом выполнения этой программы будет появление в командном окне следующей информации:
h =
0.1000
s1 =
1.4961
s =0
1.4943
ds =
4.1152e-004
Полученный результат близок к тому, что был получен с использованием функции traps (см. рис.8).
Контрольные задания
По номеру своего варианта вычислить один из приведённых ниже определённых интегралов с относительной погрешностью не превышающей 0.001. Для вычисления интеграла использовать один из описанных в этом разделе метод.
1. . 2. . 3. . 4. .
5. . 6. . 7. .
8. . 9. . 10. . 11. .
12. . 13. . 14. .
15. . 16. . 17. . 18. .
19. . 20. . 21. .
22. . 23. . 24. . 25. .
26. . 27. . 28. .
29. . 30. .
2. РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ
Дата добавления: 2015-07-08; просмотров: 140 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Численные методы | | | Справочная информация |