Add Newton method to theory

This commit is contained in:
AVAtarMod 2023-08-18 10:50:55 +03:00
parent 5ab4a6e67c
commit cc89b81190
Signed by: stud128245
GPG Key ID: 43198AE4D0774328

View File

@ -94,6 +94,7 @@
После применение метода на заданных входных данных получим множество После применение метода на заданных входных данных получим множество
решений уравнения \(Ans = \{x, x \in \textbf{R}\}, |Ans| \geq 1\). решений уравнения \(Ans = \{x, x \in \textbf{R}\}, |Ans| \geq 1\).
\subsubsection{Реализации метода в библиотеках numpy, scipy} \subsubsection{Реализации метода в библиотеках numpy, scipy}
Библиотека scipy содержит функцию \textbf{bisect} из модуля Библиотека scipy содержит функцию \textbf{bisect} из модуля
\textbf{scipy.optimize} \cite{links:scipy_doc}, которая реализует \textbf{scipy.optimize} \cite{links:scipy_doc}, которая реализует
@ -147,10 +148,83 @@
\end{enumerate} \end{enumerate}
\subsection{Метод Ньютона (метод касательных)} \subsection{Метод Ньютона (метод касательных)}
Данный итерационный метод позволит найти единственное решение
уравнения (если оно существует) для каждого из выбранных начальных
приближений.
\subsubsection{Описание метода}
На итерации \(i, i = 1\dots k\), строится касательная к кривой
\(y = F(x)\) в точке \((x_i;F(x_i))\), затем находится \(x_{i+1}\)
--- пересечение данной касательной с осью \(Ox\). Процесс продолжается
пока не будет достигнута заданная точность (\(| F ( x_i ) |< \varepsilon\)
или \(| x_{i+1} - x_i | < \varepsilon\)).
\subsubsection{Реализации метода в библиотеках numpy, scipy}
Библиотека scipy содержит функцию \textbf{newton} из модуля
\textbf{scipy.optimize} \cite{links:scipy_doc}, которая реализует
данный метод.
Функция имеет следующие параметры (задаются в порядке перечисления):
\begin{enumerate}
\item \(f\) --- function
Функция, корень которой требуется. Это должна быть функция
одной переменной вида \(f(x,a,b,c \dots)\), где \(a,b,c \dots\)
--- дополнительные аргументы, которые можно передать в параметре
\(args\).
\item \(x0\) --- float, sequence, или ndarray
Начальная оценка корня, которая должна быть где-то рядом с
фактическим корнем. Если \(f\) не скалярная, то \(f\) должна
быть векторизована и возвращать последовательность или массив
той же формы, что и ее первый аргумент.
\item \(fprime\) --- callable, необязательный
Производная функции, когда она доступна и удобна. Если это
\verb|None| (по умолчанию), то используется метод секущей.
\item \(args\) --- tuple, необязательный
Дополнительные аргументы для использования при вызове функции.
\item \(tol\) --- float, необязательный
Допустимая погрешность значения корня. Если
\(y=f(x),y \in \textbf{Z}\), рекомендуется большее значение
\(tol\), так как и действительная, и мнимая части \(x\)
вносят вклад в \(|x - x0|\).
\item \(maxiter\) --- int, необязательный
Максимальное количество итераций.
\item \(fprime2\) --- callable, необязательный
Производная функции второго порядка, если она доступна и удобна.
Если это \verb|None| (по умолчанию), то используется обычный
метод Ньютона или метод секущих. Если не \verb|None|, то
используется метод Галлея.
\item \(x1\) float, необязательный
Еще одна оценка корня, которая должна быть где-то рядом с фактическим корнем. Используется, если \(fprime\) не указан.
\item \(rtol\) --- float, необязательный
Допустимое отклонение (относительное) для прерывания работы.
\item \(full\_output\) --- bool, необязательный
Если \(full\_output\) имеет значение \verb|False| (по умолчанию),
возвращается корень. Если \verb|True| и \(x0\) --- скаляр,
возвращаемое значение равно \verb|(x, r)|, где \(x\) --- это
корень, а \(r\) --- объект \verb|RootResults|. Если \verb|True|
и \(x0\) --- не скаляр, возвращаемое значение равно
\verb|(x, converged, zero_der)|, где:
\begin{itemize}
\item converged --- ndarray из значений bool. Указывает, какие элементы сошлись успешно.
\item zero\_der --- ndarray из значений bool. Указывает, какие элементы имеют нулевую производную.
\end{itemize}
\item \(disp\) --- bool, необязательный
Если \verb|True| и алгоритм не сошелся, будет сгенерировано исключение \verb|RuntimeError|, с сообщением, содержащим количество итераций и текущее значение функции. В противном случае статус сходимости записывается в возвращаемый объект \verb|RootResults|. Игнорируется, если \verb|x0| не является скалярным. Примечание: это не имеет ничего общего с отображением, однако ключевое слово \verb|disp| нельзя переименовать для сохранения обратной совместимости.
\end{enumerate}
\subsection{Метод простой итерации} \subsection{Метод простой итерации}
\chapter{Экспериментальное исследование возможностей библиотек} \chapter{Экспериментальное исследование возможностей библиотек}
\chapter*{Заключение} \chapter*{Заключение}
\addcontentsline{toc}{chapter}{Заключение} \addcontentsline{toc}{chapter}{Заключение}