2. Зарождение и развитие систем компьютерной алгебры

 

Зарождение и развитие систем компьютерной алгебры

У истоков рождения систем компьютерной алгебры

Эру создания компьютерной символьной математики принято отсчитывать с начала 60-х годов. Именно тогда в вычислительной технике возникла новая ветвь компьютерной математики, не совсем точно, но зато броско названная компьютерной алгеброй. Речь шла о возможности создания компьютерных систем, способных осуществлять типовые алгебраические преобразования: подстановки в выражениях, упрощение выражений, операции со степенными многочленами (полиномами), решение линейных и нелинейных уравнений и их систем, вычисление их корней и т. д. При этом предполагалась возможность получения аналитических (символьных) результатов везде, где это только возможно.

К сожалению, книги по этому направлению были способны лишь отпугнуть обычного читателя и пользователя компьютера от изучения возможностей компьютерной алгебры в силу перенасыщенности их узкоспециальным теоретическим материалом и весьма специфического языка описания. Материал таких книг, возможно, интересен математикам, занимающимся разработкой систем компьютерной алгебры, но отнюдь не основной массе их пользователей.

Большинство же пользователей заинтересовано в том, чтобы правильно выполнить конкретные аналитические преобразования, вычислить в символьном виде производную или первообразную заданной функции, разложить ее в ряд Тейлора или Фурье, провести аппроксимацию и т. д., а вовсе не в детальном и сложном математическом и логическом описании того, как это делается компьютером (или, точнее, его программистом). Здесь та же ситуация, что и с телевизором, радиоприемником или факсом: большинство из нас пользуются этими аппаратами, вовсе не интересуясь тем, как именно они выполняют свои довольно сложные функции.

Поняв эту истину, многие западные фирмы приступили к созданию компьютерных систем символьной математики, ориентированных на широкие круги пользователей, не являющихся профессионалами в компьютерной алгебре. Учитывая невероятно большую сложность автоматизации решения задач в аналитическом виде (число математических преобразований и соотношений весьма велико, и некоторые из них неоднозначны в истолковании), первые подобные системы удалось создать лишь для больших ЭВМ. Но затем появились и системы, доступные для мини-ЭВМ. Заметное развитие получили языки программирования для символьных вычислений Reduce, система muMath для малых ЭВМ, а в дальнейшем — интегрированные системы символьной математики для персональных компьютеров: Derive, MathCAD, Mathematica, Maple V и др.

В бывшем СССР большой вклад в развитие систем символьной математики внесла школа покойного академика Глушкова. В конце 70-х годов были созданы малые инженерные ЭВМ класса «Мир», способные выполнять аналитические вычисления даже на аппаратном уровне. Был разработан и успешно применялся язык символьных вычислений «Аналитик». Эти работы отчасти предвосхитили развитие систем символьной математики. К огромному сожалению, они появились слишком рано для своего времени и не соответствовали «генеральной линии» развития советской вычислительной техники в те годы. Уклон в сторону развития больших ЭВМ серии ЕС, навязанный в СССР компьютерными чиновниками, отодвинул компьютеры «Мир» на задний план, а затем этот класс компьютеров просто прекратил свое существование и развитие.

К сожалению, в отрыве от мировой науки и серьезных источников финансирования наши работы (за исключением некоторых теоретических) в области компьютерной алгебры оказались малоэффективными — отечественных систем компьютерной алгебры для персональных компьютеров, доведенных до серийного производства и мировой известности, так и не было создано (впрочем, как и конкурентоспособных ПК на нашей элементной базе). Зато множество наших специалистов — как математиков, так и программистов — эмигрировали на Запад и приняли участие, порой весьма серьезное, в разработке западных систем символьной математики. В том числе и систем класса Mathematica.

Стоимость серийных СКМ все еще чрезмерно велика для большинства наших пользователей. Поэтому не случайно, что (за редчайшим исключением) наши пользователи используют такие системы, распространяемые на CD-ROM сомнительного происхождения. Однако программные продукты на таких CD-ROM поступают без документации, а порой даже в неполном и неполноценном виде, что затрудняет их серьезное применение.

Книги, подобные этой, призваны помочь нашим пользователям эффективно использовать современные программные продукты. Хочется надеяться, что со временем это приведет к росту авторитета нашей науки и образования, повышению благосостояния ученых, педагогов и учащихся, которые, наконец, получат возможность приобретать вполне легальное программное обеспечение с полной документацией.

 

Системы символьной математики для персональных компьютеров

На Западе решающий скачок в компьютеризации общества произошел с началом массового производства и внедрения ПК. Долгое время их ограниченные возможности не позволяли реализовать на них серьезные системы символьной математики. Но к началу 90-х годов ситуация стала заметно меняться к лучшему. С одной стороны, аппаратные возможности ПК стали резко возрастать по мере быстрой смены поколений микропроцессоров. Тут надо помянуть добрым словом фирму Intel, отстаивающую честь «закона Мура» (одного из своих основателей) и каждый год удваивающую как степень интеграции своих процессоров, так и их производительность. В итоге по скорости счета и объему оперативного запоминающего устройства (ОЗУ) ПК стали обходить «большие» ЭВМ класса ЕС, а сейчас оставили их далеко позади. Это создало реальные предпосылки к развертыванию работ по разработке систем компьютерной алгебры. Впрочем, надо помнить, что разрыв в производительности между новейшими ПК и многопроцессорными суперЭВМ и в наши дни остается поразительно большим!

Многие СКМ пришли в мир ПК из мира больших ЭВМ, таких как суперкомпьютеры Cray (производятся и поныне фирмой Silicon Graphics). В итоге они стали доступными не только представителям научной элиты, вполне познавшим возможности таких систем, но и рядовым пользователям, которые испытывали граничащее с шоком восхищение от созерцания обширных возможностей этих новых систем. Перейти от него к реальному применению СКМ — этому и призвана помочь данная книга.

Среди разработчиков математических систем долгое время бытовало мнение о вторичной роли пользовательского интерфейса и главенствующем значении математических возможностей таких систем. В результате в прошлом пользовательский интерфейс многих математических систем отличался ущербной простотой и архаичностью.

С переводом таких систем на ПК с графическими операционными системами класса Windows с таким подходом пришлось решительно кончать. Более того, превосходная цветная графика высокого разрешения современных ПК, о которой пользователи ЭВМ класса ЕС не могли и мечтать, резко повысила не только роль графического представления данных вычислений, но и привела к слиянию пользовательского интерфейса математических систем с интерфейсом современных графических операционных систем, таких как Windows 3.1/3.11/95/98/NT/2000. Образцом для подражания повсеместно стал интерфейс пользователя массовых офисных программ — Microsoft Office 95/97/2000.

Наибольшую известность получили три класса систем символьной математики: созданная на базе языка искусственного интеллекта Mu Lisp малая система Derive, одна из самых мощных и поныне привлекательных систем Maple V (ядро написано на языке С) и системы Mathematica 1 и 2. Позже на базе ядра системы Maple V символьные вычисления были реализованы в популярных числовых системах Mathcad - версии Mathcad 3.0/4.0/5.0/Plus 5.0/6/0/Plus 6.0/7.0/Plus 7.0/8.0/ 8.0 PRO/2000 PRO/2000 Premium имеют изумительный пользовательский интерфейс и возможности, улучшающиеся от версии к версии. Блок символьной математики на базе ядра Maple V был добавлен и в одну из самых крупных матричных систем — MATLAB.

Система Derive [15,16] и поныне привлекательна своими невзыскательными требованиями к аппаратным ресурсам ПК — это единственная система, которая работает даже на ПК класса IBM PC XT без жесткого диска. Более того, при решении задач умеренной сложности она показала более высокое быстродействие и большую надежность решения, чем первые версии систем Maple V и Mathematica. Впрочем, системе Derive трудно конкурировать с этими системами всерьез — ни по обилию функций и правил аналитических преобразований, ни по возможностям машинной графики и удобству пользовательского интерфейса. Пока Derive обречена на достаточно важную роль учебных систем компьютерной алгебры начального уровня.

Хотя новейшая версия Derive 5 под Windows уже имеет современный интерфейс, он все же во многом уступает изысканному интерфейсу своих маститых конкурентов. А по возможности графической визуализации результатов вычислений Derive все еще далеко отстает от них. То же можно сказать и о новой системе символьной математики MuPAD 1.4.

Система Maple V— патриарх в семействе систем символьной математики. И поныне это весьма привлекательная система для математика-аналитика и научного работника. Даже в среде MS-DOS Maple V имеет неплохой интерфейс и превосходно организованную обширную базу данных помощи. Полнота ядра системы, хранящего более 2700 математических функций (у последней реализации Maple 6 их уже свыше 3000!) и правил их преобразования, вполне заслуживает восторга и большого уважения. Весьма привлекательное свойство этой системы — подробная встроенная помощь и множество примеров ко всем встроенным в нее функциям и прикладным пакетам. Эти примеры легко скопировать в окно редактирования системы и тут же решить.

Достойна восхищения и математическая графика системы Maple, в частности возможность изображения пересекающихся трехмерных фигур с функциональной окраской. Новейшие системы Maple V для Windows (реализации R5 и 6) по возможностям графики стоят на одном уровне с системами Mathematica 3/4. Считается, что они несколько превосходят системы Mathematica в части символьных преобразований, но такое превосходство на сегодня уже является весьма спорным.

К сожалению, фирма Waterloo Maple, Inc. (Канада) - разработчик системы Maple V — больше блистала математической проработкой своего проекта, чем уровнем его коммерческой реализации. В силу этого система Maple V была доступна в основном узкому кругу профессионалов. Сейчас эта фирма работает совместно с более преуспевающей в коммерции и проработке пользовательского интерфейса математических систем фирмой MathSoft, Inc. — создательницей весьма популярных и массовых систем для численных расчетов Mathcad, ставших международным стандартом для технических вычислений. Пока, однако, математические возможности этих систем в области компьютерной алгебры намного уступают системам Maple V, Mathematica 2 и даже малютке Derive (не говоря уже о реализациях Mathematica 3 и 4).

Появление новых версий Mathematica 3 и 4 вновь резко поднимает планку оценки качества систем компьютерной алгебры. Наступает новый этап интеграции математических систем как друг с другом, так и с современными текстовыми и табличными процессорами, такими как Word 95/97 и Excel 95/97 из офисных пакетов Microsoft Office 95/97 (на подходе и Office 2000).

Всяческих похвал заслуживают последние реализации матричных систем MAT-LAB 5.2/5.3, но это очень громоздкая система, последняя реализация которой — MATLAB 5.3.1 - занимает на жестком диске 1500 Мбайт памяти (даже Mathematica 4 требует на порядок меньше места). Система MATLAB создана фирмой Math Works (США).

Сейчас уже ясно, что конкурентоспособные отечественные системы символьной математики у нас, в силу известной экономической ситуации, в обозримом будущем не появятся. Это печальное положение делает особенно актуальным освоение нашими учеными, педагогами и учащимися новейших западных систем компьютерной алгебры. К таковым и относятся системы класса Mathematica — признанные мировые лидеры среди систем символьной математики, ориентированных на персональные компьютеры.