Re: Округление к ближайшему
- From
- Sergey Andrianov (2:5020/1507.400)
- To
- Max Alekseyev
- Date
- 2002-10-10T23:43:02Z
- Area
- RU.ALGORITHMS
Здравствуй, Max!
Однажды 09-Oct-02 в 13:26 Max Alekseyev (2:5015/60)
написал Vovanius Uryvaeff по поводу
-=- Округление к ближайшему -=-
MA>>> Процитирую соответствующий параграф из "Аппроксиметрики"
MA>>> В.М.Юровицкого: http://yur.ru/science/computer/appro/monografia.htm
MA> [...]
MA>>> Kазалось бы, мы имеем очень простую и естественную систему
MA>>> округления. Увы, компьютерная техника так до сих пор и не смогла
MA>>> освоить этот алгоритм округления.
VU>> Хех.. придумали это еще давно, но делают сие лишь вручную или в
VU>> теории. А на машине делают как проще...
MA> Согласно тому же Юровицкому, в этом и проблема. Цитирую по
MA> http://yur.ru/science/computer/index.htm
В качестве преамбулы хочу сказать, что в школе меня учили округлять "5" ВСЕГДА
в большую сторону. Цитировавшаяся же здесь методика, на мой взгляд, приводит к
абсурду, когда
0.25*0.25 # 2.5*0.025. Так что согласиться с ней, как с единственно разумной
никак не могу.
Теперь по цитате:
MA> ===cut===
MA> [...]
MA> И такое понижение вычислительной культуры не проходит бесследно. На сайте
MA> www.ima.umn.edu/~arnold/disasters/disasters.html приведен список крупнейших
MA> аварий с человеческими жертвами и с многомиллиардными убытками, которые
MA> доказано связаны с недостатками существующей технологии компьютерных
MA> вычислений (взрыв ракеты Ариан при запуске, гибель норвежской буровой
MA> платформы и т.д.).
Спорная трактовка причины аварий именно как следствия неправильной обработки
ошибок округления.
MA> На самом деле таких аварий, а тем более потерь,
MA> связанных с затратой ресурсов, гораздо больше. Просто это трудно доказать.
MA> Ведь для этого необходимо провести альтернативные метрологически
MA> корректные расчеты. Их можно провести пока только вручную, что слишком
MA> дорого, а то и просто невозможно, да и нет уже специалистов по ручным
MA> вычислениям.
MA> Неправильная вычислительная технология имеет последствия и для самого
MA> компьютеринга. На практике метрологические данные редко имеют точность выше
MA> трех десятичных знаков (относительная погрешность 0,1%), что соответствует
MA> примерно 10 двоичным разрядам. Kомпьютер же ведет расчеты с тридцатью и
MA> более двоичными разрядами (до шестидесяти). Что же обрабатывает компьютер
MA> в этих лишних разрядах? Шумы.
Не всегда. Kонкретный пример: излучение АЧТ пропорционально 4-й степени
температуры. 10 двоичных разрядов для температуры соответствуют 40 двоичным
разрядам для мощности излучения. А в результате для определения теплового
баланса двух тел, нагретых до близкой температуры, существующая точность
вычислений оказывается как раз на пределе. Kонечно, разность двух больших чисел
можно считать и по другому - более точно. Но для этого иногда надо заранее
предполоагать, что она будет существенно меньше любого из исходных чисел, а это
довольно накладно. В то же время, зачастую ошибки округления именно в этом
случае приводят к ошибке в физичестких величинах, находящейся в приемлемом
диапазоне.
Другими словами, "обработка шумов" часто имеет место, но вряд ли 2-3-5-ти
кратное увеличение объема вычислений в данном случае приводит с кущественным
негативным последствиям. В первую очередь потому, что вычисления, как правило,
осуществляются параллельно.
Так что проблемы здесь нет. Никакой. Просто есть запас в N раз, где N - константа порядка единицы.
MA> Итак, современная компьютерная вычислительная технология в области
MA> обработки нецелых данных неверна,
Между "приближенна" и "неверна" - дистанция огромного размера.
MA> не отвечает потребностям современного этапа развития техники, является
перманентным
MA> источником аварий, катастроф и убытков.
Неправда. Есть такая наука, как численные методы. В частности, она
рассматривает условия, при которых ошибки округления приводят к существенному
искажению данных, а в каких - нет. Естественно, когда за программирование берется человек, который считает себя программистом только на том основании, что изучил какой-нибудь язык программирования, то последствия могут быть какие угодно. Но это - конкретная проблема конкретного человека, а не фундаментальная проблема отрасли человеческой деятельности. Чувтсвуется, что автор этого материала в большей степени публицист, нежели специалист. :)
===cut===
До свидания, в 21:51 MSK
Sergey
---
* Origin: Sergiev Posad (2:5020/1507.400)