Compare commits
No commits in common. "4887f3ba2a1eb5f830dcdb9681395ff40112c823" and "afc4b083ecfa2f065e25947a8ce85d9f47e057d3" have entirely different histories.
4887f3ba2a
...
afc4b083ec
@ -182,8 +182,3 @@
|
|||||||
% ОФОРМЛЕНИЕ ТЕКСТА
|
% ОФОРМЛЕНИЕ ТЕКСТА
|
||||||
\renewcommand{\baselinestretch}{1.5}
|
\renewcommand{\baselinestretch}{1.5}
|
||||||
\MakeOuterQuote{"}
|
\MakeOuterQuote{"}
|
||||||
|
|
||||||
\newenvironment{nospaceflalign*}
|
|
||||||
{\setlength{\abovedisplayskip}{0pt}\setlength{\belowdisplayskip}{0pt}%
|
|
||||||
\csname flalign*\endcsname}
|
|
||||||
{\csname endflalign*\endcsname\ignorespacesafterend}
|
|
||||||
|
100
main.tex
100
main.tex
@ -729,14 +729,13 @@ LU-разложение \cite[с. 259]{book:levitin}. Для получения
|
|||||||
\subsection{Метод Ньютона решения систем нелинейных уравнений}
|
\subsection{Метод Ньютона решения систем нелинейных уравнений}
|
||||||
\subsubsection{Описание метода}
|
\subsubsection{Описание метода}
|
||||||
На каждой итерации \(p, p = 1,2,3,\dots,k\) вычисляются значения
|
На каждой итерации \(p, p = 1,2,3,\dots,k\) вычисляются значения
|
||||||
\(\Delta x^{(p)}_1,\) \( \Delta x^{(p)}_2, \Delta x^{(p)}_3, \dots,
|
\(\Delta x^{(p)}_1, \Delta x^{(p)}_2, \Delta x^{(p)}_3, \dots,
|
||||||
\Delta x^{(p)}_n \).
|
\Delta x^{(p)}_n \).
|
||||||
|
|
||||||
Для этого исходная система уравнений раскладывается в ряд Тейлора по
|
Для этого исходная система уравнений раскладывается в ряд Тейлора по
|
||||||
\(\Delta x^{(p)}_1, \Delta x^{(p)}_2, \Delta x^{(p)}_3, \dots,
|
\(\Delta x^{(p)}_1, \Delta x^{(p)}_2, \Delta x^{(p)}_3, \dots,
|
||||||
\Delta x^{(p)}_n \). Сохранив линейные по данным значениям части, получим
|
\Delta x^{(p)}_n \). Сохранив линейные по данным значениям части, получим
|
||||||
СЛУ:
|
СЛУ:
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\begin{aligned}
|
\begin{aligned}
|
||||||
& \splitdfrac{\frac{\partial F_1(\MFArgs)}{\partial x_1} \Delta x^{(p)}_1 +
|
& \splitdfrac{\frac{\partial F_1(\MFArgs)}{\partial x_1} \Delta x^{(p)}_1 +
|
||||||
@ -746,16 +745,12 @@ LU-разложение \cite[с. 259]{book:levitin}. Для получения
|
|||||||
\frac{\partial F_2(\MFArgs)}{\partial x_2} \Delta x^{(p)}_2 + \dots +}
|
\frac{\partial F_2(\MFArgs)}{\partial x_2} \Delta x^{(p)}_2 + \dots +}
|
||||||
{\frac{\partial F_2(\MFArgs)}{\partial x_n} \Delta x^{(p)}_n = -F_2(\MFArgs)} \\
|
{\frac{\partial F_2(\MFArgs)}{\partial x_n} \Delta x^{(p)}_n = -F_2(\MFArgs)} \\
|
||||||
& \dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots \\
|
& \dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots \\
|
||||||
|
& \splitdfrac{\frac{\partial F_n(\MFArgs)}{\partial x_1} \Delta x^{(p)}_1 +
|
||||||
|
\frac{\partial F_n(\MFArgs)}{\partial x_2} \Delta x^{(p)}_2 + \dots +}
|
||||||
|
{\frac{\partial F_n(\MFArgs)}{\partial x_n} \Delta x^{(p)}_n = -F_n(\MFArgs)} \\
|
||||||
\end{aligned}
|
\end{aligned}
|
||||||
\label{formula:SnLE-Newton-sys}
|
\label{formula:SnLE-Newton-sys}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
\begin{equation*}
|
|
||||||
\begin{aligned}
|
|
||||||
& \splitdfrac{\frac{\partial F_n(\MFArgs)}{\partial x_1} \Delta x^{(p)}_1 +
|
|
||||||
\frac{\partial F_n(\MFArgs)}{\partial x_2} \Delta x^{(p)}_2 + \dots +}
|
|
||||||
{\frac{\partial F_n(\MFArgs)}{\partial x_n} \Delta x^{(p)}_n = -F_n(\MFArgs)} \\
|
|
||||||
\end{aligned}
|
|
||||||
\end{equation*}
|
|
||||||
Данную систему можно решить любым наиболее подходящим с учетом доступных
|
Данную систему можно решить любым наиболее подходящим с учетом доступных
|
||||||
ресурсов методом.
|
ресурсов методом.
|
||||||
|
|
||||||
@ -789,100 +784,23 @@ LU-разложение \cite[с. 259]{book:levitin}. Для получения
|
|||||||
с помощью подходящего метода.
|
с помощью подходящего метода.
|
||||||
|
|
||||||
Для определения коэффициентов существует два основных подхода ---
|
Для определения коэффициентов существует два основных подхода ---
|
||||||
интерполяция (когда \(\widetilde{y}(x_i) = y_i\)), и сглаживание, когда
|
интерполяция (когда \(y_i = \widetilde{x_i}\)), и сглаживание, когда
|
||||||
требуется лишь минимизировать отклонение от известных значений.
|
требуется лишь минимизировать отклонение от известных значений.
|
||||||
|
|
||||||
Первые три метода решают поставленную задачу с помощью интерполяции,
|
Первые три метода решают поставленную задачу с помощью интерполяции,
|
||||||
последний --- с помощью сглаживания.
|
последний --- с помощью сглаживания.
|
||||||
\subsection{Интерполяционный полином Лагранжа}
|
\subsection{Интерполяционный полином в форме Лагранжа}
|
||||||
\subsubsection{Описание метода}
|
\subsubsection{Описание метода}
|
||||||
Для известных пар значений \((x_i,y_i), x_i \in [a,b]; i = 1,2,3,\dots,n\)
|
|
||||||
строится полином \(P(x)\), удовлетворяющий условию \(P(x_i) = y_i\).
|
|
||||||
|
|
||||||
Полином \(P(x)\) определяется следующей формулой:
|
|
||||||
\begin{equation*}
|
|
||||||
P(x) = L_{n-1}(x) = \sum_{i=1}^{n}y_i\cdot l_i(x)
|
|
||||||
\end{equation*}
|
|
||||||
\(l_i(x)\) --- фундаментальные полиномы Лагранжа, которые удовлетворяют равенству (\ref{formula:ip-lagr-eq1}), и имеют следующий вид:
|
|
||||||
\begin{equation*}
|
|
||||||
l_i(x) = \frac{(x-x_1)\dots (x-x_{i-1})(x-x_{i+1})\dots(x-x_n)}{(x_i-x_1)\dots(x_i-x_{i-1})(x_i-x_{i+1})\dots(x_i-x_n)}
|
|
||||||
\end{equation*}
|
|
||||||
\begin{equation}
|
|
||||||
l_k(x_i) = \left\{
|
|
||||||
\begin{aligned}
|
|
||||||
& 1, i = k \\
|
|
||||||
& 0, i \ne k. \\
|
|
||||||
\end{aligned}
|
|
||||||
\right.
|
|
||||||
\label{formula:ip-lagr-eq1}
|
|
||||||
\end{equation}
|
|
||||||
|
|
||||||
Из формулы полинома видно, что его степень не превышает \(n-1\).
|
|
||||||
Данное свойство сохранится и для следующего метода.
|
|
||||||
|
|
||||||
\subsubsection{Реализации метода в библиотеках numpy, scipy}
|
\subsubsection{Реализации метода в библиотеках numpy, scipy}
|
||||||
Данный метод реализован в библиотеке scipy в виде функции
|
|
||||||
\textbf{lagrange} в модуле \textbf{scipy.interpolate}.
|
|
||||||
Одной из ее особенностей является низкая устойчивость --- авторы не
|
|
||||||
рекомендуют запускать алгоритм на более чем 20 парах \((x,y)\) входных
|
|
||||||
значений \cite{links:scipy_doc}.
|
|
||||||
|
|
||||||
Данная функция имеет следующие параметры:
|
\subsection{Интерполяционный полином в форме Ньютона}
|
||||||
\begin{enumerate}
|
|
||||||
\item \(x\) --- array\_like
|
|
||||||
|
|
||||||
\(x\) представляет координаты \(x\) набора точек данных.
|
|
||||||
\item \(w\) --- array\_like
|
|
||||||
|
|
||||||
\(w\) представляет координаты \(y\) набора точек данных,
|
|
||||||
т. е. \(f(x)\).
|
|
||||||
\end{enumerate}
|
|
||||||
|
|
||||||
Данная функция возвращает полином (тип --- \verb|poly1d| из
|
|
||||||
библиотеки \textbf{numpy} \cite{links:numpy_doc}).
|
|
||||||
|
|
||||||
\subsection{Интерполяционный полином Ньютона}
|
|
||||||
\subsubsection{Описание метода}
|
\subsubsection{Описание метода}
|
||||||
Интерполяционный полином Ньютона имеет вид
|
|
||||||
\begin{align*}
|
|
||||||
N_{n-1}(x) = \Delta^{0}(x_{1}) + \Delta^{1}(x_{1},x_{2})(x-x_{1}) + \Delta^{2}(x_{1},x_{2},x_{3})(x-x_{1})(x-x_{2}) + \\
|
|
||||||
+ \dots + \Delta^{n-1}(x_{1},x_{2},\dots,x_{n-1})(x-x_{1})(x-x_{2})\dots(x-x_{n-1})
|
|
||||||
\end{align*}
|
|
||||||
где \(\Delta^{0}(x_{1})\dots\Delta^{n-1}(x_{1},x_{2},\dots,x_{n-1})\) ---
|
|
||||||
конечные разницы порядка \(0,\dots, n-1\), которые вычисляются следующим
|
|
||||||
образом:
|
|
||||||
\begin{nospaceflalign*}
|
|
||||||
& \Delta^{0}(x_i) = y_i & \\
|
|
||||||
& \Delta^{1}(x_i,x_k) = \frac{\Delta^{0}(x_i) - \Delta^{0}(x_k)}{x_i-x_k} & \\
|
|
||||||
& \Delta^{2}(x_i,x_j,x_k) = \frac{\Delta^{1}(x_i,x_j) - \Delta^{1}(x_j,x_k)}{x_i-x_k}
|
|
||||||
\end{nospaceflalign*}
|
|
||||||
и т.д.
|
|
||||||
\subsubsection{Реализации метода в библиотеках numpy, scipy}
|
\subsubsection{Реализации метода в библиотеках numpy, scipy}
|
||||||
Реализаций данного метода в в библиотеках numpy, scipy не найдено.
|
|
||||||
\subsection{Сплайн-интерполяция}
|
\subsection{Сплайн-интерполяция}
|
||||||
\subsubsection{Описание метода}
|
\subsubsection{Описание метода}
|
||||||
Между парами значений \((x_{i-1},y_{i-1}),(x_i,y_i)\) строятся
|
|
||||||
функции-сплайны \(f_1(x),\dots,f_n(x)\), соответствущие условиям
|
|
||||||
непрерывности. Комбинация таких функций образует исходную:
|
|
||||||
\begin{equation*}
|
|
||||||
\widetilde{y}(x) = \left\{
|
|
||||||
\begin{aligned}
|
|
||||||
& f_1(x),\; x_0 \le x < x_1 \\
|
|
||||||
& f_2(x),\; x_1 \le x < x_2 \\
|
|
||||||
& \ \dots \qquad \quad \dots \\
|
|
||||||
& f_n(x),\; x_{n-1} \le x < x_n \\
|
|
||||||
\end{aligned}
|
|
||||||
\right.
|
|
||||||
\end{equation*}
|
|
||||||
|
|
||||||
Иногда выбирают сплайны такого вида, что непрерывными будут и их
|
|
||||||
производные, вплоть до нужного порядка (например, если в роли сплайнов
|
|
||||||
выбрать полиномы 3 степени, то они будут соответствовать условиями
|
|
||||||
непрерывности вместе с 1 и 2 производными). В зависимости от цели,
|
|
||||||
на сплайны могут быть наложены и иные ограничения.
|
|
||||||
\subsubsection{Реализации метода в библиотеках numpy, scipy}
|
\subsubsection{Реализации метода в библиотеках numpy, scipy}
|
||||||
В библиотеке scipy существует множество реализаций данного метода,
|
|
||||||
которые отличаются используемым видом сплайна.
|
|
||||||
\subsection{Сглаживание. Метод наименьших квадратов}
|
\subsection{Сглаживание. Метод наименьших квадратов}
|
||||||
\subsubsection{Описание метода}
|
\subsubsection{Описание метода}
|
||||||
\subsubsection{Реализации метода в библиотеках numpy, scipy}
|
\subsubsection{Реализации метода в библиотеках numpy, scipy}
|
||||||
|
Loading…
Reference in New Issue
Block a user