Расследование и предупреждение техногенных катастроф. Научный детектив
Шрифт:
Поэтому во всех пакетах прикладных программ имеются широко и часто используемые программы вычисления собственных значений (собственных чисел). Однако при встрече с «особыми» системами уравнений (которые являются математическими моделями «особых» объектов), эти программы ведут пользователя к ошибочным заключениям: для «особых» объектов вычисление собственных значений смысла не имеет, поскольку они могут коренным образом измениться при малых, неизбежных на практике, неточностях в исходных данных. Поэтому любое проектное решение, принятое на основе
Поэтому пакеты прикладных программ обязательно должны быть дополнены небольшими дополнительными программами, которые выделяли бы «особые» системы уравнений, «особые» объекты, и предупреждали бы об этом пользователей компьютера. Эта дополнительная программа может, например, высветить на мониторе компьютера предостерегающую надпись: «Вы ведете расчет «особого» объекта, поведение которого может сильно меняться при малых неточностях в исходных данных. Советуем изменить параметры или структуру объекта и повторить расчет».
Виды «особых» матриц, для которых собственные значения очень чувствительны к малым неточностям исходных данных, и методы выделения «особых» матриц и «особых» объектов описаны в книгах [2, 3, 7].
3. В пакетах прокладных программ широко используются разнообразные алгоритмы, § 12. Опасные ошибки, обнаруженные в популярных пакетах прикладных программ, используют цепочки эквивалентных преобразований математической модели рассчитываемого объекта. При этом не уделяется должного внимания тому, что если хотя бы одно из использованных преобразований изменит чувствительность решений к малым неточностям исходных данных, или к погрешностям округления, то все решение окажется ошибочным. Примеры и методы предотвращения подобных ошибок исследовались Б. Г. Чертковым и рассмотрены в публикациях [7, 8].
4. Пакеты прикладных программ обязательно включают в себя программы вычисления решений систем линейных алгебраических уравнений различных порядков, поскольку к необходимости решать такие системы приводят очень многие практические задачи.
Простейшие системы уравнений — такие, например, как система
1,02х + у = 1,04 (22)
Х + У = 1 (23)
легко решаются вручную, но в практических задачах часто приходится иметь дело с системами, состоящими из двадцати, сорока и более уравнений, и здесь уже без компьютера и хорошей программы не обойтись. Применяемые программы решения систем уравнений, входящие в пакеты, используют, как правило, преобразования уравнений. Поскольку эти преобразования, разумеется, эквивалентны, то они позволяют вычислить правильные, истинные значения решений. Но многие важные свойства решений и в том числе — чувствительность решений к неизбежной ограниченной точности исходных данных — использованные эквивалентные преобразования могут изменить. Все это удобно показать на простом примере системы уравнений (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) иллюстрирует главный и наиболее важный вывод: эквивалентные преобразования, широко (и часто некритично) применяемые при расчетах, не меняя самих решений как таковых, могут изменять многие важные свойства решений и, в частности — могут изменять их чувствительность к неизбежным на практике малым неточностям исходных данных, которые почти всегда получаются из опыта или измерения и поэтому имеют ограниченную точность.