Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Представление чисел в системах с плавающей запятой




Погрешности вычислений

Содержание

 

 

1.1. Перевод чисел из одной системы счисления в другую.. 2

1.2. Представление чисел в системах с плавающей запятой. 2

1.3. Оценки погрешности. 3

1.4. Машинный эпсилон. 3

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

1.6. Примеры неустойчивости алгоритмов. 5

1.7. Пример Уилкинсона. 5


1.1. Перевод чисел из одной системы счисления в другую

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

Пример 1.1. Найдем двоичное представление числа . Выполняя описанный алгоритм, находим последовательность чисел:

.

Следовательно, двоичное представление числа имеет вид: .

Пример 1.2. Найдем двоичное представление числа . Последовательно находим:

.

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

 

Представление чисел в системах с плавающей запятой

 

Представление чисел в системах с плавающей запятой характеризуется четырьмя параметрами:

  • основанием ,
  • длиной мантиссы (точностью) ,
  • пределами изменения показателей .

Произвольное число в системе с плавающей запятой можно представить в виде:

,

где число в круглых скобках – дробная часть – мантисса, p – порядок числа .

Система с плавающей запятой называется нормализованной, если для каждого ненулевого числа .

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

.

Числа расположены неравномерно на оси чисел. Рассмотрим пример нормализованной системы:

.

Все возможные дробные части системы – числа, имеющие порядок :

.

Чтобы получить остальные числа системы, нужно умножить эти дроби на . Получим числа от до 3.5. Все положительные числа системы показаны на рис. 1.1.

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

 

Рассмотрим пример. Сложим три числа: . Рассмотрим два варианта объединения слагаемых: и .

1) ; прибавив к этому , получим точный ответ: .

2) . Такого числа нет в системе – требуется округление. Возможны два

варианта: округление до большего и округление до меньшего

а) Округляем до большего: . Прибавив , вновь получаем число, которого нет в системе: . Вновь округляя до большего, получаем неверный ответ: сумма равна 1.0.

б) При округлении до меньшего полагаем . Прибавив , опять получим число, которого нет в системе: . В соответствии с выбранным правилом округления до меньшего отбрасываем последний разряд и вновь получаем неверный результат: .

Получили, что в нашей системе от перемены мест слагаемых сумма меняется!

 

Оценки погрешности

 

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

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

.

Значащими цифрами числа называются все цифры в его записи, начиная с первой ненулевой слева. В нормализованной системе все цифры – значащие.

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

 

Машинный эпсилон

 

Пусть имеется двоичная нормализованная система с t разрядами. Пусть точное значение числа a представляет собой бесконечную двоичную дробь с экспоненциальным множителем:

.

Пусть приближенное значение получается в результате усечения – отбрасывания всех разрядов, начиная с -го:

, –

тогда абсолютная ошибка равна

.

В нормализованной системе

.

Следовательно, относительная ошибка удовлетворяет неравенству:

.

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

.

Отсюда следует, что точное число и соответствующее ему округленное число связаны равенством:

, где .

Число называется машинный эпсилон. Машинный эпсилон характеризует точность арифметики с плавающей запятой.

Машинный эпсилон определяют как наименьшее число , такое, что .

Один из вариантов оценки числа на языке пакета Mathematica:

For[ep=1.,1.+ep>1.,ep=ep/2];2 ep

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

Отметим, что в библиотеках языка Си имеются встроенные значения машинного эпсилон для формата float: FLT_EPSILON= и для формата double: DBL_EPSILON= .

 





Поделиться с друзьями:


Дата добавления: 2017-01-21; Мы поможем в написании ваших работ!; просмотров: 730 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2782 - | 2343 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.16 с.