Superposer plusieurs courbes

Pour tracer plusieurs courbes sur le même graphique, il suffit de spécifier autant de couples de vecteurs (abscisses, ordonnées) qu'il y a de courbes à tracer.

Syntaxe

1
plot(Vx_1,Vy_1,Vx_2,Vy_2,Vx_3,Vy_3, ..., Vx_n,Vy_n)

où les \(Vx_i\) sont les vecteurs d'abscisses, et \(Vy_i\) les vecteurs d'ordonnées.

Exemple

Par exemple pour superposer \(\sin\) et \(\cos\)  :

1
2
x = 0:2*pi/100:2*pi;
plot(x,cos(x),x,sin(x));
Superposition de courbes avec la commande plot
Superposition de courbes avec la commande plot

Cette syntaxe générale fonctionne même si les abscisses des différentes courbes ne sont pas les mêmes.

Dans le cas plus fréquent où les abscisses sont les mêmes, il existe une syntaxe plus pratique pour superposer les courbes. On fournit toujours le vecteur des abscisses, commun à toutes les courbes, et on fournit un tableau regroupant tous les vecteurs d'ordonnées. Chaque ligne du tableau représente un vecteur d'ordonnées, et donc une courbe :

Syntaxe

1
plot(Vx,My);

\(Vx = [ x_1 ~ x_2 ~ ... ~ x_n]\) est le vecteur d'abscisses, et \(My\) et le tableau des vecteurs d'ordonnées tel que :

My = \left[
\begin{array}{c}
Vy_1 \\
Vy_2 \\
\vdots \\
Vy_m 
\end{array}
\right]= \left[
\begin{array}{cccc}
y_1^1 & y_2^1 & \dots & y_n^1 \\
y_1^2 & y_2^2 & \dots & y_n^2 \\
\vdots & \vdots & \dots & \vdots \\
y_1^m & y_2^m & \dots & y_n^m 
\end{array}
\right]
\quad
\begin{tabular}{l}
Première courbe \\
Deuxième courbe \\
\\
m$^{\text{ème}}$ courbe
\end{tabular}

Exemple

Reprenons l'exemple précédent, pour superposer \(\sin\) et \(\cos\), on devra fournir à la fonction plot les arguments suivants :

\[ {\bf plot} \quad \left( \, [ \begin{array}{cccc} x_1 & x_2 & \dots & x_n \end{array} ]\, ,\, \left[ \begin{array}{cccc} \cos{(x_1)} & \cos{(x_2)} & \dots & \cos{(x_n)} \\ \sin{(x_1)} & \sin{(x_2)} & \dots & \sin{(x_n)} \end{array} \right]\, \right) \]

Le deuxième tableau se construit très facilement avec le l'opérateur point-virgule (voir Définition d'un tableau)

1
plot(x,[cos(x);sin(x)]);