Pour créer une matrix représentant un champ scalaire 2D quelconque f(x,y), il suffit d'appliquer evalformula à des matrices que vous aurez préalablement obtenu avec creatematrix "x" et creatematrix "y".
Notez bien que evalformula ne marche que sur des arrays of real. C'est pourquoi par défaut creatematrix renvoie un array of real, et non une matrix, à moins de le préciser explicitement avec creatematrix [...] as matrix. Ainsi :
-
vous devez vous assurer que vous manipulez des arrays of real, et non des matrices,
-
une fois obtenu l'array of real voulu, il faut en faire une matrix : pour cela, utilisez ArrayToMatrix.
set xa to creatematrix "x" ncols 20 nrows 15 range {-1.0, 1.0}
set ya to creatematrix "y" ncols 20 nrows 15 range {-1.0, 1.0}
set za to evalformula "2*x+3*y" with {x:xa, y:ya}
set z to ArrayToMatrix(za, 20, 15)
Dans cet exemple la matrix z correspond à l'ensemble suivant : {-1 < x < 1, -1 < y < 1, z=2x+3y}.
|