Компьютерная алгебра в современном образовании механика

Ефимов Георгий Борисович

КОМПЬЮТЕРНАЯ АЛГЕБРА В СОВРЕМЕННОМ ОБРАЗОВАНИИ МЕХАНИКА

Наша работа посвящена Святославу Сергеевичу Лаврову в связи с его 80-летием. Святослав Сергеевич, как известно, был соратником С.П. Королева в самые первые годы «космической эры». В тот героический период космонавтики он тесно общался с моими учителями и старшими коллегами из Института прикладной математики Академии наук (их тогда называли в этом кругу «мальчиками Келдыша»). Когда среди них упоминалось имя Святослава Сергеевича, я слышал: «А, Свет Сергеевич», и лица их просветлялись. Сам я к этой героической эпопее отношения мало имел, занимался символьными вычислениями на М-20 для расчета траекторий полета с «малой тягой» (электроракетными двигателями).

Потом у нас наступил определенный «кризис жанра», стали искать новые задачи. Д.Е. Охоцимский занялся подвижными роботами, задачами искусственного интеллекта и шагания для них. К ним подключили и меня, но разрешили заниматься и КоАл (компьютерной алгеброй) — в таких сложных многосоставных системах пакеты КоАл могут использоваться. Накануне 1980 года вдруг снова стала интересной малая тяга — в связи с приближением знаменитой кометы Галлея (раз в 76 лет). Возник интерес к достижению комет и астероидов, до которых долететь и сесть на них с обычной ракетной техникой затруднительно. Началась работа по полетам с малой тягой вместе с профессором В.А. Егоровым, ветераном космонавтики, его студентами и аспирантами из МГУ.

Однако продолжалась и работа по КоАл: была создана система ПАС на фортране для вывода уравнений движения в задачах шагания робота. Установились контакты с коллегами по выводу уравнений движения по небесной механике. В Институте механики МГУ по инициативе В.А. Самсонова и М.В. Грошевой собирались семинары. К этому времени Святослав Сергеевич полностью перешел в программирование, под его руководством был создан отечественный компилятор Лиспа (языка для задач искусственного интеллекта и КоАл), появились ученики и в этой области. Он переехал в Ленинград, возглавил Институт теоретической астрономии АН, где вокруг В.А. Брумберга была сильная группа по КоАл для задач небесной механики.

Поэтому, когда в 1980 году на школе по пакетам прикладных программ на Байкале я встретил Святослава Сергеевича, мне было и приятно и тревожно. Моя лекция по КоАл была в самом конце, а знания о пакетах, способах их описания — почти нулевые. Пришлось усердно впитывать премудрость о ППП, чтобы «попасть в тон». На одном из докладов я услыхал о схеме цикла вычислительного эксперимента А.А. Самарского, по нему и построил свой доклад, приводя примеры применения КоАл на этапах цикла. Часть народа уже разъехалась, тем приятнее было увидать Святослава Сергеевича в первом ряду. Он внимательно слушал, задал вопросы. Позже я тешил себя надеждой, что заме-

чание о важности численно-символьного интерфейса в КоАл (выпадавшего тогда у многих из поля зрения) могло как-то способствовать работам в ИТА.

В 1981 году быила конференция «Методы1 трансляции» в Новосибирске. А.П. Ершов, интересовавшийся КоАл, дал нам место на одной из секций. К тому времени на новом поколении машин (БЭСМ-6 и первыа ЕС) работы1 по КоАл начали набирать силу, многие прикладники и программисты создавали свои системы. Мы решили собраться в гостинице вечером и обсудить планы координации работ для признания КоАл за особое направление. Святослав Сергеевич энергично перевел наше собрание из холла в свой «люкс», там быипо гораздо удобнее. Его внимательная поддержка, авторитетные советы1 в организационных вопросах были очень полезны.

Еще важнее они быили при организации первой Всесоюзной конференции по КоАл в Нижнем Новгороде в 1984 году (в ее название быипо добавлено слово «механика», поскольку ею руководили академики-механики - А.А. Самарский и А.Ю.Ишлинский с Д.М.Климовым). Не все высокие члены1 оргкомитета одинаково серьезно относились к КоАл и понимали ее специфику. Компетентность и «добротность» Святослава Сергеевича быти для нас, «рабочих лошадок», очень важные прибавляли уверенности. Конференция удалась, она показала, что сделано за 20 лет, наметила пути работыi. Показательно, что, например, все доклады1 по применениям КоАл в теории упругости попали в Реферативный журнал по механике.

Наконец, встреча в 2000 году на международной конференции по применениям КоАл (IMACS АСА-2000, 25-28 June, St. Petersburg) в Санкт-Петербурге, в здании Шува-ловского дворца на Фонтанке. Среди большого числа иностранцев и поредевшей когор-ты1 коллег-соотечественников так приятно быило увидать Святослава Сергеевича. От него исходило особое «излучение» - уверенности, основательности, спокойной силы . Интеллигентная и внешне скромная, внутренне мощная личность - первооткрывателя, одного из легендарных «зубров» нашей науки.

Дай ему Бог всего самого хорошего, бодрости и сил «на многая лета».

Идея символьных, не численных преобразований формул на компьютере (компьютерной алгебры - КоАл) возникла почти одновременно с появлением компьютеров - как одно из направлений передачи интеллектуальной деятельности человека машине, обучения компьютера по образцу человека. В математике, механике и физике уже тогда, 50-60 лет назад, имелось немало хорошо алгоритмизированных и весьма громоздких действий, которые могли бы быть автоматизированы. Например, преобразования тригонометрических выражений, действия с рядами (полиномами, степенными, тригонометрическими и другими), взятие определенных и неопределенных интегралов и т. д.

Многие из подобных вычислений уже сто лет назад достигли большой громоздкости. Так, французский астроном Ш.Делонэ в конце XIX века посвятил 20 лет построе-

нию высокоточной теории движения Луны. Решение дифференциальных уравнений движения Луны (с учетом воздействия не только Земли и Солнца, но и других факторов) строилось в виде рядов - тригонометрических, с аргументами - сочетанием несколь-

симёолйНих, Не числеННих ареобрауо&я-Ний формул На комп-ш&ере,,.

^Ногие ир пофобНих 6-шислеНий уфе сКо лей На^аф. фосКигли большой громо^фкос&и.

ких угловых переменных (от движения Земли, Солнца и т. п.) с коэффициентами в виде степенных полиномов по степеням малых величин, эксцентриситетов и наклонений орбит возмущающих тел. Построение решения организуется итерационно, путем подстановки уже полученных рядов (удовлетворяющих уравнениям до к-й степени малого параметра) в правые части дифференциальных уравнений движения Луны и получения уточненных решений - рядов, удовлетворяющих уравнениям вплоть до членов к + 1-го порядка малости. Такой подход к построению решений в небесной механике -классический, применявшийся основателями современной астрономии еще в XVIII веке. Делонэ вычислил ряды до 10-й степени малого параметра и опубликовал их в 1860-67 годах в двух томах, включающих и все промежуточные результаты.

приходилось На еще Несо4ермеННих, маломощНих компьюКерах своими силами решаКь и ^афлгу ра^рабоКки сисКем ^^о^л...

Одним из первых ярких достижений компьютерной алгебры было повторение англичанином Д.Бартоном в 1966 году решения Делонэ на компьютере. Расчет занял около часа, причем была обнаружена ошибка в вычислениях Делонэ в рядах при 8-м порядке малости. Тем самым, почти половина полученных рядов (по размеру выражений и по времени их вычисления) оказалась неверной.

Не менее полезным и необходимым оказалось применение компьютерной алгебры в исследовании современных сложных систем механики, машин и приборов. Сюда можно отнести спутники с их солнечными батареями и антеннами, гироскопы, управляющие полетом спутников, ракет и самолетов, роботы и манипуляторы и т. д. Для всех этих систем, состоящих из большого числа связанных, взаимодействующих частей, имеющих большое число степеней свободы, само написание уравнений движения для них (для последующего анализа и моделирования на компьютере) представляет непростую и весьма громоздкую задачу.

Как известно, уравнения движения в форме Лагранжа выводятся следующим образом. Формируются выражения потенциальной и и кинетической Т энергии механической системы в так называемых обобщенных лагранжевых координатах и соответствующих скоростях. Уравнения движения в этих координатах получаются дифференцированием Т и и сперва по координатам и скоростям, а потом производная по скорости дифференцируется по времени. Если в системе КоАл имеются программы формирования функций Т и и, дифференцирования частного и полного по времени (с учетом зависимости координат от времени), получить формулы для уравнений движения нетрудно. Полученная система дифференциальных уравнений передается в программу ее численного интегрирования для моделирования динамики движения. Кроме известных классических форм уравнений движения (Ньютона, Лагранжа, Эйлера), существуют и другие, более удобные при использовании на компьютере, особенно при большом числе степеней свободы механической системы.

Механики были среди первых работников символьных преобразований на компьютере (или вычислений CAB), как тогда называли КоАл. Им приходилось на еще несовершенных, маломощных компьютерах своими силами решать и задачу разработки систем КоАл и автоматизации с ее помощью вывода уравнений движения механических систем вместе с программированием их правых частей для моделирования динамики движения. Системы КоАл создавались механиками, инженерами - на фортране, алголе, PL, на автокоде на машинах БЭСМ-6, ЕС, СМ, на языке АНАЛИТИК, аппаратно реализованном в машине МИР-2. Программы и соответствующие системы были приспособлены для решения определенного класса задач, для механических систем частного вида - одна система преимущественно для гироскопов, другая для станков, третья для спутников или машин. Таким способом удавалось подобрать наиболее удобный вид уравнений и координат, учесть специфику механической системы, добиться экономии памяти и времени работы, что было часто решающим для машин с очень скромным объемом памяти и быстродействием. Был разработан ряд оригинальных систем КоАл специально для задач механики, а также механические пакеты программ в системах КоАл: АНАЛИТИК, Редьюс, АВТОАНАЛИТИК и других.

B настоящее время системы КоАл общедоступны, широко распространены -например, пакеты КоАл в системах Maple, MACSYMA, MATHEMATICA, Reduce и других. Ими пользуются инженеры, студенты (например, для выполнения домашних заданий по анализу или для их проверки). Однако решать с их помощью механические задачи, в частности, выводить уравнения движения для достаточно сложных систем, как правило, не так просто. Размер получающихся выражений растет по экспоненте с ростом числа степеней свободы механической системы. Работать «в лоб» по учебнику механики в стандартных пакетах КоАл удается лишь для модельных, учебных задач, которые не так уж трудно сделать и вручную. Чтобы уложиться в возмож-

фаумер шмуга(Ощнхс& ёирафеНий расЛеЛ пл жспаНеН&е с росЛлм гисха сЛепеНей сёобофи мехлНигеисай сисЛеми.

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

Одним словом, если перед механиком встает задача исследования сложной механической системы со многими степенями

"&efiefKo спе/иллисЛи ... со^^люЛ числеННуа программу, коЛорл& клс би имиЛируеЛ рлбоЛу сисЛсми .

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

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

...обугеНие рабоКе На со&ремеННих сисКемах "Ко^л,,,

Существуют специальные системы-пакеты для решения подобных задач.

Механик во время обучения не знает, где в своей будущей работе придется обратиться к средствам КоАл. Это может быть работа с интегралами и т. п. Но может встретиться и автоматизация вывода уравнений движения. Например, для выяснения собственных колебаний колесной тележки электровоза. Если они попадут в резонанс с колебаниями при его движении, громадная машина на большой скорости начнет подпрыгивать, а колеса пробуксовывать. Тут недалеко и до аварии. Необходимо так подобрать конструктивные параметры тележки, чтобы исключить возникновение резонанса в заданном диапазоне скоростей движения. Приходится составлять уравнения движения тележки, искать частоты ее собственных колебаний - причем в формульном виде, учитывающем зависимость от конструктивных параметров. Затем находят такие области значений этих параметров, при которых резонанс не возникает. Расчет при помощи КоАл и ее методов гораздо удобнее численного моделирования, при котором приходится перебирать множество значений параметров и всевозможных их комбинаций. Подобный анализ бывает нужен при проектировании самых разных машин - от больших, транспортных, до системы перемотки магнитной ленты в магнитофоне.

Ясно, что для выяснения, чем из существующих программных средств удобнее всего воспользоваться для своей задачи или по какому пути идти в своих исследованиях, следует ознакомиться со спектром существующих систем КоАл и подходов, как в их теоретической части, так и в особенностях применения. Первоначальное ознакомление с возможностями и особенностями применения КоАл в задачах механики должно даваться во время обучения.

Образование студентов методам КоАл может происходить тремя способами:

- обучение работе на современных системах КоАл,

- привлечение их к созданию новых программных систем КоАл или реализации математических алгоритмов,

- участие в решение механических задач с помощью аппарата КоАл.

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

В Пермском государственном университете, благодаря усилиям его ректора и заведующего кафедрой теоретической механики В.В. Маланина, его коллег А.Б. Бяч-кова, И.Е. Полозкова и других, уже больше 15 лет знакомство с КоАл входит в обязательную часть обучения на механико-математическом факультете. Обучение КоАл и работа на ее системах в настоящее время развивается широко - персональные компьютеры и пакеты для них создают тут надежную базу, широко доступную. Примеры недавнего времени. На конференции в Минске в 1997 году (Международная конференция «Компьютерная алгебра. Наука и образование», декабрь, Минск) секция образования была одной из самых активных и многочисленных, включая педагогов из рядовых провинциальных ВУЗов Белоруссии, Украины и России. Также многочисленной и активной была секция образования на конференции IMFCS ACA-98 в Праге в 1998 году (International IMACS Conference on Applications of Computer Algebra, 9-11 Aug., 1998, Prage), в которой участвовали преподаватели не только ВУЗов, но и колледжей.

Участие студентов и аспирантов в разработке систем КоАл и реализации алгоритмов математики и механики - эффективный способ их обучения и привлечения к научным исследованиям. Тут в равной степени активны и программисты, и математики, и механики. Таким образом студенты привлекались к созданию многих отечественных систем КоАл. Сейчас работа идет, как правило, в рамках известных систем КоАл, центр тяжести перенесен на реализацию алгоритмов (или программист-

...приёхегеНие их к соудлНшл Нлёих проограммНих сисЛем ихи реыиуам/ш

маЛемаЛигеских алгоори&мооё,,,

ских инструментов в рамках этих систем и пакетов для их усовершенствования). Пример в области математики - интенсивная работа по методу базиса Гребнера (преобразования систем дифференциальных уравнений к каноническому виду) на мех-мате МГУ под руководством Е.В. Панкратьева и по физике в Дубне в ОИЯИ и учебных факультетах при нем под руководством

...углс&ие á решение мехлНигеасих %л<рлг с поъмощил сиииярл&а ""о^л,

В.П. Гердта, В.А. Ростовцева, Р.Н. Федоровой (конференция - Computer Algebra and its Application to Physics. CAAP-2001, 2830 June, Dubna). В Иркутске в школе проф. В.Д. Иртегова развивают пакеты по механике сложных механических систем и исследованию их свойств.

Специально механические приложения КоАл включают, в первую очередь, работу по выводу уравнений движения механических систем, автоматизацию программирования при их моделировании. Символьный анализ движения может включать: вывод уравнений сопряженной системы в задачах оптимизации, получение уравнений в вариациях при решении краевых задач и в задачах устойчивости движения, нормализацию, осреднение, анализ устойчивости движения, поиск стационарных движений и многое другое. В свое время имелось бо-

лее полутора десятка активных коллективов, работавших в этой области. Из существующих коллективов нам лучше известны работы коллег из Нижнего Новгорода, Москвы, Перми и Иркутска. Например, Т.Н. Титоренко под руководством В.Д. Ир-тегова недавно был создан компьютерный задачник по методам КоАл в механике, продолжающий предыдущие работы в этой области М.А. Новикова и М.В. Почтарен-ко. Многие исследователи-механики в настоящее время используют пакеты КоАл, так сказать, в рабочем порядке, не обобщая и не фиксируя свой опыт использования КоАл, не упоминая об этом. Тем не менее, направленное, систематизированное преподавание работы с КоАл в механике необходимо хотя бы в минимальном объеме. Здесь накоплен нужный опыт, заслуживающий распространения и поддержки.

Литература.

1. М.В. Грошева, Г.Б. Ефимов. О системах аналитических преобразований на ЭВМ. Пакеты прикладных программ. Аналитические преобразования. М., Наука. 1988, с. 5-30.

2. Д.М. Климов, В.М. Руденко. Методы компьютерной алгебры в задачах механики. М.: Наука. 1989.

3. Методы компьютерного конструирования моделей механики системы твердых тел. Материалы всесоюзного рабочего семинара. Препринт № 16 Ленинградского филиала Института машиноведения АН СССР. Л., 1989.

4. Теоретическая механика. Вывод и анализ уравнений движения на ЭВМ. Под ред. В.Г. Веретенникова. М.: Высшая школа. 1990.

© Наши авторы, 2003. Our authors, 2003.

Ефимов Георгий Борисович, канд. физ.-мат. наук, старший научный сотрудник Института прикладной математики им. М.В. Келдыша РАН, специалист по механике космического полета, компьютерной алгебре.