ЖАНРЫ

Расследование и предупреждение техногенных катастроф. Научный детектив

Петров Юрий Петрович

Шрифт:

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

Виды «особых» матриц, для которых собственные значения очень чувствительны к малым неточностям исходных данных, и методы выделения «особых» матриц и «особых» объектов описаны в книгах [2, 3, 7].

3. В пакетах прокладных программ широко используются разнообразные алгоритмы, § 12. Опасные ошибки, обнаруженные в популярных пакетах прикладных программ, используют цепочки эквивалентных преобразований математической модели рассчитываемого объекта. При этом не уделяется должного внимания тому, что если хотя бы одно из использованных преобразований изменит чувствительность решений к малым неточностям исходных данных, или к погрешностям округления, то все решение окажется ошибочным. Примеры и методы предотвращения подобных ошибок исследовались Б. Г. Чертковым и рассмотрены в публикациях [7, 8].

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

Простейшие системы уравнений — такие, например, как система

1,02х + у = 1,04 (22)

Х + У = 1 (23)

легко решаются вручную, но в практических задачах часто приходится иметь дело с системами, состоящими из двадцати, сорока и более уравнений, и здесь уже без компьютера и хорошей программы не обойтись. Применяемые программы решения систем уравнений, входящие в пакеты, используют, как правило, преобразования уравнений. Поскольку эти преобразования, разумеется, эквивалентны, то они позволяют вычислить правильные, истинные значения решений. Но многие важные свойства решений и в том числе — чувствительность решений к неизбежной ограниченной точности исходных данных — использованные эквивалентные преобразования могут изменить. Все это удобно показать на простом примере системы уравнений (22)—(23), решениями которой являются числа х = 2, у = – 1 (что легко проверить подстановкой х = 2, у = — 1 в уравнения (22)—(23)).

Систему (22)—(23) — как и любые другие — удобно решать путем эквивалентных преобразований. Достаточно вычесть из уравнения (22) уравнение (23). Получим уравнение

0,02х = 0,04 (24)

не содержащее уже переменной у, которое вместе с уравнением (23) образует систему

Х + У = 1 (25)

0,02х = 0,04 (26)

Система (25)—(26) эквивалентна исходной системе (22)—(23), но решается гораздо проще: из (26) сразу следует х = 2, а подставив х = 2 в (25), получим у — — 1. Отметим, что тем же путем последовательного исключения переменных путем эквивалентных преобразований решают (следуя методу Гаусса) и системы, состоящие из большого числа уравнений. Просто число необходимых преобразований и вычислений очень быстро растет с ростом числа уравнений в системе, и поэтому для решения больших систем, часто встречающихся при проектировании, требуются компьютеры.

А теперь рассмотрим самое важное: решения х = 2, у = — 1 системы (22)—(23) верны, но на самом деле для практического использования не пригодны. Действительно, достаточно всего одному из коэффициентов системы (например, коэффициенту 1,02 при х) измениться менее, чем на 1%, от значения 1,02 перейти к значению 1,01, и изменившаяся система, принявшая теперь вид

1,01х + у = 1,041 (27)

х + у = 1

имеет решения х = 4, у = -3. Таким образом, изменение всего одного коэффициента менее, чем на одну сотую приводит к изменению решений вдвое и втрое. Поскольку в практических задачах исходные данные известны часто с точностью меньшей, чем одна сотая, то решения системы (22)—(23) для практики не пригодны. Их некритическое использование может привести к авариям и катастрофам.

Но ничего этого нельзя заметить при исследовании системы (25)—(26), которая эквивалентна исходной системе (22)—(23) и получена из нее путем эквивалентных преобразований. Система (25)—(26) мало чувствительна к малым изменениям своих коэффициентов.

Если каждый из них изменится на ± 0,01 то решения изменятся не более, чем на ± 4 %, а совсем не вдвое и втрое.

Таким образом, простая система (22)—(23) иллюстрирует главный и наиболее важный вывод: эквивалентные преобразования, широко (и часто некритично) применяемые при расчетах, не меняя самих решений как таковых, могут изменять многие важные свойства решений и, в частности — могут изменять их чувствительность к неизбежным на практике малым неточностям исходных данных, которые почти всегда получаются из опыта или измерения и поэтому имеют ограниченную точность.

Данному явлению можно дать и вполне наглядную иллюстрацию: уравнения (22)—(23) — это уравнения прямых на плоскости с осями 0x и , а решения х = 2, у = — 1 — это координаты точки их пересечения. На рис. 1 показаны прямые, соответствующие уравнениям (22)—(23). Эти прямые пересекаются в точке X — 2, у ——1 под очень острым углом. Именно поэтому координаты их точки пересечения очень чувствительны к изменениям коэффициентов уравнений (22)—(23).

На рис. 2 показаны прямые, соответствующие уравнениям системы (25)—(26), которая, как уже говорилось, эквивалентна исходной системе (22)—(23). Мы убеждаемся, что точка пересечения прямых, как и должно быть, осталась прежней х = 2, у = —1, но угол между прямыми стал совсем другим, гораздо менее острым, и поэтому высокая чувствительность решений к малым неточностям в исходных данных кажется исчезнувшей.

Конечно, в простейшей системе из двух уравнений все ясно, но уже в системах из 5—7, а тем более из многих десятков уравнений уже совсем не ясно, к каким погрешностям решений приведет погрешность исходных данных, например, на ±1 %. Поэтому отсутствие во многих пакетах прикладных программ оценок погрешностей решений систем уравнений в зависимости от погрешностей исходных данных является недостатком, который может быть источником ошибок в расчетах, а значит — порожденных этими ошибками аварий и катастроф.

Поделиться с друзьями: