Теория приближения
Введение в предмет
Интерполяция
Оптимальная интерполяция
Локальная интерполяция
Численное дифференцирование
Численное интегрирование
Наилучшее приближение
Тригонометрические полиномы
Численные методы для систем ОДУ
Численные методы для систем ОДУ I
Численные методы для систем ОДУ II
Численные методы линейной алгебры
Методы последовательного исключения
Собственные числа и вектора
Методы простой итерации
Сингулярные числа
Методы подпространства Крылова
Численные методы для нелинейных уравнений
Численные методы для нелинейных уравнений
Метод Ньютона
Вычислительная математика
Содержание курса
Теория приближения
Введение в предмет
Интерполяция
Оптимальная интерполяция
Локальная интерполяция
Численное дифференцирование
Численное интегрирование
Наилучшее приближение
Тригонометрические полиномы
Численные методы для систем ОДУ
Численные методы для систем ОДУ I
Численные методы для систем ОДУ II
Численные методы линейной алгебры
Методы последовательного исключения
Собственные числа и вектора
Методы простой итерации
Сингулярные числа
Методы подпространства Крылова
Численные методы для нелинейных уравнений
Численные методы для нелинейных уравнений
Метод Ньютона
Численное интегрирование
Базовая идея численного интегрирования состоит в том, чтобы аппроксимировать интеграл следующим образом:
где выражение справа называется квадратурой. Как и в случае численного дифференцирования, простейшие квадратуры можно вывести, аппроксимируя $f(x)$ интерполяционным многочленом Лагранжа.
Формулы Ньютона-Котеса
Рассмотрим функцию $f(x) \in C^{n}[a; b]$ и $n$ различных узлов $x_1, \dots, x_n$. Тогда, раскладывая $f(x)$ в базисные многочлены Лагранжа, мы получаем
В случае, когда интерполяционные узлы $x_1, \dots, x_n$ распределены равномерно, мы получаем формулы Ньютона-Котеса для численного интегрирования. Оценим остаточный член формул Ньютона-Котеса для $n$ узлов $x_i = x_1 + (i-1)h$, где $i = 1, \dots, n$ и $x_1 = a, x_n = b$:
Представим переменную $x$ как $x = x_1 + (t-1) h$, что дает $dx = h dt$ и $t = \dfrac{x-x_1}{h} + 1$. Тогда, произведя замену в выражении выше, имеем:
\begin{equation}
\label{eq:R_newton_cotes}
R = \frac{h^n}{n!} \int_1^n \prod_{i=1}^n \left(t - i \right) f^{(n)}(\xi(t)) dt.
\end{equation}
Таким образом, порядок точности можно оценить как $O(h^n)$. Чтобы получить более точное выражение для остаточного члена, необходимо заметить, что полином в подинтегральном выражении меняет знак только в узлах $x_i$. Тогда, пользуя первой теоремой о среднем значении, мы получаем:
\begin{equation}
R = \frac{h^n}{n!} \sum_{j = 1}^{n-1} f^{(n)}(\xi_j) \int_{j}^{j+1} \prod_{i=1}^n \left(t - i \right) dt.
\end{equation}
где $\xi_j \in [x_j; x_{j+1}]$. Эта форма $R$ приводит к теореме об остаточном члене формул Ньютона-Котеса, которую мы рассмотрим без доказательства.
Пусть $a_i = \int_a^b l_i(x) dx$ и заданы узлы $x_i = x_1 + (i-1)h$, где $i = 1, \dots, n$ и $x_1 = a, x_n = b$. Тогда для четных $n$ и $f(x) \in C^{n}[a; b]$ существует $\xi \in (a;b)$ такое, что:
Основным следствием теоремы является тот факт, что предпочтительным является нечетное число узлов. Это связано с формой полинома в подинтегральном выражении в \eqref{eq:R_newton_cotes}, который в случае нечетного числа узлов имеет равное количество отрезков, на которых функция всюду положительна и всюду отрицальна, что снижает погрешность метода.
Формулы трапеций и Симпсона
Частными случаями формул Ньютона-Котеса являются формула трапеций ($n=2$) и формула Симпсона ($n=3$). В связи с их распространенностью рассмотрим вывод этих формул с явными выражением для остаточного члена. Так, для $n=2$ выражение \eqref{eq:general_numer_quad_lagrange} принимает вид:
где, как мы помним, $x_1 = a$, $x_2 = b$ и $h = b - a$.
Для вывода формулы Симпсона с $n=3$ мы воспользуемся альтернативным подходом, который сделает вывод остаточного члена проще, а также в очередной раз продемонстрирует связь между интерполяционным многочленом Лагранжа и рядом Тейлора. Рассмотрим разложение функции $f(x)$ в ряд Тейлора в промежуточном узле $x_2$:
В силу четности степеней члены, включающие в себя нечетные производные, обращаются в ноль. Более того, так как $(x-x_2)^4 \geq 0$, мы можем применить первую теорему о среднем значении, что в результате дает:
где $\xi \in (x_1; x_3)$. Для того, чтобы избавиться от второй производной, воспользуемся формулой для численного дифференцирования с остаточным членом \eqref{eq:num_diff_second_deriv}. После подстановки равенство выше принимает вид:
где $\xi_1, \xi_2 \in (x_1; x_3)$. Так как в общем случае $\xi_1 \neq \xi_2$ нам необходимо каким-то образом скомбинировать два последних члена. Для этого рассмотрим остаточный член в общем случае и предположим, что существует такое $\xi \in (x_1; x_3)$, что:
где $\alpha \in \mathbb{R}$ – неопределенный коэффициент. Для того чтобы найти его, заметим, что $f^{(4)}(\xi) = 24$ для любого нормированного многочлена 4-й степени. Тогда рассмотрим в качестве $f(x)$ многочлен $(x-x_2)^4$:
где $x_1 = a$, $x_2 = x_1 + h$ и $x_3 = x_1 + 2h = b$. Малость погрешности формулы Симпсона, $O(h^5)$, при использовании всего лишь трех узлов объясняет ее частое использование в реальных приложениях.
Необходимо отметить, что такая малая погрешность сохраняется только при достаточной гладкости функции $f(x)$. Для того, чтобы численно исследовать зависимость остаточного члена формулы Симпсона от гладкости интегрируемой функции, мы проведет следующий вычислительный эксперимент. Рассмотрим две функции $f_1(x) = e^x$ и $f_2(x) = |x|$, первая из которых является бесконечно гладкой, а вторая лишь непрерывной. Построим на основе последовательности шагов $\{h_i\}_{i=1}^n$ соответствующую последовательность интегралов:
где $x = 1/2$ и $x = 0$ являются центральными узлами численного интегрирования для $f_1(x)$ и $f_2(x)$ соответственно. Рассчитав те же интегралы с помощью формулы Симпсона и найдя полную погрешность $E$, включающую в себя как остаточный член, так и вычислительную погрешность, для каждого случая, мы получаем рисунок ниже. Для начала заметим, что численное интегрирование устойчиво с вычислительной точки зрения, и полная погрешность полностью соответствует остаточному члену вплоть до тех пор, пока $E$ не достигнет машинного эпсилон. Сам остаточный член, как мы видим, пропорционален $O(h^5)$ в случае бесконечно гладкой функции $f_1(x)$, что и предполагается равенством \eqref{eq:simpson}, в то время как в случае функции $f_2(x)$ погрешность метода пропорциональна лишь $O(h^2)$, что связано с тем, что уже первая производная от $f_2(x)$ имеет разрыв, что делает формулу \eqref{eq:simpson} нерабочей.
Формула средних
Отдельно рассмотрим случай, когда на отрезке $[a; b]$ мы имеем только один узел, расположенный в центре отрезка, т.е. $x_1 = \frac{a + b}{2}$. Разложим функцию $f(x) \in C^2[a; b]$ в ряд Тейлора в этом узле:
Заметим, что остаточный член в формуле средних пропорционален $O(h^3)$, где $h = b-a$, т.е. имеет тот же порядок погрешности, что и формула трапеций. Однако формула средних использует только один узел и, соответственно, только одно значение функции $f(x)$, что делает ее предпочтительной с вычислительной точки зрения.
Степень точности численного интегрирования
Несмотря на то, что оценка остаточного члена с точки зрения его зависимости от шага интегрирования $h$ является удобной для анализа и сравнения различных формул интегрирования, на практике часто пользуются другой оценкой, напрямую следующей из формы остаточного члена. Этой оценкой является степень точности численного интегрирования.
Степенью точности квадратуры называется такое наибольшее $n \in \mathbb{N}$, что формула квадратуры дает точный результат для всех $x^i, i = 0, \dots n$.
Легко проверить, что вследствие линейности операции интегрирования, это определение автоматически приводит к следующей теореме:
Степень точности квадратуры равна $n \in \mathbb{N}$ тогда и только тогда, когда остаточный член равен нулю для всех многочленов степеней $i = 0, \dots n$ и не равен нулю для хотя бы одного многочлена степени $n+1$.
Форма остаточного члена в формулах трапеций и Симпсона позволяет заключить, что они имеют степени точности $1$ и $3$ соответственно. Например, интегрируя любой полином, имеющий степень $0, 1, 2$ или $3$, формула Симпсона будет давать точный результат. В дальнейшем мы рассмотрим способ построения квадратур, имеющих наибольшую степень точности при наименьшем числе используемых узлов.
Составные формулы численного интегрирования
Как и в случае с интерполяцией, использование формул Ньютона-Котеса большого порядка для увелечения точности интегрирования на больших отрезках приводит к паразитным решениям. В таком случае предпочтительным является кусочный подход к интегрированию. Мы построим составные формулы из формул Симпсона, трапеций и средних, хотя подобный подход, очевидно, можно применить к любым другим квадратурам.
Рассмотрим интеграл $\int_a^b f(x) dx$. Разделим отрезок $[a; b]$ на четное число подотрезков $n$ и применим формулу Симпсона на каждом из них. Тогда для $f(x) \in C^{4}[a;b]$, $h = \frac{b - a}{n}$ и $x_i = a + (i-1)h$, где $i = 1, \dots, n+1$ мы имеем:
где $\xi_i \in (x_{2i - 1}; x_{2i + 1})$. Заметим, что все нечетные узлы за исключением $x_1$ и $x_{n+1}$ дважды повторяются в сумме, что позволяет упростить выражение:
Заметим, что по сравнению со стандартной формулой Симпсона, остаточный член составной формулы Симпсона пропорционален $O(h^4)$. Результирующее выражение для составной формулы представлено в следующей теореме.
Пусть $x_i = a + (i-1)h$, $h = \frac{b - a}{n}$ и $i = 1, \dots, n+1$, где $n$ – четное число. Тогда существует такое $\xi \in (a; b)$ для $f(x) \in C^{4}[a;b]$, что составная формула Симпсона имеет вид:
Аналогично можно вывести составные формулы трапеций и средних, в которых $n$ может быть как четным, так и нечетным. Мы приведет соответствующие теоремы без доказательства.
Пусть $x_i = a + (i-1)h$, $h = \frac{b - a}{n}$ и $i = 1, \dots, n+1$, где $n \in N$. Тогда существует такое $\xi \in (a; b)$ для $f(x) \in C^{2}[a;b]$, что составная формула трапеций имеет вид:
Пусть $x_i = a + \frac{(2i - 1)h}{2}$, $h = \frac{b - a}{n}$ и $i = 1, \dots, n$, где $n \in N$. Тогда существует такое $\xi \in (a; b)$ для $f(x) \in C^{2}[a;b]$, что составная формула средних имеет вид:
Вычислительная устойчивость операции интегрирования
По сравнению с дифференцированием, операция интегрирования, как мы вскоре покажем, способна к стабилизации вычислительной погрешности. Интуитивное объяснение этого эффект заключается в том, что интегрирование предполагает суммирование близких значений, в то время как дифференцирование вычисляет их разность.
Рассмотрим составную формулу Симпсона и предположим, что значение $f(x)$ в точке $x_i$ вычисляется с погрешностью округления $e_i$:
\begin{equation}
f(x_i) = \tilde f(x_i) + e_i, \quad i = 1, \dots, n + 1.
\end{equation}
Тогда полная погрешность округления, накапливаемая составной формулой Симпсона, может быть оценена следующим образом:
Этот результат показывает, что верхняя грань для накопленной погрешности округления не зависит от $n$ или $h$, что означает, что увеличение числа подотрезков не приводит к дестабилизации полной погрешности. Действительно, из графика можно заметить, что полная погрешность интегрирования падает до тех пор, пока она не достигнет значения, сравнимого с машинным эпсилон, после чего уменьшение погрешности становится невозможным, и она стабилизируется на уровне машинного эпсилон.
Квадратуры Гаусса
Формулы Ньютона-Котеса были построены, исходя из равномерного распределения узлов. Как и в случае интерполяции, логично предположить, что существует иное, неравномерное распределение узлов, которое позволило бы максимизировать точность. Как уже было сказано ранее, на практике часто возникает необходимость максимизировать степень точности, т.е. максимизировать степень полинома, интегрирование которого с помощью данной квадратуры дает точный результат при заданном количестве узлов. Эту задачу решают квадратуры Гаусса, суть которых сводится к нахождению таких $x_1, \dots, x_n$ и $c_1, \dots, c_n$, что приближение
максимизирует степень точности. Так как всего мы имеем $2n$ оптимизируемых параметров, логично предположить, что полином $2n - 1$ степени, имеющий так же $2n$ параметров, может быть интегрирован точно при правильно подобранных параметрах. Очевидно, что если квадратура дает точный результат для любого полинома этой степени, то все полиномы низших степеней автоматически интегрируются точно как частные случаи.
Рассмотрим случай $n=2$ и интервал интегрирования $[-1; 1]$. Тогда квадратура принимает вид:
где $a_0, a_1, a_2, a_3 \in \mathbb{R}$ – произвольные константы. Можно заметить, что квадратура будет точно вычислять интеграл этого полинома тогда, когда точно будут вычисляться интегралы от функций $f(x) = 1$, $f(x) = x$, $f(x) = x^2$, $f(x) = x^3$. В таком случае мы получаем систему уравнений:
Подобным образом мы можем построить квадратуры Гаусса произвольной степени точности, однако из-за нелинейности решаемой системы уравнений это становится алгебраически утомительным. Для рассмотрения более удобного подхода нам необходимо ознакомиться с понятием линейно-независимых функций и многочленами Лежандра.
Ортогональные полиномы и многочлены Лежандра
По аналогии с векторами мы введем понятие линейно независимых функций.
Система функций $\{\phi_1, \dots, \phi_n\}$ называется линейно независимой на $[a; b]$, если
В противном случае система функций называется линейно зависимой.
Важное свойство полиномов состоит в том, что любые полиномы различных степеней являются линейно независимыми. Это свойство доказывается в следующей теореме.
Пусть $\{\phi_i\}_{i=0}^{n}$ – система полиномов, где полином $\phi_i$ имеет $i$-ую степень. Тогда $\{\phi_i\}_{i=0}^{n}$ является линейно независимой системой функций на $[a; b]$.
Рассмотрим линейную комбинацию:
Пусть коэффициенты $c_i$ имеют такие значения, что $P(x) = 0$. В свою очередь $P(x)$ является полиномом степени $n$, что означает, что для удовлетворения условия $P(x) = 0$ коэффициенты при всех степенях $x^i$, $i = 0,\dots, n$ должны быть равны нулю. Это возможно только тогда, когда $c_n = 0$. В результате мы получаем:
Продолжая эту логику, мы получаем $c_0 = \dots = c_n = 0$, что означает, что система $\{\phi_i\}_{i=0}^{n}$ является линейно независимой.
Также добавим, что если система полиномов $\{\phi_i\}_{i=0}^{n}$ является линейно независимой, то любой полином степени меньшей или равной $n$ можно представить в виде единственной линейной комбинации полиномов $\{\phi_i\}_{i=0}^{n}$. Более того, если такая система полиномов является к тому же ортогональной, то верно следующее равенство:
Линейно независимая система функций необязательно является ортогональной. Для случая полиномов мы можем построить ортогональную систему полиномов, адаптировав процесс Грама-Шмидта, хорошо известный из курса линейной алгебры.
Пусть система полиномов $\{\phi_i\}_{i=0}^{n}$ определена следующим образом на $[a; b]$ относительно весовой функции $\omega(x)$:
\begin{align}
\phi_0(x) &= 1 \\
\phi_1(x) &= x - \frac{\langle x \phi_0, \phi_0 \rangle_\omega}{\langle \phi_0, \phi_0 \rangle_\omega} \\
\phi_k(x) &= x \phi_{k-1}(x) - \frac{\langle x \phi_{k-1}, \phi_{k-1} \rangle_\omega}{\langle \phi_{k-1}, \phi_{k-1} \rangle_\omega} \phi_{k-1}(x) - \frac{\langle x \phi_{k-2}, \phi_{k-1} \rangle_\omega}{\langle \phi_{k-2}, \phi_{k-2} \rangle_\omega} \phi_{k-2}(x),
\end{align}
где $x \in [a; b]$ и $k \geq 2$. Тогда эта система является ортогональной на $[a; b]$ с весом $\omega(x)$.
Рассмотрим систему полиномов $\{\chi_k(x)\}_{k=0}^{n} = \{1, x, x^2, \dots\}$, которая по теореме \ref{th:poly_lin_indep} является линейно независимой. Пусть $\phi_0(x) = \chi_0(x) = 1$. Процесс Грама-Шмидта предполагает, что $\phi_1(x)$ ищется в следующей форме:
Это выражение можно упростить, если заметить, что полином степени $k$ может быть построен как $\chi_k = x \phi_{k-1}$. Тогда $\phi_k$ принимает форму:
\begin{equation}
\begin{split}
\phi_k &= x \phi_{k-1} - \sum_{j=0}^{k-1}\frac{\langle \phi_j, x \phi_{k-1} \rangle_\omega}{\langle \phi_j, \phi_j \rangle_\omega} \phi_j \\
&= x \phi_{k-1} - \sum_{j=0}^{k-1}\frac{\langle x \phi_j, \phi_{k-1} \rangle_\omega}{\langle \phi_j, \phi_j \rangle_\omega} \phi_j.
\end{split}
\end{equation}
Так как $x \phi_j$ является полиномом степени $j + 1$, мы имеем
\begin{equation}
\langle x \phi_j, \phi_{k-1} \rangle_\omega = 0
\end{equation}
для $j < k - 2$. Тогда для $\phi_k$ получаем:
\begin{equation}
\begin{split}
\phi_k = x \phi_{k-1} - \frac{\langle x \phi_{k-1}, \phi_{k-1} \rangle_\omega}{\langle \phi_{k-1}, \phi_{k-1} \rangle_\omega} \phi_{k-1} - \frac{\langle x \phi_{k-2}, \phi_{k-1} \rangle_\omega}{\langle \phi_{k-2}, \phi_{k-2} \rangle_\omega} \phi_{k-2}.
\end{split}
\end{equation}
Многочлены Лежандра могут быть получены различными способами, однако мы рассмотрим их как ортогональную систему полиномов, построенную с помощью процесса Грама-Шмидта. Действительно, для случая $\omega(x) = 1$ и интервала $[-1; 1]$ мы имеем:
Остальные многочлены Лежандра могут быть получены аналогичным образом.
Наконец, мы имеем возможность доказать следующую теорему, которая постулирует, что квадратуры Гаусса могут быть построены, если в качестве узлов выбраны корни соответствующего многочлена Лежандра.
Пусть $x_1, \dots, x_n$ являются корнями полинома Лежандра $n$-ой степени $\phi_n(x)$, и пусть коэффициенты $c_1, \dots, c_n$ определены следующим образом:
Для начала рассмотрим случай $m < n$. Тогда полином $P_m(x)$ может быть переписан в виде многочлена Лагранжа с нулевым остаточным членом, так как $n$-ая производная от $P_m(x)$ будет равна нулю. Тогда имеем:
Теперь рассмотрим случай $n \leq m < 2n$. Разделим многочлен $P_m(x)$ на многочлен Лежандра $\phi_n(x)$. Тогда классическое деление многочленов столбиком дает:
где $Q(x)$ – полином степени $m - n$ и $R(x)$ – полином степени обязательно меньшей, чем $\phi_n(x)$. Тогда, учитывая, что $m < 2n$ и соответственно $m-n < n$ мы имеем (см. равенство \eqref{eq:orth_poly_with_basis} и прилегающие параграфы):