Вопрос: Какой язык программирования вы предпочитаете
|
Иллюстрированный самоучитель по Mathematica
Зарождение и развитие систем
компьютерной алгебры
У истоков рождения систем компьютерной алгебры
Эру создания
компьютерной символьной математики принято отсчитывать с начала 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 — признанные мировые лидеры среди систем
символьной математики, ориентированных на персональные компьютеры.
|
|
|