Иллюстрированный самоучитель по Mathematica
Отличительные особенности 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).
|
|
|
|
Sin [m]
(m+ 1) 100
Min [m]
|
|
|
|
Такое резкое
ускорение скорости численных расчетов способно открыть для системы Mathematica
4 новые обширные сферы применения, например численное моделирование сложных
систем, описываемых матричными алгебраическими и дифференциальными уравнениями.
Улучшение работы с массивами
Кардинально
уменьшено и время обращения к памяти при записи и считывании массивов, а заодно
существенно повышена плотность упаковки массивов для данных различного типа
(за счет применения особой технологии упаковки массивов). Приведенные ниже сведения
характеризуют это для версий Mathematica 4 и 3 для ряда типов данных — целых
(Integers), вещественных (Reals) и комплексных (Complex
Numbers).
|
|
|
|
|
|
|
Integers
|
0,24
|
400
056
|
0,43
|
2
000 024
|
Reals
|
0,231
|
800
056
|
0,611
|
2
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;
-
экспериментальная
поддержка всплывающих кнопочных палитр.