MathCAD


7.4.3. Структура данных - часть 2


Символьная форма хранения числа позволяет решить не только проблему точности, но и проблему экономии памяти компьютера: например, корень из трех, записанный в символьном виде (Ö3), хранит 1,73... (до бесконечности). Программисту при работе с Maple уже не надо ломать голову над выбором типа переменных (одинарная, двойная и прочая точность). Если говорить о сверхточности, обеспечиваемой «длинными» типами переменных, не следует забывать, что природа не любит не только острых углов, но и избыточности. Если решение «разваливается», это может свидетельствовать не только о дефекте в вычислительной процедуре, но и о неправильной исходной модели. Вот еще один диалог, но уже не на Шаболовке, а в музее. Экскурсовод: «Этому экспонату один миллиард и двадцать лет». – Посетитель: «Откуда такая точность?!» – Экскурсовод: «Когда я поступил сюда на работу, мне сказали, что этому экспонату миллиард лет, а с тех пор прошло еще двадцать». Подобной излишней педантичностью страдает и автор: на многих рисунках книги в расчетах оператором «=» выводятся все 15 знаков числа, хотя там достаточно трех-четырех.

Переменные в среде Maple могут хранить (естественно, в символьном виде) все что угодно: константу, выражение, функцию, равенство, неравенство, график, геометрический образ и т.д. Сами же переменные группируются в последовательности (sequence), массивы (array), списки (list), множества (set) и таблицы (table). Элементом массива может быть список, элементом списка – массив и т.д. Комбинируя структуры и создавая новые, пользователь способен моделировать довольно сложные математические абстракции, ограничивая себя лишь своей фантазией и объемом памяти компьютера. По знаменитой формуле Вирта: программа – это алгоритм плюс структура данных. Говоря о Maple, можно сказать, что протокол решения задачи – это умело спроектированная структура символьных данных, процеженных сквозь сито функций и команд. В Maple встроен fortran-подобный язык, позволяющий реализовывать сложные алгоритмы, но к программированию прибегают в особых случаях – Maple и Mathcad задумывались как средства программирования без программирования (в те времена слова «работа на компьютере» и «программирование» были почти синонимами). К программированию и в среде Maple, и в среде Mathcad прибегают в тех случаях, когда для решения задач не хватает встроенных средств (см. этюд 6).

Существует ошибочный взгляд на компьютерную символьную математику как на вычислительную математику без погрешностей и ошибок. Пример, приведенный на рис. 7.22, опровергает это мнение[51].




Начало  Назад  Вперед



Книжный магазин