Компьютерная алгебра в программе Mathematica 4

         

Отличительные особенности 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;
  • экспериментальная поддержка всплывающих кнопочных палитр.

 

Содержание раздела