Interested Article - Округление
- 2020-06-28
- 1
Округление — замена числа на его приближённое значение (с определённой точностью ), записанное с меньшим количеством значащих цифр. Модуль разности между заменяемым и заменяющим числом называется ошибкой округления .
Округление применяется для представления значений и результатов вычислений с тем количеством знаков, которое соответствует реальной точности измерений или вычислений, либо той точности, которая требуется в конкретном приложении. Округление в ручных расчётах также может использоваться для упрощения вычислений в тех случаях, когда погрешность, вносимая за счёт ошибки округления, не выходит за границы допустимой погрешности расчёта.
Общий порядок округления и терминология
- Округление числа, записанного в позиционной системе счисления с M знаками дробной части , может производиться «до K-го знака после запятой», где K ≤ M. При таком округлении в записи числа отбрасываются справа (M-K) значащих цифр, а K-я цифра после запятой может измениться (см. ). Применяется также терминология с указанием единицы наименьшей десятичной доли, сохраняющейся у округлённого числа, то есть «округление до десятых», «…до сотых», «…до тысячных» и т. д. (соответствует округлению до одного, двух, трёх и так далее знаков после запятой). Частный случай, когда K=0, называется «округлением до целого».
- Когда при округлении отбрасываются значащие цифры целой части числа, говорят об «округлении до десятков» (сотен, тысяч и так далее), отбрасывая, соответственно, один, два, три и более знака. При таком округлении отбрасываемые цифры целой части числа заменяются на нули.
- Для чисел, представленных в нормализованном виде , говорят об «округлении до K (значащих) цифр». При этом мантисса числа сохраняет K значащих цифр, остальные цифры справа отбрасываются.
Методы
В разных сферах могут применяться различные методы округления. Во всех этих методах «лишние» знаки обнуляют (отбрасывают), а предшествующий им знак корректируется по какому-либо правилу.
Округление к ближайшему целому
Округление к ближайшему целому — наиболее часто используемое округление, при котором число округляется до целого, модуль разности с которым у этого числа минимален. В общем случае, когда число в десятичной системе округляют до N-го знака, правило может быть сформулировано следующим образом:
- если N+1 знак < 5 , то N-й знак сохраняют, а N+1 и все последующие обнуляют;
- если N+1 знак ≥ 5 , то N-й знак увеличивают на единицу, а N+1 и все последующие обнуляют;
Например: 11,9 → 12; −0,9 → −1; −1,1 → −1; 2,5 → 3. Максимальная дополнительная абсолютная погрешность, вносимая при таком округлении (погрешность округления), составляет ±0,5 последнего сохраняемого разряда.
Округление к большему
Округление к большему (округление к +∞, округление вверх, англ. ceiling — досл. «потолок») — если обнуляемые знаки не равны нулю, предшествующий знак увеличивают на единицу, если число положительное, или сохраняют, если число отрицательное. В экономическом жаргоне — округление в пользу продавца , кредитора (лица, получающего деньги). В частности, 2,6 → 3, −2,6 → −2. Погрешность округления — в пределах +1 последнего сохраняемого разряда.
Округление к меньшему
Округление к меньшему (округление к −∞, округление вниз, англ. floor — досл. «пол») — если обнуляемые знаки не равны нулю, предшествующий знак сохраняют, если число положительное, или увеличивают на единицу, если число отрицательное. В экономическом жаргоне — округление в пользу покупателя , дебитора (лица, отдающего деньги). Здесь 2,6 → 2, −2,6 → −3. Погрешность округления — в пределах −1 последнего сохраняемого разряда.
Округление к большему по модулю
Округление к большему по модулю (округление к бесконечности, округление от нуля) — относительно редко используемая форма округления. Если обнуляемые знаки не равны нулю, предшествующий знак увеличивают на единицу. Погрешность округления составляет +1 последнего разряда для положительных и −1 последнего разряда для отрицательных чисел .
Округление к меньшему по модулю
Округление к меньшему по модулю (округление к нулю, целое англ. fix, truncate, integer ) — самое «простое» округление, поскольку после обнуления «лишних» знаков предшествующий знак сохраняют, то есть технически оно состоит в отбрасывании лишних знаков. Например, 11,9 → 11; −0,9 → 0; −1,1 → −1). При таком округлении может вноситься погрешность в пределах единицы последнего сохраняемого разряда, причём в положительной части числовой оси погрешность всегда отрицательна, а в отрицательной — положительна.
Случайное округление
Случайное округление — округление происходит в меньшую или большую сторону в случайном порядке, при этом вероятность округления вверх равна дробной части. Этот способ делает накопление ошибок случайной величиной с нулевым математическим ожиданием .
Варианты округления 0,5 к ближайшему целому
Отдельного описания требуют правила округления для специального случая, когда (N+1)-й знак = 5, а последующие знаки равны нулю . Если во всех остальных случаях округление до ближайшего целого обеспечивает меньшую погрешность округления, то данный частный случай характерен тем, что для однократного округления формально безразлично, производить его «вверх» или «вниз» — в обоих случаях вносится погрешность ровно в 1/2 младшего разряда. Существуют следующие варианты правила округления до ближайшего целого для данного случая:
- Математическое округление [ источник не указан 1140 дней ] — округление всегда в бо́льшую по модулю сторону (предыдущий разряд всегда увеличивается на единицу).
- Округление до ближайшего чётного (в английском языке известно под названием англ. banker's rounding — «округление банкира») — округление для этого случая происходит к ближайшему чётному числу, то есть 2,5 → 2; 3,5 → 4.
- Случайное округление — округление происходит в меньшую или большую сторону в случайном порядке, но с равной вероятностью (может использоваться в статистике).
- Чередующееся округление — округление происходит в меньшую или большую сторону поочерёдно.
Во всех вариантах в случае, когда (N+1)-й знак не равен 5 или последующие знаки не равны нулю, округление происходит по обычным правилам: 2,49 → 2; 2,51 → 3.
Математическое округление просто формально соответствует общему правилу округления (см. выше). Его недостатком является то, что при округлении большого числа значений, которые далее будут обрабатываться совместно, может происходить накопление ошибки округления . Типичный пример: округление до целых рублей денежных сумм, выражаемых в рублях и копейках. В реестре из 10 000 строк (если считать копеечную часть каждой суммы случайным числом с равномерным распределением, что обычно вполне допустимо) окажется в среднем около 100 строк с суммами, содержащими в части копеек значение 50. При округлении всех таких строк по правилам математического округления «вверх» сумма «итого» по округлённому реестру окажется на 50 рублей больше точной.
Три остальных варианта как раз и придуманы для того, чтобы уменьшить общую погрешность суммы при округлении большого количества значений. Округление «до ближайшего чётного» исходит из предположения, что при большом числе округляемых значений, имеющих 0,5 в округляемом остатке, в среднем половина из них окажется слева, а половина — справа от ближайшего чётного, таким образом, ошибки округления взаимно погасятся. Строго говоря, предположение это верно лишь тогда, когда набор округляемых чисел обладает свойствами случайного ряда, что обычно верно в бухгалтерских приложениях, где речь идёт о ценах, суммах на счетах и так далее. Если же предположение будет нарушено, то и округление «до чётного» может приводить к систематическим ошибкам. Для таких случаев лучше работают два следующих метода.
Два последних варианта округления гарантируют, что примерно половина специальных значений будет округлена в одну сторону, половина — в другую. Но реализация таких методов на практике требует дополнительных усилий по организации вычислительного процесса.
- Округление в случайную сторону требует для каждой округляемой строки генерировать случайное число. При использовании псевдослучайных чисел, создаваемых линейным рекуррентным методом, для генерации каждого числа требуется операция умножения, сложения и деления по модулю, что для больших объёмов данных может существенно замедлить расчёты.
- Чередующееся округление требует хранить флаг, показывающий, в какую сторону последний раз округлялось специальное значение, и при каждой операции переключать значение этого флага.
Обозначения
Операция округления числа x к большему ( вверх ) обозначается следующим образом: . Аналогично, округление к меньшему ( вниз ) обозначается . Эти символы (а также английские названия для этих операций — соответственно, ceiling и floor , досл. «потолок» и «пол») были введены К. Айверсоном в его работе A Programming Language , описавшей систему математических обозначений, позже развившуюся в язык программирования APL . Айверсоновские обозначения операций округления были популяризированы Д. Кнутом в его книге « Искусство программирования » .
По аналогии, округление к ближайшему целому часто обозначают как . В некоторых прежних и современных (вплоть до конца XX века) работах так обозначалось округление к меньшему; такое использование этого обозначения восходит ещё к работе Гаусса 1808 года (третье его доказательство квадратичного закона взаимности ). Кроме того, это же обозначение используется (с другим значением) в нотации Айверсона .
В стандарте Юникод зафиксированы следующие символы:
Название
в Юникоде |
Код в Юникоде | Вид |
Мнемоника
в HTML 4 |
Примечания | |
---|---|---|---|---|---|
16-ричный | десятичный | ||||
LEFT CEILING (тж. APL upstile) | 2308 | 8968 | ⌈ | ⌈ |
не путать с:
|
RIGHT CEILING | 2309 | 8969 | ⌉ | ⌉ |
не путать с:
|
LEFT FLOOR (тж. APL downstile) | 230A | 8970 | ⌊ | ⌊ |
не путать с:
|
RIGHT FLOOR | 230B | 8971 | ⌋ | ⌋ |
не путать с:
|
Применения
Округление используется для того, чтобы работать с числами в пределах того количества знаков, которое соответствует реальной точности параметров вычислений (если эти значения представляют собой измеренные тем или иным образом реальные величины), реально достижимой точности вычислений либо желаемой точности результата. В прошлом округление промежуточных значений и результата имело прикладное значение (так как при расчётах на бумаге или с помощью примитивных устройств типа абака учёт лишних десятичных знаков может серьёзно увеличить объём работы). Сейчас оно остаётся элементом научной и инженерной культуры. В бухгалтерских приложениях, кроме того, использование округлений, в том числе промежуточных, может требоваться для защиты от вычислительных ошибок, связанных с конечной разрядностью вычислительных устройств.
Более того, некоторые исследования используют округления возраста для измерения числовой грамотности . Это связано с фактом, что менее образованные люди склонны округлять свой возраст вместо того, чтобы указывать точный. Например, в официальных записях населения с более низким уровнем человеческого капитала чаще встречается возраст 30, чем 31 или 29 .
Округление при работе с числами ограниченной точности
Реальные физические величины всегда измеряются с некоторой конечной точностью , которая зависит от приборов и методов измерения и оценивается максимальным относительным или абсолютным отклонением неизвестного истинного значения от измеренного, что в десятичном представлении значения соответствует либо определённому числу значащих цифр, либо определённой позиции в записи числа, все цифры после (правее) которой являются незначащими (лежат в пределах погрешности измерения ). Сами измеренные параметры записываются с таким числом знаков, чтобы все цифры были надёжными, возможно, последняя — сомнительной. Погрешность при математических операциях с числами ограниченной точности сохраняется и изменяется по известным математическим законам, поэтому когда в дальнейших вычислениях возникают промежуточные значения и результаты с больши́м числом цифр, из этих цифр только часть являются значимыми. Остальные цифры, присутствуя в значениях, фактически не отражают никакой физической реальности и лишь отнимают время на вычисления. Вследствие этого промежуточные значения и результаты при вычислениях с ограниченной точностью округляют до того количества знаков, которое отражает реальную точность полученных значений. На практике обычно рекомендуется при длинных «цепочных» ручных вычислениях сохранять в промежуточных значениях на одну цифру больше. При использовании компьютера промежуточные округления в научно-технических приложениях чаще всего теряют смысл, и округляется только результат.
Так, например, если задана сила 5815 гс с точностью до грамма силы и длина плеча 1,40 м с точностью до сантиметра, то момент силы в кгс по формуле , в случае формального расчёта со всеми знаками, окажется равным: 5,815 кгс • 1,4 м = 8,141 кгс•м . Однако если учесть погрешность измерения, то мы получим, что предельная относительная погрешность первого значения составляет 1/5815 ≈ 1,7•10 −4 , второго — 1/140 ≈ 7,1•10 −3 , относительная погрешность результата по правилу погрешности операции умножения (при умножении приближённых величин относительные погрешности складываются) составит 7,3•10 −3 , что соответствует максимальной абсолютной погрешности результата ±0,059 кгс•м! То есть в реальности, с учётом погрешности, результат может составлять от 8,082 до 8,200 кгс•м, таким образом, в рассчитанном значении 8,141 кгс•м полностью надёжной является только первая цифра, даже вторая — уже сомнительна! Корректным будет округление результата вычислений до первой сомнительной цифры, то есть до десятых: 8,1 кгс•м, или, при необходимости более точного указания рамок погрешности, представить его в виде, округлённом до одного-двух знаков после запятой с указанием погрешности: 8,14 ± 0,06 кгс•м .
Округление рассчитанного значения погрешности
Обычно в окончательном значении рассчитанной погрешности оставляют только первые одну-две значащие цифры. По одному из применяемых правил, если значение погрешности начинается с цифр 1 или 2 (по другому правилу — 1, 2 или 3 ), то в нём сохраняют две значащих цифры, в остальных случаях — одну, например: 0,13; 0,26; 0,3; 0,8. То есть каждая декада возможных значений округляемой погрешности разделена на две части. Недостаток этого правила состоит в том, что относительная погрешность округления изменяется значительным скачком при переходе от числа 0,29 к числу 0,3. Для устранения этого предлагается каждую декаду возможных значений погрешности делить на три части с менее резким изменением шага округления. Тогда ряд разрешённых к употреблению округлённых значений погрешности получает вид:
- 0,10; 0,12; 0,14; 0,16; 0,18;
- 0,20; 0,25; 0,30; 0,35; 0,40; 0,45;
- 0,5; 0,6; 0,7; 0,8; 0,9; 1,0.
Однако при использовании такого правила последние цифры самого результата, оставляемые после округления, также должны соответствовать приведённому ряду .
Пересчёт значений физических величин
Пересчёт значения физической величины из одной системы единиц в другую должен производиться с сохранением точности исходного значения. Для этого исходное значение в одних единицах следует умножить (разделить) на переводной коэффициент, часто содержащий большое количество значащих цифр, и округлить полученный результат до количества значащих цифр, обеспечивающего точность исходного значения. Например, при пересчёте значения силы 96,3 тс в значение, выраженное в килоньютонах (кН), следует умножить исходное значение на переводной коэффициент 9,80665 (1 тс = 9,80665 кН). В результате получается значение 944,380395 кН, которое необходимо округлить до трёх значащих цифр. Вместо 96,3 тс получаем 944 кН .
Эмпирические правила арифметики с округлениями
В тех случаях, когда нет необходимости в точном учёте вычислительных погрешностей, а требуется лишь приблизительно оценить количество точных цифр в результате расчёта по формуле, можно пользоваться набором простых правил округлённых вычислений :
- Все исходные значения округляются до реальной точности измерений и записываются с соответствующим числом значащих цифр, так, чтобы в десятичной записи все цифры были надёжными (допускается, чтобы последняя цифра была сомнительной). При необходимости значения записываются со значащими правыми нулями, чтобы в записи указывалось реальное число надёжных знаков (например, если длина в 1 м реально измерена с точностью до сантиметров, записывается «1,00 м», чтобы было видно, что в записи надёжны два знака после запятой), или точность явно указывается (например, 2500±5 м — здесь надёжными являются только десятки, до них и следует округлять).
- Промежуточные значения округляются с одной «запасной» цифрой.
- При сложении и вычитании результат округляется до последнего десятичного знака наименее точного из параметров (например, при вычислении значения 1,00 м + 1,5 м + 0,075 м результат округляется до десятых метра, то есть до 2,6 м). При этом рекомендуется выполнять вычисления в таком порядке, чтобы избегать вычитания близких по величине чисел и производить действия над числами по возможности в порядке возрастания их модулей.
-
При умножении и делении результат округляется до наименьшего числа значащих цифр, которое имеют множители или делимое и делитель. Например, если тело при равномерном движении прошло дистанцию
2,5⋅10
3
метров
за 635
секунд
, то при вычислении скорости результат должен быть округлён до 3,9
м/с
, поскольку одно из чисел (расстояние) известно лишь с точностью до двух значащих цифр.
- Важное замечание: если один операндов при умножении или делитель при делении является по смыслу целым числом (то есть не результатом измерений непрерывной физической величины с точностью до целых единиц, а, например, количеством или просто целой константой), то количество значащих цифр в нём на точность результата операции не влияет, и оставляемое число цифр определяется только вторым операндом. Например, кинетическая энергия тела массой 0,325 кг , движущегося со скоростью 5,2 м/с , равна Дж — округляется до двух знаков (по количеству значащих цифр в значении скорости), а не до одного (делитель 2 в формуле), так как значение 2 по смыслу — целая константа формулы, она является абсолютно точной и не влияет на точность вычислений (формально такой операнд можно считать «измеренным с бесконечным числом значащих цифр»).
- При возведении в степень в результате вычисления следует оставлять столько значащих цифр, сколько их имеет основание степени.
- При извлечении корня любой степени из приближённого числа в результате следует брать столько значащих цифр, сколько их имеет подкоренное число.
- При вычислении значения функции требуется оценить значение модуля производной этой функции в окрестности точки вычисления. Если , то результат функции точен до того же десятичного разряда, что и аргумент. В противном случае результат содержит меньше точных десятичных разрядов на величину , округлённую до целого в большую сторону.
Несмотря на нестрогость, приведённые правила достаточно хорошо работают на практике, в частности, из-за достаточно высокой вероятности взаимопогашения ошибок, которая при точном учёте погрешностей обычно не учитывается.
Ошибки
Довольно часто встречаются злоупотребления некруглыми числами. Например:
- Пользователи стрелочных приборов иногда размышляют так: «стрелка остановилась между 5,5 и 6 ближе к 6, пусть будет 5,8» — такое рассуждение некорректно ( градуировка прибора, как правило, соответствует его реальной точности, правильным будет зафиксировать значение «6»).
Интересный факт
- Карл Фридрих Гаусс отмечал: «Недостатки математического образования с наибольшей отчётливостью проявляются в чрезмерной точности численных расчётов» .
См. также
Примечания
- ↑ . Дата обращения: 8 августа 2015. 5 сентября 2015 года.
- (неопр.) . Дата обращения: 8 августа 2015. Архивировано 4 июня 2009 года. . Дата обращения: 8 августа 2015. Архивировано из 4 июня 2009 года.
- Кнут Д. Э. Искусство программирования. Том 1. Основные алгоритмы = The Art of Computer Programming. Volume 1. Fundamental Algorithms / под ред. С. Г. Тригуб (гл. 1), Ю. Г. Гордиенко (гл. 2) и И. В. Красикова (разд. 2.5 и 2.6). — 3. — Москва: Вильямс, 2002. — Т. 1. — 720 с. — ISBN 5-8459-0080-8 .
- A’Hearn, B., J. Baten, D. Crayen (2009). «Quantifying Quantitative Literacy: Age Heaping and the History of Human Capital», Journal of Economic History 69, 783—808.
- ↑ . www.metrologie.ru. Дата обращения: 10 августа 2019. 16 августа 2019 года.
- . StudFiles. Дата обращения: 10 августа 2019. 10 августа 2019 года.
- . sv777.ru. Дата обращения: 8 августа 2019. 8 августа 2019 года.
- В. М. Заварыкин, В. Г. Житомирский, М. П. Лапчик. Техника вычислений и алгоритмизация: Вводный курс: Учебное пособие для студентов педагогических институтов по физико-математическим специальностям. — М: Просвещение, 1987. 160 с.: ил.
- цит. по В. Гильде, З. Альтрихтер. «С микрокалькулятором в руках». Издание второе. Перевод с немецкого Ю. А. Данилова. М:Мир, 1987, стр. 64.
Литература
- Генри С. Уоррен, мл. Глава 3. Округление к степени 2 // Алгоритмические трюки для программистов = Hacker's Delight. — М. : , 2007. — С. 288. — ISBN 0-201-91465-4 .
Ссылки
- . dokipedia.ru. Дата обращения: 8 августа 2019. 8 августа 2019 года.
- 2020-06-28
- 1