ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/document/GMC1035/introduction.tex
(Generate patch)

Comparing document/GMC1035/introduction.tex (file contents):
Revision 939 by francois, Wed Jun 6 19:49:12 2018 UTC vs.
Revision 1073 by francois, Wed Aug 4 19:38:16 2021 UTC

# Line 1 | Line 1
1 +
2 +    
3 +
4 +
5 +
6 +        
7 +    \begin{encadre}{Objectif de l'introduction}
8 +    L'ensemble des solutions du cours est résolu avec un ordinateur. L'objectif de ce chapitre est de comprendre la manière dont un ordinateur effectue les calculs de base : addition, soustraction, multiplication
9 +    \end{encadre}
10 +       \\[1cm]
11 +     \begin{encadre}{Connaissances antérieures nécessaires}
12 +      \begin{itemize}
13 +       \item les mathématiques : représentation de nombre dans différentes bases, Calcul différentiel.
14 +       \item programmation de base en Basic ou C : les types, les opérations élémentaires et la structuration de programme en mode console
15 +      \end{itemize}
16 +
17 +    \end{encadre}
18 +  
19 +
20   \section{Mathématiques versus méthodes numériques}
21   Les mathématiques sont des méthodes génériques et exactes. En réalité, ces méthodes sont rarement applicables sur des problèmes d'ingénierie.
22   \\
# Line 114 | Line 133 | Le troisième exemple montre le cas d'une
133   Pour représenter un nombre entier signé, on utilise la représentation des entiers positifs et on ajoute une représentation
134   \begin{itemize}
135   \item par complément à 2
136 < \item par excés
136 > \item par excès
137   \end{itemize}
138   \subsubsection{Représentation par complément à 2}
139   \begin{eqnarray*}
# Line 128 | Line 147 | exemple avec une représentation sur $n=4
147    (1101)_2&=&-1*2^3+1*2^2+0*2^1+1*2^0=-8+4+1=(-3)_{10}\\
148    (-6)_{10}&=&-2^{n-1}+2=-2^3+2^1=(1010)_2
149   \end{eqnarray*}
150 < \subsubsection{Représentation par excés}
150 > \subsubsection{Représentation par excès}
151   Sur n bits on peut représenter $2^n$ entiers. On ajoute au nombre une valeur $d$. $-d$ représente le plus petit nombre entier représentable.
152   En général $d=2^n$ ou $d=2^{n-1}$ .\\
153   Exemple avec 4 bits et $d=2^3=8$
# Line 183 | Line 202 | Le nombre de bits de la mantisse est lim
202   \item troncature : on limite le nombre de bits et on supprime le reste : $m=d_1*b^{-1}+d_2*b^{-2}+d_3*b^{-3}+...+d_n*b^{-n}$
203   \item arrondi  : on ajoute $\frac{b}{2}$ au $(n+1)^{eme}$ bit et on fait une troncature à $n$ bits.
204   \end{itemize}
205 < A l'aide de cette notation il y a une infinité de solution pour représenter un nombre réel. Une norme a été établie pour les ordinateurs : la norme IEEE-754. Pour les ordinateurs à 32 bits où 64 bits, il existe deux types de nombres reéls :
205 > A l'aide de cette notation il y a une infinité de solution pour représenter un nombre réel. Une norme a été établie pour les ordinateurs : la norme IEEE-754. Pour les ordinateurs à 32 bits où 64 bits, il existe deux types de nombres réels :
206   \begin{itemize}
207   \item les simples précisions (single ou float selon les langages) codés sur 32 bits.
208   \item les doubles précisions (double dans les langages) codés sur 64 bits.
# Line 276 | Line 295 | ainsi le nombre 1 s'écrit en notation fl
295   \begin{eqnarray*}
296    (1)_{10}=(00111111100000000000000000000000)_2
297   \end{eqnarray*}
298 < alors qu'en entier non signé il s'ecrit :
298 > alors qu'en entier non signé il s?écrit :
299   \begin{eqnarray*}
300    (1)_{10}=(00000000000000000000000000000001)_2
301   \end{eqnarray*}
# Line 294 | Line 313 | $\epsilon=1$\\
313   $\epsilon '=\epsilon$\\
314   $\epsilon=\frac{\epsilon}{2}$\\
315   }
316 < precision$=\epsilon '$\\
316 > précision$=\epsilon '$\\
317   \caption{Calcul de la précision d'un flottant}
318   \end{algorithm}
319   \hspace{3cm}\\
320   \\
321 < Les langages  généralement utilisés pour mettre en oeuvre des méthodes numériques sont le C ou le fortran. Dans ce cours les langages utilisés sont le C ou le visual basic et les travaux sont réalisés selon le principe suivant :
321 > Les langages  généralement utilisés pour mettre en ?uvre des méthodes numériques sont le C ou le Fortran. Dans ce cours les langages utilisés sont le C ou le visual basic et les travaux sont réalisés selon le principe suivant :
322   \begin{itemize}
323   \item les datas sont enregistrées dans un fichier texte
324   \item un programme console (sans interface graphique) qui permet de résoudre le problème.
325   \item le résultat est écrit dans un fichier texte
326   \end{itemize}
327 < \hspace{1cm}\\
327 > \section{Guide de bonne programmation - résumé de GMC1032 ou GEI1072}
328 > \begin{encadre2}
329 > L'objectif est d'apprendre à programmer des méthodes numériques de manière générale et réutilisable. Manière générale veut dire que la méthode numérique doit pouvoir résoudre votre problème et d'autres problèmes qui utilisent la même méthode. cette manière permet naturellement la réutilisation de la méthode.
330 > \\Le meilleur moyen pour programmer de manière générale est de diviser le plus possible le programme en sous programme (fonction ou subroutine) en respectant quelques règles :
331 > \begin{itemize}
332 > \item découper les sous programmes en s'assurant que le sous programme n'ait qu'un seul objectif. Par exemple si un sous programme doit calculer quelque chose, il ne doit pas s'occuper d'afficher ou d'enregistrer le résultat. Un autre sous programme doit à ce moment faire l'affichage du résultat. En faisant cela, on s'assure que l'objectif du premier sous programme n'est que le calcul. Ainsi le calcul et l'affichage sont indépendants et peuvent être réutilisés de manière indépendante et différente.
333 > \item Tout sous programme comporte des données. Il y a les données d'entrée et les données de sortie. Ces données sont les arguments du sous programme. Les données d'entrée sont en général passées par valeur et les données de sortie sont passées par référence (VB ou C++) ou par adresse (C ou C++). IL y a une exception pour les données sous forme de tableau. Ces données sont passées par référence ou adresse afin de favoriser la performance parce que le passage par valeur nécessite plus de ressource mémoire et CPU. Les autres variables nécessaires au fonctionnement du sous programme sont des variables locales au sous programme.
334 > \item Le sous programme main doit être le plus petit possible. C'est le seul élément d'un programme qui ne peut pas être réutilisé d'un projet à l'autre.
335 > \item Toutes les variables et les arguments doivent être typées correctement selon ce qu'ils représentent. (voir paragraphes précédents)
336 > \item Tous les programmes dans ce cours se font sans interface graphique. La création d'une interface graphique est un travail à part entière qui dépasse les objectifs de ce cours.
337 > \item L'information est données au programme par des fichiers textes et pourraient provenir d'autre logiciels d?ingénierie. C'est la méthode classique en ingénierie pour échanger des données. Dans un programme toutes les données d'entrée sont dans un fichier texte et les données de sortie sont aussi écrites dans un fichier texte.
338 > \end{itemize}
339 > \end{encadre2}
340 > \\[2cm]
341 > \begin{encadre2}
342   Un exemple de programme est disponible dans le portail de cours : premierexemple.zip Il illustre le principe de programme console en effectuant simplement une table de multiplication.
343 + \end{encadre2}
344 + \\[2cm]
345 + \begin{encadre}{À retenir}
346 + Les calculs effectués avec un ordinateur sont entachés d'erreur numérique. Cette numérique doit être prise en compte dans les futurs calculs ou analyses. La programmation d'une solution doit être rigoureuse pour minimiser cette erreur numérique.
347 + \end{encadre}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines