Зарождение и развитие систем компьютерной алгебры
В наши дни многие уже путают компьютерную математику как науку о математических вычислениях и преобразованиях с помощью компьютеров с СКМ Маthematica, созданной фирмой Wolfram Research, Inc. Хотя это и знаменательно само по себе, во избежание такой путаницы мы начнем наш курс с рассказа о том, как зародилась компьютерная математика и как были созданы программные системы компьютерной математики различных классов. Здесь мы также опишем отражение системы Mathematica в мировой сети Интернет.
Для многих неискушенных в математике пользователей не совсем понятно, что делают СКМ, особенно те из них, которые выполняют символьные операции. Поэтому в этом уроке мы впервые познакомимся с особенностями различных систем и оценим их возможности, так сказать, в первом приближении. Некоторые из приведенных примеров лучше повторить в дальнейшем – после изучения основ работы с системой Mathematica. Впрочем, нетерпеливые учащиеся могут попробовать сделать это немедленно! Однако, чтобы запустить систему Mathematica 3 или 4 и начать работу с ней, надо вначале установить систему на жесткий диск вашего ПК. Об этом пойдет речь в конце данного урока.
У истоков рождения систем компьютерной алгебры
Эру создания компьютерной символьной математики принято отсчитывать с начала 60-х годов. Именно тогда в вычислительной технике возникла новая ветвь компьютерной математики, не совсем точно, но зато броско названная компьютерной алгеброй. Речь шла о возможности создания компьютерных систем, способных осуществлять типовые алгебраические преобразования: подстановки в выражениях, упрощение выражений, операции со степенными многочленами (полиномами), решение линейных и нелинейных уравнений и их систем, вычисление их корней и т. д. При этом предполагалась возможность получения аналитических (символьных) результатов везде, где это только возможно.
К сожалению, книги по этому направлению были способны лишь отпугнуть обычного читателя и пользователя компьютера от изучения возможностей компьютерной алгебры в силу перенасыщенности их узкоспециальным теоретическим материалом и весьма специфического языка описания. Материал таких книг, возможно, интересен математикам, занимающимся разработкой систем компьютерной алгебры, но отнюдь не основной массе их пользователей.
Большинство же пользователей заинтересовано в том, чтобы правильно выполнить конкретные аналитические преобразования, вычислить в символьном виде производную или первообразную заданной функции, разложить ее в ряд Тейлора или Фурье, провести аппроксимацию и т. д., а вовсе не в детальном и сложном математическом и логическом описании того, как это делается компьютером (или, точнее, его программистом). Здесь та же ситуация, что и с телевизором, радиоприемником или факсом: большинство из нас пользуются этими аппаратами, вовсе не интересуясь тем, как именно они выполняют свои довольно сложные функции.
Поняв эту истину, многие западные фирмы приступили к созданию компьютерных систем символьной математики, ориентированных на широкие круги пользователей, не являющихся профессионалами в компьютерной алгебре. Учитывая невероятно большую сложность автоматизации решения задач в аналитическом виде (число математических преобразований и соотношений весьма велико, и некоторые из них неоднозначны в истолковании), первые подобные системы удалось создать лишь для больших ЭВМ. Но затем появились и системы, доступные для мини-ЭВМ. Заметное развитие получили языки программирования для символьных вычислений Reduce, система muMath для малых ЭВМ, а в дальнейшем – интегрированные системы символьной математики для персональных компьютеров: Derive, MathCAD, Mathematica, Maple V и др.
В бывшем СССР большой вклад в развитие систем символьной математики внесла школа покойного академика Глушкова. В конце 70-х годов были созданы малые инженерные ЭВМ класса "Мир", способные выполнять аналитические вычисления даже на аппаратном уровне. Был разработан и успешно применялся язык символьных вычислений "Аналитик". Эти работы отчасти предвосхитили развитие систем символьной математики. К огромному сожалению, они появились слишком рано для своего времени и не соответствовали "генеральной линии" развития советской вычислительной техники в те годы. Уклон в сторону развития больших ЭВМ серии ЕС, навязанный в СССР компьютерными чиновниками, отодвинул компьютеры "Мир" на задний план, а затем этот класс компьютеров просто прекратил свое существование и развитие.
К сожалению, в отрыве от мировой науки и серьезных источников финансирования наши работы (за исключением некоторых теоретических) в области компьютерной алгебры оказались малоэффективными – отечественных систем компьютерной алгебры для персональных компьютеров, доведенных до серийного производства и мировой известности, так и не было создано (впрочем, как и конкурентоспособных ПК на нашей элементной базе). Зато множество наших специалистов – как математиков, так и программистов – эмигрировали на Запад и приняли участие, порой весьма серьезное, в разработке западных систем символьной математики. В том числе и систем класса Mathematica.
Стоимость серийных СКМ все еще чрезмерно велика для большинства наших пользователей. Поэтому не случайно, что (за редчайшим исключением) наши пользователи используют такие системы, распространяемые на CD-ROM сомнительного происхождения. Однако программные продукты на таких CD-ROM поступают без документации, а порой даже в неполном и неполноценном виде, что затрудняет их серьезное применение.
Книги, подобные этой, призваны помочь нашим пользователям эффективно использовать современные программные продукты. Хочется надеяться, что со временем это приведет к росту авторитета нашей науки и образования, повышению благосостояния ученых, педагогов и учащихся, которые, наконец, получат возможность приобретать вполне легальное программное обеспечение с полной документацией.