Классификация средств компьютерной математики
Лекция 1. Общий обзор систем компьютерной математики.
Классификация средств компьютерной математики.
Компьютерная математика – это совокупность методов и средств, обеспечивающих максимально комфортную и быструю подготовку алгоритмов и программ для решения математических задачлюбой сложности, при этом в подавляющем большинстве случаев с высокой степенью визуализации всех этапов решения. Эффективность использования всех этих систем, разумеется, существенно зависит от производительности компьютера. Требования к компьютеру всегда оговариваются в руководствах пользователя, отметим, что, как правило, необходим процессор не хуже Pentium.
Средства компьютерной математики интенсивно внедряются в аппаратные средства современной вычислительной техники. Пожалуй, ярче всего это проявляется в развитии программируемых микрокалькуляторов. Даже калькуляторы начала 80-х годов удивляли знающих пользователей своими математическими способностями. Например, помещаемые в нагрудном кармане рубашки научные калькуляторы НР-15С запросто вычисляли сложные интегралы и производные функций, оперировали матрицами с действительными и комплексными элементами, решали системы линейных и нелинейных уравнений и позволяли довольно просто реализовать практически любые численные методы вычислений.
Новые поколения микрокалькуляторов освоили символьные вычисления и графику умеренного разрешения. Так, микрокалькуляторы HP-48S и НР-95 способны выполнять множество аналитических операций, есть даже микрокалькуляторы TI-89 и TI-92 с встроенной системой символьной математики класса Derive. Эти и многие другие калькуляторы заметно продвинулись в части визуализации вычислений как при вводе данных, так и выводе их результатов. Экраны их дисплеев уже отображают таблицы, математические формулы и графики.
Современные микропроцессоры, математические сопроцессоры и графические процессоры видеоплат используют средства компьютерной математики, связанные с обработкой массивов информации, интерполяцией и аппроксимацией функций, дискретным преобразованием Фурье и т.д. К сожалению, доступ пользователей к аппаратным средствам компьютерной математики практически закрыт. В тоже время с позиций математики в этих средствах нет ничего нового, что не было бы "прозрачно" реализовано в современных программных средствах ЭВМ – в системах компьютерной математики. И вообще надо сказать, что программные средства математики развиваются намного быстрее аппаратных. Именно поэтому специфичные аппаратные реализации компьютерной математики далее мы рассматривать не будем.
Мы будем также считать, что наши возможности ограничены средствами наиболее распространенных и доступных персональных компьютеров (ПК). Узкоспециальные вопросы организации параллельных вычислений, специальных алгоритмов вычислений, используемых в аппаратной реализации компьютеров (включая средства графических процессоров, команды мультимедиа-расширений ММХ и так далее), мы рассматривать не будем по уже отмеченным выше обстоятельствам.
В настоящее время компьютерные математические системы можно (достаточно условно) подразделить на 7 основных классов:
1. Системы для численных расчетов
2. Табличные процессоры
3. Матричные системы
4. Системы для статистических расчетов
5. Системы для специальных расчетов
6. Системы для аналитических расчетов (компьютерной алгебры)
7. Универсальные системы
Каждая из математических систем имеет определенные специфические для нее свойства, которые необходимо учитывать при решении конкретных математических задач.
Компьютерные математические системы как класс специализированных программных средств, рассчитанных на индивидуальную работу,возникли лишь в начале 80-х годов XX века. Этому способствовало зарождение в это же время индустрии персональных компьютеров (ПК), что открыло дорогу таким системам к массовому пользователю. Отдельные системы (например, MATLAB) были известны задолго этого, но они были реализованы лишь на больших ЭВМ и были доступными ограниченному кругу лиц. Эти системы представляли средства коллективного пользования,применение которых даже для решения простых задач требовало участия многих специалистов.
Сейчас такие системы благодаря их установке на ПК доступны педагогам и ученым, студентам и школьникам не только в коллективном, но и в индивидуальном порядке. Они используются в университетах и вузах, школах и колледжах (особенно с математическим уклоном). Велика роль таких систем и в автоматизации научно-технических расчетов и в математическом моделировании природных явлений и технических систем и устройств.
В настоящее время применяется множество математических программ – от простых калькуляторов, встроенных в операционные системы типа Windows, до универсальных систем, при полной инсталляции занимающих многие сотни Мбайт памяти на жестком диске (MATLAB 5.2.1 и 5.3), и программных комплексов, интегрирующих ряд таких программ. Здесь особо надо отметить системы класса Mathcad, новые версии которых содержат системный интегратор MathConnex, обеспечивающий прямую интеграцию Mathcad с почти полутора десятками программ разного класса.
Интересно и еще одно направление интеграции - объединение возможностей текстовых редакторов (прежде всего в форматах Word и LaTEX) с математическими системами. К таким разработкам относятся Scientific NoteBook, MathOffice, Scientific Workplace и др. Подобные программные комплексы позволяют готовить электронные документы и книги высочайшего качества с "живыми" примерами математических расчетов.
Помимо указанного деления на классы, правомерно деление компьютерных математических систем и по сложности решаемых ими задач. Так, можно выделить системы начального уровня (например, Derive и MuPAD), ориентированные на решение задач школьного образования и применение их студентами младших курсов вузов. К системам среднего класса можно отнести новую систему MuPAD и ставшую весьма популярной систему Mathcad. Высший класс представлен системами компьютерной алгебры Mathematica 2/3 и Maple V R3/R4/R5.
А такого "монстра" среди систем компьютерной математики, как матричную систему MATLAB 5.0/5.3.1 с ее многочисленными пакетами расширения и трудно укладываемой в нашем сознании стоимостью, можно отнести к особо элитным и потому дорогим системам для избранных и весьма придирчивых пользователей. Это как бы "Мерседес-600" в мире математических систем. Тем не менее в этой книге вы ознакомитесь со всеми этими системами.
К сожалению, на нашем и мировом рынках массовые системы компьютерной математики представлены только зарубежными программами. Это связано с тем, что современные программы этого класса относятся к числу наиболее сложных программных продуктов, требующих для своей разработки больших интеллектуальных, трудовых и финансовых затрат. Пик разработки таких программ пришелся на начало 90-х годов, что совпало с распадом СССР и возникновением в России глубокого экономического и финансового кризиса. В таких условиях, увы, создание программ, способных конкурировать с многочисленными зарубежными программами компьютерной математики, стало практически невозможным. Однако благодаря известным достоинствам операционных систем класса Windows нет никаких принципиальных ограничений на применение зарубежных программ компьютерной математики русскоязычными пользователями, хотя определенные неудобства (например, англоязычные справочные системы) есть налицо.
Рассмотрим особенности каждого из выше упомянутых классов математических систем.
Системы компьютерной математики для численных расчетов.
Задачи, решаемые системами для численных расчетов.
К наиболее распространенным средствам, предоставляемым системами для численных расчетов, относятся:
- арифметические и алгебраические операторы и функции;
- функции для работы с комплексными числами;
- тригонометрические и гиперболические функции;
- обратные тригонометрические и гиперболические функции;
- логические операторы и функции;
- векторные и матричные операторы и функции;
- средства для решения систем линейных алгебраических уравнений;
- специальные математические функции;
- средства арифметики степенных многочленов (полиномов);
- функции для нахождения комплексных корней многочленов;
- функции для решения систем нелинейных алгебраических уравнений;
- средства для решения систем дифференциальных уравнений;
- средства оптимизации функций и линейного программирования;
- средства одномерной и многомерной интерполяции;
- средства создания двухмерных и трехмерных графиков;
- типовые средства программирования.
Системами для численных расчетов являются:
· Встроенные калькуляторы Windows.
· Табличные процессоры.
· Математические системы Eureka и Mercury.
С математической системой Eureka, пожалуй, началось применение компьютерных математических систем массовым пользователем. Эта система под MS-Dos была создана фирмой Borland. Eureka основана на алгоритме решения произвольных систем нелинейных и линейных уравнений с минимизацией погрешности решения по методу наименьших квадратов. Она неплохо справляется с решение оптимизационных задач, решением систем линейных и нелинейных уравнений и задачами из области линейного программирования. Сегодня эта система устарела.
Система Mercury это творческая переработка Eureka. Несколько улучшен входной язык последней, и стала использоваться обычная графика – Eureka ухитрялась строить графики функций в текстовом режиме с очень низким разрешением. Тем не менее, программа Mercury также устарела.
· Математические системы MathCad под MS-DOS.
MathCad 2.0-2.5 ( под MS-DOS) фирмы MathSoft Inc. Эти версии зарождались как системы для численных расчетов с пользовательским интерфейсом и входным языком, позволяющим создавать документы в стиле блокнотов, записи в которых максимально приближены к обычному математическому языку. Такие записи в одном документе содержат текстовые комментарии, математические выражения, формулы, таблицы, результаты вычислений и рисунки.
· Системы класса MATLAB.
Системы Mathlab фирмы MathWork Inc. – матричные системы. У этих систем даже единичное числовое значение воспринимается как элемент матрицы размера 1´1. Практически все функции системы (включая элементарные) определены как матричные – способные обрабатывать массивы.
· Системы для статистических расчетов.
Особую разновидность математических систем образуют программы, предназначенные для проведения статистических расчетов: StatGraphics Plus, Statistica, SPSS, S-PLUS и др. Есть среди этих программ и российская программа STADIA, созданная в МГУ автором книги по ней Калаичевым А.П.. Интерфейс таких программ напоминает описанный выше интерфейс табличного процессора Excel. Так, вначале пользователю предоставляется возможность ввести данные в виде электронной таблицы или загрузить их в таблицу с накопителей информации.
Правила работы с электронными таблицами StatGraphics те же, что и для табличного процессора Excel. Большинство вычислений выполняется по правилу: ввел данные в таблицу, выделил нужные данные, исполнил команду нужного вида вычислений (например, регрессии, корреляции, обработки временных рядов и т.д.)
К числу нового поколения статистических программ можно отнести и программу S-PLUS, созданную фирмой MathSoft Inc. - разработчиком всемирно известной универсальной программы Mathcad.
Главное отличие статистических программ от табличных процессоров заключается в большем числе встроенных специальных статистических функций, позволяющих выполнять без программирования огромное число статистических вычислений, представляя их результаты в табличной, графической и иной форме.
Некоторые статистические программы, например лидер в этом классе программ - Statistica, обладают весьма представительным числом типов графиков, которые они могут создавать (см. примеры выше). Широко распространены многовариантные статистические расчеты. С помощью таких программ, выполняя, скажем, приближение данных с помощью регрессии, вы можете опробовать в деле сразу десятки функций регрессии, оценив пригодность каждой из них и достигаемую при этом погрешность. Многие статистические системы имеют завидные по качеству специальные графики и диаграммы, широко применяемые в финансово-экономических расчетах.
Невозможно отрицать, что при выполнении серьезных статистических расчетов такие программы имеют определенные преимущества перед универсальными программами и что они занимают важное место в арсенале средств компьютерной математики. Например, при использовании универсальных программ можно порой получить абсурдные результаты из-за одной-двух грубых ошибок в заполнении матрицы исходных данных. Статистические системы обычно автоматически отсеивают такие ошибочные данные или четко предупреждают пользователя об их обнаружении. В результате возможность получения неверных результатов при их применении резко снижается.
· Системы для специальных расчетов.
Имеется большое число программ, изначально ориентированных на некоторые специальные виды математических расчетов, например на решение систем нелинейных уравнений (ТК Solver), решение систем дифференциальных уравнений (Dynamic Solver), построение графиков функций (Axum, MathPlot, Sigma Plot), выполнения нелинейной регрессии (DataFit Nonlinear Regression), моделирования электронных схем (MicroCAP 5, Electronics Workbench, PSPice, Design Labs и др.) и т.д. Целое поколение матричных систем породила система MATLAB, но ни один из ее потомков не превзошел своего родителя - системы MATLAB 5.0/5.3.
Из программ этого класса, пожалуй, особый интерес представляют программы для построения графиков. Здесь особо выделяется лучшая в этом классе программа - AXUM 5.0/6.0, созданная фирмой MathSoft Inc. и прекрасно интегрирующаяся с математической системой Mathcad.
В настоящее время эти программы (за исключением графических) находят ограниченное применение, поскольку все их возможности намного перекрываются математическими системами для численных и аналитических вычислений и системами универсального назначения. Поэтому этот класс программ в данной книге специально не рассматривается, хотя многие описанные ниже положения всецело применимы и к данным программам.
Уникальные графические возможности предоставляет и программа VISIO, кстати, прекрасно уживающаяся с популярной системой Mathcad. Однако при всех своих презентационных и прочих графических возможностях эта программа прямого отношения к математическим системам не имеет.
К особому классу систем компьютерной математики относятся различные системы математического моделирования. Например, для моделирования блочно заданных произвольных систем и устройств служит очень мощное приложение Simulink, вошедшее в новые версии ситемы MATLAB. Приятное впечатление оставляет анализатор динамических систем Dynamic Solver, созданный в университете страны басков (Испания) в департаменте теоретической физики.
Весьма впечатляют современные программы проектирования и моделирования электронных схем, например MicroCAP, OrCAD, DesignLab, Electronics Workbench и др. Они позволяют задавать в графическом виде электронные схемы, после чего автоматически составляют и решают весьма громоздкие системы уравнений, описывающих их работу. Результаты моделирования представляются в очень удобной графической форме в виде осциллограмм, спектрограмм, частотных характеристик и так далее.
К сожалению, используемые в таких программах математические методы полностью скрыты от пользователя. Поэтому эти программные продукты специфического применения, являющиеся неотъемлемой частью арсенала компьютерной математики, в данную книгу не вошли.
Системы аналитических вычислений.
Системы аналитических вычислений (компьютерной алгебры) –это новейшее направление развития современной компьютерной математики. Основное их достоинство заключается в возможности выполнения вычислений в аналитическом видеи в возможности проведения арифметических и многих иных вычислений практически с любой желаемой точностью и без ограничений по максимальным (минимальным) значениям чисел.
Системы символьной математики (или компьютерной алгебры) представляют наиболее интеллектуальное и интересное направление развития систем компьютерной математики. Они уже сейчас делают то, что пару десятков лет тому назад казалось чистейшей фантастикой, - выполняют сложнейшие аналитические вычисления, в прошлом доступные только человеку.
ЭВМ и программные системы, производящие символьные вычисления и способные выдавать результаты в виде аналитических формул, известны довольно давно. Лидирующую роль в разработке таких ЭВМ у нас принадлежала школе советского академика В.М. Глушкова, где были созданы малые инженерные ЭВМ серии "Мир" с языком "Аналитик" для проведения символьных вычислений. К сожалению, эта ветвь вычислительной техники в дальнейшем не была поддержана в должной мере, и лидерство перешло к зарубежным разработчикам таких средств.
За рубежом был создан ряд языков программирования и программных систем для символьных операций: muMATH, Macsyma, Reduce, Maple V, Mathematica и др., создавших реальную основу для развития компьютерной алгебры. Среди этих систем одной из самых простых и получивших массовое распространение была система muMATH, реализованная на многих мини- и микро-ЭВМ. Фирма Soft Warehouse Inc. (США) на основе этой системы в последние годы разработала малую математическую систему Derive Mathematical Assistant (далее просто Derive).
Осознание роли компьютерной алгебры привело к тому, что ее средства со временем были включены в наиболее серьезные системы для численных расчетов (Mathcad и MATLAB), что превратило их в мощные и гибкие универсальные математические системы.
Отличительной чертой систем компьютерной алгебры является возможность вычисления математических выражений в общем виде. Например, если попытаться выполнить вычисление выражения sin(x)2+cos(x)2 в общем виде – для любого х, к примеру, взять и поставить справа знак равенства, то при использовании обычных языков программирования или математических систем для численных расчетов будет выведено сообщение об ошибке – напоминание о том, что переменная х не определена. Это вполне естественно и совершенно тривиально. При использовании систем аналитических вычислений результатом будет, как и положено, единица. В этом принципиальное отличие данных систем от любых систем численного счета.
Разумеется, это тривиальный пример. Куда важнее, что они способны вычислять аналитически производные и интегралы, выполнять подстановки одних сложных выражений в другие, выполнять математические преобразования и тому подобное. Словом выполнять "человеческую" работу.
Универсальные системы.
Универсальными считаются системы, которые пригодны для выполнения численных, так и аналитических расчетов, включая статистические расчеты и визуализацию всех видов расчетов средствами графики. Разумеется, каждая их таких систем тяготеет к одному из этих двух классов – численных или аналитических.
К универсальным системам относятся:
· Математические системы класса MathCad под Windows
· Математические системы Mathematica
· Математическая система Maple
· Математическая система Matlab