Le piège classique
Maintenant que vous connaissez les syntaxes les plus courantes de la fonction plot
, vous pouvez tracer des fonctions plus complexes que les exemples déjà donnés ici.
Si vous le faites, vous allez très probablement être confrontés à une erreur classique, et même en le sachant, vous serez sans doute amenés à tomber dans le piège !
Exemple :
Essayez de tracer le graphe de la fonction \(x \, \rightarrow \, x \sin{(x)}\) sur l'intervalle \([0,2\pi]\), en adaptant ce que l'on a vu jusqu'ici :
1 2 3 4 5 | >> x = 0:2* pi /100:2* pi ; >> plot (x, x* sin (x)); ??? Error using ==> * Inner matrix dimensions must agree. |
Question / Réponse :
Question
Quel est le problème ? Pourquoi MATLAB ne sait pas tracer cette courbe, qui n'est pas si complexe que cela ? Et pourquoi MATLAB prétend que les matrices ne sont pas de même dimension ?
Dans cette exemple, on veut en réalité calculer le produit arithmétique \(x*\sin(x)\) pour chacun des \(x\) du vecteur ligne x
. C'est une multiplication terme à terme, ce qui implique l'opérateur .*
. La syntaxe correcte est donc celle-ci :
1 | plot (x, x.* sin (x)); |
Méthode :
Lorsque l'on écrit une expression arithmétique dans les arguments de la fonction plot
, il faut utiliser systématiquement les opérateurs terme à terme .*
./
et .^
au lieu de *
/
et ^
.