\documentclass[11pt]{article}
\usepackage[ansinew]{inputenc}
\usepackage[french]{babel}
\usepackage[pdftex]{graphicx}
\pagestyle{empty}
\textwidth=15truecm
\textheight=22.8truecm
\hoffset=-12mm
\voffset=-9mm
\baselineskip=12pt

\font\smc=cmcsc10
\def\ex#1{\vskip 1truecm\centerline{#1}\vskip 0.2truecm}
\def\ques#1{\vskip 0.4truecm
\noindent{\bf #1}\hskip 0.4truecm}

\begin{document}

\hrule
\vskip.3cm
NOM: \hskip10cm GROUPE:
\vskip.3cm
\hrule
\vskip.3cm

\noindent{Universit\'e Paris-Sud}\hfill  2007\par
\noindent{S2 IFIPS}\hfill Math2
\vskip.2cm

\centerline{\smc Contrôle continu de Mathématiques, 21 mars 2007}
\centerline{\smc  Question sur matlab}
\centerline{\sl  Documents et calculettes interdits}

\vskip.2cm

Veuillez indiquer votre nom, rédiger votre solution directement sur cette feuille et la rendre en même temps que votre copie, mais \textbf{séparément}.

\vskip0cm

\ques{1.}La suite d'instructions matlab \begin{verbatim}
x=0:pi/10:2*pi;
y=2*sin(x)*cos(x)
\end{verbatim}
a provoqué le message d'erreur suivant : \begin{verbatim}
??? Error using ==> mtimes
Inner matrix dimensions must agree.
\end{verbatim}

Expliquer l'origine de l'erreur et écrire l'instruction correcte.

% Manque un point avant *. La commande mtimes * désigne la multiplication matricielle. Pour matlab, sin(x) et cos(x) sont des matrices lignes, elles n'ont pas les dimensions nécessaires pour les multiplier. La commande .*, produit composante par composante, correspond à ce qu'on veut faire. L'instruction correcte est
%x=0:pi/10:2*pi;
%y=sin(x).*cos(x)


\vskip3cm

\ques{2.}La fonction ci-dessous trace la courbe (discrétisée en 21 points) dont voici le tracé. 
\begin{verbatim}
function courbe
t=0:pi/10:2*pi;
y=sin(2*t);
z=sin(3*t);
plot(y,z)
\end{verbatim}
\vskip-5cm \hskip10cm\includegraphics[width=2in]{courbe1.pdf}

\vskip-2cm
Modifier cette fonction pour qu'elle prenne comme argument le nombre de points de la discrétisation.

% On change seulement les deux premières lignes en
% function courbe(N)
% t=0:2*pi/(N-1):2*pi;



\vfill\eject

\hrule
\vskip.3cm
NOM: \hskip10cm GROUPE:
\vskip.3cm
\hrule
\vskip.3cm

\noindent{Universit\'e Paris-Sud}\hfill  2007\par
\noindent{S2 IFIPS}\hfill Math2
\vskip.2cm

\centerline{\smc Contrôle continu de Mathématiques, 21 mars 2007}
\centerline{\smc  Question sur matlab}
\centerline{\sl  Documents et calculettes interdits}

\vskip.2cm

Veuillez indiquer votre nom, rédiger votre solution directement sur cette feuille et la rendre en même temps que votre copie, mais \textbf{séparément}.

\vskip0cm

\ques{1.}La suite d'instructions matlab \begin{verbatim}
x=0:0.1:2;
y=(2*x)^x
\end{verbatim}
a provoqué le message d'erreur suivant : 
\begin{verbatim}
??? Error using ==> mpower
At least one operand must be scalar.
\end{verbatim}

Expliquer l'origine de l'erreur et écrire l'instruction correcte.

% Manque un point avant ^. La commande mpower ^ désigne l'exponentielle des matrices. >Elle s'applique à un nombre et une matrice, ou bien à une matrice et un nombre. Pour matlab, x est une matrice ligne, x^x n'a pas de sens. La commande .^, exponentielle composante par composante, correspond à ce qu'on veut faire. L'instruction correcte est
% x=0:0.1:2;
% y=(2*x).^x



\vskip3cm

\ques{2.}La fonction ci-dessous trace la courbe, discrétisée en 201 points, dont voici le tracé. 
\begin{verbatim}
function courbe
t=0:pi/100:2*pi;
y=sin(2*t);
z=sin(3*t);
plot(y,z)
\end{verbatim}
\vskip-5cm \hskip10cm\includegraphics[width=2in]{courbe2.pdf}

\vskip-2cm
Modifier cette fonction pour qu'elle prenne pour argument un réel positif $a$ et retourne la partie de la courbe paramétrée par l'intervalle $[\pi-a,\pi+a]$, discrétisée en 201 points.

% On change seulement les deux premières lignes en
% function courbe(a)
% t=(\pi-a):a/50:(pi+a);

\vfill\eject

\noindent{Universit\'e Paris-Sud}\hfill  2006\par
\noindent{S2 IFIPS}\hfill Compléments de Mathématiques
\vskip1cm

\centerline{\smc Contrôle continu de Mathématiques, 21 mars 2007}
\centerline{\smc  Corrigé de la question sur matlab}

\vskip.2cm

\ques{1.}
\begin{verbatim}
x=0:pi/10:2*pi; y=2*sin(x)*cos(x)
??? Error using ==> mtimes    Inner matrix dimensions must agree.
\end{verbatim}

Manque un point avant \verb"*." La commande \verb"mtimes *" désigne la multiplication matricielle. Pour matlab, \verb"sin(x)" et \verb"cos(x)" sont des matrices lignes, elles n'ont pas les dimensions nécessaires pour les multiplier. La commande \verb".*", produit composante par composante, correspond à ce qu'on veut faire. L'instruction correcte est
\begin{verbatim}
x=0:pi/10:2*pi;
y=sin(x).*cos(x)
\end{verbatim}

\medskip

\begin{verbatim}
x=0:0.1:2 ; y=(2*x)^x
??? Error using ==> mpower       At least one operand must be scalar.
\end{verbatim}

Manque un point avant \verb"^". La commande mpower \verb"^" désigne l'exponentielle des matrices. Elle s'applique à un nombre et une matrice, ou bien à une matrice et un nombre. Pour matlab, \verb"x" est une matrice ligne, \verb"x^x" n'a pas de sens. La commande \verb".^", exponentielle composante par composante, correspond à ce qu'on veut faire. L'instruction correcte est
\begin{verbatim}
x=0:0.1:2;
y=(2*x).^x
\end{verbatim}



\ques{2.}Pour discrétiser en $N$ points, on modifie les deux premières lignes en 
\begin{verbatim}
function courbe(N)
t=0:2*pi/(N-1):2*pi;
\end{verbatim}

Pour restreindre l'intervalle de paramétrage à $[\pi-a,\pi+a]$ sans changer le nombre de points de discrétisation, on change les deux premières lignes en
\begin{verbatim}
function courbe(a)
t=(pi-a):a/100:(pi+a);
\end{verbatim}


\end{document}