Я поздравляю молодых математиков. Впереди у них много работы ввиду грядущей числовой революции. Эта революция изменит не только лицо математики, но и все иные науки, использующие числа, прежде всего нецелые, измерительные. Это естественные науки и инженерное дело. В чем, как и поченму? Попытаюсь ответить.
Сначала было Слово. И Слово было от Бога. А вот Число человеку пришлось создавать самому. И в процессе такого создания человечество прошло через целый ряд числовых эпох.
Первой была
эпоха натурального числа. Числа представлялись материальными предметами - пальцами, камешками, бусинками. Действия над числами сводились к действиям над предметами. Загибание пальцев, русские счеты, четки есть реликт той древней числовой эпохи.
Следующая числовая эпоха расширила понятие числа, создав
понятие нецелого, дробного числа, которое представлялось уже двумя целами числами. Была разработана сложная наука о действиях с дробными числами - арифметика. Она до сих пор составляет основное содержание курса математики в школе, несмотря на полную бесполезность. Реликты той эпохи сохранились только у самых отсталых народов типа американцев и англичан, да у сантехников 1/4 цента или пенса, труба на 3/8" и т.д..Но уже в то время были подсчитаны астрологические движения звезд, созданы календари, акведуки и парусные суда.
Третья числовая революция была активирована переходом к арабской числовой нотации. И здесь понятие числа разделилось. Для теоретической математики было разработано понятие
действительного числа. Этот период можно по праву назвать золотам веком теоретической математики. Именно в эту эпоху было создано и возведено здание теоретической математики, к которой математики следующей эпохи лишь пристраивали всякие не всегда суразные и нужные пристройки. В области вычислительной матемактики было разработано понятие
приближенного числа и простые, но весьма эффективные "Правила приближенных вычислений". Обладая самыми скромными вычислительными ресурсами типа ручного счета и механических машин и логарифмических линеек была создана промышленность, решены сложнейшие задачи расчета движений планет, даже создание атомной бомбы и балистических ракет осуществлялось этими скромными вычислительными средствами, но с использованием высокоэффективной вычислительной технологии. К сожалению, современные математики по большей части уже не знают ничего о приближенных числах. Можно прямо утверждать, что сама промышленная революция явилась в опренделенной сте6пени результатом математического переворота, революции, связанной с изменением понятия числа.
Четвертая эпоха есть
эпоха компьютерной математики. В теоретическую математику она внесла мало нового, но в области вычислительной вычислительная мощь увеличилась в невообразимое число раз.
Для этой эпохи было разработано двоичное исчисление и использовались уже не
приближенные числа, а
рациональные или числа с плавающей точкой, для представления и действий с ними был разработан стандарт IEEE 754. Компьютерное рациональное число есть вещественное число с фиксированным стандартом представимости. В IEEE 754 таких стандартов 3.
.
Насколько раличны приближенные числа и рациональные видно из следующих соотношений.
Для приближенных чисел 1.0 /= 1.00. Для рациоональных 1.0=1.00=1.00000000000
Для приближенных 1.0+0.001 = 1.0. Для рациональных 1.0+0.000000000000000001= 1.0000000000000001 . И т.д.
Итак, имеем два типа чисел и две системы действий с ними. Какая правильней? Вопрос.
Все вычисления основаны на неких теоретических моделях. Последние, как правило, делаются на множестве действительных чисел. А компьютер работает с рациональными.
И центральная аксиома, постулат всего компутинга состоит в том, что такая замена дает несущественную ошибку и не может серьезно повлиять на результаты практических вычислений. Таков постулат, опровергнутый тысячекратно. Но добрых 90 процентов специалистов в области компутинга и вычислительной математики продолжают верить в него.
Увы, это так. Разница вычислений в системе действительных и рациональных чисел может быть большой, очень большой, между ними вообще может не быть ничего общего. Примеры этого предлагаю найти самим.
Это вычислительные ошибки, связанные именно с самим способом представления чисел и с правилами действий над ними.
И когда, мои друзья, вы летите в самолете, идете по мосту, сидите на стадионе, или купаетесь в аквапарке помните, что управляет самолетом, рассчитывал мост и стадион компьтер, который может иногда, пусть и редко, посчитать, что 2х2=1000000000. И что от этого случится, трудно сказать. Впрочем, вот здесь
http://www.ima.umn.edu/~arnold/disasters/disasters.html Дуглас Н.Арнольд, директор Института математики и ее применений в Минеаполисе, США описывает пять крупнейших катастроф с жертвами и миллиардными убытками, которые связаны именно с нынешним представлением чисел и технологией их обработки. Так что не всегда доверяйте заключениям о человеческом факторе как причине катастрофы или аварии, может быть и компьютерный фактор, но вычислительные ошибки обнаружить чрезвычайно сложно.
И вообще. Разве число 123.0989696969699445676865, которое вам выдаст компьютер, может иметь хоть какое-то отношение к реальной действительности, может оно быть нужным хотя бы кому-то? .Современный компьютер, даже если он не дает откровенно ошибочных результатов, использует и выдает в качестве выходного продукта какой-то полуфабрикат, из которого нужно получать нечто практически ценное с помощью антропной обработки, используя человеческую интуицию, чтобы определить - какие разряды из двадцати имеют смысл, а какие есть шум.. А всегда ли ее хватает. А фактически, процессор чисел с плавающей точкой есть самый производительный в мире обработчик шумов, ведь реально из используемых им 20 разрядов реальный смыл имеют в большинстве случаев три-пять. Остальное шум.
Говоря словами классика; "Такой компьютер нам не нужен". Точнее, такое понятие числа, такая обработка есть, фактически шаг назад. Современная числовая эпоха есть угроза самому развитию цивилизации. Ведь что если компьютер выдаст неправильный результат при управлении АЭС, при полетах на Луну или Марс, при управлении 1000-местными самолетами. А чем мощнее компьютеры, чем сложнее решаемые задачи, тем вероятность таких ошибок нарастает прогрессивно.
А какое необходимо число? А об этом спросите своих коллег по физическому факультету. Спросите, какие числа они используют в свих экспериментальных работах, какие числа принимают в физические журналы. Спросите, примут ли хотя бы в один физический журнал компьютерное число типа 234.0999967574832657?
Узнайте, какие числа нужны инженерам, рассчитывающим балки или напряжения или расстояния. И вот когда математики и компьютерщики поймут, что они используют не то, что нужно практике, вот тогда и начнется новая числовая революция, которая выбросит рациональные числа вместе с IEEE 754 и интеловскими процессорами на помойку истории.
И сделать это предстоит вам, молодым.
Владимир Юровицкий,
www.yur.ru.