uni

University stuff
git clone git://git.christosmarg.xyz/uni-assignments.git
Log | Files | Refs | README | LICENSE

doc.tex (27609B)


      1 \documentclass{article}
      2 \usepackage[utf8]{inputenc}
      3 \usepackage[greek,english]{babel}
      4 \usepackage{alphabeta}
      5 \usepackage{fancyhdr}
      6 \usepackage{listings}
      7 \usepackage{mathtools}
      8 \usepackage{graphicx}
      9 \usepackage{blindtext}
     10 \usepackage{xcolor}
     11 \usepackage{float}
     12 \usepackage[backend=biber]{biblatex}
     13 
     14 \title{Σήματα και Συστήματα - Εργασία 1}
     15 \author{Χρήστος Μαργιώλης - 19390133}
     16 \date{Μάρτιος 2021}
     17 
     18 % uniwa logo
     19 
     20 \begin{document}
     21 
     22 \begin{titlepage}
     23         \maketitle
     24 \end{titlepage}
     25 
     26 \renewcommand{\contentsname}{Περιεχόμενα}
     27 \tableofcontents
     28 
     29 \section{'Ασκηση 1}
     30 
     31 \begin{itemize}
     32         \item Δημιουργήστε ένα διάνυσμα $a = [0,0.1,0.2,...,10]$ και ένα διάνυσμα
     33                 $b = [\cos(0),\cos(0.2),\cos(0.4),...,\cos(20)]$
     34         \item Να βρεθούν τα:
     35         \begin{itemize}
     36                 \item $c = a / b$
     37                 \item $d = a^4$
     38                 \item το εσωτερικό γινόμενο των $a$ και $b$.
     39         \end{itemize}
     40 \end{itemize}
     41 
     42 Για να δημιουργήσουμε ένα διάνυσμα, τού δίνουμε ένα όνομα και στην συνέχεια μέσα
     43 σε [] ορίζουμε τα στοιχεία χωρισμένα είτε με κόμμα είτε με κενά. Το διάνυσμα
     44 που ζητείται από την εκφώνηση έχει την μορφή $0,0.1,0.2...,10$ το οποίο σημαίνει
     45 ότι είναι ένα διάνυσμα με αριθμούς από το 1 έως το 10 με διάστηματα 0.1. Για να
     46 αναπαραστήσουμε κάτι τέτοιο αυτόματα χωρίς να γράψουμε όλους τους αριθμούς μηχανικά,
     47 δηλώνουμε το διάνυσμα ως εξής: αρχή:διάστημα:τέλος. Οπότε:
     48 
     49 \begin{lstlisting}[language=octave]
     50         octave:1> a = 0:0.1:10
     51 \end{lstlisting}
     52 
     53 Αντίστοιχα για το διάνυσμα $b$, βλέπουμε ότι τα διαστήματα είναι $0.2$
     54 και σε κάθε αριθμό του διανύσματος υπολογίζεται το συνημίτονο. Θα ορίσουμε
     55 ένα διάνυσμα από το 0 έως το 20 με διαστήματα $0.2$ και θα υπολογίσουμε
     56 τα συνημίτονα όλων των στοιχείων χρησιμοποιώντας την συνάρτηση \lstinline{cos()}:
     57 
     58 \begin{lstlisting}[language=octave]
     59         octave:2> b = cos(0:0.2:20)
     60 \end{lstlisting}
     61 
     62 Για την διαίρεση διανυσμάτων χρησιμοποιούμε το σύμβολο / που χρησιμοποιείται
     63 γενικότερα για διαίρεση, οπότε το $c = a / b$ θα γίνει:
     64 
     65 \begin{lstlisting}[language=octave]
     66         octave:3> c = a / b
     67         c = 0.89415
     68 \end{lstlisting}
     69 
     70 Προκειμένου να υψώσουμε σε δύναμη όλα τα στοιχεία ενός διανύσματος πρέπει να
     71 χρησιμοποιήσουμε τον τελεστή \lstinline{.^}, οπότε η πράξη $d = a^4$ θα γραφτεί
     72 ως \lstinline{d = a.^4}. Αυτό το statement θα υπολογίσει ουσιαστικά την σειρά
     73 \[d = [a_1^4, a_2^4, a_3^4, ..., a_n^4]\]
     74 Η στοίχηση της εξόδου από το Octave έχει τροποποιηθεί
     75 επειδή είναι πολύ μεγάλη και δεν χωράει σωστά στην σελίδα:
     76 
     77 \begin{lstlisting}[language=octave]
     78         octave:4> d = a.^4
     79 \end{lstlisting}
     80 \begin{lstlisting}[language=octave,basicstyle=\tiny]
     81         d =
     82 
     83  Columns 1 through 17:
     84 
     85 0.00000  0.00010   0.00160  0.00810  0.02560  0.06250  0.12960  0.24010 
     86 0.40960  0.65610   1.00000  1.46410  2.07360  2.85610  3.84160  5.06250  6.55360
     87 
     88  Columns 18 through 34:
     89 
     90 8.35210   10.49760  13.03210  16.00000  19.44810  23.42560  27.98410  33.17760
     91 39.06250  45.69760  53.14410  61.46560  70.72810  81.00000  92.35210  104.85760  118.59210
     92 
     93  Columns 35 through 51:
     94 
     95 133.63360  150.06250  167.96160  187.41610  208.51360  231.34410  256.00000
     96 282.57610  311.16960  341.88010  374.80960  410.06250  447.74560  487.96810
     97 530.84160  576.48010  625.00000
     98 
     99  Columns 52 through 68:
    100 
    101 676.52010   731.16160   789.04810   850.30560   915.06250   983.44960   1055.60010
    102 1131.64960  1211.73610  1296.00000  1384.58410  1477.63360  1575.29610  1677.72160
    103 1785.06250  1897.47360  2015.11210
    104 
    105  Columns 69 through 85:
    106 
    107 2138.13760  2266.71210  2401.00000  2541.16810  2687.38560  2839.82410
    108 2998.65760  3164.06250  3336.21760  3515.30410  3701.50560  3895.00810
    109 4096.00000  4304.67210  4521.21760  4745.83210  4978.71360
    110 
    111  Columns 86 through 101:
    112 
    113 5220.06250  5470.08160  5728.97610  5996.95360  6274.22410  6561.00000
    114 6857.49610  7163.92960  7480.52010  7807.48960  8145.06250  8493.46560
    115 8852.92810  9223.68160  9605.96010  10000.00000
    116 \end{lstlisting}
    117 
    118 Για να υπολογίσουμε το εσωτερικό γινόμενο του $a$ και $b$, θα χρησιμοποιήσουμε
    119 την συνάρτηση \lstinline{dot()} (Dot Product). Η συνάρτηση αυτή όταν εφαρμοστεί
    120 στα διανύσματα $a$ και $b$, θα υπολογίσει την παρακάτω παράσταση:
    121 
    122 \[x = a_1 \cdot b_1 + a_2 \cdot b_2 + a_3 \cdot b_3 + ... + a_n \cdot b_n\]
    123 
    124 Οπότε:
    125 
    126 \begin{lstlisting}[language=octave]
    127         octave:5> dot(a, b)
    128         ans = 46.051
    129 \end{lstlisting}
    130 
    131 \section{'Ασκηση 2}
    132 
    133 \begin{itemize}
    134         \item Να γραφεί συνάρτηση (function) η οποία θα παίρνει ως όρισμα
    135                 έναν αριθμό σε ακτίνια (rad) και θα επιστρέφει την τιμή του
    136                 σε μοίρες.
    137         \item Βρείτε πόσες μοίρες είναι τα $\pi/4$ rad.
    138 \end{itemize}
    139 
    140 Για να δηλώσουμε μία συνάρτηση χρησιμοποιούμε την εντολή \lstinline{function}
    141 ακολουθώμενη από από το όνομα της συνάρτησης. Εάν θέλουμε η συνάρτηση να δέχεται
    142 ορίσματα, τα δηλώνουμε σε παρένθεση μετά το όνομα της συνάρτησης. Στην περίπτωση
    143 που θέλουμε να επιστρέφεται και κάποια τιμή, δηλώνουμε το όνομά της μεταβλητής
    144 που επιστρέφεται πριν το όνομα της συνάρτησης. Τέλος, για να σημάνουμε το τέλος
    145 της συνάρτησης, γράφουμε την εντολή \lstinline{endfunction}
    146 
    147 Για την συνάρτηση μετατροπής ακτινίων σε μοίρες θα χρειαστεί να υλοποιήσουμε
    148 τον τύπο:
    149 \[deg = rad \cdot 180 / \pi\]
    150 Οπότε βάσει τα παραπάνω, η συνάρτηση θα υλοποιηθεί ως εξής:
    151 
    152 \begin{lstlisting}[language=octave]
    153         function ret = deg(rad)
    154                 ret = rad * 180 / pi
    155         endfunction
    156 \end{lstlisting}
    157 
    158 Τώρα μπορούμε να καλέσουμε την συνάρτηση δίνοντας της μία τιμή σε ακτίνια.
    159 Τα $\pi / 4$ ακτίνια σε μοίρες είναι:
    160 
    161 \begin{lstlisting}[language=octave]
    162         octave:6> x = deg(pi / 4)
    163         x = 45
    164 \end{lstlisting}
    165 
    166 \section{'Ασκηση 3}
    167 
    168 \begin{itemize}
    169         \item Να γραφεί συνάρτηση (function) που να σχεδιάζει τη
    170                 συνάρτηση: \[\sin c(x) = \frac{\sin(\pi x)}{\pi x}\]
    171         \item Σχεδιάστε τη για το διάστημα $[-2\pi,2\pi]$.
    172 \end{itemize}
    173 
    174 Για να σχεδιάσουμε την συνάρτηση 
    175 \[\sin c(x) = \frac{\sin(\pi x)}{\pi x}, -2\pi < x < 2\pi\]
    176 πρέπει να ακολουθήσουμε τα εξής βήματα στο Octave:
    177 
    178 \begin{itemize}
    179         \item Να ορίσουμε το διάστημα $[-2\pi, 2\pi]$
    180         \item Να υπολογίσουμε το $c(x)$ για κάθε $x$
    181         \item Να υπολογίσουμε το $\sin c(x)$
    182 \end{itemize}
    183 
    184 Αρχικά, θα δηλώσουμε το διάστημα $[-2\pi,2\pi]$ με αποστάσεις 0.1
    185 από τον κάθε αριθμό ώστε να έχουμε μία πιο ακριβή γραφική παράσταση.
    186 Το διάνυσμα που θα προκύψει το αποθηκεύουμε στην μεταβλητή $x$:
    187 
    188 \begin{lstlisting}[language=octave]
    189         octave:7> x = -2*pi:0.1:2*pi
    190 \end{lstlisting}
    191 
    192 'Επειτα υπολογίζουμε την συνάρτηση 
    193 \[c(x) = \frac{\sin(\pi x)}{\pi x}\]
    194 Είναι σημαντικό να σημειωθεί ότι
    195 πρέπει να χρησιμοποιηθεί ο τελεστής ./ ώστε να επιστραφεί διάνυσμα
    196 και όχι ένας αριθμός:
    197 
    198 \begin{lstlisting}[language=octave]
    199         octave:8> c = sin(x * pi) ./ (pi * x)
    200 \end{lstlisting}
    201 
    202 Θα υπολογίσουμε το ημίτονο της συνάρτησης $c(x)$ κατευθείαν στην κλήση
    203 της συνάρτησης σχεδίασης - η συναρτήση αυτή είναι η \lstinline{plot()} και παίρνει
    204 ως ορίσματα τις τιμές του άξονα $x$ και $y$ (\lstinline{plot(x, y)}). Στην
    205 προκειμένη περίπτωση θα της δώσουμε ως $x$ το $x$ που υπολογίσαμε στην αρχή,
    206 και ως $y$ το συνημίτονο της συνάρτησης $c(x)$:
    207 
    208 \begin{lstlisting}[language=octave]
    209         octave:9> plot(x, sin(c))
    210 \end{lstlisting}
    211 
    212 Παρατηρούμε ότι η γραφική παράσταση που προκύπτει έχει ένα \textit{ενδιαφέρον}
    213 σχήμα:
    214 
    215 \begin{figure}[H]
    216         \centering
    217         \includegraphics[width=\linewidth]{res/fig1.jpg}
    218         \caption{$\sin c(x) = \frac{\sin(\pi x)}{\pi x}, -2\pi < x < 2\pi$}
    219 \end{figure}
    220 
    221 \section{'Ασκηση 4}
    222 
    223 \begin{itemize}
    224         \item Να γραφεί συνάρτηση (function) η οποία θα παίρνει ως όρισμα
    225         έναν μιγαδικό αριθμό και θα επιστρέφει:
    226         \begin{itemize}
    227                 \item Την φάση.
    228                 \item Το μέτρο.
    229                 \item Το πραγματικό μέρος.
    230                 \item Το φανταστικό μέρος του μιγαδικού.
    231         \end{itemize}
    232         \item Υπολογίστε τα παραπάνω μεγέθη για τους εξής μιγαδικούς:
    233         \begin{itemize}
    234                 \item $i$
    235                 \item $-i$
    236                 \item $1$
    237                 \item $e^{3+4i}$
    238         \end{itemize}
    239 \end{itemize}
    240 
    241 Το Octave (και το Matlab) διαθέτουν συναρτήσεις χειρισμού μιγαδικών αριθμών.
    242 
    243 Για τον υπολογισμό της φάσης ενός μιγαδικού αριθμού χρησιμοποιούμε την συνάρτηση
    244 \lstinline{angle()}. Η συνάρτηση αυτή όταν της δωθεί μιγαδικός αριθμός θα
    245 υπολογίσει τον παρακάτω τύπο:
    246 \[\theta = atan(y, x)\]
    247 
    248 Ο υπολογισμός του μέτρου ενός μιγαδικού αριθμό γίνεται μέσω της συνάρτησης
    249 \lstinline{abs()} η οποία εφαρμόζει τον παρακάτω τύπο:
    250 \[|z| = \sqrt{x^2 + y^2}\]
    251 
    252 Οι συναρτήσεις \lstinline{real()} και \lstinline{imag()} επιστρέφουν το πραγματικό
    253 και φανταστικό αντίστοιχα μέρος ενός μιγαδικού αριθμού.
    254 
    255 Οπότε με την χρήση όλων των παραπάνω συναρτήσεων μπορούμε να υλοποιήσουμε μία
    256 συνάρτηση η οποία υπολογίζει και επιστρέφει κατευθείαν τις τέσσερεις αυτές
    257 τιμές (φάση, μέτρο, πραγματικό μέρος, φανταστικό μέρος):
    258 
    259 \begin{lstlisting}[language=octave]
    260         function imaginary(num)
    261                 phase = angle(num)
    262                 magnitude = abs(num)
    263                 realpart = real(num)
    264                 imagpart = imag(num)
    265         endfunction
    266 \end{lstlisting}
    267 
    268 Τώρα μπορούμε να δώσουμε στην συνάρτηση οποιοδήποτε μιγαδικό αριθμό για
    269 επαληθεύσουμε ότι λειτουργεί σωστά.
    270 
    271 Για $i$:
    272 \begin{lstlisting}[language=octave]
    273         octave:10> imaginary(i)
    274         phase     =  1.5708
    275         magnitude =  1
    276         realpart  =  0
    277         imagpart  =  1
    278 \end{lstlisting}
    279 
    280 Για $-i$:
    281 \begin{lstlisting}[language=octave]
    282         octave:11> imaginary(-i)
    283         phase     = -1.5708
    284         magnitude =  1
    285         realpart  = -0
    286         imagpart  = -1
    287 \end{lstlisting}
    288 
    289 Για $1$:
    290 \begin{lstlisting}[language=octave]
    291         octave:12> imaginary(1)
    292         phase     = 0
    293         magnitude = 1
    294         realpart  = 1
    295         imagpart  = 0
    296 \end{lstlisting}
    297 
    298 Για $e^{3 + 4i}$:
    299 \begin{lstlisting}[language=octave]
    300         octave:13> imaginary(e^(3 + 4*i))
    301         phase     = -2.2832
    302         magnitude =  20.086
    303         realpart  = -13.129
    304         imagpart  = -15.201
    305 \end{lstlisting}
    306 
    307 \section{'Ασκηση 5}
    308 
    309 \begin{itemize}
    310         \item Διαχωρίστε το διάστημα $[0, 2\pi]$ σε 500 σημεία.
    311         \item Να σχεδιάσετε σε αυτό το διάστημα (στο ίδιο figure)
    312                 τα παρακάτω σήματα:
    313         \begin{itemize}
    314                 \item $f(x) = xe^{-x}, 0 < x < 2\pi$
    315                 \item $y(x) = 2^{cos(x)}, 0 < x < 2\pi$
    316         \end{itemize}
    317         \item Βάλτε τίτλο στην γραφική παράσταση (ό,τι θέλετε).
    318         \item Βάλτε ταμπέλες στον $x$ και $y$ άξονα (ό,τι θέλετε).
    319         \item Βάλτε μία επιγραφή για όλες τις καμπύλες με την εντολή
    320                 \lstinline{legend}.
    321         \item Να σχεδιάσετε τα δύο παραπάνω σήματα σε ένα δεύτερο figure
    322                 αλλά σε \textbf{2 διαφορετικά} παράθυρα.
    323 \end{itemize}
    324 
    325 Για να χωρίσουμε το διάστημα $[0,2\pi]$, απλώς θα διαιρέσουμε το $2\pi$ με
    326 500 ώστε να μας δώσει τις αποστάσεις ανάμεσα στους αριθμούς του διαστήματος.
    327 Το διάνυσμα που θα φτιάξουμε εννοείται ότι θα το χρησιμοποιήσουμε ως $x$.
    328 
    329 \begin{lstlisting}[language=octave]
    330         octave:14> 2 * pi / 500
    331         ans = 0.012566
    332 \end{lstlisting}
    333 
    334 Με αυτό το 0.012566 θα φτιάξουμε το διάνυσμα $x$:
    335 
    336 \begin{lstlisting}[language=octave]
    337         octave:15> 0:0.012566:2*pi
    338 \end{lstlisting}
    339 
    340 Τώρα μπορούμε να υπολογίσουμε τα $f(x)$ και $y(x)$. Με παρόμοια λογική όπως
    341 και στην προηγούμενη άσκηση, πρέπει να χρησιμοποιηθεί ο τελεστής \lstinline{.^}
    342 και \lstinline{.*} ώστε να πάρουμε διάνυσμα και όχι αριθμό:
    343 
    344 \begin{lstlisting}[language=octave]
    345         octave:16> f = x.*e.^-x
    346         octave:17> y = 2.^cos(x)
    347 \end{lstlisting}
    348 
    349 Σχεδιάζουμε την γραφική παράσταση της $f(x)$:
    350 
    351 \begin{lstlisting}[language=octave]
    352         octave:18> plot(x, f)
    353 \end{lstlisting}
    354 
    355 Τώρα προκειμένου να σχεδιάσουμε και την γραφική παράσταση της $y(x)$ στο ίδιο
    356 figure πρέπει να δώσουμε στο Octave την εντολή \lstinline{hold on} ώστε να μην
    357 δημιουργήσει νέο παράθυρο για την $y(x)$. Στην συνέχεια σχεδιάζουμε και την $y(x)$:
    358 
    359 \begin{lstlisting}[language=octave]
    360         octave:19> hold on
    361         octave:20> plot(x, y)
    362 \end{lstlisting}
    363 
    364 Σε αυτό το σημείο έχουνε σχεδιαστεί και οι δύο γραφικές παραστάσεις στο ίδιο figure.
    365 
    366 \begin{figure}[H]
    367         \centering
    368         \includegraphics[width=\linewidth]{res/fig2.jpg}
    369         \caption{Μμπλε: $f(x) = xe^{-x}$, Πορτοκαλί: $y(x) = xe^{-x}$}
    370 \end{figure}
    371 
    372 Για να δώσουμε τίτλο στην γραφική παράσταση, χρησιμοποιούμε την συνάρτηση
    373 \lstinline{title()} και σαν όρισμα της δίνουμε ένα string με τον τίτλο που θέλουμε.
    374 
    375 \begin{lstlisting}[language=octave]
    376         octave:21> title("f(x) and y(x)")
    377 \end{lstlisting}
    378 
    379 Για τις ταμπέλες (labels) χρησιμοποιούμε τις συναρτήσεις \lstinline{xlabel()}
    380 και \lstinline{ylabel()} για τους άξονες $x$ και $y$ αντίστοιχα. Σαν όρισμα δέχονται
    381 ένα string με τις ταμπέλες που θέλουμε:
    382 
    383 \begin{lstlisting}[language=octave]
    384         octave:22> xlabel("x")
    385         octave:23> ylabel("y")
    386 \end{lstlisting}
    387 
    388 Για να δώσουμε μία επιγραφή καλούμε την συνάρτηση \lstinline{legend()}.
    389 Εφόσον θέλουμε το legend να περιέχει επιγραφή και για τις δύο συνάρτησεις
    390 που σχεδιάσαμε, θα δώσουμε ως όρισμα στην \lstinline{legend()} τις επιγραφές
    391 κλεισμένες σε αγκύλες και χωρισμένες με κόμμα:
    392 
    393 \begin{lstlisting}[language=octave]
    394         octave:24> legend({"f(x)", "y(x)"})
    395 \end{lstlisting}
    396 
    397 \begin{figure}[H]
    398         \centering
    399         \includegraphics[width=\linewidth]{res/fig3.jpg}
    400         \caption{$f(x)$ και $y(x)$ με επιγραφές και τίτλο}
    401 \end{figure}
    402 
    403 Για να σχεδιάσουμε σε ξεχωριστά παράθυρα τις συναρτήσεις $f(x)$ και $y(x)$
    404 θα ακολουθήσουμε την ίδια διακασία με πριν, αλλά χωρίς την εντολή
    405 \lstinline{hold on}. Δηλαδή απλώς θα καλέσουμε δύο φορές την
    406 \lstinline{plot()} - μία με όρισμα την $f(x)$ και μία με την $y(x)$.
    407 
    408 \begin{lstlisting}[language=octave]
    409         octave:25> plot(x, f)
    410 \end{lstlisting}
    411 
    412 \begin{figure}[H]
    413         \centering
    414         \includegraphics[width=\linewidth]{res/fig4.jpg}
    415         \caption{$f(x)$}
    416 \end{figure}
    417 
    418 \begin{lstlisting}[language=octave]
    419         octave:26> plot(x, y)
    420 \end{lstlisting}
    421 
    422 \begin{figure}[H]
    423         \centering
    424         \includegraphics[width=\linewidth]{res/fig5.jpg}
    425         \caption{$f(x)$}
    426 \end{figure}
    427 
    428 \section{'Ασκηση 6}
    429 
    430 \begin{itemize}
    431         \item Υπολογίστε τις μερικές παραγώγους της συνάρτησης:
    432                 \[f(x, t) = \cos x + \sin t + e^t\]
    433         \item Υπολογίστε το ολοκλήρωμα:
    434                 \[\int_{0}^{\infty} te^tdt\]
    435         \item Υπολογίστε το διπλό αόριστο ολοκλήρωμα:
    436                 \[\iint x^3e^tdxdt\]
    437         \item Υπολογίστε το άθροισμα:
    438                 \[\sum_{k = 0}^{\infty} \frac{x^k}{k!}\]
    439         \item Μετατρέψτε σε ρητή την παράσταση:
    440                 \[f(x) = \frac{3}{x+2} + \frac{x}{x^2+1}\]
    441         \item Να λυθεί η εξίσωση δευτέρου βαθμού:
    442                 \[f(x) = x^3 + 2x^2 - x - 2\]
    443 \end{itemize}
    444 
    445 Πρώτα από όλα, για την χρήση συναρτήσεων υπολογισμού παραγώγων και ολοκληρωμάτων,
    446 χρειαζόμαστε το \lstinline{symbolic} πακέτο του Octave - κάτι αντίστοιχο υπάρχει
    447 και στο Matlab. Αφού το εγκατασήσουμε, το φορτώνουμε στο Octave ως εξής:
    448 
    449 \begin{lstlisting}[language=octave]
    450         octave:27> pkg load symbolic
    451 \end{lstlisting}
    452 
    453 \begin{itemize}
    454 \item
    455 Προκειμένου να υπολογίσουμε την μερική παράγωγο της συνάρτησης 
    456 \[f(x, t) = \cos x + \sin t + e^t\]
    457 πρέπει να ορίσουμε της συμβολικές μεταβλητές $x$ και $t$:
    458 \begin{lstlisting}[language=octave]
    459         octave:28> syms x t
    460 \end{lstlisting}
    461 
    462 Στην συνέχεια ορίζουμε την συνάρτηση $f(x, t)$:
    463 \begin{lstlisting}[language=octave]
    464         octave:29> y = cos(x) + sin(t) + e^t
    465         y = (sym)
    466 \end{lstlisting}
    467 
    468 Τέλος, υπολογίζουμε την μερική παράγωγο:
    469 
    470 \[\frac{\partial}{\partial x}f(x, t) \Rightarrow
    471 \frac{\partial}{\partial x}(\cos x + \sin t + e^t) \]
    472 
    473 Για τον υπολογισμό της παραγώγου χρησιμοποιούμε την συνάρτηση
    474 \lstinline{diff()}:
    475 \begin{lstlisting}[language=octave]
    476         octave:30> diff(y, x)
    477         ans = (sym) -sin(x)
    478 \end{lstlisting}
    479 
    480 Μπορούμε να επαληθεύσουμε ότι το αποτέλεσμα είναι σωστό εφόσον:
    481 \[\frac{\partial}{\partial x}(\cos x + \sin t + e^t) \Rightarrow
    482 \frac{\partial}{\partial x} \cos x +
    483 \frac{\partial}{\partial x} \sin t +
    484 \frac{\partial}{\partial x} e^t \Rightarrow
    485 -\sin x + 0 + 0 \Rightarrow -\sin x\]
    486 
    487 \item
    488 Για να υπολογίσουμε το ολοκλήρωμα
    489 \[\int_{0}^{\infty} te^{-t}dt\]
    490 αρχικά ορίζουμε την συνάρτηση που θέλουμε να ολοκληρώσουμε. Στο πρώτο
    491 μέρος (\lstinline{@(t)}) ορίζουμε την μεταβλητή ως προς την οποία
    492 θέλουμε να ολοκληρώσουμε:
    493 \begin{lstlisting}[language=octave]
    494         octave:31> f = @(t) t *. e .^(-t)
    495 \end{lstlisting}
    496 Μετά με την χρήση της συνάρτησης \lstinline{integral()} υπολογίζουμε το
    497 ολοκλήρωμα. Η συνάρτηση αυτή παίρνει τρία ορίσματα: την συνάρτηση, το πάνω
    498 και το κάτω όριο. Οπότε:
    499 \begin{lstlisting}[language=octave]
    500         octave:32> integral(f, 0, Inf)
    501         ans =  1
    502 \end{lstlisting}
    503 
    504 \item
    505 Δεν υλοποιήθηκε λόγο απώλειας χρόνου.
    506 
    507 \item
    508 Δεν υλοποιήθηκε λόγο απώλειας χρόνου.
    509 
    510 \item
    511 Δεν υλοποιήθηκε λόγο απώλειας χρόνου.
    512 
    513 \item
    514 Για να λύσουμε την τριτοβάθμια εξίσωση:
    515 \[f(x) = x^3 + 2x^2 - x - 2\]
    516 oρίζουμε αρχικά την συμβολική μεταβλητή $x$ και την συνάρτηση $f(x)$:
    517 \begin{lstlisting}[language=octave]
    518         octave:33> syms x
    519         octave:34> f = x^3 + 2*x^2 - x - 2
    520 \end{lstlisting}
    521 Βρίσκουμε τις ρίζες της παραπάνω τριτοβάθμιας εξίσωσης με την χρήση της
    522 συνάρτησης \lstinline{solve()}:
    523 \begin{lstlisting}[language=octave]
    524         octave:35> solve(f)
    525         ans = [-2 -1 1]
    526 \end{lstlisting}
    527 
    528 \end{itemize}
    529 
    530 \section{'Ασκηση 7}
    531 
    532 \begin{itemize}
    533         \item Να γραφεί function για τον υπολογισμό των ριζών ενός τριωνύμου.
    534 \end{itemize}
    535 
    536 Προκειμένου να υπολογίσουμε τις ρίζες ενός τριωνύμου χρειάζεται να χρησιμοποιήσουμε
    537 λογικούς τελεστές και \lstinline{if} statements. Ο λόγος που χρειάζονται είναι
    538 διότι υπάρχουνε ορισμένες περιπτώσεις που οι ρίζες του τριωνύμου δεν μπορούνε να
    539 υπολογιστούν, και όταν μπορούν, μπορεί να έχουμε είτε μία είτε δύο ρίζες, οπότε
    540 πρέπει να καλύψουμε όλες τις περιπτώσεις αυτές.
    541 
    542 Ο τρόπος που δουλεύουνε τα \lstinline{if} statements στο Octave είναι ο ίδιος με
    543 τις περισσότερες γλώσσες προγραμματισμού, δηλαδή:
    544 \begin{lstlisting}[language=octave]
    545         if (condition)
    546                 code
    547         elseif (condition)
    548                 code
    549         else
    550                 code
    551         endif
    552 \end{lstlisting}
    553 
    554 Αρχικά η συνάρτηση δέχεται τρία ορίσματα, τα $a$, $b$, και $c$ εφόσον το τριώνυμο
    555 έχει την μορφή:
    556 \[ax^2 + bx + c = 0\]
    557 
    558 'Επειτα πρέπει να σιγουρέψουμε ότι το $a$ \textit{δεν} είναι 0, διότι σε αυτή την
    559 περίπτωση δεν έχουμε δευτεροβάθμια εξίσωση.
    560 
    561 Στην συνέχεια υπολογίζουμε την διακρίνουσα χρησιμοποιώντας τον κλασσικό τύπο:
    562 \[d = b^2 - 4ac\]
    563 και ελέγχουμε τις τιμές της.
    564 
    565 Αν η διακρίνουσα είναι μεγαλύτερη του 0, τότε οι ρίζες είναι:
    566 \[x_1, x_2 = \frac{-b \pm \sqrt d}{2a}\]
    567 
    568 Αν η διακρίνουσα είναι ίση με 0, τότε έχουμε μία ρίζα:
    569 \[x = \frac{-b}{2a}\]
    570 
    571 Αν η διακρίνουσα είναι μικρότερη του 0 δεν έχουμε ρίζες.
    572 
    573 Οπότε ο τελικός κώδικας που θα προκύψει είναι ο παρακάτω:
    574 
    575 \begin{lstlisting}[language=octave]
    576         function quadratic(a, b, c)
    577                 if (a != 0)
    578                         d = b^2 - 4*a*c
    579                         if (d > 0)
    580                                 x1 = (-b + sqrt(d)) / (2 * a)
    581                                 x2 = (-b - sqrt(d)) / (2 * a)
    582                         elseif (d == 0)
    583                                 x = -b / (2 * a)
    584                         else
    585                                 printf("no solutions\n")
    586                         endif
    587                 else
    588                         printf("a cannot be 0\n")
    589                 endif
    590         endfunction
    591 \end{lstlisting}
    592 
    593 Είναι καλύτερο να γράψουμε ένα αρχείο \lstinline{.m} που να
    594 περιέχει τον παραπάνω κώδικα και να το τρέξουμε μέσα από
    595 το Octave με την εντολή \lstinline{run()}. Αφού διαβαστεί το
    596 αρχείο μπορούμε να καλέσουμε την συνάρτηση κανονικά, για
    597 παράδειγμα:
    598 
    599 \begin{lstlisting}[language=octave]
    600         octave:28> quadratic(2, 2, -4)
    601         d  =  36
    602         x1 =  1
    603         x2 = -2
    604 \end{lstlisting}
    605 
    606 \pagebreak
    607 \section{Εργαλεία}
    608 Τα εργαλεία που χρησιμοποιήθηκαν για την υλοποίηση αυτής της εργασίας ήτανε
    609 τα εξής:
    610 
    611 \begin{itemize}
    612         \item Περιβάλλον: GNU Octave 5.2.0
    613         \item Επιπλέον πακέτα: \lstinline{octave-forge-symbolic}
    614         \item Λειτουργικό σύστημα: FreeBSD 12.2
    615         \item Κειμενογράφος: Vim
    616         \item Μορφοποίηση κειμένου: \LaTeX
    617 \end{itemize}
    618 \end{document}