Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Michael Ryazanov                     2:5030/1006.64 13 Oct 2002  20:51:00
 To : Max Alekseyev
 Subject : Re: Округление к ближайшему
 -------------------------------------------------------------------------------- 
 
 
 08.10 14:42 Max Alekseyev, 2:5015/60 -> Vlad Golubev
 
  MA> Процитирую соответствующий параграф из "Аппроксиметрики" В.М.Юровицкого:
  MA> http://yur.ru/science/computer/appro/monografia.htm
  MA> ===cut===
  MA> 1.4.1. Округление приближенного числа
 
  MA> Важнейшей операцией в классической системе обработки приближенных чисел
  MA> является операция округления, т.е. переход от данного числа к некоему
  MA> связанному с ним, но менее точному, с меньшим числом значащих разрядов.
  MA> Округление на один разряд сводится к превращению последнего значащего
  MA> разряда в незначащий (отбрасывание или замена незначащим нулем). Если
  MA> отбрасываемый разряд меньше 5, то больше ничего не делается (округление с
  MA> недостатком), а если отбрасываемый разряд превышает 5, то предшествующий
  MA> значащий разряд увеличивается на единицу (округление с избытком). Если же
  MA> округляемый разряд равен 5, то действует правило: четный
  MA> предшествующий разряд не изменяется, а нечетный увеличивается на единицу.
 
  MA> Если операцию округления обозначим через Q, то легко видеть, что
  MA> Q(123'00)=12'000, Q(0.3456')=0.346', Q(22.5')=22', Q(11.995')=12.00'.
 
  MA> Важным свойством округления в классической теории приближенных чисел
  MA> является равновероятность округления в любую сторону - как с избытком, так 
  MA> и с недостатком.
 
  MA> Казалось бы, мы имеем очень простую и естественную систему округления. Увы,
  MA> компьютерная техника так до сих пор и не смогла освоить этот алгоритм
  MA> округления.
  MA> ===cut===
 
    Автор либо писал это в незапамятном году, либо совершенно не знаком с
 вопросом. Вот цитата из документации к процессору i486:
 
 15.2.3  Управление округлением
 
 Во внутреннем  представлении модуль  обработки операций  с плавающей точкой
 процессора  i486  использует  три  дополнительных  бита  (бит  защиты,  бит
 округления и  бит подклейки),  которые применяются  для округления  чисел в
 соответствии с  истинным результатом  бесконечной точности  вычислений. Эти
 биты не доступны для программиста. Всегда, когда адресат может  представить
 истинный  результат  бесконечной  точности,  модулю  обработки  операций  с
 плавающей точкой не надо производить округление. Округление производится  в
 арифметических операциях и операциях  сохранения, когда формат адресата  не
 может  точно  представить  истинный  результат  с  бесконечной   точностью.
 Hапример, вещественное число может  быть округлено, если оно  сохраняется в
 более коротком вещественном формате  или в целочисленном формате.  Истинный
 результат бесконечной точности  также может быть  округлен при занесении  в
 регистр.
 Модуль обработки операций с  плавающей точкой процессора i486  имеет четыре
 режима  округления,  устанавливаемые  в  поле  управления  округлением (RC)
 управляющего  слова   (смотрите  Рисунок   15-3).  По   данному   истинному
 результату  b,  который  не  может  быть  представлен  нужным типом данных,
 модуль обработки  операций с  плавающей точкой  определяет два представимых
 числа a  и c,  которые наиболее  точно подходят  к значению  числа b с двух
 сторон (a <  b < c).  Затем процессор округляет  (изменяет) b на  a или c в
 соответствии с  режимом, установленном  в поле  округления, как  показано в
 Таблице 15-5. Округление вносит в  результат ошибку, которая не больше  чем
 единица в разряде, по которому велось округление.
 
  Таблица 15-5. Режимы Округления
 
 ЪДДДДДДДДДДДВДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
 іПоле Управ-і    Режим     і                                    і
 іленеия Окруі  Округления  і      Действия при Округлении       і
 іглением    і              і                                    і
 ГДДДДДДДДДДДЕДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
 і    00     іОкругление до і Определяем, к чему ближе b: к a илиі
 і           іближайшего    і c; если число равноудалено от этих і
 і           і              і чисел, то выбор четного числа (то, і
 і           і              і у которого наименьший значащий бит і
 і           і              і нулевой).                          і
 ГДДДДДДДДДДДЕДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
 і    01     і  Округление  і                                    і
 і           і    снизу     і      a                             і
 і           і   (до -x)    і                                    і
 ГДДДДДДДДДДДЕДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
 і    10     і  Округление  і                                    і
 і           і    сверху    і      c                             і
 і           і   (до +x)    і                                    і
 ГДДДДДДДДДДДЕДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
 і    11     і  Отсечение   і Hаименьшее из a или c              і
 і           і   (до 0)     і                                    і
 АДДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
 
 ОБРАТИТЕ ВHИМАHИЕ: a < b  < c; a и c  - успешно представимые числа; b  - не
 представимо.
 - "Округление до  ближайшего" - этот  режим устанавливается по  умолчанию и
 применим  ко  многим  программным  продуктам;  он  предоставляет наибольшую
 точность и статистически несмещенную оценку истинного результата.
 -  Режим  "отсечения"  или  "округления  до  нуля" применим к целочисленным
 арифметическим операциям.
 -  "Округление  в  большую  сторону"  и  "округление  в  меньшую   сторону"
 называются  ориентированным  округлением  и  могут  быть  использованы  для
 реализации  интервальной  арифметики.  Интервальная арифметика используется
 для  определения  верхней  и   нижней  границы  для  истинного   результата
 многоступенчатых   расчетов   при   округлении   промежуточных  результатов
 вычислений.
 Управление округлением применимо только к арифметическим операциям  (список
 арифметических и неарифметических команд приведен в Главе 16).
    И всё это является *стандартом*:
 
 Возможности процессора i486 включают в себя:
 <...>
 - Встроенный модуль обработки арифметических операций с плавающей точкой для
 поддержки  32,  64,  и  80-разрядных  форматов,  заданных в соответствие со
 стандартом  IEEE  754  (объектно  совместимом  с  387  (TM)  DX  и  387  SX
 арифметическими   сопроцессорами);
 
                                                                       |V|uxau/\
 --- -- - ъ
  * Origin:             Ф И З Ф А К - Ч Е М П И О H !           (2:5030/1006.64)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Округление к ближайшему   Victor Sotnikov   26 Sep 2002 22:53:48 
 Округление к ближайшему   Kirill Frolov   03 Oct 2002 23:21:32 
 Окpyгление к ближайшемy   Vlad Golubev   05 Oct 2002 00:20:23 
 Окpyгление к ближайшемy   Vovanius Uryvaeff   08 Oct 2002 19:12:46 
 Окpyгление к ближайшемy   Vovanius Uryvaeff   08 Oct 2002 19:13:09 
 Окpyгление к ближайшемy   Vovanius Uryvaeff   08 Oct 2002 19:15:37 
 Окpyгление к ближайшемy   Vovanius Uryvaeff   08 Oct 2002 19:19:05 
 Округление к ближайшему   Max Alekseyev   08 Oct 2002 14:42:24 
 Округление к ближайшему   Vovanius Uryvaeff   09 Oct 2002 18:20:46 
 Округление к ближайшему   Max Alekseyev   09 Oct 2002 13:26:14 
 Re: Округление к ближайшему   Sergey Andrianov   10 Oct 2002 23:43:02 
 Окpyгление к ближайшемy   Vlad Golubev   09 Oct 2002 20:01:40 
 Округление к ближайшему   Evgenij Masherov   12 Oct 2002 09:42:48 
 Re: Окpугление к ближайшему   Igor Bury   17 Oct 2002 09:44:27 
 Re: Округление к ближайшему   Michael Ryazanov   13 Oct 2002 20:51:00 
 Re: Округление к ближайшему   Vovanius Uryvaeff   15 Oct 2002 21:42:06 
Архивное /ru.algorithms/45633da9dcec.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional