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

Лабораторная работа №4

Численное дифференцирование

1. Введение

Решение задач на компьютере условно можно разделить на следующие этапы:

- постановка задачи, её формализация и построение математической модели;

  • выбор метода решения и разработка алгоритма;

  • составление программы, её отладка и тестирование;

  • вычисления, анализ результатов расчета и документирование.

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

  • неточности используемой математической модели;

  • погрешности исходных данных;

  • погрешности используемого приближенного метода;

  • погрешности округления и выполнения арифметических операций.

Если в модели не учтены какие-либо важные черты рассматриваемой задачи, то она может внести существенные погрешности. Погрешность математической модели связана с принятыми допущениями, упрощающими решаемую задачу. Кроме того, важно правильно учитывать область применения модели.

Исходные данные задачи часто являются основным источником погрешности. Эти погрешности не могут быть уменьшены в процессе решения задачи. Следует стремиться к тому, чтобы все исходные данные были примерно одинаковой точности.

Погрешность метода связана, например, с тем, что при решении задачи обычно производную заменяют разностью, интеграл – суммой или бесконечный итерационный процесс обрывают после некоторого конечного числа итераций. При выборе метода вычисления и построении алгоритма погрешность можно регулировать и, поэтому стремятся довести её до величины, в несколько раз меньшей погрешности исходных данных. Дальнейшее её снижение не приведет к повышению точности результатов, а лишь необоснованно увеличит объем вычислений.

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

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

2. Постановка задачи

По определению, производной функции называется предел отношения приращения функциик приращению аргументапри его стремлении к нулю:

(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, так что дальнейшее её уменьшение теряет смысл.