\documentclass{beamer}
\usepackage[russian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[outputdir=cache]{minted}

\input{vars.tex}

\usetheme{Madrid}
\usecolortheme{dove}
\setbeamertemplate{blocks}[rounded][shadow=false]

\title[]{\cwtitle}
\institute[]{ФГБОУ ВО «Вятский государственный университет»}
\date{\null}
\author[ ]{Студент ПМИб-3301-52-00 \cwauthor \newline  \and к.п.н. А.Н.~Соколова}

\newcommand\frametitleSpec[1]{%
\frametitle{#1}
\section{#1}%
}


% set captions with numbers
\setbeamertemplate{caption}[numbered]

\begin{document}
\begin{frame}
   \centering\includegraphics[width=0.4\textwidth]{assets/vyatsu_logo.png}\\
   \titlepage
\end{frame}
\begin{frame}
   \frametitle{План доклада}
   \tableofcontents

\end{frame}
\begin{frame}
   \frametitleSpec{Введение}
   Для языка Python разработаны библиотеки numpy и scipy
   математической направленности.
   Они включают в себя множество алгоритмов решения разнообразных задач, в том числе для интегрирования функций, осуществления операций над массивами и
   матрицами.
   \begin{enumerate}
      \item Проблема состоит в том, что на данный момент особенности
            библиотек, полнота их возможностей с точки зрения решения
            задач численными методами недостаточно исследованы.
      \item \textbf{Целью} данной работы является исследование
            вышеприведенных характеристик данных библиотек.
      \item Для достижения цели курсового проекта необходимо выполнить
            следующие \textbf{задачи}:
            \begin{itemize}
               \item Изучить распространенные численные методы решения
                     основных классов задач.
               \item Изучить документацию библиотек numpy и scipy на
                     предмет реализации рассмотренных методов.
               \item Экспериментально исследовать возможности
                     реализаций рассмотренных численных методов данных
                     библиотек.
            \end{itemize}
   \end{enumerate}
\end{frame}

\begin{frame}
   \frametitleSpec{Рассмотренные численные методы}

   Всего было рассмотрено 20 численных методов, каждый из которых
   решает свой класс задач:
   \begin{enumerate}
      \item Решение нелинейных уравнений
            \begin{itemize}
               \item Метод деления отрезка пополам
               \item Метод касательных (Ньютона)
               \item Метод простой итерации
            \end{itemize}
      \item Решение СЛУ:
            \begin{itemize}
               \item Метод Гаусса
               \item Метод обратной матрицы
               \item Метод прогонки
               \item Метод простой итерации
               \item Метод Зейделя
            \end{itemize}
      \item Решение систем нелинейных уравнений, с помощью метода Ньютона, и модифицированных версий методов Зейделя и простой итерации.
   \end{enumerate}

\end{frame}
\begin{frame}
   \begin{enumerate}
      \item Аппроксимация функций
            \begin{itemize}
               \item Интерполяционные полиномы Лагранжа, Ньютона
               \item Сплайн-интерполяция
               \item Сглаживание. Метод наименьших квадратов
            \end{itemize}
      \item Численное интегрирование
            \begin{itemize}
               \item Метод трапеций
               \item Метод парабол
            \end{itemize}
      \item Решение задачи Коши ОДУ
            \begin{itemize}
               \item Метод Эйлера, и его модифицированная версия
               \item Метод Рунге-Кутта
            \end{itemize}
   \end{enumerate}

\end{frame}
\begin{frame}
   \frametitleSpec{Экспериментальное исследование библиотек}
   Была разработана программа на языке Python, использующая
   возможности scipy и numpy для решения задач.
   \begin{figure}[h]
      \centering
      \includegraphics[width=0.25\textwidth]{assets/python-logo.png}
   \end{figure}

   В программе были приведены примеры решения СЛУ, нелинейных уравнений
   и задач аппроксимации функций с помощью описанных в данной работе
   методов. Программа не интерактивная.
\end{frame}

\begin{frame}
   \frametitleSpec{Результаты работы программы}
   \begin{figure}
      \includegraphics[width=0.5\textwidth]{assets/bisect}
   \end{figure}
   \begin{figure}
      \includegraphics[width=0.65\textwidth]{assets/Gauss}
   \end{figure}

\end{frame}
\begin{frame}
   \begin{figure}
      \includegraphics[width=1\textwidth]{assets/Thomas.png}
   \end{figure}
\end{frame}
\begin{frame}
   \begin{figure}
      \includegraphics[width=1\textwidth]{assets/lagrange.png}
   \end{figure}
\end{frame}
\begin{frame}
   \begin{figure}
      \includegraphics[width=1\textwidth]{assets/CubicSpline}
   \end{figure}
\end{frame}
\begin{frame}
   \begin{figure}
      \includegraphics[width=1\textwidth]{assets/Akima1DInterpolator.png}
   \end{figure}
\end{frame}
\begin{frame}
   \begin{figure}
      \includegraphics[width=1\textwidth]{assets/curve_fit.png}
   \end{figure}
\end{frame}
\begin{frame}
   \frametitleSpec{Заключение}
   В ходе выполнения работы были выполнены поставленные задачи, цель
   достигнута. В ходе исследования возможностей библиотек выяснилось,
   что они не содержат реализаций численных методов для
   решения систем нелинейных уравнений.

   В целом, в ходе работы с библиотеками стоит отметить положительные
   стороны: гибкость интерфейсов, высокое качество решений, большое
   количество доступной информации о результатах работы алгоритма.

   Из недостатков интерфейса библиотек можно отметить его
   неоднородность --- некоторые численные методы реализованы с помощью
   классов, другие с помощью функций, что может незначительно
   увеличить время на освоение интерфейса библиотек и ее возможностей
   пользователями.
\end{frame}
\begin{frame}
   \begin{center}
      {\huge Спасибо за внимание!}
   \end{center}
\end{frame}
\end{document}
