Для решения математических задач создано множество библиотек и пакетов программ. Может показаться, что богатство математического программного обеспечения избавляет специалиста-прикладника от знания математики. Однако упомянутым богатством надо суметь воспользоваться, и ключом к нему является... знание математики. Ниже обсуждаются некоторые типичные затруднения с прикладной математикой - главным образом, с целью побудить читателя постоянно повышать свою математическую подготовку и активно ею пользоваться.
Влияние ограниченности разрядной сетки проявляется, например, при суммировании чисел одного знака (его надо начинать с малых по модулю слагаемых), при вычитании близких чисел, при рекуррентных вычислениях. В современных ЭВМ происходит не округление промежуточных результатов, а отбрасывание лишних разрядов, что усугубляет обсуждаемый эффект.
Полиномиальная интерполяция. Многие вычислительные проблемы упрощается при замене исходных функций полиномами. Но, согласно теореме Фабера, при любом интерполяционном массиве найдется непрерывная функция gи точка х из [a,b], для которых Рп(д:х) не сходится к g(х) при п > ?. Поэтому качество выбранной интерполяции необходимо оценивать.
Ускорение сходимости рядов. Некоторые ряды - в частности,
ln(1-x)=-[x+
x2 |
2 |
x3 |
3 |
сходятся чрезвычайно медленно. В таких случаях может помочь, например, преобразование Эйлера-Абеля.
Вычисление определенных интегралов. При использовании квадратурных формул возникает вопрос о выборе узлов, прогнозе точности и т.д. Любая попытка оценить сравнительные достоинства квадратурных формул связана с вопросами типа: "Что больше, h2f''(x) или h4 f''''(x)?" Ответ, разумеется, зависит от природы интегрируемой функции.
При неудачном расположении узлов квадратурная формула может дать сильно искаженные результаты - в особенности при наличии в интервале интегрирования большого числа нулей интегрируемой функции. Для сильно колеблющихся функций следует применять специальную технику интегрирования.
Специальные меры нужно применять и при расчете несобственных интегралов, которые обращаются в бесконечность внутри или на концах интервала интегрирования, либо берутся на бесконечном интервале.
188
Задачи линейной алгебры. Матрицы являются компактным и удобным средством описания математических моделей - в особенности линейных. Изобилие (по количеству и начинке) пакетов соответствующих подпрограмм наводит на мысль, что проблем здесь не будет. Однако проблемы возникают - и весьма серьезные - при работе с плохо обусловленными матрицами. Матрица считается плохо обусловленной, если модуль ее определителя существенно меньше какой-либо из норм матрицы. Линейные системы уравнений с квадратными матрицами некорректны, если имеют сингулярные системы в пределах точности коэффициентов, т.е. не выполнены условия
|| A-1||· ||DA|| ?1
Для некорректно поставленных задач решение тем или иным способом обобщается. В частности, плохо обусловленные линейные системы заменяются задачами вида ATAx=ATb, которые эквивалентны минимизации || b-Ах|| .
Корни полинома. Известна крайняя неустойчивость корней некоторых полиномов как функций от их коэффициентов. Поэтому многие задачи, включающие в себя нахождение нулей полиномов, требуют либо предельно точного вычисления коэффициентов, либо совершенно иного подхода. Примером является задача вычисления собственных чисел матрицы.
Системы нелинейных уравнений. Это тоже предмет постоянной озабоченности прикладников. Метод Ньютона обеспечивает чрезвычайно быструю сходимость, но только в близкой окрестности решения. Основная проблема - как подойти достаточно близко к желаемому корню - требует учета специфики задачи и умения строить аппроксимации.
При решении уравнений следует помнить, что прекращение процесса по достижению заданной невязки - дело опасное: умножение обеих частей на достаточно малое по модулю число заставит процесс завершиться очень далеко от корня.
Проблема минимизации. Задачи минимизации часто решаются методом скорейшего спуска.Если линии уровня сильно вытянуты, продвижение к минимуму происходит очень медленно. Маршрут состоит из осцилляции по направлениям локальных градиентов, и необходимо сглаживание колебательности.
Дифференциальные уравнения. Нужно принимать во внимание специальные свойства конкретных задач: "жесткость", сложность вычисления правых частей, требуемую точность, желаемое время счета. В случае жестких систем решение включает короткопериодические (быстрые) и медленно меняющиеся составляющие. Шаг, выбранный по быстрым компонентам, оказывается слишком мал, и решение идет очень долго, а увеличение шага ведет к потере устойчивости.
189
184 :: 185 :: 186 :: 187 :: 188 :: 189 :: Содержание