Для того чтобы не получилось подобных ошибок с возможными трагическими последствиями, нужно популярные пакеты прикладных программ дополнить совсем небольшими вспомогательными программами, которые выделят и отсеют «особые» системы уравнений и выделят соответствующие этим системам опасные объекты. Эти опасные объекты следует перепроектировать, изменить их структуру или параметры — изменить так, чтобы математическая модель проектируемого и рассчитываемого объекта перестала быть «особой». Тогда и аварий не будет. Все эти вопросы — и ошибки в пакетах, и методы предотвращения ошибок в расчетах — более подробно рассмотрены в книге [7].
2. Многочисленные расчетные алгоритмы, использующие цепочки эквивалентных преобразований, реализуемые в популярных прикладных программах, могут привести к ошибкам, если хотя бы одно из использованных преобразований изменит чувствительность решений к малым погрешностям округления. Более подробно о возникающих ошибках и несложных методах их предотвращения рассказано в работах [7], [8].
Не меньшее значение имеет и задача вычисления собственных значений (или собственных чисел) различных матриц. К необходимости решать эту математическую задачу приводят многие важные практические проблемы — такие, как вычисление частот собственных колебаний различных технических объектов, проверка условий возможного опасного резонанса между внешними воздействиями и собственными колебаниями, проверка устойчивости и многие другие проблемы. Возникают эти проблемы и в строительной механике, и при проверке прочности и устойчивости различных деталей и устройств, и в автоматическом управлении.
Поэтому во всех пакетах прикладных программ имеются широко и часто используемые программы вычисления собственных значений (собственных чисел). Однако при встрече с «особыми» системами уравнений (которые являются математическими моделями «особых» объектов), эти программы ведут пользователя к ошибочным заключениям: для «особых» объектов вычисление собственных значений смысла не имеет, поскольку они могут коренным образом измениться при малых, неизбежных на практике, неточностях в исходных данных. Поэтому любое проектное решение, принятое на основе вычисленных для «особых» объектов их собственных значений, может стать причиной последующих аварий и катастроф.
Поэтому пакеты прикладных программ обязательно должны быть дополнены небольшими дополнительными программами, которые выделяли бы «особые» системы уравнений, «особые» объекты, и предупреждали бы об этом пользователей компьютера. Эта дополнительная программа может, например, высветить на мониторе компьютера предостерегающую надпись: «Вы ведете расчет «особого» объекта, поведение которого может сильно меняться при малых неточностях в исходных данных. Советуем изменить параметры или структуру объекта и повторить расчет».
Виды «особых» матриц, для которых собственные значения очень чувствительны к малым неточностям исходных данных, и методы выделения «особых» матриц и «особых» объектов описаны в книгах [2, 3, 7].
3. В пакетах прокладных программ широко используются разнообразные алгоритмы, § 12. Опасные ошибки, обнаруженные в популярных пакетах прикладных программ, используют цепочки эквивалентных преобразований математической модели рассчитываемого объекта. При этом не уделяется должного внимания тому, что если хотя бы одно из использованных преобразований изменит чувствительность решений к малым неточностям исходных данных, или к погрешностям округления, то все решение окажется ошибочным. Примеры и методы предотвращения подобных ошибок исследовались Б. Г. Чертковым и рассмотрены в публикациях [7, 8].
4. Пакеты прикладных программ обязательно включают в себя программы вычисления решений систем линейных алгебраических уравнений различных порядков, поскольку к необходимости решать такие системы приводят очень многие практические задачи.
Простейшие системы уравнений — такие, например, как система
1,02х
легко решаются вручную, но в практических задачах часто приходится иметь дело с системами, состоящими из двадцати, сорока и более уравнений, и здесь уже без компьютера и хорошей программы не обойтись. Применяемые программы решения систем уравнений, входящие в пакеты, используют, как правило, преобразования уравнений. Поскольку эти преобразования, разумеется, эквивалентны, то они позволяют вычислить правильные, истинные значения решений. Но многие важные свойства решений и в том числе — чувствительность решений к неизбежной ограниченной точности исходных данных — использованные эквивалентные преобразования могут изменить. Все это удобно показать на простом примере системы уравнений (22)—(23), решениями которой являются числа