Source Latex
\documentclass[12pt]{article}
%\usepackage{french}
\usepackage[french]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage{a4wide}
\usepackage{graphicx}
\usepackage{epsf}
\usepackage{pst-all}
\usepackage{ifthen}
\usepackage{calc}
\usepackage{pst-all}
\usepackage{hyperref}
\hypersetup{
pdfauthor={Yoann Morel},
pdfsubject={Matlab},
pdftitle={Initiation et travaux pratiques en Matlab},
pdfkeywords={Matlab, simulation, programmation,
modélisation, mathématiques}
}
\hypersetup{
colorlinks = true,
linkcolor = red,
anchorcolor = red,
citecolor = blue,
filecolor = red,
urlcolor = red
}
\voffset=-1.cm
% Raccourcis diverses:
\newcommand{\nwc}{\newcommand}
\nwc{\dsp}{\displaystyle}
\nwc{\bge}{\begin{equation}}\nwc{\ene}{\end{equation}}
\nwc{\bgar}{\begin{array}}\nwc{\enar}{\end{array}}
\nwc{\bgit}{\begin{itemize}}\nwc{\enit}{\end{itemize}}
\nwc{\bgmp}{\begin{minipage}}\nwc{\enmp}{\end{minipage}}
\nwc{\ct}{\centerline}
\nwc{\V}[1]{\overrightarrow{#1}}
\nwc{\la}{\left\{}\nwc{\ra}{\right\}}
\nwc{\lp}{\left(}\nwc{\rp}{\right)}
\nwc{\lb}{\left[}\nwc{\rb}{\right]}
\nwc{\bgsk}{\bigskip}
\nwc{\vsp}{\vspace{0.1cm}}
\nwc{\vspd}{\vspace{0.2cm}}
\nwc{\vspt}{\vspace{0.3cm}}
\nwc{\vspq}{\vspace{0.4cm}}
\newcounter{ntp}%[section]
\setcounter{ntp}{1}
\newenvironment{TP}[1]{%
\setcounter{equation}{0}\setcounter{subsection}{0}
%\bgsk{\large {\bf Exercice }\arabic{nex}}\hspace{0.5cm}
\clearpage
%\if@openright\clearpage\else\cleardoublepage\fi
% ...doublepage... necessite documentclass{book}...
\section*{ \underline{TP \arabic{ntp} :} #1}
\addcontentsline{toc}{section}{\underline{TP \arabic{ntp} :}\ #1}
\stepcounter{ntp}}{}
\nwc{\bgTP}{\begin{TP}}\nwc{\enTP}{\end{TP}}
\def\N{{\rm I\kern-.1567em N}} % Doppel-N
\def\No{\N_0} % Doppel-N unten 0
\def\R{{\rm I\kern-.1567em R}} % Doppel R
\def\C{{\rm C\kern-4.7pt % Doppel C
\vrule height 7.7pt width 0.4pt depth -0.5pt \phantom {.}}}
\def\Z{{\sf Z\kern-4.5pt Z}} % Doppel Z
% grec et autres
\nwc{\lbd}{\lambda}
\nwc{\vphi}{\varphi}
\nwc{\ga}{\gamma}
\def\epsi{\varepsilon}
\def\tht{\theta}
\nwc{\tm}{\times}
\nwc{\ul}{\underline}
\nwc{\scp}[1]{\scriptsize{#1}}
\author{Y. Morel}
\date{}
\headheight=0cm
\textheight=26cm
\topmargin=-1.8cm
\footskip=.8cm
\textwidth=17.6cm
\oddsidemargin=-1.cm
%\parindent=0.2cm
\usepackage{fancyhdr}
\newenvironment{centerpage}{\vspace*{\fill}}{%
\protect\vspace*{\fill}}
\begin{document}
\pagestyle{fancyplain}
\setlength{\headheight}{0cm}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.1pt}
\lhead{}\chead{}\rhead{}
\lfoot{Y. Morel - \url{https://xymaths.fr/Matlab/}}
\rfoot{Exercices d'initiation à Matlab - \thepage/\pageref{LastPage}}
\cfoot{}
\vspace*{1cm}
\nwc{\TPtop}{}
\newlength{\lgr}
\newlength{\TPtopLarge}
\newlength{\EXX}
\newlength{\Tlgr}
\newlength{\TopHeight}
\newlength{\TopTitleHeight}
\newcommand{\ChapTitle}[3]{
\renewcommand{\TPtop}{{\LARGE\bf #1} {\Huge\bf#2}}
\settowidth{\lgr}{\LARGE\bf #1}
\settowidth{\TPtopLarge}{\TPtop}
\settoheight{\EXX}{\LARGE X}
\settowidth{\Tlgr}{\LARGE T}
\setlength{\Tlgr}{0.5\Tlgr}
\settototalheight{\TopHeight}{\fbox{\bgmp{\linewidth}\begin{center}{\LARGE\bf#3}\end{center}\enmp}}
%%
\noindent
\bgmp{\linewidth}
\psline(\lgr,\EXX)(1.1\lgr,\EXX)
\psline(\TPtopLarge,\EXX)(\linewidth,\EXX)%
(\linewidth,-1.\TopHeight)(\Tlgr,-1.\TopHeight)%
(\Tlgr,-0.05)
\TPtop
\vspace{-0.5\EXX}
\begin{center}
{\LARGE\bf#3}
\end{center}
\enmp%
\vspace{0.5cm}
}
\setcounter{ntp}{1}
%\input{TP_Initiation_Matlab}
%\bgTP{Exercices d'initiation à Matlab}
\section*{}
\ChapTitle{TP}{\thentp}{Exercices d'initiation à Matlab}
\addcontentsline{toc}{section}{TP \thentp: Exercices d'initiation à Matlab}
\subsection*{Exercice 1: Initiation à MATLAB - Vecteurs et courbes}
\addcontentsline{toc}{subsection}{Exercice 1: Vecteurs et courbes}
\bgit
\item[a)] Définir la variable $\dsp x=\frac{\pi}{4}$, et calculer
$y_1=\sin(x)$ et $y_2=\cos(x)$, puis $z=tan(x)$ à partir de $y_1$ et $y_2$.
\vspd
\item[b)] Définir la variable $\dsp
x=[\frac{\pi}{6},\frac{\pi}{4},\frac{\pi}{3}]$, et calculer
$y_1=\sin(x)$ et $y_2=\cos(x)$.
\vsp
Calculer alors $\tan(x)$ en utilisant exclusivement les vecteurs
$y_1$ et $y_2$ précédents.
\vspd
\item[c)] Définir la variable $x=[0:0.1:2\pi]$.
Combien y a-t-il de valeurs dans ce vecteur ?
Afficher la courbe du sinus.
Faire varier le pas. Qu'affiche exactement la commande \verb+plot+ ?
(\verb+plot, size, length+).
\enit
\subsection*{Exercice 2: Initiation à MATLAB - Manipulation de matrices}
\addcontentsline{toc}{subsection}{Exercice 2: Manipulation de matrices}
\bgit
\item[a)] Définir le vecteur $V=\lb 0\ 1\ 2\ 3\ \cdots\ 49\ 50 \rb$.
Quelle est la taille de ce vecteur ?
Définir le vecteur $W$ contenant les cinq premiers éléments de $V$,
et le vecteur $X$ contenant les cinq premiers et les cinq derniers
éléments.
Définir ensuite le vecteur $Z=\lb 0\ 2\ 4\ \cdots\ 48\ 50\rb$ à partir de $V$.
\vspd
\item[b)] Définir la matrice
$M=\lb\bgar{*{10}{c}}
1&2&3&4&5&6&7&8&9&10 \\
11&12&13&14&15&16&17&18&19&20\\
21&22&23&24&25&26&27&28&29&30\\
\enar\rb$
\vspd
Extraire de cette matrice la matrice
$N=\lb \bgar{cc} 1&2\\11&12\\21&22\enar\rb$,
la matrice
$P=\lb \bgar{ccc} 8&9&10\\18&19&20\\28&29&30\enar\rb$,
puis la matrice
$Q=\lb\bgar{cc} 3&7\\23&27\enar\rb$.
\vspd
Extraire de la matrice $M$ la matrice $R$ obtenue en prenant dans la
matrice $M$ une colonne sur 2.
\vspd
\item[c)] Définir les matrices
$M=\lb 2\ 4\ 6\ 8\ \cdots\ 100\rb$
et
$N=\lb -1\ -3\ -5\ \cdots\ -99\rb$,
puis le vecteur
$P=\lb -1\ \ 2\ -3\ \ 4\ -5\ \ 8\ \cdots\ -99\ \ 100\rb$.
\vspd
\item[d)] Définir une matrice $M$ aléatoire à trois lignes et sept
colonnes.
Combien de nombres dans cette matrice sont plus grand que $0,5$ ?
que $0,8$ ? Ou sont-ils situés ?
(\verb+rand, nnz, find, sum+)
\vspd
Construire alors la matrice $P$ obtenue à partir de la matrice $M$
en remplaçant tous les nombres de $M$ inférieurs à $0,4$ par $0$, et
ceux supérieurs à $0.4$ par $1$.
\vspd
Construire de même la matrice $Q$ obtenue à partir de la matrice $M$
en remplaçant tous les nombres de $M$ inférieurs à $0.5$ par $-3$ et
tous les nombres supérieurs à $0.5$ par $14$.
\vspd
\item[e)] Créer un vecteur contenant $N$ valeurs binaires ($0$ ou $1$)
tel que $10$\,\% de ces valeurs soient des~$1$.
\enit
\subsection*{Exercice 3: Initiation à MATLAB, fonctions graphiques}
\addcontentsline{toc}{subsection}{Exercice 3: fonctions graphiques}
Représenter sur une figure à 4 cadrans, les fonctions sinus,
exponentielle, logarithme et tangente.
(\verb+subplot+)
\subsection*{Exercice 4: Etude de la fonction $Sig=exp(-A.t+j.2\pi f_0.t)$}
\addcontentsline{toc}{subsection}{Exercice 4: Etude d'une fonction}
\bgit
\item[a)] Créer le vecteur t=[0 : 0.1 : 100]; quel est le nombre de
points ?
Quelle est la place utilisée en mémoire?
(\verb+size, length, whos+)
\vspd
\item[b)] Tracer la fonction demandée en choisissant $A$ et $f_0$ de
façon à observer une dizaine de cycles et une attenuation d'environ
90\%.
(\verb+plot, real, imag, abs+)
\vspd
\item[c)] Représenter sur une figure 4 cadrans, la partie réelle, la
partie imaginaire, le module et la phase de cette courbe.
Mettre les titres et les légendes de chaque graphique.
(\verb+subplot, title, legend+)
\vspd
\item[d)] Représenter cette fonction complexe sous la forme d'une
trajectoire 3d à l'aide de la fonction \verb+plot3+.
\vspd
\item[e)] Utiliser la fonction graphique rotate3d, pour retrouver les
courbes 2D de (c) à partir de la représentation 3D.
\enit
\subsection*{Exercice 5: Initiation à la programmation sous MATLAB}
\addcontentsline{toc}{subsection}{Exercice 5: Initiation à la programmation sous MATLAB}
\bgit
\item[a)] Quel est votre répertoire courant?
Créer un nouveau répertoire {\verb+Initiation_Matlab+} et se placer dedans.
\item[b)] Reprendre le problème de l'exercice 3. Ecrire un script de
commande qui fixe au départ les valeurs de $A$ et $f_0$, puis calcule la
fonction et enfin représente en 3D la courbe voulue.
\item[c)] Taper 'clear all' puis who. Il n'y a plus de variables
locales. Taper le nom de votre fichier de commande : quelles sont les
variables reconnues dans l'espace de travail?
\enit
\subsection*{Exercice 6: Création d'une fonction}
\addcontentsline{toc}{subsection}{Exercice 6: Création d'une fonction}
\bgit
\item[a)] Créer, à partir de votre fichier de commande, une fonction
qui trace la courbe 3D de l'exercice 3, en fonction des variables
$A$ et $f_0$ passées en paramètres et qui retourne les valeurs
prises par la fonction Sig.
\item[b)] Ajouter un "flag" passé à la fonction qui permet de
choisir ou non la visualisation de la courbe
(\verb+nargin+)
\enit
\subsection*{Exercice 7: Recherche d'un élément dans un vecteur}
\addcontentsline{toc}{subsection}{Exercice 7: Recherche d'un élément dans un vecteur}
Ecrire une fonction \verb+Trouve+ qui prend en argument un vecteur $v$
et un nombre $x$, et qui retourne $1$ si $x$ est un élément du vecteur
$v$, et $0$ sinon.
Deux versions de cette fonction peuvent-être implémentées, une à l'aide
d'une boucle \verb+for+, et d'un test \verb+if+ approprié,
l'autre directement avec une comparaison globale \verb+==+
(et, par exemple, \verb+find+ ou \verb+nnz+).
\subsection*{Exercice 8: Matrices et systèmes linéaires}
\addcontentsline{toc}{subsection}{Exercice 8: Matrices et systèmes linéaires}
a) Ecrire une fonction, n'utilisant aucune boucle (for, while, ...)
qui prend comme paramètre un entier $n$ et qui construit la matrice
suivante (fonctions \verb+eye+, \verb+diag+):
\[ \lb\bgar{ccccccc}
1 & 1 & 0 & \cdots & 0 & 0 & 0 \\
\frac{1}{n} & 2 & \frac{n-1}{n} & 0 & 0 & 0 \\
0 & \frac{2}{n} & 3 &\cdots & 0 & 0 & 0 \\
\vdots & \vdots &\vdots & \ddots & \vdots & \vdots &\vdots \\
0 & 0 & 0 & \cdots & n-1 & \frac{2}{n} & 0 \\
0 & 0 & 0 & \cdots & \frac{n-1}{n} & n & \frac{1}{n} \\
0 & 0 & 0 & \cdots & 0 & 1 & n+1
\enar\rb
\]
b) Avec Matlab, on peut résoudre tout type de système linéaire en
l'écrivant préalablement sous forme matricielle.
\vspd
\bgit
\item[(i)] La système linéaire, d'inconnues $x$, $y$ et $z$ suivant
\[ \la\bgar{ccccccc}
6x &+& y &-&5z &=& 10 \\
2x &+& 2y &+&3z &=& 11 \\
4x &-& 9y &+&7z &=& 12
\enar\right.\]
s'écrit sous forme matricielle $AX=b$,
où $X=[x\ y\ z]^T$ est le vecteur inconnu.
\vspd
Le vecteur $X$ se calcule alors suivant: $AX=b \iff X=A^{-1}b$, ou
encore, avec Matlab, $X=A\setminus b$
(voir \verb+help slash+).
\vspd
Résoudre le système linéaire précédent.
%\item[(ii)]
% \[ \la\bgar{ccccccc}
% 6x &+& y &-&5z &=& 10 \\
% 2x &+& 2y &+&3z &=& 11 \\
% 8x &+& 3y &-&2z &=& 12
% \enar\right.\]
\vspd
\item[(ii)] Résoudre numériquement le système:
\[ \la\bgar{ccccccccc}
x &+& 2y &+& 3z &+& 4t &=& 1 \\
2x &+& 3y &+& 4z &+& t &=& -2 \\
-2x &+& 4y &-& 5z &+& 2t &=& 0 \\
8x &+& y &-& z &+& 3t &=& 1
\enar\right.\]
\vspd
\item[(iii)] Résoudre numériquement le système suivant (moindres carrés):
\[ \la\bgar{ccccc}
x &+& 3y &=& 5 \\
-2x &+& 6y &=& 7 \\
3x &-& 4y &=& 6 \\
6x &-& 13y &=& -3
\enar\right.\]
\enit
\label{LastPage}
\end{document}
Télécharger le fichier source