М.М. ГОРБУНОВ-ПОСАДОВ - Системное обеспечение пакетов прикладных программ (1184225), страница 13
Текст из файла (страница 13)
Аналитическоеисследование применяется, если необходимо быстро получить грубыехарактеристики исследуемого процесса. При таком изучении реальных процессов приходится идти на серьезные упрощения, пренебрегая некоторымизакономерностями.
И хотя для заданной модели аналитический подходнередко дает точное решение, тем не менее эта упрощенная модель обычноне позволяет получить требуемую в практических расчетах точностьоценок. Численные методы, применяемые в вычислительном эксперименте,дают возможность изучать существенно более сложные модели, достаточнополно отражающие исследуемые процессы.Сравнивая вычислительный эксперимент с натурным (физическим),следует отметить два преимущества вычислительного эксперимента. Вопервых, его проведение, как правило, экономически дешевле проведенияфизического. Во-вторых, в ряде случаев натурное исследование сопряжено сизмерением чрезвычайно большого числа параметров, созданием иподдержанием критических режимов и т.п., и поэтому вычислительныйэксперимент нередко оказывается практически единственно возможнымспособом исследования.Отмеченные достоинства вычислительного эксперимента вывели его внастоящее время в число основных методов исследования таких крупныхфизических и инженерно-технических проблем, как задачи ядернойэнергетики, освоения космического пространства и др.2.2.
Цикл вычислительного эксперимента.Обработка результатовМожно выделить следующие этапы вычислительного эксперимента длярешения физических задач [3] (рис.2.1).1. Построение математическойописывающих исследуемое явление).модели(составлениеуравнений,2. Выбор численных методов расчета (построение дискретной модели,аппроксимирующей исходную математическую задачу, построениеразностной схемы, разработка вычислительного алгоритма и т.д.).3. Создание программы, реализующей вычислительный алгоритм.4. Проведение расчетов и обработка полученной информации.5. Анализ результатов расчетов, сравнение с натурным экспериментом.Обычно на последнем (пятом) этапе выясняется, что необходимо внестиопределенные изменения в решения, принятые на этапах 1, 2 или 3.
Так,может выясниться, что построенная модель недостаточно хорошо отражаетособенности исследуемого явления. В этом случае модель корректируется,вносятся соответствующие поправки в численные методы и реализующие ихпрограммы и выполняется новый расчет.
Таким образом, циклвычислительного эксперимента воспроизводится в полном объеме. Прианализе результатов могут быть выявлены какие-либо недостаткииспользуемых численных методов, связанные, в частности, с соображениямиточности или эффективности. Изменение методов влечет за собой изменениесоответствующих программ и т.д. Иначе говоря, цикл повторяется внесколько сокращенном виде (этапы 2-5). Наконец, может оказатьсянеудачным некоторое программное решение, например, выбранный способработы с внешней памятью. Пересмотр таких решений приводит кповторению этапов 3-5.В настоящей книге основное внимание уделено этапу 3 - подготовкерасчетных программ, и именно для автоматизации этого этапапредназначаются некоторые описываемые в последующих главах пакеты.Прежде чем перейти к развернутой характеристике задач этапа 3,остановимся кратко на особенностях обработки и анализа результатоврасчетов на этапах 4 и 5.Непосредственными результатами расчетов, выполняемых программамивычислительного эксперимента, являются обычно большие массивыданных.
Если при анализе этих данных исследователь имеет дело только снапечатанными на бумаге бесконечными столбцами чисел, то труд егооказывается крайне неэффективным. На помощь тут могут прийтидиалоговые формы ознакомления с результатами эксперимента,включающие, в частности, широкое использование возможностеймашинной графики.Приведем пример характерной задачи анализа результатов. Пусть врезультате расчетов получена некоторая многомерная матрица большогообъема, представляющая собой вычисленные значения некоторой функциинескольких переменных на прямоугольной сетке. Требуется, зафиксировавзначения некоторых переменных, получить двумерную вырезку из этойматрицы и отобразить поведение определяемой ею функции двухпеременных на графическом устройстве.Эта конкретная задача представляется довольно простой. Неплохое еерешение в такой упрощенной постановке можно найти, например, в работе[77]. Однако попытка построения универсального инструментария дляобработки реальных результатов вычисли гельного эксперимента наталкивается на труднопреодолимую преграду, связанную с многообразиемформ представления результатов расчетов.Здесь можно упомянуть, в частности, неравномерности сетки, накоторой рассчитывается результирующая функция, специальные формыпредставления сильно разреженных матриц, различные способы заданияособенностей функции и т.д.
Использование специальных формпредставления не позволяет применить штатные средства машиннойграфики непосредственно к результатам расчетов, так как эти средстваориентированы обычно на вполне определенный регулярный способпредставления данных.Поэтому построение инструментария для обработки результатоврасчетов является нелегкой задачей. Необходимо выявитьисистематизировать все используемые в конкретной автоматизируемойприкладной деятельности формы представления данных и для каждой изтаких форм написать программу-преобразователь, приводящую эту форму квиду, воспринимаемому программами машинной графики. После этого ужене составляет особого труда создание языка, позволяющего пользователю помере необходимости выделять и выводить на алфавитно-цифровые играфические устройства интересующие его подмножества результирующихданных.2.3. Подготовка расчетных программПодготовка расчетных программ - один из наиболее трудоемких этаповвычислительного эксперимента.
На каждом цикле вычислительногоэксперимента выполняется построение новой версии программы(см.рис.2.1), и системное наполнение любого пакета программ,ориентированного на автоматизацию такого рода деятельности, должновключатьв себя средства поддержки этой постоянно повторяемой процедуры.С точки зрения программной реализации наиболее существенны такиеособенности метода вычислительного эксперимента, как многомодельностьи многовариантность. Многомодельность означает, что в ходевычислительного эксперимента математическая модель многократноизменяется и уточняется, а многовариантность - что выполняемые уточнения модели могут затем комбинироваться в самых разнообразныхсочетаниях.Эти особенности проявляются в том, что, во-первых, основная работа попроведению вычислительного эксперимента приходится не на первоевыполнение, а на многократное повторение описанного выше цикла.
Данноесоотношение в полной мере распространяется и на программу: подавляющаячасть усилий разработчиков приходится не на создание первой версиирасчетной программы, а на различные ее модификации, отражающие вновьпринимаемые решения о модели, методах расчета и организациипрограммы.Во-вторых, решения (а вместе с ними и соответствующие импрограммы), пересматриваемые на очередном цикле вычислительногоэксперимента, как правило, не отбрасываются и могут использоватьсявпоследствии для других расчетов. Например, метод, оказавшийсянепригодным для одной математической модели, вполне может подойти длярасчета следующей модели и т.д.Такимобразом,главноенаправлениедеятельностипопрограммированию задач вычислительного эксперимента - не созданиеновых, а развитие существующих программ. Но это развитиеосуществляется, как правило, не за счет замены существующих модулей ихболее совершенными версиями, а за счет включения в программный фондвсе новых и новых модулей, отражающих различные решения, принимаемыев ходе эксперимента.Такое накопление модулей, а также упоминавшаяся выше сложностьреализуемых математических моделей приводят к тому, что размерыпрограммного фонда становятся весьма внушительными.
Например, длярешаемых в ИПМ имени М.В.Келдыша АН СССР задач одномерной газовойдинамики программный фонд содержит свыше 1000 написанных наФортране модулей с суммарной длиной более 7·104 предложений, для задачрадиационной защиты - около 2.3·105 предложений Фортрана. Фондпостоянно пополняется новыми модулями, которые в самых разнообразныхкомбинациях используются в расчетах.Ориентироваться в столь обширном и сложном программном хозяйствеочень нелегко. Основным содержанием работ здесь становится даже ненаписание новых программных модулей, хотя и это постоянно имеет место,а конструирование из модулей расчетных программ («опытных установок»)и решение целого ряда чисто технических проблем, связанных с развитием исопровождением программного фонда.
Выполнение таких работ на базесредств штатного программного обеспечения требует весьма значительныхтрудозатрат.Можноуказатьследующиеосновные причинынеудобстваиспользования штатного программного обеспечения для программированиязадач вычислительного эксперимента:- прикладной программист в своей повседневной работе вынужден иметьдело со значительным числом относительно разнородных системныхсредств: библиотеками текстов и загрузочных модулей, редакторами,загрузчиками и т.д.;- некоторые компоненты штатного программного обеспеченияориентированы в первую очередь на программы малых и средних размеров;непосредственное применение этих компонентов при программированиизадач вычислительного эксперимента приводит к росту непроизводительныхзатрат;штатное программное обеспечение ориентировано на «обобщенногопользователя», т.е.