Compare commits

..

16 Commits

Author SHA1 Message Date
AVAtarMod
eaefd97207
Merge gittea repo; Add project info 2023-08-13 08:47:40 +03:00
AVAtarMod
00c4150eba Update intro 2023-08-12 11:44:10 +03:00
AVAtarMod
ef528d67d8 Add method description, Update theory 2023-08-12 11:44:10 +03:00
AVAtarMod
a34f5fcb46 Add software version info 2023-08-12 11:44:09 +03:00
AVAtarMod
c942ad80ab Fix style, list formatting 2023-08-12 11:44:09 +03:00
AVAtarMod
dcbdd6fb2e Fix intro; Update structure, sources 2023-08-12 11:44:09 +03:00
AVAtarMod
eee0efbbd8 Fix chapter appearance 2023-08-12 11:44:09 +03:00
AVAtarMod
0c10d10c70 Fix titlepage 2023-08-12 11:44:09 +03:00
AVAtarMod
6e07baaa90 Delete struct 2023-08-12 11:44:08 +03:00
AVAtarMod
625a5ba66a Update intro; Add sources 2023-08-12 11:44:08 +03:00
AVAtarMod
499d5813f0 Rename workspace 2023-08-12 11:44:08 +03:00
AVAtarMod
c1c4dc859d Update .gitignore 2023-08-12 11:44:08 +03:00
AVAtarMod
c80fa26772 Update config 2023-08-12 11:44:08 +03:00
AVAtarMod
f0e8547d32 Add sources; Update intro 2023-08-12 11:44:08 +03:00
AVAtarMod
91ede3f03f Add project files 2023-08-12 11:44:08 +03:00
AVAtarMod
e28130caef Initial commit 2023-08-12 11:44:03 +03:00
12 changed files with 641 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
cache
literature
.vscode

113
6SST_NM.code-workspace Normal file
View File

@ -0,0 +1,113 @@
{
"folders": [
{
"path": "."
}
],
"settings": {
"latex-workshop.latex.outDir": "%DIR%/cache",
"latex-workshop.latex.recipes": [
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
},
{
"name": "latexmk",
"tools": [
"latexmk"
]
},
{
"name": "latexmk (latexmkrc)",
"tools": [
"latexmk_rconly"
]
},
{
"name": "pdflatex -> bibtex -> pdflatex * 2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
{
"name": "tectonic",
"tools": [
"tectonic"
]
}
],
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
},
{
"name": "xelatexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-xelatex",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
},
{
"name": "latexmk_rconly",
"command": "latexmk",
"args": [
"%DOC%"
],
"env": {}
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-shell-escape",
"-interaction=nonstopmode",
"-file-line-error",
"-output-directory=%OUTDIR%",
"%DOC%"
],
"env": {}
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
],
"env": {}
},
{
"name": "tectonic",
"command": "tectonic",
"args": [
"--synctex",
"--keep-logs",
"%DOC%.tex"
],
"env": {}
}
],
"latex-workshop.latex.rootFile.indicator": "\\begin{document}",
}
}

19
appendix.tex Normal file
View File

@ -0,0 +1,19 @@
\clearpage
\titlecontents{section}
[1.5em] % 1.5em (chapter) + 2.3em
{}
{\thecontentslabel \hspace{3mm}}
{\hspace*{-2.3em}}
{\titlerule*[2mm]{.}\contentspage}
\titleformat{\section}
{\normalfont\fontsize{17.28}{15}\bfseries}{\thesection}{1em}{}
\renewcommand*{\thesection}{Приложение~\Alph{section}.}
\chapter*{Приложения}
\addcontentsline{toc}{chapter}{Приложения}
\appendix
% \section{Скрипты установки БД для компонента <<Хранение~данных>>}
% \label{script:storage}
% \inputcode{../software/architecture/first-level/component-storage/CSt.db-script.sql}{frame=none,language=sql}

174
config.tex Normal file
View File

@ -0,0 +1,174 @@
\documentclass[oneside,final,14pt]{extreport}
\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage[russian]{babel}
\usepackage{threeparttable}
\usepackage[labelsep=endash,tableposition=top,labelfont=md,textfont=md]{caption}
\usepackage{indentfirst}
\usepackage{rotating}
\usepackage{setspace}
\usepackage{array}
\usepackage{graphicx}
\usepackage[compact]{titlesec}
\usepackage{titletoc}
\usepackage{xinttools}
\usepackage{ragged2e}
\usepackage{listingsutf8}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{color}
\usepackage{xstring}
\usepackage{tabularx}
\usepackage{enumitem}
\usepackage[abspath]{currfile}
\usepackage[hidelinks,linktoc=all]{hyperref}
% ОТЛАДОЧНЫЕ ФУНКЦИИ --------------------
% \usepackage{showframe}
% ПОЛЯ ----------------------------------
\usepackage{geometry}
\geometry{
a4paper,
% total={170mm,257mm},
left=30mm,
top=15mm,
right=15mm,
bottom=20mm
}
% ОФОРМЛЕНИЕ СОДЕРЖАНИЯ -----------------
\addto\captionsrussian{
\renewcommand{\contentsname}%
{\normalsize \MakeUppercase{Содержание}}%
}
\dottedcontents{chapter}[0cm]{}{1em}{2mm}
\titlecontents{chapter}
[0em]
{}
{\thecontentslabel. }
{}
{\titlerule*[2mm]{.}\contentspage}
\titlecontents{section}
[1.5em] % 1.5em (chapter) + 2.3em
{}
{\thecontentslabel. }
{\hspace*{-2.3em}}
{\titlerule*[2mm]{.}\contentspage}
% ОФОРМЛЕНИЕ ЗАГОЛОВКОВ -----------------
% В т.ч. и содержания
\titleformat{\paragraph}[runin]
{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}
\titlespacing*{\paragraph} {\parindent}{3.25ex plus 1ex minus .2ex}{1em}
\titleformat{\chapter}[display]{\normalfont\large\bfseries}{}{0cm}{\large\centering}
\titleformat{\section}
{\normalfont\large\bfseries}{\thesection}{5mm}{}
\makeatletter
% NormalTeXSyntaxON
\def\@makechapterhead#1{%
\vspace*{0\p@}%
{\parindent \z@ \raggedright \normalfont \setstretch{1.2}
\interlinepenalty\@M
\large \bfseries \space \thechapter. #1\par\nobreak
}}
% NormalTeXSyntaxOFF
\titlespacing{\chapter}{0pt}{-5mm}{0cm}
% ОФОРМЛЕНИЕ СПИСКОВ --------------------
\setlist{noitemsep,align=left,left=\parindent,topsep=0pt}
% ОФОРМЛЕНИЕ ЛИСТИНГОВ КОДА -----------------
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\lstset{
frame=tb,
language=C++,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
columns=flexible,
basicstyle={\small\ttfamily},
numbers=none,
numberstyle=\tiny\color{gray},
keywordstyle=\color{blue},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve},
breaklines=true,
breakatwhitespace=true,
tabsize=3,
escapechar={|},
emptylines=0,
}
\newcommand\inputcode[3][]{
{\bfseries #1\filename{#2}}:
\lstinputlisting[%
#3,
]{#2}%
}
% ОФОРМЛЕНИЕ НУМЕРАЦИИ СПИСКОВ ----------------------------------
% Команды ниже переназначают алфавит используемый при нумерации с английского на русский
\makeatletter
\renewcommand*{\@alph}[1]{%
\ifcase#1\or а\or б\or в\or г\or
д\or е\or ё\or ж\or з\or и\or й\or
к\or л\or м\or н\or о\or п\or р\or с\or т\or
у\or ф\or х\or ц\or ч\or
ш\or щ\or ы\or э\or у \or я
\else\@ctrerr\fi
}
\renewcommand*{\@Alph}[1]{%
\ifcase#1\or А\or Б\or В\or Г\or
Д\or Е\or Ё\or Ж\or З\or И\or Й\or
К\or Л\or М\or Н\or О\or П\or Р\or С\or Т\or
У\or Ф\or Х\or Ц\or Ч\or
Ш\or Щ\or Ы\or Э\or У\or Я
\else\@ctrerr\fi
}
\makeatother
\makeatletter
\renewcommand\@biblabel[1]{#1.}
\makeatother
% file path
\newcommand{\runtimeFsep}{/}
\newcommand{\updateRuntimeFsep}{\IfSubStr{\currfileabsdir}{/}{}{\renewcommand{\runtimeFsep}{\backslash}}}
\updateRuntimeFsep
\makeatletter
\DeclareRobustCommand{\filename}[2][]{%
\begingroup
% \lstname seems to change hyphens into \textendash
\def\textendash{-}%
\filename@parse{#2}%
\IfSubStr{\filename@base}{\runtimeFsep}{\filename@parse{\filename@base}}{}%
\edef\filename@base{\detokenize\expandafter{\filename@base}}%
#1{\filename@base.\filename@ext}%
\endgroup
}
\makeatother
% \section*{#1}%
% \addcontentsline{toc}{chapter}{#1}
\newcommand\tcchapter[1]{%
\chapter{#1}%
}
\newcommand\tcsection[1]{%
\section{#1}%
}
\onehalfspacing
% \contentsmargin{2.55em}
\addto\captionsrussian{\renewcommand{\figurename}{Рисунок }}
% URL ---------------
\urlstyle{same}
% ОФОРМЛЕНИЕ ТЕКСТА
\renewcommand{\baselinestretch}{1.5}

BIN
files/cpp-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
files/vyatsu_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

44
intro.tex Normal file
View File

@ -0,0 +1,44 @@
\chapter*{Введение}
\addcontentsline{toc}{chapter}{Введение}
В ходе решения решения задач физики, экономики а также множества
практических задач одним из необходимых этапов является построение
математической модели, а после начала компьютеризации общества
--- разработка программы для ЭВМ или выбор уже существующих \cite[с. 4]{book:nm-examples}.
Также стоит учитывать, что решение любой практической задачи, либо
проведение исследования, подразумевает ограниченность по времени
и ресурсам \hbox{\cite[с.~15]{book:bahvalov}}. Развитие ЭВМ и их
всеобщее распространение
привело к тому, что разработка библиотек программного кода для
решения математических задач с использованием заданного языка
программирования стала повсеместной. Язык программирования
Python \cite{links:python} --- один из самых популярных на протяжении
лет \cite{links:tiobe_index}, широко используется при решении многих
практических задач, в том числе и математической направленности.
Для данного языка существуют библиотеки numpy
\cite{links:numpy} и scipy \cite{links:scipy},
предназначенные для математических расчетов.
Понимание их возможностей в области численных методов позволит
снизить затраты времени и ресурсов на разработку программы для
ЭВМ, либо не увеличит их в случае, когда применение данных
библиотек в силу тех или иных причин невозможно.
Проблема состоит в том, что на данный момент особенности библиотек,
полнота их возможностей с точки зрения решения задач численными
методами недостаточно исследованы.
\textbf{Целью} данной работы является исследование вышеприведенных характеристик данных библиотек.
Для достижения цели курсового проекта необходимо выполнить следующие \textbf{задачи}:
\begin{enumerate}
\item Изучить распространенные численные методы решения основных
классов задач.
\item Изучить документацию библиотек numpy и scipy на предмет
реализации рассмотренных методов.
\item Экспериментально исследовать возможности реализаций
рассмотренных численных методов данных библиотек.
\end{enumerate}
В данной работе используются язык Python, библиотеки numpy и
scipy версий \(3.11\), \(1.25\) и \(1.11\) соответственно.

137
main.tex Normal file
View File

@ -0,0 +1,137 @@
\input{vars}
\input{config}
\begin{document}
\lstset{language=[11]C++}
%title-page
\include{titlepage}
\thispagestyle{empty}
\clearpage
\tableofcontents
\thispagestyle{empty}
\clearpage
\input{intro}
\chapter{Описание численных методов и возможностей библиотек numpy и scipy}
В данном разделе будут описаны численные методы и их доступные
реализации в библиотеках в частях, посвященным классам задач, которые
они решают.
Стоит учитывать, что scipy основан на numpy, поэтому при рассмотрении
возможностей данных библиотек часто может возникнуть ситуация,
когда искомый функционал содержится только в scipy, либо в numpy
или scipy одновременно.
\section{Численное решение нелинейных уравнений}
При решении некоторых практических задач или проведении исследований
может быть получена математическая модель, которая включает
непрерывную функцию \(F(x), x \in \Re\), и необходимо определить корни уравнения
\(F(x) = 0\). Если данное уравнение не имеет вид \(ax + b = 0\),
где \(a,b\) -- константы, то оно будет нелинейным.
Для решения нелинейных уравнений существует несколько методов, в данной работе будут рассмотрены итерационные.
Каждый из итерационных методов, перечисленных ниже, соответствует
следующему алгоритму из двух этапов \cite[с. 15]{book:nm-examples}:
\begin{enumerate}
\item отыскание приближенного значения корня или содержащего
его отрезка;
\item уточнения значения до некоторой степени точности.
\end{enumerate}
Начальное приближение определяется исходя из физических соображений
решений похожих задач или графических методов. Если ни один из этих
способов не доступен или не позволяет получить начальное приближение,
удовлетворяющее требованиям, то применяют следующий алгоритм
отыскания начального приближения:
\begin{enumerate}
\item Производится поиск двух близкорасположенных значений
\(a\) и \(b\) таких, что \(F(a) \cdot F(b) < 0\), при этом
\(F(x)\) должна быть всюду определена на отрезке \([a;b]\).
\item В качестве начального приближения первой итерации принимается
значение \(x_0 \in [a;b]\), обычно это середина данного
отрезка.
\end{enumerate}
Так как выполняется условие \(F(a) \cdot F(b) < 0\) и \(F(x)\) непрерывна, то обязательно найдется такое \(x_k \in (a,b)\), что \(F(x_k) = 0\) либо \(|F(x_k)| < \epsilon\), где \(\epsilon\) --- погрешность искомого решения.
\subsection{Метод деления отрезка пополам}
Данный метод использует технику поиска решения, похожую на бинарный
поиск.
\subsubsection{Описание метода}
Дано начальное приближение \(x_0 = (a+b)/2\) при
\(F(a) \cdot F(b) < 0\). Для поиска решения уравнения \(x_k\)
применяем следующий алгоритм:
\begin{enumerate}
\item Рассмотрим отрезки \([a;x_i], [x_i;b]\), \(i = 0 \dots k\)
--- номер итерации. На первой итерации \(i = 0\). \label{list:hls_begin}
\item Из рассмотренных отрезков берем те, что удовлетворяют условию
\(F(a) \cdot F(b) < 0\), где \(a,b\) --- границы отрезка. \label{list:hls_test}
\item Для каждого из взятых в п.\ref{list:hls_test} отрезков
вычисляем их длину \(l\). Если \(l < \epsilon\),
тогда дальнейшее выполнение данного алгоритма для данного
отрезка прекращается. За решение уравнения принимается
число \((a+b)/2\), округленное с учетом заданной погрешности.
Если для решения задачи достаточно любого одного решения,
то работа алгоритма прекращается.
\item Для каждого из взятых в п.\ref{list:hls_test} отрезков
устанавливаем значения
\(a,b,x_{i+1}\). Для левого отрезка эти значения будут равны
\(a = a,b = x_i,x_{i+1} = (a+x_i)/2\), для правого ---
\(a = x_i,b = b,x_{i+1} = (b+x_i)/2\). \label{list:hls_prepare}
\item Для каждого из взятых отрезков переходим к п.\ref{list:hls_begin},
с увеличением номера итерации на \(1\) и установленными
относительно взятого отрезка значениями из п.\ref{list:hls_prepare}.
\end{enumerate}
После применение метода на заданных входных данных получим множество
решений уравнения \(Ans = \{x, x \in \Re\}, |Ans| \geq 1\).
\subsubsection{Реализации метода в библиотеках numpy, scipy}
Библиотека scipy содержит функцию \textbf{bisect} из модуля
\textbf{scipy.optimize}\cite{links:scipy_doc}, которая реализует
данный метод.
Функция имеет следующие параметры (задаются в порядке перечисления):
\begin{enumerate}
\item \(f\) --- function
Функция Python, возвращающая число. \(f\) должна быть непрерывной, а \(f(a)\) и \(f(b)\) должны иметь противоположные знаки.
\item \(a\) --- scalar
Первый конец интервала \([a,b]\).
\item \(b\) --- scalar
Второй конец интервала \([a,b]\).
\item \(xtol\) --- number, необязательный
Вычисленный корень \(x0\) будет удовлетворять \verb|np.allclose(x, x0,| \verb|atol=xtol,| \verb|rtol=rtol)|, где \(x\) --- точный корень. Параметр должен быть положительным.
\item \(rtol\) --- number, необязательный
Вычисленный корень \(x0\) будет удовлетворять \verb|np.allclose(x, x0,| \verb|atol=xtol, rtol=rtol)|, где \(x\) --- точный корень. Параметр не может быть меньше значения по умолчанию \verb|4*np.finfo(float).eps|.
\item \(maxiter\) --- int, необязательный
Если сходимость не достигается в итерациях \(maxiter\), возникает ошибка. Должен быть \(\geq 0\).
\item \(args\) --- tuple, необязательный
Содержит дополнительные аргументы для функции \(f\). \(f\) вызывается с помощью \verb|apply(f, (x)+args)|.
\item \(full\_output\) --- bool, необязательный
Если \(full\_output\) имеет значение \verb|False|, возвращается корень. Если \(full\_output\) имеет значение \verb|True|, возвращаемое значение равно \verb|(x, r)|, где \(x\) --- это корень, а \(r\) --- объект \verb|RootResults|.
\item \(disp\) --- bool, необязательный
Если \verb|True|, будет сгенерировано исключение \verb|RuntimeError|, если алгоритм не сошелся. В противном случае статус сходимости записывается в возвращаемый объект \verb|RootResults|.
\end{enumerate}
\subsection{Метод Ньютона (метод касательных)}
\subsection{Метод простой итерации}
\chapter{Экспериментальное исследование возможностей библиотек}
\chapter*{Заключение}
\addcontentsline{toc}{chapter}{Заключение}
\input{sources}
\include{appendix}
\end{document}

73
presentation.tex Normal file
View File

@ -0,0 +1,73 @@
\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\\ \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]{files/vyatsu_logo.png}\\
\titlepage
\end{frame}
\begin{frame}
\frametitle{План доклада}
\tableofcontents
\end{frame}
\begin{frame}
\frametitleSpec{Введение}
Активное внедрение компьютеров во всевозможные отрасли жизни человека привело к тому, что при решении прикладных задач требование к скорости и дешевизне разработки стало выше требований производительности и ресурсоемкости разрабатываемой программы.
\begin{enumerate}
\item Проблема состоит в том, что на данный момент ОС, которая бы могла более эффективно использовать текущее АО устройств, не разработана.
\item Целью данной работы является рассмотрение архитектуры и разработка части прототипа данной ОС.
\begin{itemize}
\item Изучить архитектуру и требования прототипа ОС.
\item Определить перечень сервисов обеспечения целостности и оптимизации экосистемы устройств.
\item Разработать БД и сервисы обеспечения целостности и оптимизации прототипа экосистемы устройств.
\end{itemize}
\end{enumerate}
\end{frame}
\begin{frame}
\frametitleSpec{О программной реализации}
Реализация сервисов написана на языке C++ в виде отдельных компонентов.
\begin{figure}[h]
\centering
\includegraphics[width=0.25\textwidth]{files/cpp-logo.png}
\end{figure}
\end{frame}
\begin{frame}
\frametitleSpec{Заключение}
При реализации прототипа экосистемы был разработан один из возможных вариантов деления на подсистемы, и рассмотрены возможные пути реализации.
Из недостатков текущей реализации можно отметить отсутствие компонента, отвечающего за безопасность и разделения прав доступа пользователей к вычислительным ресурсам сервера.
Таким образом, задачи проекта выполнены, цель проекта достигнута.
\end{frame}
\begin{frame}
\begin{center}
{\huge Спасибо за внимание!}
\end{center}
\end{frame}
\end{document}

23
sources.tex Normal file
View File

@ -0,0 +1,23 @@
\newcommand{\LiteratureAccessDate}[1][1]{%
дата~обращения: \ifcase#1\or 03.08.2023%
\or 07.08.2023%
\or 09.08.2023%
\else\@ctrerr\fi
}
\renewcommand\bibname{Библиографический список}
\begin{thebibliography}{00}
\addcontentsline{toc}{chapter}{Библиографический список}
\bibitem{book:nm-examples} Ахмадиев Ф.Г., Габбасов Ф.Г., Ермолаева Л.Б., Маланичев И.В. Численные методы. Примеры и задачи. Учебно-методическое пособие по курсам «Информатика» и «Вычислительная математика». -- Казань:
КГАСУ, 2017. -- 107 с.
\bibitem{book:bahvalov} Бахвалов~Н.~С., Жидков~Н.~П.,
Кобельков~Г.~М. Численные методы. -- 7-е изд. -- М.: БИНОМ. Лаборатория знаний,
2011. -- 636 с., c илл. -- (Классический университетский учебник).
\bibitem{book:lectures} Письменный~Д.~Т. Конспект лекций по высшей математике. 2 часть. -- М.: Рольф, 2000. -- 256 с., с илл.
\bibitem{links:numpy} Numpy. Официальный сайт проекта [Электронный ресурс] -- URL:~\url{https://numpy.org/} (\LiteratureAccessDate[2]).
\bibitem{links:numpy_doc} Numpy API Reference [Электронный ресурс] -- URL:~\url{https://numpy.org/doc/stable/reference/index.html} (\LiteratureAccessDate[3]).
\bibitem{links:python} Python. Официальный сайт проекта [Электронный ресурс] -- URL:~\url{https://www.python.org/} (\LiteratureAccessDate).
\bibitem{links:scipy} Scipy. Официальный сайт проекта [Электронный ресурс] -- URL:~\url{https://scipy.org/} (\LiteratureAccessDate[2]).
\bibitem{links:scipy_doc} Scipy API Reference [Электронный ресурс] -- URL:~\url{https://docs.scipy.org/doc/scipy/reference/index.html} (\LiteratureAccessDate[3]).
\bibitem{links:tiobe_index} TIOBE. Официальный сайт проекта
[Электронный ресурс] -- URL:~\url{https://www.tiobe.com/tiobe-index/} (\LiteratureAccessDate).
\end{thebibliography}

53
titlepage.tex Normal file
View File

@ -0,0 +1,53 @@
\begin{titlepage}
\begin{center}
\begin{small}
\begin{singlespace}
\MakeUppercase{
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ\\ \vspace{0.7em}
Федеральное государственное бюджетное образовательное учреждение высшего образования\\
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ\\ \vspace{0.7em}
Институт математики и информационных систем \\ \vspace{0.7em}
Факультет компьютерных и физико-математических наук\\ \vspace{0.7em}
Кафедра прикладной математики и информатики
}
\end{singlespace}
\end{small}
\vfill
{\null\hfill
\begin{minipage}{0.4\textwidth}
Допущена к защите\\
{\setstretch{2}
заведующей кафедрой прикладной
математики и информатики\\}
{\rule{3cm}{0.1mm}}~Е.В.Разова
\end{minipage}
}
\vspace{5em}
{
\large{
{\bfseries \cwtitle}
}}
\vspace{2em}
Курсовой проект по дисциплине <<Численные методы>>
\end{center}
\vfill
\begin{table}[ht]
\centering
\begin{tabularx}{\textwidth}{>{\raggedright}p{.5\textwidth}X}
Выполнил студент группы \mbox{ПМИб-3301-52-00} \vspace{1mm} & { {\rule{3cm}{0.1mm}}~/\cwauthor}/ \\
К.п.н. \mbox{кафедры} ПМИ \vspace{1cm} & {{\rule{3cm}{0.1mm}}~/А.Н.~Соколова/} \\
Работа защищена с оценкой & {\rule{3cm}{0.1mm}} \hfill {\rule{1cm}{0.1mm}}.{\rule{1cm}{0.1mm}} \the\year\ г. \vspace{1cm} \\
Члены комиссии \vspace{2mm} & {\rule{3cm}{0.1mm}} \hfill /{\rule{3.5cm}{0.1mm}}/ \\
\null & {\rule{3cm}{0.1mm}} \hfill /{\rule{3.5cm}{0.1mm}}/ \\
\end{tabularx}
\end{table}
\vfill
\begin{center}
Киров \the\year\ г.
\end{center}
\end{titlepage}
\setcounter{page}{2}

2
vars.tex Normal file
View File

@ -0,0 +1,2 @@
\newcommand{\cwtitle}[0]{Исследование возможностей библиотек numpy и scipy для реализации численных методов}
\newcommand{\cwauthor}[0]{Г.Е.~Ступников}