МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Ю.Е. Кувайскова

ЧИСЛЕННЫЕ МЕТОДЫ. ЛАБОРАТОРНЫЙ ПРАКТИКУМ

Учебное пособие

УДК

519.61 (075.8)

ББК

22.193я73

К 88

Рецензенты: зав. кафедрой «Информационная безопасность и

теория управления» Ульяновского государственного университета,

д-р физ.-мат. наук, профессор А.С. Андреев,

кафедра «Телекоммуникационные

технологии

и » сети

Ульяновского государственного университета.

Утверждено редакционно-издательским советом университета в качестве учебного пособия

Кувайскова, Ю.Е.

К 88 Численные методы. Лабораторный практикум : учебное пособие / Ю.Е. Кувайскова. – Ульяновск : УлГТУ, 2014. – 113 с.

ISBN 978-5-9795-0000-0

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

Пособие написано в соответствии с программами курсов«Численные

методы» для

студентов

направления«Прикладная

математика» и

дисциплине «Вычислительная

математика» для студентов направления

«Информатика

и

вычислительная

техника»

может

служить

руководством к выполнению лабораторных работ.

УДК 519.61 (075.8) ББК 22.193я73

Ó Кувайскова Ю. Е., 2014

ISBN 978-5-9795-0000-0

Ó Оформление. УлГТУ, 2014

2

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ …………………………………………………………………………………

6

1. Лабораторная работа №1. МЕТОДЫ ОЦЕНКИ ПОГРЕШНОСТЕЙ 7

1.1. Погрешности приближенных вычислений……………………………..

7

1.1.1. Правила оценки погрешностей…………………………………………

7

1.1.2. Оценка ошибок при вычислении функций ………………………….

8

1.1.3. Правила подсчета цифр…………………………………………………..

9

1.1.4. Вычисления со строгим учетом предельных абсолютных

погрешностей………………………………………………………………………..

10

1.1.5. Вычисления по методу границ………………………………………..

10

1.2. Пример выполнения лабораторной работы ………………………….

11

1.2.1. Задание к лабораторной работе…………………………………….

11

1.2.2. Решение типового примера ……………………………………………

12

1.2.3. Варианты заданий ………………………………………………………..

19

2. Лабораторная работа №2. МЕТОДЫ РЕШЕНИЯ СИСТЕМЫ

ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ……………………….

22

2.1. Прямые методы решения ……………………………………………………

22

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

22

2.1.2. Метод Гаусса ……………………………………………………………….

23

2.1.3. Оценки погрешностей решения системы………………………..

26

2.2. Итерационные методы решения ………………………………………….

26

2.2.1. Метод простой итерации (МПИ) ………………………………….

26

2.2.2. Метод Якоби ………………………………………………………………..

27

2.2.3. Метод Зейделя………………………………………………………………

28

2.2.4. Метод релаксации…………………………………………………………

29

2.3. Пример выполнения лабораторной работы ………………………….

30

2.3.1. Задание к лабораторной работе…………………………………….

30

2.3.2. Решение типового примера ……………………………………………

31

2.3.3. Варианты заданий ………………………………………………………..

40

3. Лабораторная работа №3. РЕШЕНИЕ НЕЛИНЕЙНЫХ

АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ ……………………………………………

45

3.1. Численные методы решения нелинейных уравнений ……………

45

3.1.1. Локализация корней……………………………………………………….

45

3.1.2. Метод Ньютона …………………………………………………………..

46

3.1.3. Модификации метода Ньютона…………………………………….

47

3.1.4. Метод Стеффенсена…………………………………………………….

48

3.1.5. Метод секущих……………………………………………………………..

48

3.1.6. Задача «лоцмана»………………………………………………………….

49

3

3.1.7. Метод хорд…………………………………………………………………..

49

3.1.8. Метод простой итерации ……………………………………………..

50

3.2. Пример выполнения лабораторной работы ………………………….

51

3.2.1. Задание к лабораторной работе…………………………………….

51

3.2.2. Решение типового примера ……………………………………………

52

3.2.3. Варианты заданий ………………………………………………………..

59

4. Лабораторная работа №4. РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ

УРАВНЕНИЙ …………………………………………………………………………….

60

4.1. Численные методы решения систем нелинейных уравнений …

60

4.1.1. Метод Ньютона …………………………………………………………..

60

4.1.2. Метод простой итерации ……………………………………………..

62

4.1.3. Метод наискорейшего спуска ………………………………………..

63

4.2. Пример выполнения лабораторной работы ………………………….

65

4.2.1. Задание к лабораторной работе…………………………………….

65

4.2.2. Решение типового примера ……………………………………………

65

4.2.3. Варианты заданий ………………………………………………………..

68

5. Лабораторная работа №5. ИНТЕРПОЛЯЦИЯ ТАБЛИЧНО

ЗАДАННЫХ ФУНКЦИЙ ……………………………………………………………

70

5.1. Интерполяция таблично заданных функций…………………………

70

5.1.1. Интерполяционный многочлен Лагранжа……………………….

70

5.1.2. Полином Ньютона ………………………………………………………..

71

5.1.3. Кусочно-линейная и кусочно-квадратичная аппроксимация 73

5.2. Пример выполнения лабораторной работы ………………………….

74

5.2.1. Задание к лабораторной работе…………………………………….

74

5.2.2. Решение типового примера ……………………………………………

75

5.2.3. Варианты заданий ………………………………………………………..

80

6. Лабораторная работа №6. АППРОКСИМАЦИЯ ФУНКЦИИ

МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ………………………………..

82

6.1. Метод наименьших квадратов …………………………………………….

82

6.2. Пример выполнения лабораторной работы ………………………….

83

6.2.1. Задание к лабораторной работе…………………………………….

83

6.2.2. Решение типового примера ……………………………………………

84

6.2.3. Варианты заданий ………………………………………………………..

88

7. Лабораторная работа №7. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ …

90

7.1. Численное интегрирование …………………………………………………

90

7.1.1. Задача численного интегрирования ………………………………..

90

7.1.1. Квадратурная формула прямоугольников ……………………….

90

7.1.2. Квадратурные формулы Ньютона – Котеса ………………….

91

7.1.3. Квадратурные формулы трапеций и Симпсона ………………

92

4

7.1.4. Правило Рунге……………………………………………………………….

94

7.2. Пример выполнения лабораторной работы ………………………….

95

7.2.1. Задание к лабораторной работе…………………………………….

95

7.2.2. Решение типового примера ……………………………………………

95

7.2.3. Варианты заданий ………………………………………………………..

98

8. Лабораторная работа №8. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ

ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ………

99

8.1. Численные методы решения обыкновенных дифференциальных

уравнений………………………………………………………………………………..

99

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

99

8.1.2. Метод Эйлера……………………………………………………………….

99

8.1.3. Методы Рунге Кутта……………………………………………….

100

8.1.4. Выбор шага интегрирования………………………………………..

101

8.1.5. Многошаговые методы Адамса ……………………………………

102

8.2. Пример выполнения лабораторной работы ………………………..

104

8.2.1. Задание к лабораторной работе…………………………………..

104

8.2.2. Решение типового примера ………………………………………….

104

8.2.3. Варианты заданий ………………………………………………………

110

ЗАКЛЮЧЕНИЕ ………………………………………………………………………..

111

БИБЛИОГРАФИЧЕСКИЙ СПИСОК …………………………………………

112

5

ВВЕДЕНИЕ

Численные

методы (Вычислительная

математика) –

раздел

прикладной

математики, в

котором

проводятся

разработка,

обоснование и реализация (на базе вычислительной техники) методов

приближенного

решения

разнообразных

задач

на

уров

математических моделей.

Основное

содержание

дисциплины

составляют

численные

методы, представляющие собой упорядоченные схемы (итерационные

процедуры, расчетные

формулы, алгоритмы)

переработки

информации

с

целью

нахождения

приближенного

решения

рассматриваемой задачи в числовой форме.

Следует подчеркнуть компьютерно-ориентированный характер

численных

методов –

в конечном итоге их реализация

связана

с

применением вычислительной техники и программирования.

В настоящем пособии представлены лабораторные работы, целью

проведения которых является ознакомление студентов с численными

методами

решения

практических

задач. Лабораторные

работы

нацелены

на

выработку

навыков, необходимых

при

решении

проектных

и

научных

задач

с

использованием

электронных

вычислительных машин. Для выполнения расчетов рекомендуется

использовать

математически

ориентированные

программные

системы, такие как MathCAD, MathLAB и другие.

Пособие предназначено для студентов направления«Прикладная

математика» по

дисциплине «Численные

методы» и для

студентов

направления

«Информатика

и

вычислительная

техника» по

дисциплине «Вычислительная математика» и служит руководством к выполнению лабораторных работ.

6

1.1. Погрешности приближенных вычислений

1.1.1. Правила оценки погрешностей

Пусть A и a – два «близких» числа. A – точное, a

приближенное.

Определение.

Величина D(a) =

A a

называется

абсолютной

погрешностью приближенного

числаa ,

а

величина d (a) =

Da

a

относительной погрешностью.

Числа Da и da

такие, что Da ³ Da и da

³ da

называются оценками

или

границами

абсолютной

или

относительной

погрешностей

(предельные погрешности).

Пусть a и b – два приближенных числа.

Абсолютные погрешности:

D(a + b) = Da + Db ,

D(a b) = Da + Db ,

D(a × b) = aDb + bDa ,

æ a ö

aDb + bDa

.

÷

=

b2

è b ø

Относительные погрешности:

+ b) =

D(a + b)

=

Da + Db

=

a

Da

+

a + b

a + b

a + b

a

b) =

D(a b)

=

Da + Db

=

a

Da

+

a b

a b

a b

a

æ a ö

×b) = d ç ÷ = da + db , è b ø

k ) = kda .

b

Db

=

a

da +

b

db ,

a + b

b

a + b

a + b

b

Db

=

a

b

da +

db ,

a b

b

a b

a b

7

Определение.

Для

приближенного

числа, полученного

округлением, предельная

абсолютная

погрешностьDa

равна

половине единицы последнего разряда числа.

Пример. a = 0,817, Da = 0,0005 .

Определение.

Значащими цифрами числа

называются

все его

цифры, начиная с первой ненулевой слева.

Пример. 0,00015 – две

значащие цифры,

12,150 – все цифры

значащие.

Определение. Округлением числа a называется замена его числом b с меньшим количеством значащих цифр.

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

1.1.2. Оценка ошибок при вычислении функций

Пусть

дана

функцияy

= f(x) и

a – приближенное

значение

аргумента x,

Da – его абсолютная погрешность. Тогда за абсолютную

погрешность

функции

можно

принять

ее

приращение

ил

дифференциал.

Dy » dy , Dy =

f ‘(a)

× Da .

Для функции n переменных можно записать:

Dy =

f /

(x ,…, x

)

× Dx + +

f /

(x ,…, x

)

× Dx

,

x

1

n

1

x

n

1

n

n

1

где Dx1 ,…,Dxn

абсолютные погрешности.

dy =

Dy

– относительная погрешность.

f (x1 ,…, xn )

Пример. y = sin x, a – приближенное значение х.

Dy = D(sin x) =

cos(a)

× Da .

8

1.1.3. Правила подсчета цифр

Принцип

Крылова:

Согласно

техническому

, подходу

приближенное

число должно

записываться

,такчтобы в нем

все

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

Чтобы результаты арифметических действий, совершенных над

приближенными числами, записанными в соответствии с принципом

Крылова,

так

же

соответствовали

этому

принципу, нужно

придерживаться следующих правил:

1. При сложении и вычитании приближенных чисел в результате

следует

сохранять

столько

десятичных

знаков, сколько их в

приближенном

данном с

наименьшим

количеством десятичных

знаков.

2.При умножении и делении в результате следует сохранять столько значащих цифр, сколько их имеет приближенное данное с наименьшим числом значащих цифр.

3.При определении количества верных цифр в значениях

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

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

функции

можно

считать верными столько знаков после запятой,

сколько их имеет значение аргумента. Если же модуль производной

функции

в

окрестности

приближенного

значения

аргумента

превосходит единицу, то количество верных десятичных знаков в значении функции меньше, чем в значении аргумента на величинуk,

где k – наименьший показатель степени, при котором имеет место f `(x) <10k .

4. Результаты промежуточных вычислений должны иметь1–2

запасных знака, которые затем должны быть отброшены.

9

1.1.4. Вычисления со строгим учетом предельных абсолютных погрешностей

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

При пооперационном учете ошибок промежуточные результаты, так же как и их погрешности, заносятся в специальную таблицу,

состоящую из двух параллельно заполняемых частей– для результатов и их погрешностей.

1.1.5. Вычисления по методу границ

Если

нужно

иметь

абсолютно

гарантированные

границы

возможных

значений

вычисляемой

величины, используют

специальный метод вычислений – метод границ.

Пусть f(x,y) – функция непрерывная и монотонная в некоторой области допустимых значений аргументовх и у. Нужно получить ее значение f(a, b), где а и b – приближенные значения аргументов,

причем достоверно известно, что НГa < а < ВГa;

НГb < b < ВГb.

Здесь НГ, ВГ – обозначения соответственно нижней и верхней

границ значений параметров. Итак, вопрос состоит в том, чтобы найти строгие границы значенияf(a, b) при известных границах значений а и b.

Допустим, что

функция f(x,y) возрастает

по

каждому

из

аргументов х и у. Тогда

f(НГa, НГb) < f(a, b) < f(ВГa, ВГb).

Пусть теперь f(x,y) возрастает

по аргументух и

убывает

по

аргументу у. Тогда будет строго гарантировано неравенство

f(НГa, ВГb) < f(a, b) < f(ВГa, НГb).

Рассмотрим

указанный

принцип

на

примере

основных

арифметических действий.

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Введение
    • 1.1 Постановка вопроса. Виды погрешностей
  • 2 Виды мер точности
  • 3 Предельные погрешности
  • 4 Погрешности округлений при представлении чисел в компьютере
  • 5 Погрешности арифметических операций
  • 6 Погрешности вычисления функций
  • 7 Числовые примеры
  • 8 Список литературы
  • 9 См. также

Введение

Постановка вопроса. Виды погрешностей

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

При переходе от математической модели к численному методу возникают погрешности, называемые погрешностями метода. Они связаны с тем, что всякий численный метод воспроизводит исходную математическую модель приближенно. Наиболее типичными погрешностями метода являются погрешность дискретизации и погрешность округления.
При построении численного метода в качестве аналога исходной математической задачи обычно рассматривается её дискретная модель. Разность решений дискретизированной задачи и исходной называется погрешностью дискретизации. Обычно дискретная модель зависит от некоторого параметра (или их множества) дискретизации, при стремлении которого к нулю должна стремиться к нулю и погрешность дискретизации.
Дискретная модель представляет собой систему большого числа алгебраических уравнений. Для её решения используется тот или иной численный алгоритм. Входные данные этой системы, а именно коэффициенты и правые части, задаются в ЭВМ не точно, а с округлением. В процессе работы алгоритма погрешности округления обычно накапливаются, и в результате, решение, полученное на ЭВМ, будет отличаться от точного решения дискретизированной задачи. Результирующая погрешность называется погрешностью округления (вычислительной погрешностью). Величина этой погрешности определяется двумя факторами: точностью представления вещественных чисел в ЭВМ и чувствительностью данного алгоритма к погрешностям округления.

Итак, следует различать погрешности модели, дискретизации и округления. В вопросе преобладания какой-либо погрешности ответ неоднозначен. В общем случае нужно стремиться, чтобы все погрешности имели один и тот же порядок. Например, нецелесообразно пользоваться разностными схемами, имеющими точность 10−6, если коэффициенты исходных уравнений задаются с точностью 10−2.

Виды мер точности

Мерой точности вычислений являются абсолютные и относительные погрешности. Абсолютная погрешность определяется формулой

\Delta(\tilde a)=|\tilde a-a|,

где \tilde a – приближение к точному значению a.
Относительная погрешность определяется формулой

\delta(\tilde a)=\frac{|\tilde a-a|}{a}.

Относительная погрешность часто выражается в процентах. Абсолютная и относительная погрешности тесно связаны с понятием верных значащих цифр. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой цифры слева. Например, число 0,000129 имеет три значащих цифры. Значащая цифра называется верной, если абсолютная погрешность числа не превышает половины веса разряда, соответствующего этой цифре. Например, \tilde a=9348, абсолютная погрешность \Delta(\tilde a)=15. Записывая число в виде

9348=9\cdot10^3+3\cdot10^2+4\cdot10^1+8\cdot10^0,

имеем 0,5\cdot10^1<\Delta(\tilde a)<0,5\cdot10^2, следовательно, число имеет две верных значащих цифр (9 и 3).

В общем случае абсолютная погрешность должна удовлетворять следующему неравенству:

\Delta(\tilde a)<0,5\cdot10^{m-n+1} ,

где m – порядок (вес) старшей цифры, n – количество верных значащих цифр.
В рассматриваемом примере \Delta(\tilde a)\le0,5\cdot10^{3-2+1}\le0,5\cdot10^2=50.

Относительная погрешность связана с количеством верных цифр приближенного числа соотношением:

\delta(\tilde a)\le\frac{\Delta(\tilde a)}{\alpha_m}10^m\le\frac{10^{m-n+1}}{\alpha_m10^m}\le\frac{1}{\alpha_m10^{n-1}},

где \alpha_m – старшая значащая цифра числа.

Для двоичного представления чисел имеем \delta(\tilde a)\le2^{-n}.

Тот факт, что число \tilde a является приближенным значением числа a с абсолютной погрешностью \Delta(\tilde a), записывают в виде

a=\tilde a\pm\Delta(\tilde a),

причем числа \tilde a и \Delta(\tilde a) записываются с одинаковым количеством знаков после запятой, например, a=2,347\pm0,002 или a=2,347\pm2\cdot10^{-3}.

Запись вида

a=\tilde a(1\pm\delta(\tilde a))

означает, что число \tilde a является приближенным значение числа a с относительной погрешностью \delta(\tilde a).

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

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

AX=F

характеризуется невязкой

R=F-A\tilde X,

где \tilde X – приближенное решение системы.
Причём невязка достаточно сложным образом связана с погрешностью решения \Delta(X)=\tilde X-X, причём если невязка мала, то погрешность может быть значительной.

Предельные погрешности

Пусть искомая величина a является функцией параметров t_1, \ldots , t_n \in \Omega, \qquad a* — приближенное значение a. Тогда предельной абсолютной погрешностью называется величина

D(a^*) = \sup\limits_{(t_1, \ldots ,t_n) \in \Omega } \left|{a(t_1, \ldots ,t_n) - a^*}\right| ,

Предельной относительной погрешностью называется величина D(a*)/| a*|.

Пусть  \left|{t_j - t_j^*}\right| \le \Delta (t_j^* ), \qquad j = 1 \div n — приближенное значение a^* = a(t_1^*, \ldots ,t_n^* ). Предполагаем, что a – непрерывно дифференцируемая функция своих аргументов. Тогда, по формуле Лагранжа,

a(t_1, \ldots ,t_n) - a^* = \sum\limits_{j = 1}^n \gamma_j (\alpha )(t_j - t_j^*),

где \gamma_j (\alpha ) = a^{\prime}_{t_j}(t_1^* + \alpha (t_1 - t_1^*), \ldots ,t_n^* + \alpha (t_n - t_n^*)), \qquad 0 \le \alpha \le 1 .

Отсюда

\left|{a(t_1, \ldots ,t_n) - a^*}\right| \le D_1 (a^*) = \sum\limits_{j = 1}^n b_j \Delta (t_j^*),

где b_j = \sup\limits_\Omega \left|{a^{\prime}_{t_j}(t_1, \ldots ,t_n)}\right|.

Можно показать, что при малых \rho = \sqrt{{(\Delta (t_1^* ))}^2 + \ldots + {(\Delta (t_n^* ))}^2 } эта оценка не может быть существенно улучшена. На практике иногда пользуются грубой (линейной) оценкой

\left|{a(t_1, \ldots ,t_n) - a^*}\right| \le D_2 (a^*),

где D_2 (a^*) = \sum\limits_{j = 1} \left|{\gamma_j (0)}\right| \Delta (t^*) .

Несложно показать, что:

  1. \Delta ( \pm t_1^* \pm , \ldots , \pm t_n^*) = \Delta (t_1^* ) + \ldots + \Delta (t_n^* ) – предельная погрешность суммы или разности равна сумме предельных погрешностей.
  2. \delta (t_1^* \cdots t_m^* \cdot d_1^{* - 1} \cdots d_m^{* - 1} ) = \delta (t_1^* ) + \ldots + \delta (t_m^*) + \delta (d_1^*) + \ldots + \delta (d_n^*) – предельная относительная погрешность произведения или частного приближенного равна сумме предельных относительных погрешностей.

Погрешности округлений при представлении чисел в компьютере

Одним из основных источников вычислительных погрешностей является приближенное представление чисел в компьютере, обусловленное конечностью разрядной сетки (см. Международный стандарт представления чисел с плавающей точкой в ЭВМ). Число a, не представимое в компьютере, подвергается округлению, т. е. заменяется близким числом \tilde a, представимым в компьютере точно.
Найдем границу относительной погрешности представления числа с плавающей точкой. Допустим, что применяется простейшее округление – отбрасывание всех разрядов числа, выходящих за пределы разрядной сетки. Система счисления – двоичная. Пусть надо записать число, представляющее бесконечную двоичную дробь

a=\underbrace{\pm2^p}_{order}\underbrace{\left(\frac{a_1}{2}+\frac{a_2}{2^2}+\dots+\frac{a_t}{2^t}+\frac{a_{t+1}}{2^{t+1}}+\dots\right)}_{mantissa},

где a_j=\{0\\1, \qquad (j=1,2,...) – цифры мантиссы.
Пусть под запись мантиссы отводится t двоичных разрядов. Отбрасывая лишние разряды, получим округлённое число

\tilde a=\pm2^p\left(\frac{a_1}{2}+\frac{a_2}{2^2}+\dots+\frac{a_t}{2^t}\right).

Абсолютная погрешность округления в этом случае равна

a-\tilde a=\pm2^p\left(\frac{a_{t+1}}{2^{t+1}}+\frac{a_{t+2}}{2^{t+2}}+\dots\right).

Наибольшая погрешность будет в случае a_{t+1}=1, \qquad a_{t+2}=1,, тогда

|a-\tilde a|\le\pm2^p\frac{1}{2^{t+1}}\underbrace{\left(1+\frac{1}{2}+\frac{1}{2^2}+\dots\right)}_{=2}=2^{p-t}.

Т.к. |M|\ge0,5, где M – мантисса числа a, то всегда a_1=1. Тогда |a|\ge2^p\cdot2^{-1}=2^{p-1} и относительная погрешность равна \frac{|a-\tilde a|}{|a|}\le2^{-t+1}. Практически применяют более точные методы округления и погрешность представления чисел равна

( 1 )

\frac{|a-\tilde a|}{|a|}\le2^{-t},

т.е. точность представления чисел определяется разрядностью мантиссы t.
Тогда приближенно представленное в компьютере число можно записать в виде \tilde a=a(1\pm\epsilon), где |\epsilon|\le2^{-t}“машинный эпсилон” – относительная погрешность представления чисел.

Погрешности арифметических операций

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

Округленное в системе с плавающей точкой число, соответствующее точному числу x, обозначается через fl(x) (от англ. floating – плавающий). Выполнение каждой арифметической операции вносит относительную погрешность, не большую, чем погрешность представления чисел с плавающей точкой (1). Верна следующая запись:

fl(a\box b)=a\box b(1\pm\epsilon),

где \box – любая из арифметических операций, |\epsilon|\le2^{-t}.

Рассмотрим трансформированные погрешности арифметических операций. Арифметические операции проводятся над приближенными числами, ошибка арифметических операций не учитывается (эту ошибку легко учесть, прибавив ошибку округления соответствующей операции к вычисленной ошибке).

Рассмотрим сложение и вычитание приближенных чисел. Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых.

Если сумма точных чисел равна

S=a_1+a_2+\dots+a_n,

сумма приближенных чисел равна

\tilde S=a_1+\Delta(a_1)+a_2+\Delta(a_2)+\dots+a_n+\Delta(a_n),

где \Delta(a_i), \qquad i=1,2,...,n– абсолютные погрешности представления чисел.

Тогда абсолютная погрешность суммы равна

\Delta(S)=\Delta(a_1)+\Delta(a_2)+\dots+\Delta(a_n).

Относительная погрешность суммы нескольких чисел равна

( 2 )

\delta(S)=\frac{\Delta(S)}{S}=\frac{a_1}{S}\left(\frac{\Delta(a_1)}{a_1}\right)+\frac{a_2}{S}\left(\frac{\Delta(a_2)}{a_2}\right)+\dots=\frac{a_1\delta(a_1)+a_2\delta(a_2)+\dots}{S},

где \delta(a_i), \qquad i=1,2,...,n – относительные погрешности представления чисел.

Из (2) следует, что относительная погрешность суммы нескольких чисел одного и того же знака заключена между наименьшей и наибольшей из относительных погрешностей слагаемых:

min \quad \delta(a_k)\le\delta(S)\le max \quad \delta(a_k), \qquad k=1,2,...,n, \quad a_k>0.

При сложении чисел разного знака или вычитании чисел одного знака относительная погрешность может быть очень большой (если числа близки между собой). Так как даже при малых \Delta(a_i) величина S может быть очень малой. Поэтому вычислительные алгоритмы необходимо строить таким образом, чтобы избегать вычитания близких чисел.

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

S=x_1+x_2+x_3,
\tilde S_1=(x_1+x_2)(1+\delta_1),

( 3 )

\tilde S=(\tilde S_1+x_3)(1+\delta_2)=(x_1+x_2)(1+\delta_1)(1+\delta_2)+x_3(1+\delta_2).

При другой последовательности действий погрешность будет другой:

\tilde S_1=(x_3+x_2)(1+\delta_1),
\tilde S=(x_3+x_2)(1+\delta_1)(1+\delta_2)+x_1(1+\delta_2).

Из (3) видно, что результат выполнения некоторого алгоритма, искаженный погрешностями округлений, совпадает с результатом выполнения того же алгоритма, но с неточными исходными данными. Т.е. можно применять обратный анализ: свести влияние погрешностей округления к возмущению исходных данных. Тогда вместо (3) будет следующая запись:

\tilde S=\tilde x_1+\tilde x_2+\tilde x_3,

где \tilde x_1=x_1(1+\delta_1)(1+\delta_2), \quad \tilde x_2=x_2(1+\delta_1)(1+\delta_2), \quad \tilde x_3=x_3(1+\delta_2).

При умножении и делении приближенных чисел складываются и вычитаются их относительные погрешности.

S=a_1\cdot a_2,
\tilde S=a_1\cdot a_2(1+\delta(a_1))(1+\delta(a_2))a_1\cdot a_2(1+\delta(a_1)+\delta(a_2)),

с точностью величин второго порядка малости относительно \delta.

Тогда \delta(S)=\delta(a_1)+\delta(a_2).

Если S=\frac{a_1}{a_2}, то \Delta(S)=\frac{a_1(1+\delta_1)}{a_2(1+\delta_2)}-\frac{a_1}{a_2}=\frac{a_1(\delta_1-\delta_2)}{a_2(1+\delta_2)}\approx \frac{a_1}{a_2}(\delta_1-\delta_2), \qquad \delta(S)  \delta_1-\delta_2.

При большом числе n арифметических операций можно пользоваться приближенной статистической оценкой погрешности арифметических операций, учитывающей частичную компенсацию погрешностей разных знаков:

\delta_\Sigma \approx \delta_{fl} \quad \sqrt{n},

где \delta_\Sigma – суммарная погрешность, |\delta_{fl}|\le\epsilon – погрешность выполнения операций с плавающей точкой, \epsilon – погрешность представления чисел с плавающей точкой.

Погрешности вычисления функций

Рассмотрим трансформированную погрешность вычисления значений функций.

Абсолютная трансформированная погрешность дифференцируемой функции y=f(x), вызываемая достаточно малой погрешностью аргумента \Delta(x), оценивается величиной \Delta(y)=\|f'(x)\|\Delta(x).

Если f(x)>0, то \delta(y)=\frac{\|f'(x)\|}{f(x)}\Delta(x)=\left|(ln(f(x)))'\right|\cdot\Delta(x).

Абсолютная погрешность дифференцируемой функции многих аргументов y=f(x_1, x_2, ..., x_n), вызываемая достаточно малыми погрешностями \Delta(x_1), \Delta(x_2), ..., \Delta(x_n) аргументов x_1, x_2, ...,x_n оценивается величиной:

\Delta(y)=\sum\limits_{i=1}^n\left|\frac{\partial f}{\partial x_i}\right|\Delta(x_i).

Если f(x_1,x_2,...,x_n)>0, то \delta(y)=\sum\limits_{i=1}^n\frac{1}{f}\cdot\left|\frac{\partial f}{\partial x_i}\right|\cdot\Delta(x_i)=\sum\limits_{i=1}^{n}\left|\frac{\partial l_n(f)}{\partial x_i}\right|\Delta(x_i).

Практически важно определить допустимую погрешность аргументов и допустимую погрешность функции (обратная задача). Эта задача имеет однозначное решение только для функций одной переменной y=f(x), если f(x) дифференцируема и f'(x)\not=0:

\Delta(x)=\frac{1}{\|f'(x)\|}\Delta(y).

Для функций многих переменных задача не имеет однозначного решения, необходимо ввести дополнительные ограничения. Например, если функция y=f(x_1,x_2,...,x_n) наиболее критична к погрешности \Delta(x_i), то:

\Delta(x_i)=\frac{\Delta(y)}{\left|\frac{\partial f}{\partial x_i}\right|}\qquad (погрешностью других аргументов пренебрегаем).

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

\Delta(x_i)=\frac{\Delta(y)}{n\left|\frac{\partial f}{\partial x_i}\right|},\qquad i=\overline{1,n}.

Числовые примеры

Специфику машинных вычислений можно пояснить на нескольких элементарных примерах.

ПРИМЕР 1. Вычислить все корни уравнения

x^4 - 4x^3 + 8x^2 - 16x + 15.\underbrace{99999999}_8 = {(x - 2)}^4 - 10^{- 8} = 0.

Точное решение задачи легко найти:

(x - 2)^2  =  \pm 10^{- 4},
x_1= 2,01;  x_2= 1,99;  x_{3,4}= 2 \pm 0,01i.

Если компьютер работает при \delta _M > 10^{ - 8}, то свободный член в исходном уравнении будет округлен до 16,0 и, с точки зрения представления чисел с плавающей точкой, будет решаться уравнение (x-2)^4= 0, т.е. x_{1,2,3,4} = 2, что, очевидно, неверно. В данном случае малые погрешности в задании свободного члена \approx10^{-8} привели, независимо от метода решения, к погрешности в решении \approx10^{-2}.

ПРИМЕР 2. Решается задача Коши для обыкновенного дифференциального уравнения 2-го порядка:

u''(t) = u(t), \qquad u(0) = 1, \qquad u'(0) = - 1.

Общее решение имеет вид:

u(t) = 0,5[u(0) + u'(0)]e^t  + 0,5[u(0) - u'(0)]e^{- t}.

При заданных начальных данных точное решение задачи: u(x) = e^{-t}, однако малая погрешность \delta в их задании приведет к появлению члена \delta e^t, который при больших значениях аргумента может существенно исказить решение.

ПРИМЕР 3. Пусть необходимо найти решение обыкновенного дифференциального уравнения:

\stackrel{\cdot}{u} = 10u,\qquad u = u(t),\\ u(t_0) = u_0,\qquad t \in [0,1].

Его решение: u(t) = u_0e^{10(t - t_0 )}, однако значение u(t_0) известно лишь приближенно: u(t_0) \approx u_0^*, и на самом деле u^*(t) = u_0^*e^{10(t - t_0)}.

Соответственно, разность u* - u будет:

u^* - u = (u_0^* - u_0)e^{10(t - t_0)}.

Предположим, что необходимо гарантировать некоторую заданную точность вычислений \epsilon > 0 всюду на отрезке t \in [0,1]. Тогда должно выполняться условие:

|{u^*(t) - u(t)}| \le \varepsilon.

Очевидно, что:

\max\limits_{t \in [0,1]} |{u^*(t) - u(t)}| = |{u*(1) - u(1)}| = |{u_0^* - u_0}|e^{10(1 - t_0)}.

Отсюда можно получить требования к точности задания начальных данных \delta: \qquad|u_0^* - u_0| < \delta, \qquad \delta \le \varepsilon e^{ - 10} при t_0= 0.

Таким образом, требование к заданию точности начальных данных оказываются в e^{10} раз выше необходимой точности результата решения задачи. Это требование, скорее всего, окажется нереальным.

Решение оказывается очень чувствительным к заданию начальных данных. Такого рода задачи называются плохо обусловленными.

ПРИМЕР 4. Решением системы линейных алгебраических уравнений (СЛАУ):

\left\{ \begin{array}{l} u + 10v = 11, \\ 100u + 1001v = 1101; \\ \end{array} \right.

является пара чисел \{1, \quad 1\}.

Изменив правую часть системы на 0,01, получим возмущенную систему:

\left\{ \begin{array}{l} u + 10v = 11.01, \\ 100u + 1001v = 1101; \\ \end{array} \right.

с решением \{11.01, \quad 0.00\}, сильно отличающимся от решения невозмущенной системы. Эта система также плохо обусловлена.

ПРИМЕР 5. Рассмотрим методический пример вычислений на модельном компьютере, обеспечивающем точность \delta_M = 0,0005. Проанализируем причину происхождения ошибки, например, при вычитании двух чисел, взятых с точностью до третьей цифры после десятичной точки u = 1,001,\quad v = 1,002, разность которых составляет \Delta = |v_M - u_M| = 0,001.

В памяти машины эти же числа представляются в виде:

u_M = u(1 + \delta_M^u), \quad v_M = v(1 + \delta_M^v), причем  \mid \delta_M^u\mid \le \delta_M и \mid \delta_M^v\mid \le \delta_M.

Тогда:

u_M - u \approx u\delta_M^u, \quad v_M - v \approx v\delta_M^v.

Относительная ошибка при вычислении разности u_M - v_M будет равна:

 \delta = \frac{(u_M - v_M) - (u - v)}{(u - v)} = \frac{(u_M - u) - (v_M - v)}{(u - v)} = \frac{\delta_M^u - \delta_M^v}{(u - v)}.

Очевидно, что  \delta = \left|{\frac{\delta_M^u - \delta_M^v}{\Delta }} \right| \le \frac{2\delta_M}{0,001} \approx 2000\delta_M = 1, т.е. все значащие цифры могут оказаться неверными.

ПРИМЕР 6. Рассмотрим рекуррентное соотношение u_{i+1} = qu_i, \quad i \ge 0, \quad u_0 = a,\quad q > 0, \quad u_i > 0.

Пусть при выполнении реальных вычислений с конечной длиной мантиссы на i-м шаге возникла погрешность округления, и вычисления проводятся с возмущенным значением u_i^M = u_i + \delta_i, тогда вместо u_{i+1} получим u_{i + 1}^M = q(u_i + \delta_i) = u_{i + 1} + q\delta_i, т.е. \delta_{i + 1} = q\delta_i,\quad i = 0,1,\ldots .

Следовательно, если |q| > 1, то в процессе вычислений погрешность, связанная с возникшей ошибкой округления, будет возрастать (алгоритм неустойчив). В случае \mid q\mid \le 1 погрешность не возрастает и численный алгоритм устойчив.

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • http://www.mgopu.ru/PVU/2.1/nummethods/Chapter1.htm
  • http://www.intuit.ru/department/calculate/calcmathbase/1/4.html

См. также

  • Практикум ММП ВМК, 4й курс, осень 2008

Вычисление погрешности функции – одна из важнейших задач в математике и прикладных науках. Погрешность может возникнуть при аппроксимации и использовании математических методов для описания реальных явлений. Но как определить, насколько точное приближение было получено? И как оценить, насколько зависит найденное решение от погрешности входных данных?

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

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

Содержание

  1. Как определить погрешность функции: примеры и теория
  2. Основные понятия погрешности
  3. Методы вычисления погрешности
  4. Примеры вычисления погрешности функций

Как определить погрешность функции: примеры и теория

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

Для вычисления погрешности функции существуют различные методы, включая методы аппроксимации, интерполяции и дифференцирования. Важно использовать соответствующий метод в зависимости от типа функции и входных данных. Например, для линейных функций можно использовать методы аппроксимации, а для сложных нелинейных функций — методы дифференциации.

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

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

Основные понятия погрешности

Для уточнения понятия погрешности важно определить такие термины, как абсолютная погрешность и относительная погрешность.

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

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

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

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

Методы вычисления погрешности

Для вычисления погрешности функции существует несколько методов, в зависимости от типа исходных данных и требуемого уровня точности. Рассмотрим некоторые из них:

1. Аналитический метод

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

2. Метод Монте-Карло

Метод Монте-Карло основан на генерации случайных чисел и позволяет оценить погрешность функции путем повторного вычисления функции на случайных наборах данных. Чем больше раз повторяется вычисление, тем более точная оценка погрешности будет получена.

3. Градиентный метод

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

4. Метод Монте-Карло с использованием случайных чисел

Этот метод является комбинацией метода Монте-Карло и случайных чисел. Он заключается в генерации случайных чисел, которые затем используются в функции для оценки погрешности. Число повторов и диапазон случайных чисел могут быть настроены для достижения требуемой точности.

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

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

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

1. Вычисление погрешности суммы:

Пусть имеется функция f(x) = g(x) + h(x), где g(x) и h(x) — функции с заданными погрешностями δg и δh соответственно. Тогда погрешность функции f(x) будет равна сумме погрешностей δg и δh.

2. Вычисление погрешности произведения:

Для функции f(x) = g(x) * h(x), где g(x) и h(x) — функции с заданными погрешностями, погрешность функции f(x) можно вычислить по формуле:

δf = |f(x)| * (δg/|g(x)| + δh/|h(x)|), где |g(x)| и |h(x)| — абсолютные значения функций g(x) и h(x).

3. Вычисление погрешности деления:

При делении функций f(x) = g(x)/h(x), заданных с погрешностями, погрешность функции f(x) можно найти по формуле:

δf = |f(x)| * (δg/|g(x)| + δh/|h(x)|) / (1 — δh|h(x)|/|h(x)|), где |g(x)| и |h(x)| — абсолютные значения функций g(x) и h(x).

4. Вычисление погрешности сложной функции:

Рассмотрим функцию f(x) = g(h(x)), где g(x) и h(x) — функции с известными погрешностями. Если известны погрешности δg и δh, то погрешность f(x) можно найти с помощью дифференциала:

δf = |g'(h(x))| * δh, где g'(h(x)) — производная функции g(h(x)).

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *