Ортега Дж., Пул У. Введение в численные методы решения дифференциальных уравнений. Под ред. А.А.Абрамова (1986) (1095855), страница 2
Текст из файла (страница 2)
Разработка надежного, эффективного и удобного для использования программного обеспечения выходит за рамки этой книги. Глава 1 МИР НАУЧНОГО ПРОГРАММИРОВАНИЯ 1.1. Что такое научное программирование Тысячи компьютеров как в США, так и за их пределами используются для решения бурно растущего многообразия задач: учета финансовой н хозяйственной деятельности промышленности и правительства, заказов билетов на самолет и других систем резервирования, частичного перевода с национальных языков, как, например, с русского на английский, контроля за управляемыми процессами и т.д. Одним из самых первых и по- прежнему самым распространенным применением ЭВМ является решение задач, возникающих в науке и технике, или, более точно, построение решений математических моделей, описывающих ту или иную физическую ситуацию.
Эту очень широкую область называют научным программированием. Сейчас вряд ли можно найти какую-либо область науки и техники, где бы не использовались с этой целью ЭВМ. Расчет траекторий сну~ников Земли и движения планет давно стал самым обычным делом. Авиационные инженеры также используют ЗВМ для моделирования потока воздуха вокруг самолета или другого летательного аппарата при его движении в атмосфере и для проверки структурной целостности конструкции. Такие исследования играют исключительно важную роль в авиационной индустрии при проектировании надежных и экономичных воздушных и космических кораблей.
Инженеры-строители используют ЭВМ для исследования структурных характеристик больших зданий, плотин, автострад и т.д. Метеорологи тратят очень большое количество машинного времени для предсказания погоды на завтра, а также для составления долгосрочных прогнозов, вплоть до предсказания возможных изменений климата Земли. Астрономы и астрофизики моделируют эволюцию звезд, и значительная часть наших знаний о таких явлениях, как красные гиганты и пульсирующие звезды, была получена в результате расчетов на ЭВМ в сочетаниц с наблюдениями.
Экологи и биологи все чаше и чаще используют ЭВМ в таких далеких друг от друга областях, как динамика популяций (включая изучение естественных взаимоотношений в природе типа хищник — жертва), движение крови в организме человека и распространение загрязняющих веществ в океане и атмосфере. Математические модели всех упомянутых выше проблем. а также большинства других научных н инженерных задач представляют собой системы дифференциальных уравнений — как обыкновенных, так и в частных производных.
Так что в первом приближении научное программирование в настоящее время можно охарактеризовать как решение дифференциальных уравнений с помощью ЭВМ. Даже если такое определение было бы абсолютно точным, все равно научное программирование было бы исключительно интересной дисциплиной. Дифференциальные уравнения имеют самые разнообразные "формы и размеры", и даже самые большие современные компъютеры ни на йоту не приблизили нас к решению многих задач, поставленных физиками и инженерами.
Но научное программирование гораздо шире, причем охватываемая им область быстро изменяется. Возникает множество новых математических моделей, каждая из которых ставит свои собственные проблемы. Обработка данных — сведение результатов большого числа измерений в приемлемые для использования совокупности статистических данных — всегда была важной, хотя и несколько прозаической частью научного программирования.
Но теперь, когда мы имеем инструменты (такие, как искусственные спутники Земли), которые позволяют проводить измерения гораздо быстрее, чем мы в состоянии их обрабатывать, необходим свежий взгляд на способы хранения и использования этой незаменимой информации. В более развитых областях техники то, что еще вчера представляло сложную проблему даже для одноразового решения на ЭВМ, превратилось сегодня в заурядную задачу, которая многократно решается с изменяющимися параметрами. Это дало толчок к созданию систем технического проектирования с помощью ЭВМ, число которых все время увеличивается. Подобные соображения справедливы и относительно целого ряда других областей науки и техники. Хотя зто обсуждение было начато с целью определить ту область, которую мы называем научным программированием, сделать это точно довольно трудно, особенно указать ее границы и пересечения с другими областями.
Мы примем, в качестве рабочего определения, что научное программирование — это совокупность методов, технических приемов и теоретических результатов, необходимых дая реичения на ЭВМ математических моделей задач, возникающих в науке и технике. - Большинство этих методов, технических приемов и теорий было разработано математиками, причем их основы возникли задолго до появления ЭВМ. Этот набор математических теорий и методов, называемый численным анализом (или вычислительной математикой), составляет основную часть научного программирования.
Развитие электронно-вычислительной техники ознаменовало, тем не менее, новую эру в подходе к решению научных задач. Многие численные методы, разработанные для ручных вычислений (включая использование настольных калькуляторов для выполнения арифметических действий), пришлось пересмотреть, а от некоторых полностью отказаться.
В то же время целый ряд вопросов, которые были несущественными или вообще не возникали при проведении ручных вычислений, приобрели исключительную важность для эффективного и правильного использования больших вычислительных систем. Многие из этих вопросов— языки программирования, операционные системы, управление большими массивами данных, правильность программ и т.д.
— вошли в состав новой дисциплины — информатики~), от состояния которой научное программирование очень сильно зависит. Но сама математика по-прежнему играет глав- *) В оригинале — 'Сотршег ьйепсс*'. — Приме» пер. ную роль в научном программировании: на ее основе строится язык математических моделей, которые затем должны решаться, и обеспечивается информация о пригодности модели 1существует ли решение? является ли это решение единственным?), разрабатываются теоретические основы численных методов и, во все большей степени, многие средства самой информатики. Итак, можно сказать, что научное программирование опирается на математику и информатику с целью разработки наилучших способов использования чнсленнна внаянз йатенетнна Задача не аблестн Научное аетчнвееетавнав наунн нвн теннннн протранннрованнв онетеета Иневтрматнкв Рис.
1.1. Научное программирование-н примьткаюшие области вычислительных систем для решения задач науки н техники. Указанная взаимосвязь наук схематично изображена на рис. 1.1. В следующей части этой главы мы рассмотрим несколько глубже эти различные области. 1.2. Математическое моделирование Как уже говорилось в разделе 1.1, мы рассматриваем научное программирование как дисциплину, предметом которой является получение с помощью ЭВМ решений математических моделей задач, возникающих в науке и технике. Следовательно, первый шаг общего процесса построения решения должен заключаться в формулировке походящей математической модели исследуемой проблемы.
Этот шаг является частью той дисциплины, в которой данная проблема возникает; инженеры разрабатывают модели для технических задач, биологи — для биологических и т.д, Математики иногда привлекаются к этому процессу моделирования, по крайней мере в качестве консультантов, но, к сожалению, искусство математического моделирования все больше и больше выпадает из сферы деятельности современных математиков.
Построение математической модели начинается с выделения тех факторов, которые следует принять во внимание. Во многих физических задачах эти факторы связаны с условием равенства сил или выполнением каких-либо законов сохранения. Например, в формулируемой в разделе 2,1 модели для' задачи о траектории ракет основным физическим законом, на который опирается построение модели, является второй закон Ньютона, который гласит, что сумма действующих на тело сил должна равняться производной от импульса тела.
Чтобы применить этот общий закон к данной конкретной задаче, необходимо выделить и выразить количественно те силы, которые в данном случае существенны. Например, на ракету, движущуюся в атмосфере Земли, действует сила гравитационного притяжения со стороны Юпитера, но ее влияние настолько незначительно по сравнению с притяжением Земли, что им вполне можно пренебречь. Может оказаться, что и некоторые другие силы малы по сравнению с доминирую шими, но вопрос об их отбрасывании не столь прост.
Таким образом, построение модели является неизбежным компромиссом между учетом всех вероятных факторов, играющих роль в данной задаче, и сохранением математической модели достаточно простой, чтобы ее можно было решить имеющимися в нашем распоряжении средствами. В классической науке рассматривались только очень простые модели явлений, так как решения приходилось находить вручную: либо аналитически, либо численно. С увеличением мощности ЭВМ и развитием численных методов стало возможным работать со все более сложными моделями.
Кроме основных соотношений, которые во многих, если не в большинстве задач научного программирования имеют форму дифференциальных уравнений, модель обычно включает ряд начальных, граничных и дополнительных условий. Например, в задаче хищник — жертва, которая будет рассмотрена в гл. 2, задается начальная популяция обоих изучаемых видов. Граничные условия обычно являются естественной частью задачи.
Например, при изучении тока крови в сосудах мы требуем, чтобы поток не мог проникать сквозь стенки сосудов. В других случаях граничные условия могут и не быть столь физически очевидными, но все же могут требоваться для того, чтобы математическая задача имела единственное решение. Зачастую исходная формулировка математической модели действительно имеет множество решений, а единственное интересующее нас решение выделяется с помощью некоторого дополнительного условия, такого, как положительность решения или достижение на этом решении минимума энергии. В любом случае обычно предполагается, что в окончательной формулировке математическая модель со всеми соответствующими начальными, граничными и дополнительными условиями имеет единственное решение. Следующий шаг тогда заключается в нахождении этого решения.