Земляк : другие произведения.

Как там с новым в старой математике?

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


Оценка: 7.37*6  Ваша оценка:
  • Аннотация:
    Математическое приключение, случившееся с автором в его молодости.

Как там с новым в старой математике?

(была такая история)

Во второй половине 70-х довелось мне работать "страшным лаборантом" физфака МГУ. За оклад в 83 руб. 50 коп. В табели о рангах это была низшая ступень, которую мог занять выпускник факультета. Чего нельзя было сказать о его нагрузке. Что педагогической, что научной.
В части научной пытался я тогда в рамках исследований некой оборонной задачи применить метод конечных элементов к численному решению одного нелинейного, шрёдингеровского типа, уравнения в частных производных. Работал по "классике". Построил соответствующую вариационную задачу, выбрал аппроксимирующие полиномы, опёртые на узлы сетки из элементов... И, конечно, получил дискретную матричную формулировку. Чего, собственно, и ожидал и добивался.
Пришла пора всё это дело программировать. Для вспомогательной процедуры формирования матриц алгоритмик придумал - песня! Типа пробного возмущения. Тронули узел - посмотрели реакцию по всем наличествующим. Получили коэффициентики. Тронули следующий и т.д. Вся и процедура-то команд на пятьдесят.
Ладушки. Пишу я эту штуку на FORTRANе, очень, надо сказать, к математике языке подходящем, перфорирую карты и запускаю на БЭСМ-6. Лучшей из имевшихся тогда в МГУ ЭВМ. Да и в Союзе тоже. Со словами длиной в 48 разрядов, в 6 байт, по нынешнему, а потому для численного решения дифуравнений весьма приспособленной. Мне до сих пор кажется, что, не смотря на смехотворный в сравнении с теперешними компами ресурс, заслуги "шестерки" перед наукой и обороной страны еще пока не превзойдены.
Да. Так, значит, отловив начальные ошибки, запускаю я эту программулю вспомогательную, заказав 3 минуты времени центрального процессора. "В отладке", как это тогда в НИВЦ МГУ называлось. Время истекло - результата нет. Заказываю 5 минут. То же самое. Вставляю печать для трассировки "на зацикленность" - подозрения сняты. Уже исключительно для очистки совести заказываю 10 минут. Без саксизу. Приплыли.
И вот я, малоопытный еще в тот момент программист-самоучка, внимательно вглядываюсь в текст алгоритма и делаю, наконец, то, с чего, собственно, следовало начинать. Анализирую количество требуемых математических операций. Делю на паспортное быстродействие шестёрки и получаю, как дважды два, что для завершения этой, вспомогательной, напомню, задачи потребуется шесть, его мать, десятых и еще один целый - год! Вот тебе и на! Ну, еще бы - девять вложенных циклов! Куда ты смотрел-то, дурачишка?
Я позже, когда семинары вел по "численным методам в радиофизике", приводил студентам этот случай в качестве примера простого, красивого, но крайне неэффективного алгоритма. Он и сейчас, на хорошем Пне, с учетом требуемой по точности 64х разрядной арифметики с плавающей запятой, почти сутки бы молотил. Но все это уже потом. А что тогда-то мне было делать? Как к цели-то выгрести?
Сел я с утречка за стол, подвинул кучу листов из БЭСМовских АЦПУшных выдач нарезанных, ручку взял. И к вечеру, не отрывая задницы от стула получил все эти потребные мне матрицы в рукопашную. До числа. По совершенно другой методике, да такой элегантной! Такой эффективной! Действительно эффективной, во всех отношениях. Эти огромные матрицы даже в памяти хранить теперь было не нужно. Гораздо дешевле было на каждом шаге решения получать каждую из них из двух малюсеньких. По особой процедуре, которой я до того и не видывал. Сама она у меня вывелась, естественным образом всплыла в ходе того усидчивого процесса.

С этого момента и началась у меня головная боль года на три. Нет, программы-то те молотили исправно, постепенно обрастая целой библиотекой. Для тепловых процессов вокруг исследуемого лазерного луча, стационарных, нестационарных. Для газовой динамики. Дозвуковой, сверхзвуковой... Результаты пёрли, режимы оптимизировались, статьи писались... Но не давала мне покоя та процедура. Алгоритм построения большой матрицы из двух малых.
Термин "произведение" для матриц давно занят. Совершенно другой процедурой. Потому свою я обозвал "расширением". А что, нормально звучит - "матрицу С получаем расширением матрицы А через матрицу В". Теоремы всякие подоказывал о свойствах операции "расширение". Свойства получились не слабые. Перестановочность с классическим произведением. Обратная от расширения есть расширение от обратных - это вообще сказка, для тех, кто понимает. И т.д. и т.п. И главное - ничего не могу найти в классических учебниках про что-нибудь подобное. Ни у Шилова, ни у Куроша, ни у Гантмахера. Может, я что-то новое изобрёл? Да еще и такое полезное? Да не может такого быть! В этой области всё истоптано, прожевано и разложено по полкам. Не может быть! А вдруг? Все же оно от магистральных направлений маленько в стороне...
В статьях, посвященных результатам численного моделирования, несколько раз описываю процедуру. Как методику. Не претендуя на приоритет. На конференциях докладываю. Народ воспринимает, как должное. Не кисло и не сладко. На семинаре ВМК у Самарского, академика сумрачного, доклад делаю. Впрямую о своих численных алгоритмах. Открытым текстом спрашиваю - вот вы тут математики, скажите, встречалась вам подобная процедура? Молчат.

А в ту самую, как раз, пору под эгидой NASA зародился и быстро мышцы наращивал программный пакет инженерных расчетов NASTRAN. В теперешней триаде CAD-CAM-CAE различных систем автоматического проектирования на его клонах модули CAE основаны. А базой самого NASTRANа является Метод Конечных Элементов. Словом, статьи о применениях МКЭ (FEM) к различным задачам в международных журналах по численным методам шли тогда "на ура".
Шефуля мой конъюнктуру просёк и сказал, что надо большую статью писать. Тряхнуть костями на международной арене. Результатов хватает, область применения новая, методика отработана. Так что, всё путём. И отваяли мы втроём большую статьищу, аж на 70 машинописных листов в русской версии. Конечно, грешно было бы там про процедуру "расширение" не написать. Упустить такой шанс. А с другой стороны, громко пукать тоже боязно. Вдруг всё это известно давно? Потому поместил я описание этого "расширения" в Приложении, скромненько так.
Время идет, статья в инстанциях варится. Русский вариант, английский вариант. Всякие там бумаги собираются. Типа, что в ней (ну, анекдот!) ничего нового нет, что всё уже опубликовано в СССР, что то, что сё... Блюдутся, словом, правила игры. С год так прошло. Русский вариант я в качестве реферата использовал при сдаче кандидатского по специальности. Очередь сдавать неожиданно открылась и на всё про всё у меня только три дня было. Так что уже хоть какой-то прок. Наконец созрело всё.
И вот, когда она буквально уже, как положено, в незапечатанном пакете лежала, готовая к передаче в спецэкспедицию, входит в комнату Витя, соавтор (он сейчас в Мексике профессорствует). Входит и говорит:
- Хорошо, однако, у нас скубентов учат. Смотри, что я нашёл! - и протягивает мне задачник (!) Проскурякова по линейной алгебре. Который мы еще на первом курсе пользовали.
Раскрыл я его на страничке заложенной, а там !!! Задача N ... . В условии полностью описана моя операция расширения, перечислены все её свойства и требуется их доказать. А главное - приведено название всей этой х*рни. Кронекеровское произведение.
Клянусь, никакого разочарования я не испытал. Первой реакцией было чувство облегчения. Даже сразу два. Во-первых, что основы устояли. Убеждение, что в практической математике и до нас всё уже сделано. Во-вторых, как всё это вовремя обнаружилось. Еще бы день-два... Правда, на последний тезис Витя заметил:
- Ну и что? Ну, напечатали бы. Ты что думаешь, они там много умнее нас, что ли?
Однако залепушку в статье надо было срочно исправлять. Проще всего было с самим текстом. В Appendix'е после слов matrix A is expanded я написал аккуратно сверху вставочку as a Kronecker product [ ]. Что надо было ставить в скобки, понятно. Последний номер, добавленный в список литературы. А вот где взять его наполнение? Причем желательно англоязычное. Тут-то и помогло приведенное у Проскурякова название. Пошел я в читалку, набрал кучу книг по матрицам и стал шарить по оглавлениям да алфавитным указателям. Нашел в книге Беллмана. На первоисточник, приведенный на титульном листе перевода и сослался.
Тем и закончилась мои приключения с новшествами в классической математике. Повторю еще раз. Что там есть полезного, то уже разработано. Надо только поискать. Хотя иногда дешевле вывести самому. Или само собой выходит. Как это получилось со мной.



Недели через три из Греты Британии пришла рецензия. Очень положительная, но вся в красных правках. Иронически было отмечено, что количество ошибок, сделанных в английском языке может служить предметом отдельного исследования. С удовольствием показали мы этот отзыв кафедре английского языка физфака, преподаватели которой помогали нам готовить начальный текст. Еще через полгода статья вышла. Суммарно с учетом домашних инстанций получилось даже на пару месяцев быстрее, чем в Союзе. Там брали быстро, но публиковали медленно.
А еще примерно через год я от программного сегмента, опирающегося на МКЭ, отказался. Заменил его модулем на быстром преобразовании Фурье. Интегральные характеристики БПФ держал похуже, но позволял очень правильно распределить память - ахиллесову пяту БЭСМ-6. До трети экономил, давая продвинуться дальше.
Да уж. Веселое было время. Не только позволяло, но и просто требовало проявить изобретательность. Не то, что сейчас - чем файновей грид, тем эксцелентнее резалт. И файнить можно, сколько хочешь.
Оценка: 7.37*6  Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"