Ортега Дж., Пул У. Введение в численные методы решения дифференциальных уравнений. Под ред. А.А.Абрамова (1986) (1095855), страница 5
Текст из файла (страница 5)
ные ситуации и обрабатывать их так, чтобы это удовлетворяло пользователя. 3. Переносимость — программа может быть перенесена с одной ЭВМ на другую с минимумом усилий и без утраты надежности. Обычно это предполагает, что программа написана на каком-либо распространенном языке высокого уровня, например фортране, и не использует никаких "трюков" зависящих от особенностей конкретной ЭВМ. Любая используемая характеристика конкретной машины, как, например, длина слова, четко выделяется. 4. Поддерживаемосгь — любую программу время от времени приходится изменять, будь то корректировка или усовершенствование.
Программа должна быть составлена так ясно и логично, чтобы в нее было легко вносить изменения с минимальной вероятностью порождения новых ошибок. Важной частью поддерживаемости является наличие хорошей документации программы, которая позволяла бы эффективно менять программу и тем лицам, которые не участвовали в написании первоначального текста. Хорошая документация очень важна и для того, чтобы 17 пользователь понимал, как использовать программу, ее возможности, ограничения и т.д. И, наконец, необходимо провести широкое тестирование программы, чтобы убедиться, что она удовлетворяет сформулированным выше критериям. О разделах математики и информатики, имеющих дело с разработкой качественных программ для решения математических задач, говорят, что они занимаются созданием математического обеспечения.
В настоящее время имеются очень хорошие программы решения ряда математических задач, в частности решения систем линейных уравнений, вычисления собственных значений матрицы, решения задачи Коши для обыкновенных дифференциальныхх уравнений. 1.4.
Влияние информатики на научное программирование Как можно было заключить из предыдущего раздела, путь от математического метода до успешно работающей программы довольно долог. Наряду с разработкой средств, необходимых для создания хорошего математического обеспечения, имеется ряд других областей информатики, которые играют все более важную роль в научном программировании.
Очевидно, аппаратные средства и основное программное обеспечение исключительно важны. Революция в архитектуре ЭВМ в настоящее время в самом разгаре, и возможные последствия использования дешевых микропроцессоров, объединенных в большие массивы, открывают захватывающие перспективы. Уже сейчас успешное использование матричных процессоров, таких как Иллиак 1Ч, и векторных компъютеров, таких как Крей-1 и СДС Кибер 200, требует пересмотра 'численных методов для применения на таких машинах. Если массивы из микропроцессоров действительно получат широкое распространение, то станет необходимым решительный критический анализ эффективности использования существующих численных методов.
Почти все программы для решения задач научного программирования написаны на языках программирования высокого уровня, таких как фортран, алгол, паскаль и др. Среди них фортран, со времени его разработки в середине 1950-х годов, по-прежнему остается основным языком, используемым для задач научного программирования. С тех пор фортран постоянно модифицируется и расширяется (и кое-кто даже считает, что улучшается). В последнее время был разработан ряд препроцессоров для фортрана, которые позволяют использовать при составлении программ некоторые возможности, не имеющиеся в самом фортране; написанные на этих расширенных языках программы сначала преобразуются в программу на фортране, пригодную для обработки стандартным компилятором. Следует ожидать дальнейшего развития языков программирования для задач научного программирования, особенно в направлении создания языков еще более высокого уровня.
Многие задачи научного программирования требуют обработки огромного количества данных — как входных и выходных, так и возникающих в процессе вычислений. Вопросы„связанные с организацией эффективного хранения и извлечения данных, называют управлением данными. Так, например, используемая при автоматическом проектировании база данных, в которой находится вся информация, относящаяся к конкретномуобъекту разработки, — это может быть летательный аппарат, автомобиль, плотина и т.д. — может содержать несколько миллиардов символов. При проектировании летательного аппарата эта информация будет включать все, относящееся к геометрии каждой части аппарата, свойства материалов для каждой части и т.д. Инженер может использовать эту базу данных просто для нахождения всех материалов, обладающих определенными свойствами. В то же время эта база данных будет использоваться при проведении анализа различных структурных свойств летательного аппарата, что требует решения определенных дифференциальных уравнений в частных производных.
В последние несколько лет был разработан целый ряд программ для управления большими массивами данных, которые предназначены для деловых приложений, как, например, управление запасами. Развитая при этом методология частично используется теперь для управления большими базами данных в научных расчетах. Кроме уже упомянутых разделов информатики, имеются еще два, машинная графика и символьные вычисления, на которых мы остановимся более подробно. Результатом научных расчетов являются числа, которые могут, например, представлять собой значения решения некоторого дифференциального уравнения в выбранных определенным образом точках.
Обычно эти числа выдаются в виде таблиц или в каком-либо ином виде с помощью быстродействующих печатающих устройств, Однако объем такой информа- Рис. 1.3. Функция двух переменных ции может оказаться подавляющим, и, кроме того, проводящему расчеты инженеру или ученому обычно гораздо более удобно, если это только возможно, работать с результатами, представленными в форме графиков, кривых или каких-либо других наглядных изображений. Например, результаты расчетов, представляющие сложную функцию или физический объект, такой как летательный аппарат, особенно полезны, если они изображены наглядно (см.
рис. 1.3 и 1.4). В течение многих лет такой вывод результатов определенных расчетов рутинно осуществляют механические графопостроители. В последнее время все более доступными становятся $1 Рис !.4. Одноступенчатый орбитальный корабль терминалы с электронно-лучевыми дисплеями, а также другие типы визуальных терминалов. Использование этих устройств для наглядного вывода (а в определенных случаях и для ввода) называют машинной графикой. Особенно важной является диалоговая графика, которая позволяет решающему задачу управлять ходом вычислений и в случае необходимости сразу же вносить изменения или корректировки. Существует много различных типов графических выходных устройств, но мы ограничимся двумя наиболее распространенными — барабанным пошаговым графопостроителем, который использует перо и чернила, и подобной телевизору электронно-лучевой трубкой (ЭЛТ).
Перо барабанного графопостроителя двигается вверх и вниз по бумаге, покрывающей поверхность барабана или цилиндра. Продольные движения реализуются посредством вращения бумаги под пером в прямом и обратном направлениях. Графопостроитель выдает высококачественное изображение на бумажном носителе.
Однако, по сравнению с ЭЛТ, он работает очень медленно. ЭЛТ подобна обычному телевизионному монитору. дисплей состоит из набора фосфоресцирующих точек. Электронно-лучевой дисплей обычно используется в диалоговом режиме, который дает пользователю возможность взаимодействовать с ЭВМ: вводить или изменять данные, принимать решения и т.д.
Главная сила ЭЛТ заключается в той высокой скорости, с которой она может воспроизводить изображения. Для наглядного представления данных в системах машинной графики используются стандартные блоки точек, прямых, кривых, поверхностей, а также текстовый материал. Точка определяется тройкой координат (х, у, а), а отрезок прямой — парой конечных точек, (х,, у,, г,) и (х,, 20 у„г,) . Как уже упоминалось, кривая обычно аппроксимируется последовательностью коротких отрезков прямых.
Перед выводом изображения на дисплей координаты точек запоминаются в некотором файле или в базе данных. В случае сложных изображений проектирование таких баз данных оказывается весьма трудным делом и программное обеспечение, осуществляющее извлечение и обработку соответствующих данных, отражает эту сложность. Другой крайний случай составляют очень простые приложения, для реализации которых требуются довольно несложные базы данных.
Вообще говоря, для задания одной координаты точки требуется одно машинное слово. Для очень сложных изображений могут понадобиться десятки и даже сотни тысяч точек, что поглощает значительную часть памяти не очень больших вычислительных систем. Имеется много типов обработки данных и типов манипуляций с графическими базами данных.
Расположение основных элементов базы данных— точек — может задаваться двумя различными способами. Абсолютное задание предполагает наличие некоторой фиксированной глобальной системы координат. При относительном задании указывается смещение по отношению к ранее заданной точке. Большинство графических устройств включает три основные манипуляционные операции: перемещение пера, курсора, светового луча или головки графопостроителя в заданную точку; проведение прямой линии до заданной точки; нанесение точки в некотором месте. Другой тип манипуляционных операций используется тогда, когда на дисплей надо вывести какую-то долю, определенным образом повернутый вид или уменьшенный размер структуры, представленной в базе данных.