Введение

Численный анализ – это изучение алгоритмов, использующих численное приближение (в отличие от символьных вычислений) для решения задач математического анализа (в отличие от дискретной математики). Это исследование численных методов, стремящихся найти приближенные решения задач, а не точные. Численный анализ находит применение во всех областях инженерии и естественных наук, а в XXI веке – также в биологических и социальных науках, медицине, бизнесе и даже искусстве. Современный рост вычислительной мощности позволил использовать более сложные методы численного анализа, предоставляя детальные и реалистичные математические модели в науке и технике. Примеры численного анализа включают: обыкновенные дифференциальные уравнения, используемые в небесной механике (для предсказания движения планет, звезд и галактик), численную линейную алгебру в анализе данных, стохастические дифференциальные уравнения и цепи Маркова для моделирования живых клеток в медицине и биологии. До появления современных компьютеров численные методы часто основывались на ручных формулах интерполяции, использующих данные из больших печатных таблиц. С середины XX века компьютеры вычисляют необходимые функции, однако многие из тех же формул продолжают применяться в программных алгоритмах. Использование численных методов восходит к самым ранним математическим записям. На табличке из Йельской вавилонской коллекции (YBC 7289) приведено шестидесятеричное численное приближение квадратного корня из 2, равное длине диагонали единичного квадрата. Численный анализ продолжает эту давнюю традицию: вместо предоставления точных символьных ответов, представленных в виде цифр и применимых только к измерениям реального мира, используются приближенные решения с заданными границами погрешности.

Кондиционирование

Проблема с плохой обусловленностью: рассмотрим функцию size=100%. Обратите внимание, что f(1.1) = 10 и f(1.001) = 1000: изменение x менее чем на 0.1 приводит к изменению f(x) почти на 1000. Вычисление f(x) вблизи x = 1 является задачей с плохой обусловленностью. Задача с хорошей обусловленностью: напротив, вычисление той же функции size=100% вблизи x = 10 является задачей с хорошей обусловленностью. Например, f(10) = 1/9 ≈ 0.111 и f(11) = 0.1: небольшое изменение x приводит к небольшому изменению f(x).

Дискретизация

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

Создание и распространение ошибок

Изучение ошибок составляет важную часть численного анализа. Существует несколько путей возникновения ошибок при решении задачи.

Окружение

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

Ошибка обрезки и дискретизации

Ошибки усечения возникают при завершении итеративного метода или при приближении математической процедуры, когда приближенное решение отличается от точного. Аналогично, дискретизация порождает ошибку дискретизации, поскольку решение дискретной задачи не совпадает с решением непрерывной задачи. В приведенном выше примере, при вычислении решения , после десяти итераций, найденный корень приблизительно равен 1,99. Следовательно, ошибка усечения составляет приблизительно 0,01. Как только ошибка возникает, она распространяется на протяжении всего вычисления. Например, операция + на компьютере является неточной. Вычисление вида a+b+c+d+e еще более неточно. Ошибка усечения возникает при приближении математической процедуры. Для точного интегрирования функции необходимо найти бесконечную сумму элементарных областей, но численно можно найти только конечную сумму, что приводит к приближению точного решения. Аналогично, при дифференцировании функции дифференциальный элемент стремится к нулю, но численно можно выбрать только ненулевое значение дифференциального элемента.

Численная стабильность и хорошо поставленные проблемы

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

Решение уравнений и систем уравнений

Другая фундаментальная проблема — вычисление решения заданного уравнения. Обычно различают два случая, в зависимости от того, является ли уравнение линейным или нет. Например, уравнение x + y = 2 линейно, а x² + y = 2 — нет. Значительные усилия были направлены на разработку методов решения систем линейных уравнений. Стандартными прямыми методами, то есть методами, использующими некоторое разложение матрицы, являются метод Гаусса, LU-разложение, разложение Холецкого для симметричных (или эрмитовых) и положительно определенных матриц, а также QR-разложение для неквадратных матриц. Итеративные методы, такие как метод Якоби, метод Гаусса-Зейделя, метод последовательных приближений и метод сопряженных градиентов, обычно предпочтительнее для больших систем. Общие итеративные методы могут быть разработаны на основе расщепления матрицы. Алгоритмы поиска корней используются для решения нелинейных уравнений (они получили такое название, поскольку корень функции — это аргумент, при котором функция равна нулю). Если функция дифференцируема и известна ее производная, то метод Ньютона является популярным выбором. Линеаризация — еще один метод решения нелинейных уравнений.

Решение задач с собственной или единичной стоимостью

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

Оптимизация

Задачи оптимизации ставят целью нахождение точки, в которой заданная функция достигает максимума (или минимума). Часто эта точка должна также удовлетворять определенным ограничениям. Область оптимизации подразделяется на несколько подразделов в зависимости от вида целевой функции и ограничений. Например, линейное программирование рассматривает случаи, когда и целевая функция, и ограничения являются линейными. Известным методом линейного программирования является симплекс-метод. Метод множителей Лагранжа позволяет свести задачи оптимизации с ограничениями к задачам оптимизации без ограничений.

Оценка интегралов

Числовая интеграция, в некоторых случаях также известная как численное квадратурное интегрирование, ставит задачу вычисления значения определенного интеграла. Распространенные методы используют одну из формул Ньютона-Котса (например, правило середины или правило Симпсона) или квадратуру Гаусса. Эти методы основаны на стратегии "разделяй и властвуй", при которой интеграл по относительно большому множеству разбивается на интегралы по меньшим множествам. В многомерных задачах, где эти методы становятся чрезмерно затратными с точки зрения вычислительных ресурсов, можно применять методы Монте-Карло или квази-Монте-Карло (см. численное интегрирование методом Монте-Карло), или, при умеренно большой размерности, метод разреженных сеток.

Дифференциальные уравнения

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

Журналы

Numerische Mathematik, тома 1–, Springer, 1959–
тома 1–66, 1959–1994 (с возможностью поиска; страницы представлены в виде изображений). Журнал по численному анализу (SINUM), тома 1–, SIAM, 1964–

Тексты в Интернете

Численные рецепты, Уильям Х. Пресс (бесплатные, предыдущие издания доступны для скачивания)
Первые шаги в численном анализе (архивировано), Р. Дж. Хоскинг, С. Джо, Д. С. Джойс и Дж. С. Тернер
CSEP (Проект обучения вычислительной науке), Министерство энергетики США (архивировано 01.08.2017)
Численные методы, глава 3 в Цифровой библиотеке математических функций
Численная интерполяция, дифференцирование и интегрирование, глава 25 в Справочнике по математическим функциям (Абрамовиц и Стегун)