\documentclass[a4paper,11pt,twoside]{report}
\usepackage{standalone}
\usepackage{sagetex}
\usepackage{bxtexlogo}
\bxtexlogoimport{**}
\usepackage[utf8]{inputenc}
\usepackage{microtype}
\usepackage{float}
\usepackage[MeX]{polski}
\usepackage[OT4]{fontenc}
\usepackage[english,polish]{babel}
\frenchspacing
\usepackage{listings}
\lstset{
basicstyle=\ttfamily,
breaklines = false,
}
\usepackage{realboxes}
\usepackage{hyperref}
\usepackage[automake,toc]{glossaries}
\makeglossaries
\renewcommand*\familydefault{\sfdefault}
\usepackage{amsmath, amsfonts, amsthm, latexsym}
\usepackage[final]{pdfpages}
\usepackage[backend=bibtex, sorting=none]{biblatex}
\bibliography{Elementy_Bibliografia.bib}
\hyphenpenalty = 100
\uchyph=0
\doublehyphendemerits=1000
\lefthyphenmin=3
\brokenpenalty=1000
\widowpenalty=1000
\clubpenalty=1000
\hfuzz=1pt
\usepackage[inner=20mm, outer=20mm, bindingoffset=10mm, top=25mm, bottom=25mm]{geometry}
\linespread{1.5}
\allowdisplaybreaks
\usepackage{indentfirst}
\setlength{\parindent}{5mm}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0 pt}
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.0pt}
}
\usepackage{titlesec}
\titleformat{\chapter}
{\normalfont\Large \bfseries}
{\thechapter.}{1ex}{\Large}
\titleformat{\section}
{\normalfont\large\bfseries}
{\thesection.}{1ex}{}
\titlespacing{\section}{0pt}{30pt}{20pt}
\titlespacing{\co}{akapit}{ile przed}{ile po}
\titleformat{\subsection}
{\normalfont \bfseries}
{\thesubsection.}{1ex}{}
\def\cleardoublepage{\clearpage\if@twoside
\ifodd\c@page\else\hbox{}\thispagestyle{empty}\newpage
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\l@chapter}
{\hfil}
{\leaders\hbox{\normalfont$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill}
{}{}
\makeatother
\usepackage{titletoc}
\makeatletter
\titlecontents{chapter}
[0pt]
{}
{\bfseries \thecontentslabel.\quad}
{\bfseries}
{\bfseries\leaders\hbox{\normalfont$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill\contentspage}
\titlecontents{section}
[1em]
{}
{\thecontentslabel.\quad}
{}
{\leaders\hbox{\normalfont$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill\contentspage}
\titlecontents{subsection}
[2em]
{}
{\thecontentslabel.\quad}
{}
{\leaders\hbox{\normalfont$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill\contentspage}
\makeatother
\renewcommand*{\thetable}{\arabic{chapter}.\arabic{table}}
\renewcommand*{\thefigure}{\arabic{chapter}.\arabic{figure}}
\newcommand{\praca}{Praca przejściowa/dyplomowa}
\newcommand{\dyplom}{inżynierska/magisterska}
\newcommand{\kierunek}{Wpisać kierunek}
\newcommand{\specjalnosc}{Wpisać specjalność}
\newcommand{\autor}{Wpisać imię i nazwisko}
\newcommand{\album}{Wpisać numer albumu}
\newcommand{\opiekun}{Dr hab. inż. Robert Zalewskim, prof. PW}
\newcommand{\promotor}{dr inż. Bogumił Chiliński}
\newcommand{\konsultant}{Wpisać konsultanta}
\newcommand{\tytul}{Wpisać tytuł pracy dyplomowej po polsku}
\renewcommand{\title}{Wpisać tytuł pracy dyplomowej po angielsku}
\newcommand{\supervisor}{dr inż. Bogumił Chiliński}
\newcommand{\rok}{Wpisać rok}
\newcommand{\kluczowe}{Słowa kluczowe: Wpisać słowa kluczowe po polsku}
\newcommand{\keywords}{Keywords: Wpisać słowa kluczowe po angielsku}
\newcommand{\aspect}[1]{\addcontentsline{toc}{paragraph}{#1}}
\setcounter{tocdepth}{4}
\setcounter{secnumdepth}{2}
\begin{document}
\sloppy
\begin{figure}[H]
\begin{center}
\includegraphics[width=6.3in,height=1.0in]{./media/image1.jpeg}
\end{center}
\end{figure}
\begin{center}
{\fontsize{36pt}{43pt}\selectfont \praca \par}
\end{center}\par
\begin{center}
{\fontsize{36pt}{43pt}\selectfont \dyplom}
\end{center}
\begin{center}
{\fontsize{12pt}{12pt}\selectfont na kierunku \kierunek}
\end{center}\par
\begin{center}
{\fontsize{12pt}{12pt}\selectfont w specjalności \specjalnosc}
\end{center}\par
\begin{center}
{\fontsize{14pt}{14pt}\selectfont \tytul}
\end{center}
\begin{center}
{\fontsize{12pt}{12pt}\selectfont \title}
\end{center}\par
\vspace{\baselineskip}
\setlength{\parskip}{0.0pt}
\begin{center}
{\fontsize{21pt}{21pt}\selectfont \autor \par}
\end{center}\par
\setlength{\parskip}{9.96pt}
\begin{center}
{\fontsize{12pt}{12pt}\selectfont \album ???}
\end{center}\par
\setlength{\parskip}{0.0pt}
\begin{center}
{\fontsize{12pt}{12pt}\selectfont Opiekun naukowy:}
\end{center}\par
\begin{center}
{\fontsize{12pt}{12pt}\selectfont \opiekun}
\end{center}\par
\begin{center}
{\fontsize{12pt}{12pt}\selectfont Promotor:}
\end{center}\par
\begin{center}
{\fontsize{12pt}{12pt}\selectfont \promotor}
\end{center}\par
\begin{center}
{\fontsize{12pt}{12pt}\selectfont Konsultacje:}
\end{center}
\begin{center}
{\fontsize{12pt}{12pt}\selectfont \konsultant}
\end{center}
\vspace{\baselineskip}
\setlength{\parskip}{2pt}
\vspace{\baselineskip}
\begin{center}
{\fontsize{12pt}{12pt}\selectfont Warszawa \rok}
\end{center}
\null\thispagestyle{empty}
\thispagestyle{empty}\newpage
\null
\vfill
\null\thispagestyle{empty}\newpage
\null\thispagestyle{empty}\newpage
\null\thispagestyle{empty}\newpage
\autor
\vspace{\baselineskip}
\vspace{\baselineskip}
\vspace{\baselineskip}
\textbf{OŚWIADCZENIE }\par
\vspace{\baselineskip}
Jako autor pracy dyplomowej pt.: \par
"\tytul" ,\par
którą wykonałem/am samodzielnie przestrzegając zasad ochrony własności intelektualnej zezwalam na publiczne udostępnienie pracy i wyrażam zgodę na jej udostępnienie w Bibliotece Wydziału Samochodów i Maszyn Roboczych Politechniki Warszawskiej w ramach realizacji zadań statutowych biblioteki. \par
\vspace{\baselineskip}
\vspace{\baselineskip}
\vspace{\baselineskip}
Warszawa, dnia ???.\par
\begin{flushright}
/podpis/\par
\end{flushright}
\vspace{\baselineskip}
\vspace{\baselineskip}
\vspace{\baselineskip}
\begin{center}
\textbf{SŁOWA KLUCZOWE}
\end{center}\par
\vspace{\baselineskip}
\vspace{\baselineskip}
\kluczowe
\null\thispagestyle{empty}
\null\thispagestyle{empty}\newpage
{
\begin{abstract}
\begin{center}
\textbf{\tytul}
\end{center}
Problematyką poruszoną w niniejszej pracy było opracowanie metodyki pisania prac dyplomowych i przejściowych, realizowanych na Politechnice Warszawskiej. Rezultatem podjętych przez Autorów prac jest dokument będący jednocześnie szablonem, a także propozycją metodyki planowania prac, mającą ułatwić studentom pisanie podobnych opracowań.
Na początku opracowania przedstawiono cel oraz zakres planowanych prac, a także motywację skłaniającą do podjęcia tematyki. Kolejno opisano przyjętą metodykę badawczą. W pierwszych rozdziałach opisany został proces przygotowania do tworzenia pracy dyplomowej, w którym ujęto takie aspekty jak kompozycja pracy oraz podkreślono ważność systematyczności jej opracowywania. Kolejno omówiona została poprawność językową oraz stylistyczna tekstu. Uzupełnieniem rozdziału było przedstawienie podstawowych i powszechnie używanych narzędzi wspomagających edycję tekstu oraz obliczenia inżynierskie. W ramach rozpatrywanego zagadnienia przeprowadzono analizę porównawczą dostępnego na rynku oprogramowania do edycji tekstu oraz wspomagającego prace inżynierskie, a następnie wybrano spośród nich spełniające, założone przez Autorów pracy cele i kryteria doboru. Wybranym oprogramowaniem wspomagającym pracę redakcyjną został \LaTeX, a środowisko wspomagające obliczenia inżynierskie - SageMath.
Następnie dokonano obszernego opisu składania tekstu w środowisku \TeX oraz działania przydatnych funkcji oraz pakietów służących formatowaniu i edycji tekstu, a także tworzeniu wzorów, tabel i rysunków. Środowisko SageMath wspomagające obliczenia inżynierskie zostało wyczerpująco opracowane w kolejnym rozdziale. Omówiono w nim język skryptowy Python oraz wiele przydatnych bibliotek ułatwiających i optymalizujących prace związane z tworzeniem skryptów oraz opracowywaniem wyników. Całość pracy została podsumowana syntetycznymi wnioskami.
\noindent \textbf{\kluczowe}
\end{abstract}
\null\thispagestyle{empty}
\newpage
{\selectlanguage{english}
\begin{abstract}
\begin{center}
\textbf{\title}
\end{center}
At the beginning of the paper present the construction of crankshafts and identify the phenomena that must be taken into account by designers at the stage of their design. These include vibrations that can lead the shaft to resonance. The methods of suppressing this phenomenon as well as tools for vibration analysis were introduced.
The methods of deriving equations of motion were presented and the mathematical model of the position was adopted in subsequent chapters. From the model the moment of inertia and torsional stiffness was calculated. Natural frequency was initially around $5$ $Hz$.
Then, the selection of the elements of the station is described, i. e. the selection of discs with a specific moment of inertia and the selection of springs with a specific torsional stiffness. As part of the verification of the calculations, the parameters of the elements were experimentally checked and the stand was additionally created in two variants of construction. Experiments have confirmed the formulae used in the calculations.
In the fifth chapter, a series of measurements of the lateral accelerations of the individual discs were carried out. Accelerations were measured with the free oscillating system and with the free oscillating system under the influence of extortion.
On the basis of the results of a series of measurements it can be concluded that the assumed model is good and the obtained results are qualitative and consistent with the calculations.
\noindent \textbf{\keywords}
\end{abstract}
}
\null\thispagestyle{empty}\newpage
\pagenumbering{gobble}
\tableofcontents
\null\thispagestyle{empty}\newpage
\pagestyle{fancy}
\pagenumbering{arabic}
\setcounter{page}{11}
\chapter{Wstęp}
\section{Wprowadzenie do tematyki}
\aspect{Czym jest praca dyplomowa}
Praca dyplomowa jest podsumowaniem wiedzy i umiejętności, jakie student powinien był nabyć w trakcie nauki na wyższej uczelni. Praca dyplomowa powinna być zatem opracowana samodzielnie i twórczo, jak również dotyczyć praktycznego lub teoretycznego problemu. Stanowi ona bowiem wizytówkę studenta, a także promotora, pod którego opieką powstawała. Zarówno student jak i promotor mają największy wpływ na jej tematykę, a także treść i formę. Należy więc zadbać o to, aby praca dyplomowa została przygotowana starannie i rzetelnie, zarówno na poziomie merytorycznym jak i redakcyjnym.
\aspect{Istotność wstępu pracy}
Wstęp jest jedną z najważniejszych części każdej pracy dyplomowej. Jako że jest najczęściej czytany, powinien zawierać więc krótkie omówienie problemu, będącego przedmiotem pracy oraz krótkie przedstawienie aktualnego stanu wiedzy - źródła literaturowe w zakresie poruszanej problematyki, oraz ewentualne hipotezy, które autor zamierza sprawdzić lub udowodnić. Dodatkowo należy uwzględniać motywacje, które skłoniły autora pracy do zajęcia się daną tematyką. Wszystkie te informacje mają za zadanie uzasadnić celowość podjęcia pracy oraz zaciekawić i zachęcić Czytelnika do dalszego zapoznania się z tematem.
\aspect{Cel pisania pracy dyplomowej}
Dla wielu studentów praca dyplomowa, poza próbą wykazania się umiejętnościami formułowania i rozwiązywania problemów, wykazaniem się znajomością metod analitycznych i sposobów badawczych, stanowi pierwszą, większą wypowiedź pisemną. Służy ona zatem nauce poprawnego pisania w stylu naukowym, a także nauce poprawnego redagowania i formatowania tekstu, tak aby struktura, konstrukcja, język i stylistyka pracy pozwalały Czytelnikowi na łatwe zrozumienie omawianej przez autora tematyki. W niniejszej pracy omówione zostaną zatem środowiska wspomagające pisanie pracy dyplomowej od strony redakcyjnej i inżynierskiej. W tym celu przedstawione i opisane zostanie oprogramowanie \LaTeX, wspomagające tworzenie pracy od strony redakcyjnej oraz formatowania oraz środowisko SageMath, wraz z przydatnymi bibliotekami, jako narzędzie wspomagające obliczenia inżynierskie.
\section{Cel i zakres pracy}
\aspect{głowny cel pracy - ogólny zarys}
Celem pracy jest opracowanie metodyki wykonywania prac i pisania tekstów inżynierskich jakimi są prace dyplomowe i przejściowe realizowane na Politechnice Warszawskiej. Proces przygotowania takiego opracowania składa się z dwóch aspektów, które najczęściej wykonywane są równolegle, rzadziej sekwencyjnie. Pierwszym aspektem jest realizacja celu, stanowiąca wartość dodaną. Drugi element to opis przeprowadzonych działań, który to w większości jest wymiernym efektem prowadzonych prac. W związku z tym, jakość tej części w sposób istotny wpływa na ocenę całego dzieła.
\aspect{Dodatkowe cele pracy}
Ponadto planowanym rezultatem przeprowadzony prac jest gotowy dokument będący jednocześnie szablonem tezy oraz pomocą mającą ułatwić studentom pisanie podobnych opracowań. W praktyce okazuje się, że studenci potrzebują dodatkowych materiałów pomocniczych. Przyczyną jest konieczność spełnienia wielu wymagań jakie stawia się tego typu tekstom oraz brak jednoznacznych wytycznych odnośnie do wszystkich aspektów występujących w pracach realizowanych na Politechnice Warszawskiej.
\aspect{Określenie głównych założeń}
Praktyka wskazuje, żę większość opracowań o charakterze inżynierskim lub naukowym wykazuje pewne podobieńtwo. Bazując tylko na wiedzy i doświadczeniu Autorów przyjęto, że analizowane prace charakteryzują się:
\begin{itemize}
\item stałą kompozycją,
\item występowaniem wzorów i zależności matematycznych,
\item koniecznością wykonywanie analiz oraz obliczeń,
\item obszernym materiałem ilustracyjnym w postaci zdjęć i wykresów,
\item formą typową dla tekstów naukowych.
\end{itemize}
W związku z tym, założono że w ramach tej pracy przygotowany zostanie tekst:
\begin{itemize}
\item zgodny z wymaganiami stawianymi opracowaniom inżynierskim lub naukowym realizowanym na Politechnice Warszawskiej,
\item zawierający wszystkie elementy typowe dla tego typu dzieł,
\item automatyzujący często powtarzające się działania.
\end{itemize}
\aspect{Zakres opracowania}
Wymiernym efektem przeprowadzonych prac jest dokument będący jednocześnie propozycją metodyki opracowywania tez oraz edytowalnym szablonem pracy dyplomowej.
\section{Motywacja i aktualny stan wiedzy}
\aspect{Motywacja}
Motywacją do stworzenia niniejszego szablonu była chęć pomocy studentom przy samodzielnym opracowywaniu pracy dyplomowej. Ze względu na niezadawalający poziom stylistyczny, a także kłopoty przy redagowaniu i formatowaniu prac tworzonych dotychczas przez studentów, autorzy niniejszego szablonu zdecydowali się na przygotowanie krótkiego opracowania mającego na celu ułatwienie studentom samodzielne redagowanie i edytowanie tekstów prac dyplomowych czy przejściowych. Jednocześnie jednak, szablon ma stanowić pomoc promotorom, ograniczając ich pracę wyłącznie do korekty merytorycznej, a nie jak miało to miejsce do tej pory, redakcyjnej, która może zostać wykonana samodzielnie przez studenta, już na etapie tworzenia pracy.
\aspect{Brak publikacji na ten temat}
Jako, że do tej pory na Wydziale Samochodów i Maszyn Roboczych, poza oficjalnymi wytycznymi pisania prac dyplomowych zamieszczonymi w zarządzeniu Rektora PW oraz informacjami, jakie można znaleźć na stronie Wydziału SiMR, nie powstała jeszcze praca o podobnej tematyce, autorzy tekstu pokładają ufność, iż dzięki ich wysiłkom, od teraz tworzenie, redagowanie i formatowanie tekstów prac dyplomowych będzie dla studentów dużo bardziej przystępne, a staranność nowopowstałych prac na najwyższym poziomie.
\aspect{Wymogi i kryteria tworzenia pracy}
Prace dyplomowe oraz przejściowe charakteryzują się pewnymi cechami związanymi ze stylem, językiem czy edycją tekstu. Właścicielem pracy wykonanej na uczelni, w ramach pracy dyplomowej jest jednostka naukowa. W przypadku prac tworzonych na wydziale Samochodów i Maszyn Roboczych, to właśnie wydział jest ich właścicielem. Z tego powodu narzucone są określone wymogi związane z wyglądem pracy. Wszelkie informacje dotyczące edycji tekstu, zawartości pracy czy innych wymogów są do znalezienia na stronie internetowej Wydziału SiMR: [ODNOŚNIK].
Oficjalne, ujednolicone wytyczne zawierają zarządzenia Rektora Politechniki Warszawskiej nr 43/2016 z dnia 8/09/2016 i nr 57/2016 z dnia 15/12/2016 [odnośnik][odnośnik]
\aspect{Publikacja o pokrewnej tematyce}
\aspect{Inna publikacja o pokrewnej tematyce}
\section{Metodyka badawcza}
\aspect{Przedstawienie koncepcji analizy i badania}
Planuje się w ramach rozwiązywania rozpatrywanego zagadnienia przeprowadzenie analizy porównawczej dostępnego na runku oprogramowania do wspomagania prac inżynierskich.
następnie wybranie tych, które spełniać będą założone przez autorów pracy cele i kryteria doboru. K a także dwóch wybranych spośród wielu, pakietów optymalizujących pracę studenta. Jednym z nich będzie oprogramowanie wspomagającego pracę redakcyjną oraz środowisko wspomagające obliczenia inżynierskie. Pozwoli to na zaproponowanie łatwego procesu generowania dokumentów spełniających stawiane pracom dyplomowym warunki.
\aspect{Analiza porównawcza dostępnych pakietów - wybór}
\aspect{Opis wybranego edytora tekstu}
\section{Przygotowanie do pisania pracy dyplomowej}
\aspect{Czemu ma służyć praca dyplomowa?}
Przed rozpoczęciem pisania pracy dyplomowej należy pracę tę zaplanować, przemyśleć jej zakres oraz poznać wytyczne dotyczące zawartości i formatowania tekstu.
Sama praca dyplomowa ma na celu udowodnienie posiadania przez studenta umiejętności samodzielnego rozwiązywania problemu inżynierskiego lub naukowego, w oparciu o zdobytą w trakcie studiów wiedzę. Tematyka prac powinna być związana problemami technicznymi dotyczącymi budowy i eksploatacji maszyn, pojazdów itp. Dobrze, kiedy praca dyplomowa traktuje o nietypowych zagadnieniach czy rozwiązuje rzeczywisty problem.
W tym miejscu należy zaznaczyć, że właścicielem praw do pracy dyplomowej jest Wydział Samochodów i Maszyn Roboczych Politechniki Warszawskiej.
\aspect{Przygotowanie spisu treści}
Dobrym przygotowaniem i planem pracy jest spis treści. Dokładne przemyślenie spisu treści pozwala zapanować nad logiką pracy, wyznacza kierunki jej rozwoju, zbiera informacje dotyczące koniecznej do zastosowania teorii. W pierwszych fazach powstawania pracy, sugeruje się aby spis treści był podzielony na jak najwięcej konkretnych punktów. Każdy punkt powinien wskazywać na jedno, wyspecjalizowane zagadnienie. Przykład: jeżeli rozdział o oscylatorze harmonicznym ma zawierać rysunek, opis, równania i podsumowanie, należy stworzyć cztery punkty używając środowiska \LaTeX warto posłużyć się komendą {\lstinline|\aspect|. Prowadzi to do podziału pracy na rozdziały ({\lstinline|\chapter|), podrozdziały ({\lstinline|\section|) i niewyszczególnione w docelowym spisie treści punkty - zagadnienia ({\lstinline|\aspect|).
\aspect{Systematyczność w przygotowywaniu pracy i egzekwowanie postępów}
Ułożenie przemyślanego i skonsultowanego z opiekunem spisu treści ułatwia zachowanie systematyczności w wykonywaniu prac. Postępy w tworzeniu pracy są egzekwowane i oceniane przez opiekuna. Niewywiązywanie się z ustalonych terminów i jawne ignorowanie zasad pisania prac dyplomowych skutkuje brakiem możliwości ponadnormatywnego konsultowania pracy, a nawet wydaleniem z grona dyplomantów będących pod opieką danego opiekuna. Ponadto, spis treści pozwala przezwyciężyć trudności związane z utrzymaniem uwagi na temacie pracy.
\aspect{Struktura pracy dyplomowej}
Struktura pracy dyplomowej wykonanej na Wydziale Samochodów i Maszyn Roboczych jest określona przez wymieniony w rozdziale pierwszym dokument. Dyplom ma zawierać następujące elementy (podane w kolejności występowania):
\begin{enumerate}
\item Strona tytułowa - zgodna z szablonem strony tytułowej dostępnym na stronie APD,
\item Oświadczenie autora,
\item Słowa kluczowe - 3-4 słowa pozwalające łatwo odnaleźć pracę i rozwiązywany w niej problem,
\item Streszczenie w języku polski i w języku obcym - obie wersje muszą być jednakowe co do treści. Pod streszczeniami musi znaleźć się odręczny podpis autora i prowadzącego pracę,
\item Spis treści - w przypadku pracy zespołowej należy jednoznacznie zaznaczyć wykonawców poszczególnych rozdziałów,
\item Kolejne rozdziały pracy
\item Bibliografia,
\item Wykaz symboli i skrótów,
\item Spis rysunków,
\item Spis tabel,
\item Spis załączników,
\item Załączniki
\end{enumerate}
Szczegółowy opis poszczególnych rozdziałów znajduje się w innych częściach niniejszego opracowania.
\aspect{Spójnośc i logika w podziale pracy}
Praca powinna być podzielona w sposób logiczny, pozwalający na bezproblemowe zapoznanie się z tokiem rozumowania autora. Konieczne jest jasne sformułowanie celu i motywacji pracy. Należy zawrzeć opisy niezbędnych narzędzi i kroków wykonanych w celu rozwiązania postawionego problemu. Całość powinna być podsumowana nietrywialnymi wnioskami, które można wysnuć na podstawie przeprowadzonych działań.
\section{Opracowanie językowe tekstu}
\aspect{Poprawność składniowa}
Każde opracowanie w formie pisemnej należy tworzyć zachowując jeden czas, osobę i formę zdań. Zalecanymi do użycia środkami językowymi są:
\begin{itemize}
\item Czas przeszły, o autorze wypowiada się w trzeciej osobie. Przykład: \textit{Autor wykorzystał istniejącą infrastrukturę badawczą. Dzięki niej przeprowadzono szereg eksperymentów}.
\item Używanie biernego trybu czasowników. Przykład: \textit{Eksperyment został przeprowadzony}.
\end{itemize}
\aspect{Neutralnośc opisu i oceny, błędy stylistyczne}
Należy powstrzymać się od osobistych ocen faktów opisywanych w pracy, niepotrzebnego skalowania przymiotników oraz wyrazów uważanych za kolokwializmy i słownictwa tzw. warsztatowego. Autor nie powinien za wszelką cenę unikać powtórzeń. Praca inżynierska czy magisterska z zakresu nauk ścisłych wymaga precyzyjnego wypowiadania się. Często próba zastąpienia ścisłego terminu fizycznego innym, prowadzi do nieporozumienia albo wręcz do zmiany sensu zdania.
\section{Narzędzia edycji tekstu}
\aspect{Opis wybranych programów do edytowania tekstów}
Najpopularniejszym narzędziem do tworzenia prac dyplomowych jest środowisko "MS Office" i zawarty w nim edytor tekstu "Word". Jest to program działający w formule "What you see is what you get" (WYSIWYG), co znaczy "to co widzisz jest tym co otrzymasz". Na tej samej zasadzie działają inne edytory tekstu zawarte w pakietach takich jak OpenOffice, LibreOffice, Google Docs czy Office Online (dostępny dla studentów Politechniki Warszawskiej). Mimo wielu zalet i wygody polegającej na możliwości ciągłego podglądu pracy, tego typu edytory mają swoje wady. Korzystanie z tego oprogramowania stwarza kłopoty podczas edycji długiego tekstu, podziału stron, umieszczania rysunków, numeracji wzorów czy ilustracji.
\aspect{Alternatywy}
Alternatywą dla systemów "WYSIWYG" jest środowisko \LaTeX i jemu podobne. Jest ono szczególnie użyteczne w przypadkach prac zawierających wiele wzorów matematycznych, rysunków, podziałów logicznych na akapity i podakapity. \LaTeX pozwala na automatyzację wielu operacji takich jak numeracja wzorów, cytowania pozycji literaturowych. W kombinacji z platformami integrującymi środowiska obliczeniowe z edytorami tekstu takie jak CoCalc, otrzymuje się narzędzie pozwalające na daleko posuniętą automatyzację pracy. Możliwe jest importowanie do tekstu wyników symulacji, rozwiązanych równań czy wieloelementowych macieży. Znacząco skraca to czas potrzebny na wprowadzenie takich obiektów do opracowania. Więcej na temat \LaTeX znajduje się w dalszych rozdziałach niniejszego opracowania.
Porównująć do siebie środowiska do edycji tekstów WYSIWYG i środowiska typu \LaTeX do opracowywania prac dyplomowych wybrano te drugie, jako usprawniające przebieg prac. Dodatkowo, środowisko CoCalc pozwala na równoległą edycję dowolnych plików przez kilku użytkowników. Stwarza to nowe pola do współpracy między studentem a opiekunem naukowym.
\section{Programy wspomagające obliczenia inżynierskie}
\aspect{Opis wybranych programów, pakietów obliczeniowych}
W trakcie prac naukowych czy technicznych często pojawiają się problemy związane z rozwiązywaniem złożonych zagadnień. Z pomocą przychodzą programy wspomagające obliczenia inżynierskie. Problemy, które dzięki nim można rozwiązać są bardzo zróżnicowane. Oprogramowanie tego typu jest nieocenioną pomocą przy skomplikowanych obliczeniach symbolicznych, numerycznych czy przy analizie dużych zbiorów danych. Dalsza część podrozdziału służy krótkiemu opisowi przykładowych programów.
\begin{enumerate}
\item \textbf{MatLab} jest popularnym oprogramowaniem służącym do obliczeń numerycznych. Konsekwencją swojej powszechności jest duże rozbudowanie środowiska, obecność wielu wyspecjalizowanych narzędzi i makr do obliczeń konkretnych problemów (np: analiza statystyczna), mnogość poradników, podręczników, filmów instruktażowych itp. Cechą charakteryzującą MatLaba jest traktowanie każdej zmiennej jako macierzy. Ma to wpływ na logikę tworzenia kodów. Pakiet MatLab zawiera program Simulink, który pozwala w graficzny sposób modelować problemy inżynierskie takie jak rozwiązywanie równań różniczkowych. Dla studentów Politechniki Warszawskiej pakiet MatLab jest dostępny za darmo.
\item \textbf{Octave, SciLab} są to programy bliźniaczo podobne do MatLaba. Jedynie SciLab korzysta z nieco odmiennej składni. Logika jednak pozostaje ta sama. Oba produkty są programami typu \textit{open source}.
\item \textbf{Python} jest językiem programowania wysokiego poziomu. Nadaje się do wielu zastosowań. Założeniem jego twórców jest łatwość i klarowność pisanego kodu. Python jest standardowo wyposażony w wiele użytecznych blibliotek. \textbf{SageMath} jest stworzony w języku Python i służy do wspomagania operacji matematycznych. Więcej informacji na temat Pythona i SageMath, jako jednych z użyteczniejszych środowisk, zostanie przedstawione w dalszej części pracy.
\item \textbf{MathCad} jest programem służącym do obliczeń algebraicznych. Jego zaletą jest przejrzystość interfejsu i łatwość przygotowywania obliczeń. Program pozwala na przeprowadzanie obliczeń symbolicznych i numerycznych.
\item \textbf{Mathematica} to komercyjny system obliczeń symbolicznych i numerycznych opracowany w 1988 przez Stephena Wolframa. W ciągu swojego istnienia stał się popularny w środowisku naukowców i inżynierów. Mathematicę charakteryzują wysoka wydajność, szerokie możliwości wizualizacji i prezentacji danych oraz przenośność. Obecnie jest dostępna na większość platform 32- i 64-bitowych.
Komercyjną konkurencją dla pakietu Mathematica jest Maple. Spośród wolnego oprogramowania podobne funkcje oferują programy Maxima oraz Sage.
\item \textbf{Maxima} jest programem do obliczeń symbolicznych. W swoim działaniu jest podobna do programu Mathematica. Zaletą Maximy jest to, że jest to program darmowy.
\item \textbf{Ansys, Abaqus} są to programy do tworzenia analiz metodą elementów skończonych. Pozwalają na tworzenie modeli, importowanie geometrii z programów CAD, dyskretyzację (tworzenie siatki), ustalanie warunków brzegowych, określanie scenariusza symulacji (np: obciążenia). Z tych programów możliwe jest uzyskanie między innymi takich informacji jak naprężenia, odkształcenia, częstości własne, postacie drgań.
\item \textbf{Comsol} jest programem bazującym na metodzie elementów skończonych. Jest podobny do programów takich jak Ansys czy Abaqus. Różni się od nich tym, że w łatwy sposób umożliwia przeprowadzenie analiz układów w których występują zjawiska z różnych dziedzin fizyki np: sprzężenia elekto-chemiczne, termo-mechaniczne. Zaletami Comsola są również łatwy dostęp do równań wykorzystywanych przy obliczeniach oraz możliwość wpływania na dowolny parametr układu. Jest to oprogramowanie skierowane \textit{stricte} dla naukowców, przez co jest mało popularne i trudno dostępne.
\end{enumerate}
\chapter{Oprogramowanie \LaTeX}
\aspect{Opis oprogramowania, jego zalety, porównanie z alternatywnymi narzędziami}
\section{Składania tekstu z wykorzystaniem środowiska \TeX}
Obecnie każdy użytkownik komputera jest zmuszony do częstego pisania dokumentów tekstowych w postaci sprawozdań, wniosków, podań, prac dyplomowych itd. W tym celu powstało wiele programów komputerowych, które w różny sposób pomagają rozwiązywać problemy edytorskie. Najbardziej znanym program jest Microsoft Word. Już od najmłodszych lat w szkołach uczy się tego oprogramowania. Jednak w trakcie wykonywania złożonych problemów takich jak obliczenia inżynierskie oraz pisanie prac dyplomowych napotkano wiele problemów, które wymagają innego podejścia niż oferuje oprogramowanie. W zawodowym środowisku edytorskim (np. składanie książek oraz artykułów naukowych) powszechnie stosowanych oprogramowanie jest system {{\LaTeX}}. Jest to forma pisania tekstu poprzez programowanie. Dla początkujących osób może się ona wydawać nieprzyjaznym środowiskiem. Jednakże po zdobyciu podstawowej wiedzy na temat tego programu można zaobserwować potencjał oferowany przez środowisko \LaTeX. W ramach pisania pracy dyplomowej zdecydowano się na korzystanie z platformy Cocalc. Jest to środowisko sprzęgające ze sobą możliwość pisania dokumentów w \LaTeX oraz wykonywania złożonych obliczeń inżynierskich w środowisku SageMath lub z wykorzystaniem języka Python.
\aspect{Opis konstrukcji pliku tekstowego}
\section{Struktura dokumentu}
Oprogramowanie \LaTeX umożliwia tworzenie dokumentów tekstowych. Niestety nie przypomina pod względem graficznym dobrze znanego większości osób programu 'Word'. Strukturę pisania dokumentu można podzielić na kilka etapów:
\begin{itemize}
\item Ogólne określenie formatu dokumentu (ustawienie czcionki, rozmiaru, marginesów, podział na kolumny itd.)
\item wczytanie odpowiednich paczek oraz pakietów umożliwiających wykonanie wszystkich dalszych czynności pisania pracy (np. pisanie wzorów, wstawianie rysunków, cytowanie bibliografii itd.)
\item zamieszczanie tekstu, wzorów, rysunków i innych elementów według schematów opisanych w kolejnych rozdziałach,
\item tworzenie bibliografii, spisu tabel, rysunków oraz załączników,
\item możliwość ciągłego podglądania dokumentu w postaci pliku .pdf
\end{itemize}
Forma dokumentu została przygotowana według wytycznych przedstawionych przez komisję dyplomową. Zadaniem każdego studenta jest wypełnienie dokumentu tekstem według schematów przestawianych w tej pracy.
\aspect{Opis kodu definiującego format tekstu oraz możliwości wykonywania zadań}
\section{Wykorzystywanie pakietów oraz formatowanie}
Formuła umżliwiająca wykorzystanie odpowiedniego pakietu składa się z {\lstinline{\usepackage{nazwa odpowiedniej paczki}}}. Na początku nauki oprogramowania \LaTeX\ problem może stanowić brak wiedzy w kwestii wczytywania odpowiednich paczek. Dlatego też w tym celu należy koszytać z literatury (\cite{ksiazka_latex_2})
Formatowanie dokumentu można wykonać w sposób globalny oraz lokalny. Pierwszą komendą dokumentu {\lstinline|.tex| jest {\lstinline|\documentclass{klasa}}|.
W dalszej części pracy istnieje możliwość zmiany formatu poszczególnych tekstów m.in:
\begin{itemize}
\item wielkość czcionki,
\item styl,
\item pogrubienie,
\item kursywa,
\item wyśrodkowanie,
\item inne.
\end{itemize}
Składnie funkcji pozwalające zmienić lokalnie wygląd tekstu zamieszczono w rozdziale - przydatne funkcje.
\aspect{Opis procesu tworzenia i numerowania wzorów}
\section{Wstawianie wzorów, tabel oraz rysunków}\label{sec:elems_include}
Tworząc pracę dyplomową niezbędne jest przedstawienie wzorów pozwalających rozwiązać określony problem inżynierski. Aby wstawić wzór matematyczny należy odpowiednią komendą {\lstinline|\begin{equation}}| rozpocząć oraz {\lstinline|\end{equation}}| zakończyć strukturę wzoru. Następnie wykorzystując odpowiednią składnię należy zbudować docelowy wzór. W tym celu pomocne będzie korzystanie ze stron internetowych \cite{www_latex_1} i \cite{www_latex_2}. Do każdego wzoru należy dodać etykietę wykorzystując funkcję {\lstinline|\label{eq:nazwaetykiety}}|. Nazwa etykiety powinna być unikatowa, ponieważ wyeliminuje to powtórzenia w trakciv wstawiania odnośników do tekstu. Odwołanie do wzoru wykonuje się poprzez wstawienie w tekście komendy {\lstinline|\ref{eq:nazwaetykiety}}|. Przestrzeganie powyższych zasad powoduje automatyczne numerowanie wzoru, a dodawanie unikatowych odnośników wyeliminuje niebezpieczeństwo popełnienia błedu w cytowaniu. Jeżeli we wzorze wystąpi nowy symbol należy go opisać. W tym celu należy użyć funkcji {\lstinline|\begin{describe}}| i {\lstinline|\end{describe}}|.
\begin{equation}
n=\frac{E}{c \varphi }=\frac{U-R_{t} \cdot I_{t}}{c \varphi }
\label{eq:predkosc_obrotowa}
\end{equation}
gdzie:
\begin{description}
\item[$x^2$] współrzędna
\end{description}
\newglossaryentry{pi}
{
name={\ensuremath{\pi}},
description={ratio of circumference of circle to its
diameter},
sort=pi
}
\gls{pi} - \glsdesc{pi}
\aspect{Opis budowy struktury i systematyzowania rysunków}
Podobnie wygląda wstawianie do dokumentu rysunków. Każdy rysunek powinien znaleźć się w tym samy folderze, co plik dokumentu \LaTeX. Składania wstawiania rysunków jest analogiczna jak w przypadku wzórów. Również należy rozpocząć komendą begin. Litera H w nawiasie kwadratowym powoduje wstawienie rysunku w miejsce gdzie wpisana jest struktura. Jest to istotne ze względu na to, że \LaTeX ma tendencje do wykorzystywania wolnej przestrzenie dokumentu, a wpisanie np. małej litery h spowoduje ustawienie wzoru w optymalne miejsce na stronie, niekoniecznie w miejscu, w którym znajduje się struktura. Funkcja {\lstinline{\centering}} powoduje wyśrodkowanie rysunku oraz jego podpisu. Wstawianie odpowiedniego rysunku wywołuje się poprzez koemendę {\lstinline{\includegraphics}}. W nawiasie klamrowym należy podać źródło pliku. Rysunki należy zapisywać w rozszerzeniu .jpg. Funkcja caption pozwala na dodanie podpisu pod rysunkiem. Komenda Label tak jak w przypadku wzórów umożliwia nadanie unikatowej etykiety. Cytowanie rysunku odbywa się poprzez wstawienie komendy {\lstinline{\ref{fig:nazwa etykiety}}}. Na koniec należy całość zakończyć przez {\lstinline{\end{figure}}}.
\begin{lstlisting}[language=Python]
\begin{figure}[H]
\centering
\includegraphics{./media/stanowisko_real.jpg}
\caption{Gotowe stanowisko}
\label{fig:Gotowe_stanowisko}
\end{figure}
\end{lstlisting}
\begin{figure}[H]
\centering
\includegraphics{./media/stanowisko_real.jpg}
\caption{Gotowe stanowisko}
\label{fig:Gotowe_stanowisko}
\end{figure}
\aspect{Opis budowy struktury tabel}
Początek i koniec budowy tabeli \ref{tab:Res_exp} jest analogiczny do tworzenia wzorów czy rysunków. Nowością jest definiowanie liczby kolumn poprzez dodawanie kolejnych pozycji w składni: \lstinline{ | l | l | l | l | l | l | l | l |}. \lstinline{\hline} rysuje w tabeli linię poziomą. Następnie należy wypełniać pola tabeli.Przechodzenie do następnej kolumny wykonuje się poprzez wstawienie \lstinline{&}. Zakończenie wiersza i przejście do następnego umożliwia komenda \lstinline{\\}. Poniżej przedstawiono pełną budowę tabeli.
\begin{lstlisting}[language=Python]
\begin{table}[H]
\centering
\begin{tabular}{ | l | l | l | l | l | l | l | l |}
\hline
Nazwa 1 & Nazwa 2 & Nazwa 3 & Nazwa 4 & Nazwa 5 & Nazwa 6 &
Nazwa 7 \\ \hline
0.94 & 0.97 & 0.91 & 0.92 & 0.95 & 0.938 & 1 \\ \hline
\end{tabular}
\caption{Wyniki eksperymentu} \label{tab:Res_exp}
\end{table}
\end{lstlisting}
\begin{table}[H]
\centering
\begin{tabular}{ | l | l | l | l | l | l | l | l |}
\hline
Nazwa 1 & Nazwa 2 & Nazwa 3 & Nazwa 4 & Nazwa 5 & Nazwa 6 &
Nazwa 7 \\ \hline
0.94 & 0.97 & 0.91 & 0.92 & 0.95 & 0.938 & 1 \\ \hline
\end{tabular}
\caption{Wyniki eksperymentu} \label{tab:Res_exp}
\end{table}
\aspect{Systematyzacja spisów rysunków, tabel}
\section{Automatyczne generowanie spisów rzeczy}
Jednym z wymagań prac dyplomowych jest przedstawienie m.in. spisu rysunków i tabel. Operacje te można wywołać poprzez wstawienie funkcji \lstinline{\listoffigures} i \lstinline{\listoftables}. Należy jednak pamiętać, aby struktura wszystkich tabel oraz rysunków posiadała formę przedstawioną w pracy. W niniejszej pracy w docelowym miejscu wstawiono powyższe funkcje, a spisy wykonują się automatycznie. Stanowi to duże uproszczenie w pisaniu pracy dyplomowej, ponieważ należy pamiętać o wstawianiu poszczególnych elementów w formie przedstawionej niniejszym dokumencie.
\aspect{Opis tworzenia spisu bibliograficznego i cytowania w tekście}
\section{Tworzenie bibliografii - środowisko Bib\LaTeX}
Jednym z elementów prac dyplomowych jest bibliografia. Środowisko Latex umożliwia bezbłędne wstawianie pozycji literaturowych. W tym celu wykonano kilka kroków niezbędnych do stworzenia bibliografii:
\begin{itemize}
\item stworzono plik z rozszerzenie .bib (na potrzeby prac dyplomowych w folderze znajduje się plik o nazwie {\lstinline{Elementy_bibliografia.bib}} i jego należy modyfikować) oraz dodano do niego pozycje literaturowe.
\item każda pozycja w pliku .bib rozpoczyna się od komendy \lstinline|@article(indywidualna nazwa pozycji,...)| (dla artykułów) oraz {\lstinline{@book(indywidualna nazwa pozycji,...)}} (dla książek)
\item przykładowa pozycja literaturowa w pliku .bib:
\lstinline|@article{rubber_bands,
title = {Do rubber bands acts like springs?},
url = {https://www.wired.com/2012/08/do-rubber-bands-act-like-springs/},
abstract = {Do rubber bands acts like springs?},
urldate = {26.08.08},
author = {Rhett Allain},
year = {2012}}|
\item cytowanie w tekście kolejnych pozycji z plik {\lstinline{.bib}} powoduje automatyczne wstawianie odnośnika oraz pojawienie się zacytowanej pozycji w rozdziale Bibliografia.
\item w tekście źródłowym w miejscu wyświetlania bibliografii wstawiono funkcję {\lstinline{\printbibliography}}
\item cytowanie pozycji odbywa się poprzez wstawienie do tekstu funkcji \lstinline|\cite{indywidualna nazwa pozycji w pliku .bib}|
przykład: W artykule (\lstinline|\cite{rubber_bands}|}) \cite{rubber_bands} przedstawiono możliwości zastosowania...
Należy zwrócić uwagę, że taki zabieg dodaje na koniec pracy (w bibliografii) informacje o zacytowanej pozycji literaturowej.
\end{itemize}
\aspect{Dodatkowe informacje o przydatnych funkcjach}
\section{Przydatne funkcje}
W tym rozdziale przedstawiono zbiór funkcji, które pomogą sformatować tekst, wzory, tabele, rysunki i inne rzeczy w oczekiwany przez projektanta sposób. Ze względu na błędy sposób wyświetlania specjalnych znaków w podglądzie oraz dokumencie pdf należy zwrócić uwagę na formę składni znajdującą się w pliku źródłowym ( {\lstinline{.tex}})
\aspect{Przykłady}
\begin{itemize}
\item Wstawianie komentarzy do dokumentu źródłowego odbywa się poprzez wstaweinie $\%$ na początku zdania,
\item {\lstinline{\textbf{tekst}}} – pogrubienie tekstu,
\item {\lstinline{\newpage}} – wstawienie nowej strony,
\item $ I_{t} $ - wstawienie symbolu,
\item wstawianie macierzy: struktura oraz jej reprezentacja graficzna:
\begin{lstlisting}[language=Python]
$$K={\left[\begin{array}{ccc} 8.6 & -19.7 & 14.8 \\
-19.7 & 54.4 & -56.8 \\
14.8 & -56.8 & 98.9 \end{array}\right]} \cdot 10^4 $$ \end{lstlisting}
$$K={\left[\begin{array}{ccc} 8.6 & -19.7 & 14.8 \\-19.7 & 54.4 & -56.8 \\14.8 & -56.8 & 98.9 \end{array}\right]} \cdot 10^4 $$
\item {\lstinline{\eqref{nazwa etykiety wzoru}} – odnośnik do wzoru wyświetlany w nawiasie okrągłym ,
\item {\lstinline{\ref{nazwa etykiety wzoru}}} – odnośnik do wzoru wyświetlany bez nawiasu,
\item Aby użyć innych funkcji należy skorzystać z książek \cite{ksiazka_latex_1} i \cite{ksiazka_latex_2} oraz stron internetowych \cite{www_latex_1} i \cite{www_latex_2}
\item Przykładowe wzory zamieszczono w załącznikach (na końcu pracy).
\end{itemize}
\chapter{Wspomagane komputerowo obliczenia w środowisku SageMath}
\section{Środkowisko SageMath}\label{sec:sage_math}
\aspect{Czym jest SageMath}
Środowisko SageMath (wcześniej SAGE od ang. Software for Algebra and Geometry Experimentation) jest programem typu CAS (System algebry komputerowej z ang. Computer algebra system).
\aspect{Informacje podstawowe}
Autorem jest William A. Stein, który zaproponował koncepcję integracji wielu specjalistycznych narzędzi, zamiast tworzenia nowego oprogramowania od podstaw. Środowisko to stanowi wspólną platformą dla wielu zaawansowanych narzędzi i bibliotek programistycznych do wspomagania skomplikowanych obliczeń matematycznych. System Sage pozwala na wykonywanie działań w sposób symboliczny oraz numeryczny.
\aspect{Zakres zastosowań}
Całość środowiska została napisana w języku Python (głównie implemtacja CPython) i umożliwia:
\begin{itemize}
\item obliczenia statystyczne - pakiet R oraz biblioteki NumPy,
\item operacje symboliczne - program Maxima oraz biblioteka SymPy,
\item symulacje numeryczne - biblioteka NumPy oraz pakiet Octave,
\item bezpośrednie zastosowanie Python'a - terminal IPython,
\item integrację obliczeń z tekstem - dokument \LaTeX\ oraz moduł \SageTeX,
\item pracę w środowisku rozproszonym - interfejs www na domenie www.cocalc.com.
\end{itemize}
\aspect{Zalety środowiska SageMath}
Program składa się tylko z darmowych bibliotek i jest rozprowadzany na licencji GNU GPL. Oznacza to, możliwość całkowicie darmowego użytku do celów prywatnych oraz komercyjnych.
Przedstawione zalety powodują, że środowisko SageMath stanowi ciekawą alternatywę dla płatnych programów takich jak Mathematica, MATLAB czy MathCad. Szczególnie wygodne jest jego zastosowanie przy pisaniu dłuższych tekstów o charakterze naukowym, ze względu na możliwość wykorzystania środowiska \LaTeX oraz integrację systemu CAS z edytorem tekstu.
\section{Język skryptowy Python}
\aspect{Co to Python?}
Python jest wieloparadygmatowym językiem programowania wysokiego poziomu ogólnego przeznaczenia. Jednym z podstawowych założeń twórców było stworzenie języka o bardzo wysokiej czytelności kodu.
\aspect{Składnia języka Python}
Struktura programu stanowi jeden z elementów składni. Jest to wygodne, ponieważ zmusza programistę do dbania o zachowanie odpowiedniej przejrzystości kodu.
\aspect{Paradygmaty i działanie}
Omawiany język wspiera koncepcje programowanie strukturalnego, imperatywnego, obiektowego oraz w pewnym stopniu funkcyjnego. Ponadto Python charakteryzuje się dynamicznym typowaniem danych oraz automatycznym zarządzaniem pamięcią. Oznacza to, że obiekty są inicjowane w zależności od wprowadzanych danych. Przykładowo liczby z założenia inicjują obiekty liczbowe, pomimo że teoretycznie mogłby konstruować obiekt typu znakowego. W większości praktycznych przypadków nie powoduje to błędów w kodzie.
\aspect{jezyk skryptowy i enkapsulacja}
Dynamiczne typowanie oraz automatyczne usuwanie niewykorzystywanych obiektów powoduje, że Python jest często stosowany jako język skryptowy. Cechą znamienną tego języka jest brak zapewnienia enkapsulacji właściwości obiektów w momencie deklaracji pól. Zapewnia on odpowiednie mechanizmy zapewniające hermetyzajcę, ale nie są one wymagane, tak jak ma to miejsce np. w języku~C.
\aspect{przeznaczenia Pythona oraz obliczenia inżynierskie}
Python zapewnia swoją duża uniwersalność przez możliwość zastosowania dodatkowych bibliotek. Ze względu na łatwość programowania w tym język zbiór dodatkowych modułów jest bardzo obszerny i pozwala zastosować Pythona niemalże w każdej dziedziny. W obliczenia inżynierskich stosuje się głównie biblioteki NumPy, SymPy oraz Matplotlib, wchodzące w skład większego pakietu SciPy. Wykorzystanie środowiska SageMath oraz pakietu \SageTeX\ pozwala na łatwe i efektywne osadzanie wyników skryptów Pythona w dokumentach {\lstinline{*.tex}}.
\section{Biblioteka NumPy}
\aspect{co to jest NumPy}
Biblioteka NumPy jest zbiorem procedur numerycznych napisanych w języku Python. Twórcą tego pakietu jest Travis Oliphant \cite{numpy_wikipedia}. NumPy przede wszytkim dostarcza wygodnego interfejsu do pracy z macierzami. Oferuje składnie i funkcjonalność porównywalną z komercyjnymi rozwiązaniami takim jak Matlab, czy jego darmowy odpowiednik GNU Octave. Głównym zastosowaniem pakietu jest wspomaganie skomplikowanych obliczeń matematycznych i inżynierskich na dużych zbiorach danych.
\aspect{z czego się składa NumPy}
Biblioteka dostarcza wiele powszechnie stosowanych procedur numerycznych. W skład pakietu wchodzą między innymi moduły do:
\begin{itemize}
\item obliczeń na przestrzeniach wektorowych,
\item numerycznego rozwiązywania równań różniczkowych,
\item poszukiwania pierwiastków zagadnienień liniowych i nieliniowych,
\item analizy sygnałów,
\item transformacji Fouriera,
\item operacji na dużych zbiorach danych,
\item analizy obrazów.
\end{itemize}
Dokładną listę procedur oraz klas można znaleźć na stronie projektu \cite{numpy_references}.
\aspect{co umożliwia w kontekście pisania pracy dyplomowej}
Zbiór NumPy pozwala na sprawne rozwiązywanie wielu praktycznych problemów inżynierskich. Podstawowa jej funcjonalność dostarcza łatwy interfejs do tworzenia macierzy oraz wykonywania na nich operacji. Szczególnie często wykorzystywane są procedury {\lstinline{numpy.arange()}}, {\lstinline{numpy.linspace()}} pozwalające na generowanie macierzy oraz operatory {\lstinline{+}}, {\lstinline{-}}, {\lstinline{*}} oraz {\lstinline{^}} zastępujące standardowe implementacje działań dla języka Python (przeciążenie operatora).
W przypadku analizy problemów analizy sztywnościowej oraz dynamiki układów fizycznych NumPy dostarcza zbiory procedur {\lstinline{numpy.linalg.inv}}, {lstinline{numpy.desolve}}, {\lstinline{numpy.linalg.eig}} oraz {\lstinline{numpy.fft}} do odwracania macierzy, rozwiązywania równań różniczkowych, poszukiwania wartości i wektorów własnych oraz przetwarzania sygnałów.
\aspect{przykład zastosowania}
Obliczenia inżynierskie bardzo często wymagają działań na macierzach oraz wektorach. Definiowanie macierzy z wykorzystaniem języka Python wymaga doładowanie odpowiednich bibliotek. Kod programu generującego wektor przedstawiający zakres liniowy jest następujący:
\begin{lstlisting}[language=Python]
import numpy as np
np.linspace(2.0, 3.0, num=5)
\end{lstlisting}
Wynikiem programu jest wektor o postaci:
\begin{lstlisting}[language=Python]
array([ 2. , 2.2, 2.4, 2.6, 2.8])
\end{lstlisting}
Otrzymany wynik jest traktowany jako tablica. Założeniem programu było wygenerowanie wektora. W tym aspekcie środowisko NumPy jest bardzo zbliżone do komercyjnego oprogramowania Matlaba, które wszytkie obiekty liczbowe traktuje jako macierze (w tym przypadku tablice). Wektory i skalary są reprezentowane jako odpowiednio macierze wierszowe oraz jednoelementowe.
W większości praktycznych przypadków taki zapis nie powoduje żadnych problemów interpretacyjnych. Jednocześnie znacząco upraszcza składnię.
\section{Biblioteka Matplotlib}
\aspect{Czym jest Matplotlib}
Biblioteka Matplotlib należąca do pakietu SciPy stanowi zbiór procedur pozwalających na graficzną reprezentację danych. Umożliwia wykonanie niemal dowolnego wykresu bazując na zestawie danych numerycznych. Wprowadzone środowisko jest napisane zgodnie z paradygmatem programowania obiektowego. Istotną zaletą pakietu jest interfejs PyLab. Jego celem jest upodobnienie procesu wykonywania wykresów w sposób możliwie najbliższy do stosowanego w środowisku MATLAB \cite{matplotlib_wiki}.
\aspect{Mozliwosci pakietu}
Wykorzystując środowisko Matplotlib możliwe jest wykonywanie różnego typu wykresów. Najczęściej wykorzystywane z nich to:
\begin{itemize}
\item wykresy dwuwymiarowe,
\item wykresy trójwymiarowe,
\item histogramy,
\item wykresy z polami błędów,
\item wykresy słupkowe.
\end{itemize}
Możliwe jest dodawanie do sceny dodatkowych grafik, opisów, wzór oraz dowolne formatowanie osi. Wyświetlane wartości mogą być reprezentowane w skali liniowej lub logarytmicznej. Ponadto każdy typ wykresu można wykreślić w postaci wielu pól na jednej scenie (tak zwane subplots).
\aspect{Przygotowanie pola wykresu}
Brak uniwersalnych wymagań dotycząch sposobu wyświetlania danych powoduje, że nie istnieje jedna metoda reprezentacji i opisu wartości znajdujących się na wykresie. W zależności od przeznaczenia i póżniejszego zastosowania grafiki zalecenia odnośnie do formatowania mogą być inne. Środowisko Matplotlib umożliwia bardzo elastyczny wybór kroju, wielkości oraz rodzaju pisma. Wykorzystywane są do tego metody: {\lstinline{matplotlib.rcParams['text.usetex']}}, {\lstinline{matplotlib.rcParams['text.latex.unicode']}} i {\lstinline{matplotlib.rcParams['mathtext.fontset']}}. Odpowiadają one za wykorzystanie środowiska \LaTeX\ oraz zastosowanie odpowiedniej czcionki do opisów osi.
W przypadku prac dyplomowych realizowanych w Politechnice Warszawskiej nie istnieją ścisłe wytyczne jak opracowywać wykresy zamieszczane w opracowaniach \cite{rozporzadzenie_pw_dyplomy}. Natomiast wymagania ogólne zalecają stosowanie bezszeryfowego kroju pisma w całej pracy. Zazwyczaj dodatkowo stosuje się pochyły krój szeryfowy dla oznaczenia symboli matematycznych.
\aspect{Przyklad zastosowania}
Kod programu generującego wykres sformatowany w opisany sposób jest następujący:
\begin{lstlisting}[language=Python]
import numpy as np
vector=np.array([ 2.0 , 2.2, 2.4, 2.6, 2.8])
import matplotlib
matplotlib.rcParams['text.usetex'] = False
matplotlib.rcParams['text.latex.unicode'] = False
matplotlib.rcParams['mathtext.fontset'] = 'cm'
import matplotlib.pyplot as plt
plt.plot(vector)
plt.xlabel(r'$n [-]$')
plt.ylabel(r'$\vector [m]$')
plt.title('Wykres')
plt.show()
\end{lstlisting}
Zgodnie z oczekiwaniem, efektem działania programu jest wykres przedstawiający linię prostą. Metodą {\lstinline{plt.plot()}} można nanieść na scenę dowolny zbiór danych. Jedynym wymaganiem jest numeryczna postać danych.
\section{Pakiet SageTex}\label{sec:sage_tex}
\aspect{Czy jest pakiet \SageTeX}
Pakiet \SageTeX\ jest pakietem dla systemu \LaTeX\ umożliwiającym wykonywanie obliczeń bezpośrednio w opracowywanym dokumencie. Działania algebraiczne i przekształcenia są realizowane w środowisku SageMath jako integralna część dokumentu głównego {\lstinline{.tex}}. Operacje matematyczne wyrażone są głównie w języku Python (patrz rodział \ref{sec:sage_math}). Arkusz roboczy systemu Sage dołączany jest zbioru plików i wykonywany każdorazowo podczas przebudowywania dokumentu. Ze względów praktycznych warto ograniczać długość wykonywanego kodu. Przekłada się to na czas niezbędny do wygenerowania pliku wynikowego.
\aspect{Mozliwości pakietu}
Moduł \SageTeX\ dostarcza kilku środowisk/trybów wprowadzanie danych oraz wykonywania obliczeń. Wyniki działań można wstawić w trybie:
\begin{itemize}
\item inline, który pozwala na wykonanie obliczeń bezpośrednio w tekście. Wywoływany jest przy pomocy komendy \lstinline|\sage{<kod programu>}| i zwraca bezpośrednio wzory w formacie \LaTeX gotowe do osadzenie w tekście;
\item sageplot, gdzie środowisko SageMath wykonuje niezbędne obliczenia i automatycznie generuje wykres, a następnie osadza grafikę w tekście. Procedurę wywołuje się poleceniem \lstinline|\sageplot{<kod programu>}|. Funkcja jest tożsama z wykorzystaniem makra \lstinline|\includegraphics{.\sciezka\do\nazwa_pliku.rozszerzenie}| i pozwala na zastosowanie wszystkich jej atrybutów;
\item sageblock, który jest środowiskiem (z angielskiego environment) systemu \LaTeX. Wywoływane jest komendą \lstinline|\begin{sageblock}|. Program wykonywany jest do wystąpieenia frazy \lstinline|\end{sageblock}|. Kod zawarty w bloku jest jednocześnie wykonywany i wyświetlany w dokumencie.
\item sageverbatim, gdzie wykonywane obliczenia są tylko wyświetlane. Realizowane operacje umieszcza się w środowisku o tej samej nazwie, pomiędzy komendami \lstinline|\begin{sageverbatim}| i \lstinline|\end{sageverbatim}|;
\item sagesilent, będący środowiskiem do rachunków nie umieszczanych w teście. Obliczenia są zapisywane w dodatkowym pliku z rozszerzeniem \lstinline|.sage|. Kod zamieszcza się w pomiędzy polecenami \lstinline|\begin{sagesilent}| i \lstinline|\end{sagesilent}|.
\end{itemize}
Możliwosci trybów działania oferowanych przez pakiet \SageTeX\ pozwalają na wykonywanie zróżnicowanych działań. Pozwala to zintegrować obliczenia z tekstem dla większości praktycznych przypadków, począwszy od prostych rachunków w tekście, a skończywszy na dużych obliczeniach z wykorzystaniem środowisk \lstinline|sageblock| i \lstinline|sagesilent|.
\aspect{Importowanie wzorow z SageMath}
Zasada działania modułu \SageTeX\ nie jest optymalna z punktu widzenia czasu niezbędnego do przebudowania dokumentu. Jak wspomniano na początku tego rozdziału, do wygenereowania dokumentu wynikowego niezbędne jest przeliczanie arkusz programu SageMath. Moduł implementuje funkcjonalność eliminowania zbędnych kompilacji, ale w praktyce nie zawsze się to sprawdza. Dlatego wygodnie jest skorzystać z niezależnego programu obliczeniowego (arkusza SageMath), z którego wyniki będę eksportowane do zbioru systemu \LaTeX. Importowanie zapisanych wyników odbywa się z wykorzystaniem makra \lstinline|\sage{<kod SageMath>}| oraz procedury \lstinline|load('nazwapliku.sobj')|. Ponadto odpowiada to praktyce, ponieważ w w większości projektów, obliczenia są wykonywane wcześniej niż opis przeprowadzonych prac. W ten sposób można wykorzystać dotychczasowe wyniki. W przypadku zależności matematycznych możliwe jest wywołanie procedury \lstinline|\sage{load('nazwapliku.sobj')}| w środowisku \lstinline|equation|. W ten sposób otrzymuje się otrzymuje się numerowane równanie zaweirające wyniki obliczeń. Sam kod pozostaje bardzo wydajny, ponieważ polega tylko na odczytanie obiektu języka Python. Ostatecznie otrzymuje się zintegrowany z obliczeniami tekstowy.
\begin{equation}
\omega_1=\sage{load('nazwa_row.sobj')}
\end{equation}
\aspect{Zalety stosowania \SageTeX}
Stosowanie pakietu \SageTeX pozwala na bardziej wydajną pracę z zależnościami matematycznymi i wynikami prowadzonych obliczeń. Ma na to wpływ kilka aspektów. Przede wszystkim rozpatrywany pakiet pozwala na osadzanie skalowalnych zależności, które będą odpowiadać na pojawiające się zmiany w tekście i obliczeniach. Kolejnym aspektem jest uniknięcie konieczności przepisywania wzorów do środowiska \LaTeX. Ostatecznie pakiet \SageTeX\ pozwala na integrację dokumenty z dowolnym zewnętrznym arkuszem programu SageMath i wykorzystywać w bardzo wydajny sposób wykonane tam rachunki.
\section{Eksportowanie wyników do dokumentu \LaTeX}
\aspect{co można i warto eksportować}
Elementy, które występują większości prac dyplomowych i przejściowych realizowanej na Politechnice Warszawskiej to zależności matematyczne, materiał graficzny oraz wykresy. W większości przypadków wzory oraz wykresy są wynikiem przeprowadzonych w pracy analiz. Zmiany obliczeń w trakcie realizacji tezy są zjawiskiem powszechnym. Dlatego warto rezultaty rachunków połączyć z tekstem w sposób dynamiczny.
Środowisko SageMath dostarcza procedury (metody) \lstinline|.save()| dla większości występujących tam obiektów. W przypadku zalężności matematycznych zapis wywołuje się bezpośrednio funkcją \lstinline|save(nazwa_pliku)|. Po jej wywołaniu w katalogu roboczy pojawia się plik o nazwie \lstinline|nazwa_pliku.sobj|. Przy pomocy procedury \lstinline|.load()| możliwe jest odczytanie zapisanego elementu.
Pliki graficzne lub wykresy wygenerowane z pomocą biblioteki Matplotlib mogą być zapisywane przy pomocy metody \lstinline|.savefig(nazwa_pliku.rozszerzenie)|. W ten sposób do kartoteki dodany zostanie plik graficzny o zadanym rozszerzeniu. Dalej można go wykorzystywać w standardowy sposób.
\aspect{umieszczanie elementów w dokumencie \LaTeX}
Osadzanie i automatyczne odświeżanie elementów w tekście zależy głównie od rozpatrywanego obiektu. Tak jak to opisano w rozdziale \ref{sec:sage_tex} zależności matematyczne najwygodniej zapisywać jako pliki \lstinline|.sobj| i wczytywać je przy pomocy pakietu \SageTeX.
\aspect{Przykład osadzania wzoru w tekście}
Kod wyświetlający wzór oraz generujący numerację w środowisku \lstinline|equation| jest następujący:
\begin{lstlisting}
\begin{equation}
\sage{load('nazwa_pliku.sobj')}
\end{equation}
\end{lstlisting}
Schematy oraz wykresy tworzone w arkuszu SageMath są zapisywane jako pliki graficzne. Zgodnie z opisem przedstawionym w rozdziale \ref{sec:elems_include} materiał ilustracyjny dołącza się poleceniem \lstinline|\includegraphic{.\sciezka\do\nazwa_pliku.rozserzenie}|.
\aspect{Przykład osadzania grafiki}
Program generujący pusty wykres, zmieniający się dynamicznie w trakcie zmian obliczeń jest następujący:
\begin{lstlisting}[language=Python]
import time
import datetime
#variable which describes plot title - dynamic changing property
nazwa_wykresu ='Data utworzenia_'+datetime.datetime.now()
import numpy as np
vector=np.array([ 2.0 , 2.2, 2.4, 2.6, 2.8])
import matplotlib
matplotlib.rcParams['text.usetex'] = False
matplotlib.rcParams['text.latex.unicode'] = False
matplotlib.rcParams['mathtext.fontset'] = 'cm'
import matplotlib.pyplot as plt
plt.title(nazwa_wykresu)
plt.savefig('nazwa_pliku.rozszerzenie')
\end{lstlisting}
Kod dołączający utworzony plik graficzny ma postać:
\begin{lstlisting}
\begin{figure}\label{fig:etykieta_wykresu}
\includegraphic{.\sciezka\do\nazwa_pliku.rozserzenie}
\caption{Podpis rysunku}
\end{figure}
\end{lstlisting}
Przygotowane w ten sposób środowisko obliczeniowe SageMath oraz dokument \LaTeX\ pozwala na automatyzację procesu uaktualniania zależności matematycznych oraz grafiki.
\aspect{Działanie finalnego dokumentu - podsumowanie rozdziału}
Zaprezentowane rozwiązania znacząco usprawniają działania związane z opracowywaniem zagadnienia. Środowiko \LaTeX\ dostarcza gotowych rozwiązań do automatycznego generowanie spisów, numeracji, bibliografii itp. Ponadto oprogramowanie to odciąża autora tekstu od żmudnego procesu formatowania. Szerokości tekstu, wielkość interlinii oraz liczba znaków w wierszu jest kontrolowana przez aplikację w taki sposób, aby efekt wizualny był jak najlepszy. Wykorzystanie pakietu \SageTeX\ oraz środowiko SageMath połączenie arkusza obliczeniowego (programu napisanego w języku programowania Python) z opracowaniem. Przy odpowiednim sposobie eksportowanie wyników oraz ich wczytywania do dokumentu tekstowego jest to metoda efektywna. Ponadto zmniejsza wymagany na przebudowanie dokumentu czas. Materiał graficzny można skutecznie generować z wykorzystaniem biblioteki Matplotlib, która z interfejsem \lstinline|PyPlot| pozwala na rysowanie wykresów w sposób znany z komercyjnego systemu MATLAB. Zastosowanie wszystkich przedstawionych rozwiązań skutkuje wygenerowań skalowalnego dokumentu, adaptującego się do częstych zmian jakie towarzyszą pisaniu prac przejściowych i dyplomowych.
\chapter{Podsumowanie}
Cel pracy dyplomowej został zrealizowany. Na wstępie przedstawiono wprowadzenie do tematyki, motywację podjęcia problematyki oraz metodykę rozwiązania. Dokonano przeglądu literatury światowej. Przedstawiono istniejące rozwiązania oraz porównano ich skuteczeność w pisaniu prac dyplomowych. Opisano aktualny stan wiedzy oraz podkreślono słuszność podjęcia proponowanej tematyki dyplomu. W dalszej części pracy opisano jej strukturę, zastosowany język tekstu, narzędzia do jego edycji oraz możliwe do wykorzystania programy wspomagające obliczenia inżynierskie.
W kolejnym rozdziale przedstawiono zastosowanie oprogramowania \LaTeX. Przybliżono strukturę budowy dokumentu w tym: wykorzystania pakietów, metodyki tworzenia wzorów, tabel oraz rysunków. Opisano składnię umożliwiającą automatyczne generowanie spisów treści, tabel, rysunków i wzorów. Dodatkowo możliwe jest stworzenie bibliografii jako zbiór kolejnych pozycji cytowanych w docelowym dokumencie. Przedstawiono szereg przydatnych funkcji oprogramowania \LaTeX.
Kolejny rozdział opisywał możliwość zastosowania środowiska SageMath jako narzędzie wspomagania obliczeń inżynierskich. Oprogramowanie wykorzystuje m.in. język Python. Pozwala on na wykonywanie szeregu obliczeń począwszy od najprostszych działań matematycznych kończąc na złożonych symulacja oraz analizach widmowych co jest istotne ze względu na rozwiązywanie zadań z tematyki dynamiki złożonych układów. Przedstawiono wykorzystanie bibliotek NumPy oraz Matplolib. Na koniec opisano możliwośc sprzęgnięcia środowiska SageMath z oprogramowanie \LaTeX. Taki zabieg pozwala na szybki sposób wykonywania obliczeń inżynierskich oraz tworzenia dokumentów tekstowych zawierających uzyskane wyniki w postaci liczbowej oraz graficznej.
Całość pracy podsumowano syntetycznymi wnioskami. Uzyskane wyniki pozwoliły zaproponować proces łatwego generowania dokumentów spełniających warunki stawiane pracom dyplomowym oraz artykułom naukowym.
\newpage
\addcontentsline{toc}{chapter}{Bibliografia}
\printbibliography
\clearpage
\addcontentsline{toc}{chapter}{Wykaz symboli i skrótów}
\chapter*{Wykaz symboli i skrótów}
\newglossaryentry{computer}
{
name=computer,
description={is a programmable machine that receives input,
stores and manipulates data, and provides
output in a useful format}
}
\gls{computer}
\gls{pi}
\glsaddall
\printglossaries
\begin{tabular}{cl}
$B$ & - indukcja magnetyczna w Teslach \\
$I$ & - długość przewodu w metrach \\
$v$ & - prędkość przecinania linii sił pola magnetycznego w kierunku prostopadłym w m/s\\
$I$ & - natężenie prądu w Amperach\\
$M$ & - moment obrotowy\\
$\varphi$ & - strumień magnetyczny\\
$R_{t}$ & - rezystancja twornika\\
$I_{t}$ & - wartość prądu twornika\\
$U$ & - napięcie zasilania\\
$E$ & - siła elektromotoryczna\\
$n$ & - prędkość obrotowa\\
$\varphi _{m}$ & - strumień maksymalny\\
$\left( n_{1}-n \right)$ & - prędkość obrotowa względem wirnika, nazywana również poślizgiem\\
$E_{2}$ & - Siła elektromotoryczna indukowana w jednej fazie uzwojenia nieruchomego wirnika\\
$I_{2}$ & - prąd płynący w wirniku\\
$\psi _{2}$ & - kąt przesunięcia fazowego między \( E_{2} \) oraz \( I_{2} \) \\
$M$ & - moment obrotowy wywierany na wirnik przez wirujące pole magnetyczne,\\
$\omega _{1}$ & - prędkość kątowa pola wirującego,\\
$n_{1}$ & - prędkość obrotowa wirującego pola synchronicznego\\
$c$ & - stała konstrukcyjna\\
$ \beta $ & - obrót linii działania gumy\\
$r\textsubscript{1 }$ & - ramię pierwsze\\
$r\textsubscript{2 }$ & - ramię drugie\\
$Fw$ & - siła na gumie\\
$Fv$ & - reakcja pionowa na drgania giętne\\
\end{tabular}
\begin{tabular}{cl}
$a$ & - odległość pionowa osi zaburzacza od osi wału\\
$b$ & - odległość pozioma osi zaburzacza od osi wału\\
$I\textsubscript{1}$ & - moment bezwładności wirnika\\
$I\textsubscript{2}$ & - moment bezwładności zaburzacza\\
$ \varphi $ \textsubscript{1} & - kąt obrotu wirnika\\
$ \varphi $ \textsubscript{2} & - kąt obrotu zaburzacza\\
$k\textsubscript{zab}$ & - współczynnik sprężystości zaburzacza\\
$(l-l\textsubscript{0})$ & - wydłużenie\\
\end{tabular}
\clearpage
\addcontentsline{toc}{chapter}{Spis rysunków}
\listoffigures
\clearpage
\addcontentsline{toc}{chapter}{Spis tabel}
\renewcommand{\listtablename}{Spis tabel}
\listoftables
\clearpage
\addcontentsline{toc}{chapter}{Spis załączników}
\chapter*{Spis załączników}
\begin{enumerate}
\item Nazwa 1 Przykładowe wzory
\item Nazwa 2 załącznika
\item Nazwa 3 załącznika
\item Nazwa 4 załącznika
\item Nazwa 5 załącznika
\end{enumerate}
\clearpage
\addcontentsline{toc}{chapter}{Załączniki}
\chapter*{Załączniki}
\renewcommand{\lstlistingname}{Załącznik}
\begin{lstlisting}[language=Python, caption=Przykładowe wzory]
Przykładowe wzory:
\begin{lstlisting}[language=Python]
\begin{equation}
f_{2}=\frac{p \left( n_{1}-n \right) }{60}=\frac{pn_{1}}{60}\frac{ \left( n_{1}-n \right) }{n_{1}}
\end{equation}
\end{lstlisting}
\begin{equation}
f_{2}=\frac{p \left( n_{1}-n \right) }{60}=\frac{pn_{1}}{60}\frac{ \left( n_{1}-n \right) }{n_{1}}
\end{equation}
\begin{lstlisting}[language=Python]
\begin{equation}v_{i}=\frac{dr_{i}}{dt}=\frac{dr_{i}}{ \partial q_{1}}q_{1}+\frac{dr_{i}}{ \partial q_{2}}q_{2}+ \ldots +\frac{dr_{i}}{ \partial q_{s}}q_{s}+\frac{dr_{i}}{ \partial t}
\end{equation}
\end{lstlisting}
\begin{equation}v_{i}=\frac{dr_{i}}{dt}=\frac{dr_{i}}{ \partial q_{1}}q_{1}+\frac{dr_{i}}{ \partial q_{2}}q_{2}+ \ldots +\frac{dr_{i}}{ \partial q_{s}}q_{s}+\frac{dr_{i}}{ \partial t}
\end{equation}
\begin{lstlisting}[language=Python]
\begin{equation} \frac{d}{dt}\frac{ \partial r_{i}}{ \partial q_{j}}= \sum _{l=1}^{s}\frac{ \partial^{2}r_{i}}{ \partial q_{j}q_{l}}q_{l}+\frac{ \partial^{2}r_{i}}{ \partial q_{j} \partial t}
\label{pierwsze_przeksz}
\end{equation}
\end{lstlisting}
\begin{equation} \frac{d}{dt}\frac{ \partial r_{i}}{ \partial q_{j}}= \sum _{l=1}^{s}\frac{ \partial^{2}r_{i}}{ \partial q_{j}q_{l}}q_{l}+\frac{ \partial^{2}r_{i}}{ \partial q_{j} \partial t}
\label{pierwsze_przeksz}
\end{equation}
\begin{lstlisting}[language=Python]
\begin{equation}\frac{d}{dt} \sum _{i=1}^{n}\frac{ \partial}{ \partial q_{j}} \left( \frac{1}{2}m_{i}r_{i}^{2} \right) - \sum _{i=1}^{n}\frac{ \partial}{ \partial q_{j}} \left( \frac{1}{2}m_{i}r_{i}^{2} \right) =\frac{d}{dt}\frac{ \partial}{ \partial q_{j}} \left( \sum _{i=1}^{n}\frac{1}{2}m_{i}r_{i}^{2} \right) -\frac{ \partial}{ \partial q_{j}} \left( \sum _{i=1}^{n}\frac{1}{2}m_{i}r_{i}^{2} \right) \end{equation}
\end{lstlisting}
\begin{equation}\frac{d}{dt} \sum _{i=1}^{n}\frac{ \partial}{ \partial q_{j}} \left( \frac{1}{2}m_{i}r_{i}^{2} \right) - \sum _{i=1}^{n}\frac{ \partial}{ \partial q_{j}} \left( \frac{1}{2}m_{i}r_{i}^{2} \right) =\frac{d}{dt}\frac{ \partial}{ \partial q_{j}} \left( \sum _{i=1}^{n}\frac{1}{2}m_{i}r_{i}^{2} \right) -\frac{ \partial}{ \partial q_{j}} \left( \sum _{i=1}^{n}\frac{1}{2}m_{i}r_{i}^{2} \right) \end{equation}
\begin{lstlisting}[language=Python]
\begin{equation}q_{a}=T_{a} \delta _{aa}+T_{b} \delta _{ab}\end{equation}
\end{lstlisting}
\begin{equation}q_{a}=T_{a} \delta _{aa}+T_{b} \delta _{ab}\end{equation}
\begin{lstlisting}[language=Python]
\begin{equation}a_{n}=\frac{2}{T} \int _{0}^{T}F \left( t \right) sinn \omega t \mathrm{d} t,~ n=1,2, \ldots\end{equation}
\end{lstlisting}
\begin{equation}a_{n}=\frac{2}{T} \int _{0}^{T}F \left( t \right) sinn \omega t \mathrm{d} t,~ n=1,2, \ldots\end{equation}
\begin{lstlisting}[language=Python]
\begin{equation}F \left( t \right) =\frac{1}{2i} \left[ \sum _{n=1}^{\infty} \left( a_{n}+ib_{n} \right) e^{in \omega t}- \sum _{n=0}^{\infty} \left( a_{n}+ib_{n} \right) e^{-in \omega t} \right]\label{wzor_zesp_szer}\end{equation}
\end{lstlisting}
\begin{equation}F \left( t \right) =\frac{1}{2i} \left[ \sum _{n=1}^{\infty} \left( a_{n}+ib_{n} \right) e^{in \omega t}- \sum _{n=0}^{\infty} \left( a_{n}+ib_{n} \right) e^{-in \omega t} \right]\label{wzor_zesp_szer}\end{equation}
\begin{lstlisting}[language=Python]
\begin{equation}h+\omega _{0}^{2}h=e\Omega^{2}cos\Omega t+\frac{e\alpha_{ \beta }}{2 \beta^{2}J}\left\{sin\left[\left(\beta+1\right)\Omega t+\eta_{\beta }\right]-sin\left[\beta-1\right]\Omega t+\eta_{\beta}\right\}\end{equation}
\end{lstlisting}
\begin{equation}h+\omega _{0}^{2}h=e\Omega^{2}cos\Omega t+\frac{e\alpha_{ \beta }}{2 \beta^{2}J}\left\{sin\left[\left(\beta+1\right)\Omega t+\eta_{\beta }\right]-sin\left[\beta-1\right]\Omega t+\eta_{\beta}\right\}\end{equation}
\begin{lstlisting}[language=Python]
\begin{equation}
\begin{bmatrix}
I_1 & 0\\
0 & I_2
\end{bmatrix}
\begin{bmatrix}
\ddot{\phi_1}\\
\ddot{\phi_2}
\end{bmatrix}
+
\begin{bmatrix}
\kappa +s & -\kappa\\
-\kappa & \kappa
\end{bmatrix}
\begin{bmatrix}
\phi_1\\
\phi_2
\end{bmatrix}
=
\begin{bmatrix}
M_n\\
0
\end{bmatrix}
\end{equation}
\end{lstlisting}
\begin{equation}
\begin{bmatrix}
I_1 & 0\\
0 & I_2
\end{bmatrix}
\begin{bmatrix}
\ddot{\phi_1}\\
\ddot{\phi_2}
\end{bmatrix}
+
\begin{bmatrix}
\kappa +s & -\kappa\\
-\kappa & \kappa
\end{bmatrix}
\begin{bmatrix}
\phi_1\\
\phi_2
\end{bmatrix}
=
\begin{bmatrix}
M_n\\
0
\end{bmatrix}
\end{equation}
\end{lstlisting}
\begin{lstlisting}[language=Python, caption=Nazwa drugiego załącznika]
Tekst drugiego zalacznika
\end{lstlisting}
\begin{lstlisting}[language=Python, caption=Nazwa trzeciego załącznika]
Tekst trzeciego zalacznika
\end{lstlisting}
\newpage
\begin{center}
\begin{lstlisting}[caption=nazwa czwartego załącznika z rysunkiem]
\end{lstlisting}
\includegraphics[width=23cm,angle=90]{./media/kol1_1kHz_log.jpg}
\caption{}
\end{center}
\newpage
\begin{center}
\begin{lstlisting}[caption=nazwa piątego załącznika z rysunkiem]
\end{lstlisting}
\includegraphics[width=23cm,angle=90]{./media/kol2_1kHz_log.jpg}
\caption{}
\end{center}
\end{document}