ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Лабораторно-практическая работа 6
Численное дифференцирование
Введение
Решение задач на компьютере условно можно разделить на следующие этапы: - постановка задачи, её формализация и построение математической модели; - выбор метода решения и разработка алгоритма; - составление программы, её отладка и тестирование; - вычисления, анализ результатов расчета и документирование. На всех этапах решения задачи на компьютере возникают погрешности, искажающие результаты вычислений. Ошибки результата будут складываться из: - неточности используемой математической модели; - погрешности исходных данных; - погрешности используемого приближенного метода; - погрешности округления и выполнения арифметических операций. Если в модели не учтены какие-либо важные черты рассматриваемой задачи, то она может внести существенные погрешности. Погрешность математической модели связана с принятыми допущениями, упрощающими решаемую задачу. Кроме того, важно правильно учитывать область применения модели. Исходные данные задачи часто являются основным источником погрешности. Эти погрешности не могут быть уменьшены в процессе решения задачи. Следует стремиться к тому, чтобы все исходные данные были примерно одинаковой точности. Погрешность метода связана, например, с тем, что при решении задачи обычно производную заменяют разностью, интеграл – суммой или бесконечный итерационный процесс обрывают после некоторого конечного числа итераций. При выборе метода вычисления и построении алгоритма погрешность можно регулировать и, поэтому стремятся довести её до величины, в несколько раз меньшей погрешности исходных данных. Дальнейшее её снижение не приведет к повышению точности результатов, а лишь необоснованно увеличит объем вычислений. Из-за ограниченности разрядной сетки при компьютерных вычислениях неизбежны погрешности округления. В отличие от ручных коротких вычислений, в длинных компьютерных расчетах эти ошибки могут накапливаться. Иногда погрешности округлений в сочетании с плохо организованным алгоритмом могут сильно исказить результаты. В зависимости от реализуемого алгоритма, ошибки округления могут либо расти, либо уменьшаться. Поэтому очень важно использовать, так называемые, устойчивые алгоритмы, в которых ошибки округления не накапливаются. В данной работе, на примере задачи численного дифференцирования, обсудим, с одной стороны, вопросы, связанные с точностью вычислений, а с другой, продемонстрируем различные этапы создания программного продукта.
Постановка задачи
По определению, производной функции называется предел отношения приращения функции к приращению аргумента при его стремлении к нулю:
(6.1) В численных расчетах значение шага полагают равным некоторому конечному числу и для вычисления производной используют приближение производной отношением конечных разностей: , (6.2) где введены следующие обозначения , , - узлы, в которых ищется значение производной. Выражение (6.2) представляет собой приближение производной правой конечной разностью. Можно записать приближение с помощью центральных разностей: (6.3) Такая аппроксимация производной имеет второй порядок точности . Составим несложную программу для приближенного вычисления производных и проведем расчеты для разных значений шага h. В качестве теста выберем функцию . function f(x:real):real; begin f:=exp(x) end; function Dr(x,h:real):real; begin Dr:=(f(x+h)-f(x))/h end; function D(x,h:real):real; begin D:=0.5*(f(x+h)-f(x-h))/h end; var x,y,h:real; k:integer; begin h:=1; x:=1.0; y:=f(x); for k:=1 to 10 do begin h:=0.1*h; writeln(k:3,’ ‘,h:12:10, ‘ ‘, Dr(x,h):12:8,’ ‘, abs(Dr(x,h)-y):12:10, D (x,h):12:8,’ ‘, abs(D (x,h)-y):12:10) end; readln end.
Уменьшая величину шага на порядок, вычислим приближение к производной с помощью правой и центральной конечных разностей и параллельно ошибки, которые при этом возникают. Табличное значение производной с точностью до девяти знаков после запятой равно . Результаты расчетов сведены в следующую таблицу: k h Dr(x,h) abs(Dr – y) D(x,h) abs(D – y) 1 0.1000000000 2.85884195 0.1405601265 2.72281456 0.0045327355 2 0.0100000000 2.73191866 0.0136368279 2.71832713 0.0000453051 3 0.0010000000 2.71964142 0.0013595946 2.71828228 0.0000004530 4 0.0001000000 2.71841775 0.0001359167 2.71828183 0.0000000018 5 0.0000100000 2.71829558 0.0000137534 2.71828176 0.0000000709 6 0.0000010000 2.71828685 0.0000050223 2.71828139 0.0000004347 7 0.0000001000 2.71829776 0.0000159362 2.71827957 0.0000022537 8 0.0000000100 2.71866156 0.0003797341 2.71829776 0.0000159362 9 0.0000000010 2.72120815 0.0029263192 2.71938916 0.0011073298 10 0.0000000001 2.72848411 0.0102022769 2.71029421 0.0079876172 Проанализировав приведенные данные можно сделать следующие выводы: - приближение центральной разность дает лучшие результаты, чем приближение производной правой разностью; - с уменьшением шага h погрешность приближения производной конечной разностью сначала уменьшается, а затем растет, т.е. имеется оптимальное значение величины шага h, так что дальнейшее её уменьшение теряет смысл.
Не нашли, что искали? Воспользуйтесь поиском:
|