Добавить в цитаты Настройки чтения

Страница 68 из 76



  В качестве примера типовых математических задач, часто встречающихся в приложениях, можно назвать задачи алгебры: здесь большое значение имеют численные методы решения систем линейных алгебраических уравнений (в частности, больших систем), обращение матриц, нахождение собственных значений матриц (как нескольких первых значений — ограниченная проблема собственных значений, так и нахождение всех собственных значений — полная проблема собственных значений). Другие примеры — численные методы дифференцирования и интегрирования функций одного или нескольких переменных; численные методы решения обыкновенных дифференциальных уравнений (сюда включают, в частности, изучение и сравнительный анализ численных методов различных типов, например, Адамса, Рунге — Кутта). Значительное число исследований посвящено численным методам решения уравнений с частными производными. Здесь большое направление составляют «экономичные методы», т. е. методы, позволяющие получать результаты при относительно малом (экономном) числе операций.

  Быстро развивающимся направлением В. м. являются численные методы оптимизации. Задача оптимизации состоит в изучении экстремальных (наибольших или наименьших) значений функционалов на множествах, как правило, весьма сложной структуры. В первую очередь следует упомянуть задачи математического программирования (в том числе линейного и динамического), к которым сводятся многие задачи экономики. К задачам оптимизации примыкают минимаксные задачи (и соответствующие численные методы), возникающие при решении задач исследования операций (см. Операций исследование ) и теории игр (см. Игр теория ). Особенно сложные задачи типа minmaxminmax возникают при решении многошаговых (динамически развивающихся) игр. Здесь даже математический эксперимент (проигрывание вариантов поведения играющих) невозможен без использования мощных ЭВМ.

  Применение ЭВМ к решению сложных задач, в особенности задач больших размеров, вызвало к жизни одно из главных направлений в теории численных методов — исследования устойчивости методов и алгоритмов к различного рода ошибкам (в том числе к ошибкам округления).

  Обратные задачи, например, задача определения элемента х из уравнения Ах = b при известной информации об операторе А и элементе b , часто являются неустойчивыми (некорректно поставленными) задачами (малым погрешностям во входных данных могут соответствовать большие погрешности в х ). Более того, обратные задачи часто имеют решение не для всех b , поэтому, задавая приближённое значение b , следует учитывать, что формально решение этой задачи может не существовать.

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

  В большинстве разделов В. м. важное место занимают вопросы оптимизации методов решения задач. Особенно это существенно для задач большего объёма (например, с большим числом переменных).

  Применение ЭВМ непрерывно расширяет круг пользователей и поэтому возникает тенденция такой степени автоматизации, при которой становится менее существенным знакомство пользователей с численными методами. Это предъявляет новые требования к алгоритмам, их классификации и к стандартным программам решения типовых задач.

  В настоящее время выделился ряд направлений прикладной науки, где современные темпы научно-технического прогресса были бы немыслимы без развития численных методов и применения ЭВМ.

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



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

  Появление машин следующего поколения с бо'льшим быстродействием сопровождалось ростом числа задач, предъявляемых к решению; в результате этого возникло узкое место системы человек — машина: скорость программирования. Это вызвало к жизни новый этап программирования— создание алгоритмических языков с трансляторами для перевода с алгоритмического языка на внутренний язык машины. Вследствие большей близости алгоритмических языков к общечеловеческому их внедрение упростило программирование и существенно расширило круг пользователей.

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

  При дальнейшем повышении скорости ЭВМ узким местом системы человек — машина стали устройства для ввода и вывода информации; их медленная работа сводила на нет высокопроизводительную работу центрального устройства. Необходимость преодоления этого противоречия явилась одной из причин создания систем одновременного решения на машине нескольких задач. Другой причиной было требование одновременной работы на машине большого коллектива пользователей (в частности, последнее особенно существенно при применении ЭВМ в автоматизированных системах управления). Всё это вместе с рядом других причин обусловило появление нового этапа программирования — системного программирования. Основной задачей системного программирования является создание операционных систем, управляющих работой машины, программным путём расширяющих возможности машины и предоставляющих пользователю дополнительное обслуживание, не предусмотренное аппаратурой: возможность ввода и вывода одновременно с решением задач, автоматизация редактирования выдачи, вывод графиков, работа с экраном, диалог с машиной, возможность одновременного решения на машине многих задач (система разделения времени).

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

  Задача развития вычислительных систем, в частности информационных систем и автоматизированных систем управления, является одной из наиболее актуальных научных проблем.

  А. Н. Тихонов.