Génération des points de maillage : meshgrid
Pour définir une surface, il faut un ensemble de triplets \((x, y, z)\). En général les points \((x, y)\) forment dans le plan un maillage régulier, mais ce n'est pas une obligation. La seule contrainte est que le nombre de points soit le produit de deux entiers \(m \times n\).
Si l'on a \(m \times n\) points, cela signifie que l'on a \(m \times n\) valeurs de \(x\), \(m \times n\) valeurs de \(y\) et \(m \times n\) valeurs de \(z\) . Il apparaît donc que les abscisses, les ordonnées et les cotes des points de la surface peuvent être stockées dans des tableaux de taille \(m \times n\).
Syntaxe :
Toutes les instructions de tracé du surface, par exemple surf
respecteront donc la syntaxe générale
surf(Mx, My, Mz)
où \(M_x\) est la matrice d'abscisses, et \(M_y\) la matrice d'ordonnées, et \(M_z\) la matrice des cotes.
Il reste maintenant à construire ces tableaux. Prenons tout d'abord le cas de la surface définie par :
dont on veut tracer la surface représentative sur \([-1, 1] \times [-2, 2]\). Pour définir un quadrillage de ce rectangle, il faut définir une suite de valeurs \(x_1, ~\dots, ~x_m\) pour \(x\) et une suite de valeurs \(y_1, ~\dots, ~y_n\) pour \(y\), par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | >> x = -1:0.2:1 x = Columns 1 through 7 -1.0000 -0.8000 -0.6000 -0.4000 -0.2000 0 0.2000 Columns 8 through 11 0.4000 0.6000 0.8000 1.0000 >> y = -2:0.2:2 y = Columns 1 through 7 -2.0000 -1.8000 -1.6000 -1.4000 -1.2000 -1.0000 -0.8000 Columns 8 through 14 -0.6000 -0.4000 -0.2000 0 0.2000 0.4000 0.6000 Columns 15 through 21 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 |
En combinant toutes ces valeurs de \(x\) et \(y\), on obtient \(m \times n\) points dans le plan \((x, y)\). Il faut maintenant construire deux tableaux, l'un contenant les \(m \times n\) abscisses de ces points l'autre les \(m \times n\) ordonnées, soit :
Rassurez-vous, la fonction meshgrid
construit automatiquement ce type de tableaux :
1 | [X,Y] = meshgrid (x,y); |
Il reste maintenant à calculer les \(z = y^2 - x^2\) correspondants. C'est là que les calculs terme à terme sur les matrices montrent leur efficacité : on applique directement la formule aux tableaux X
et Y
, sans oublier de mettre un point devant les opérateurs *
, /
et ^
1 | Z = Y.^2 - X.^2; |