Отличительные особенности Mathematica 4
Ускорение численных расчетов и повышение их точности
Большинство пользователей с трудом уловят разницу между версиями Mathematiea 3 и Mathematica 4. Именно поэтому основной материал данной книги полностью относится к этим двум последним версиям. Тем не менее, различия между версиями есть, и достаточно серьезные.
Пожалуй, главной отличительной особенностью системы Mathematica 4 стало кардинальное ускорение численных расчетов. Традиционно системы символьной математики проигрывали численным системам, таким как MATLAB. До сих пор скорость вычислений в системе MATLAB в 5-10 раз превышала скорость вычислений, производимых системами символьной математики. Поэтому в системе Mathematica 4 были предприняты необычные для систем символьной математики и даже беспрецедентные меры по ускорению численных расчетов. Они перечислены ниже:
- Значительно ускорены все операции с матрицами, особенно большого размера.
- Существенно оптимизированы алгоритмы для выполнения вычислений с числами, содержащими вплоть до миллиона знаков.
- Ускорен ввод и вывод очень больших целых чисел.
- Полностью сохраняется точность при вводе и выводе приближенных действительных чисел.
- Обеспечивается свертка и корреляция массивов любой размерности.
- Применены новые оптимизированные алгоритмы для преобразований Фурье.
- Ускорены процедуры численного решения полиномиальных уравнений.
Рисунок 1.22. иллюстрирует некоторые простые вычисления в численном виде с фиксацией времени вычислений для систем Mathematica 3 и 4 (данные получены от разработчика).
Рис. 1.22. Сравнительные данные по скорости простых вычислений
Из примеров на рис. 1.34 видно, что скорость простых вычислений возросла в 5-10 раз.. В отдельных случаях скорость более сложных вычислений возрастала намного больше. Ниже приведены данные о выполнении некоторых операций над матрицей m большого размера (500x500).
Операция |
Mathematica 4 |
Mathematica 3 |
Отношение времен |
Sin [m] (m+ 1) 100 Min [m] |
0,13с 0,311 с 0,02с |
2,433 с 4,426 с 4,487 с |
18,7:1 14,23:1 224:1 |
Такое резкое ускорение скорости численных расчетов способно открыть для системы Mathematica 4 новые обширные сферы применения, например численное моделирование сложных систем, описываемых матричными алгебраическими и дифференциальными уравнениями.
Кардинально уменьшено и время обращения к памяти при записи и считывании массивов, а заодно существенно повышена плотность упаковки массивов для данных различного типа (за счет применения особой технологии упаковки массивов). Приведенные ниже сведения характеризуют это для версий Mathematica 4 и 3 для ряда типов данных — целых (Integers), вещественных (Reals) и комплексных (Complex Numbers).
Mathematica 4 |
Mathematica 3 |
|||
Тип данных |
Время, с |
Объем памяти |
Время, с |
Объем памяти |
Integers | 0,24 | 400 056 | 0,43 | 2 000 024 |
Reals | 0,231 | 800 056 | 0,611 | 2 000 024 |
Complex Numbers |
0,35 |
1 600 056 |
1,341 |
6 000 024 |
Уплотнение массивов означает, что Mathematica 4 при заданном объеме свободной памяти может решать более объемные и серьезные задачи, чем это смогла бы сделать предшествующая версия системы.
Указанные достоинства системы Mathematica 4 достигнуты за счет выбора и тщательной оптимизации алгоритмов численных вычислений:
- введена прямая поддержка следов матриц;
- изменены алгоритмы нахождения минимума (функция FindMinimum);
- реализован ускоренный вывод больших чисел — вплоть до миллионов цифр;
- введена новая технология упаковки больших массивов чисел;
- существенно уменьшена необходимость в повторных циклах;
- обеспечена абсолютная точность при целочисленных вычислениях;
- гарантирована заданная погрешность при вычислениях с вещественными числами;
- улучшено размещение переменных в памяти.
По умолчанию погрешность вычислений при целочисленных операциях в системе Mathematica 4 определена в 1 000 000 верных цифр. К примеру, чтобы выдать число n с миллионом верных знаков, системе Mathematica 4 понадобится чуть больше двух минут (разумеется, на современном компьютере)! В некоторых видах сложных целочисленных вычислений, используемых в технике кодирования информации, Mathematica 4 обеспечивает беспрецедентно малое время вычислений.
Улучшенные математические возможности
Математические возможности системы Mathematica 4 существенно пополнены и улучшены. В частности, обеспечены следующие возможности:
- прямая поддержка линейной алгебры разреженных матриц;
- экспериментальная поддержка кванторного исключения с использованием цилиндрического алгебраического разложения;
- экспериментальная поддержка символьной оптимизации;
- быстрая свертка и корреляция для массивов любого размера и размерности;
- новые улучшенные алгоритмы для преобразований Фурье (рис. 1.23);
- ускоренное вычисление полиномиальных уравнений;
- новые алгоритмы для функции минимизации FindMinimum;
- расширение возможностей матричных преобразований;
- алгебраическая вычислительная поддержка для функций символьных преобразований Simplify, FunctionExpand и связанных с ними других функций;
- расширение возможностей функций преобразования FullSimplify и FunctionExpand;
- упрощение полиномиальных и других неравенств;
- полная улучшенная поддержка символьных преобразований Лапласа и Фурье;
- расширенные возможности решения трансцендентных уравнений;
- ускоренное неоднократное дифференцирование;
- поддержка ряда новых специальных функций (Дирака, Струве, обобщенных логарифмов, двумерных гипергеометрических функций Аппеля, полилогарифмов Ньелсена, гармонических функций, различных констант и т. д.);
- новые оптимизированные методы для оценивания е, n и других констант с очень высокой точностью;
- полная поддержка для непрерывных дробей и периодических цифровых последовательностей ;
- прямая поддержка поразрядных операций.
Рис. 1.23. Пример выполнения преобразования Фурье в среде Mathematica 4
Из рис. 1.23. видно, что на преобразование Фурье массива 500x500 элементов Mathematica 4 затратила около 2 с. Для сравнения отметим, что Mathematica 3 выполнила ту же работу за 11 с, то есть ускорение преобразования Фурье оказывается более чем пятикратным.
Рисунок 1.24. иллюстрирует возможности выполнения интегральных преобразований Лапласа и Фурье в символьном виде.
Рис. 1.24. Примеры интегральных аналитических преобразований
Некоторые другие примеры использования, характерные для системы Mathematica 4, можно найти на Интернет-странице фирмы Wolfram.
Улучшенная поддержка средств графики и звука
Графика всегда была козырной картой систем Mathematica. В новой версии системы также реализованы многочисленные новые возможности. Отметим наиболее существенные из них:
- ускоренный вывод графических данных на дисплеи больших размеров;
- экспорт и импорт графики и звука во многих форматах (рис. 1.25);
- поддержка дискретного масштабирования уровней цвета;
- поддержка трехмерной динамической графики в реальном времени (только в среде Windows);
- ускоренная генерация и вывод на экран больших графиков;
- полностью согласованная поддержка безусловных опций.
Рис. 1.25. Форматы ввода и вывода изображений, поддерживаемые системой Mathematica 4
Всего Mathematica 4 поддерживает свыше 20 различных форматов файлов. Возможность импорта графического файла с высоким разрешением в формате TIFF и последующего преобразования файла в формат JPG иллюстрирует рис. 1.26.
Рис. 1.26. Пример импорта файла в одном формате и экспорта того же файла в другом формате
Средства графики Mathematica 4 позволяют использовать систему в качестве графического процессора, осуществляющего эффективные цифровые преобразования изображений, такие как стилизация (рис. 1.27), повышение и понижение контрастности и яркости, обработка цветов, фильтрация и т. д.
Рис. 1.27. Пример обработки изображения, показанного на рис. 1.26
Все это, разумеется, повышает шансы системы Mathematica 4 сохранить за собой роль мирового лидера среди систем компьютерной математики для ПК.
Вращение трехмерных графиков мышью
Следом за системами Maple V R5 и Mathcad 8 PRO Mathematica 4 приобрела возможность быстрого вращения произвольных трехмерных графиков. Пример реализации этой возможности представлен на рис. 1.28.
Данная возможность достигнута за счет существенного ускорения построения сложных трехмерных фигур с помощью команды, включенной в специальный файл и загружаемой как
<<RealTime3D`
Другая команда,
<<Default3D`
возвращает систему к стандартным возможностям трехмерной графики.
Из приведенных данных ясно, что возможности системы Mathematica 4 и скорость ее работы существенно повышены. Однако при этом сохранена практически полная совместимость по интерфейсу пользователя и базовому набору операторов и функций с предшествующей версией Mathematica 3. Так что из этой книги читатель получит достаточно полные сведения не только о новейшей версии Mathematica 4, но и о ее предшественнице — системе Mathematica 3. Значительная часть сведений и примеров полезны и пользователям версий Mathematica 2.x.
Рис. 1.28. Стоп- кадр документа, показывающего возможность вращения трехмерной фигуры в реальном времени
При выборе той или иной версии решающую роль играют финансовые соображения и аппаратные требования к компьютеру. Как уже отмечалось, новая версия Mathematica 4 для установки на компьютере с операционной системой Windows 95/98 требует объема ОЗУ 16/24 Мбайт и 40/156 Мбайт места на жестком диске (в числителе дробей минимальное значение, в знаменателе — рекомендуемое). В то же время, система Mathematica 2.2.2 требует емкости ОЗУ 8 Мбайт (версия 2.1 — даже 4 Мбайт), занимает на жестком диске 14 Мбайт и инсталлируется с 6 обычных гибких дисков.
Программирование и ядро системы
Средства программирования и ядра системы Mathematica дают ряд новых возможностей:
- функции NestWhile и NestWhileList, позволяющие обобщения функции FixedPoint;
- функции PadLeft и PadRight;
- поддержку перекрытия и расширения подсписков, генерируемых функцией Partition;
- функции ListConvolve и ListCorrelate;
- обобщение функций Take, Drop и связанных с ними функций до любой размерности и любых шагов по индексу;
- поддержку функции All для определения частей на определенных уровнях в выражениях;
- расширения в функции Mod для поддержки кириллических списков;
- контекст Developer, предоставляющий доступ к внутренним функциям системы;
- контекст Experimental, предоставляющий доступ к функциям, находящимся в стадии разработки.
Операции ввода и вывода в Mathematica 4 дают следующие новые возможности:
- оптимизированный разрыв строк для удобства ввода выражений и программ;
- динамический текстовый курсор, обеспечивающий визуальную непрерывность ввода;
- динамические цветные подсказки при вводе ограничивающих скобок;
- автоматическое замещение вводимых ключевых последовательностей специальными символами или другими объектами;
- новый альтернативный синтаксис для извлечения частей выражений и применения функций;
- внедрение ячеек в текст;
- существенно ускоренный вывод строковых выражений.
На уровне системного интерфейса в Mathematica 4 обеспечены:
- поточный вывод табличных данных;
- развитая поддержка преобразования ячеек в HTML;
- дополнительная поддержка вывода в формате ТеХ;
- ускорено взаимодействие с внешними программами через MathLink;
- поддержка дополнительных наборов символов, включая китайские и корейские;
- экспериментальная поддержка вывода на экран в режиме реального времени;
- экспериментальная поддержка удаленных файловых систем через MathLink;
- экспериментальная поддержка всплывающих кнопочных палитр.
|