APLICACIONES BASICAS DE MATLAB
 

1. Modelaje de Sistemas Lineales

Ahora consideremos el sistema de ecuaciones lineales
ax + by = p

cx + dy = q

Nosotros podemos escribir esto más sólidamente como

AX = B

donde la matriz A de los coeficiente es:

a b

c d

el vector X de variables desconocidas es

x

y

el vector B en el lado derecho es

p

q

Si A es invertible, X = (1/A)B, o, usando anotación de MATLAB, X = A\B. Se prueba esto resolviendo AX = B.

Hagamos un poco de programación.
Sea A sea la matriz
0.8 0.1
0.2 0.9
y sea X el vector de la columna

1

0


Consideramos X para representar (por ejemplo) el estado de la población de una isla. La primera entrada (1) da el fragmento de la población en la mitad oriental de la isla, la segunda entrada (0) dé el fragmento en la otra mitad oriental. El estado de la población en las unidades de tiempo T son dadas después por la regla Y = AX. Esto expresa el hecho de que un individuo en medio de las estancias orientales puestas con probabilidad 0.8 y que se mueve del este con probabilidad 0.2 (notar que 0.8 + 0.2 = 1), y el hecho que un individuo en las estancias orientales puestas con probabilidad 0.9 y oeste de los movimientos esté con probabilidad 0.1. Así, los estados de la población sucesivos pueden ser predicho/computado por la multiplicación de la matriz repetida. Esto puede ser realizado por el programa de MATLAB siguiente:

>> A = [ 0.8 0.1; 0.2 0.9 ]

>> x = [1; 0]

>> for i = 1:20, x = a*x, end,

Hasta aquí hemos aprendido a escribir un tipo de loop simple. Ésta es una manera fácil de ordenar a la máquina, en otras palabras, hacer un trabajo muy repetitivo.
 

1.1. Definiendo Matrices

Si queremos definir la siguiente matriz en MATLAB:

entonces escribimos:

»A=[1 2 3 4;5 6 7 8;9 10 11 12;13,14,15,16];

»x=4:-1:1

genera el vector fila x=[4,3,2,1]. La instrucción

»C=A(3:4,1:3);

se refiere a la submatriz


de A. También D=A([1,3],3:4) genera

 

1.2. Matrices Especiales
En MATLAB podemos generar matrices especiales con las siguientes instrucciones:

rand(n,m) - matriz n x m de entradas aleatorias entre 0 y uno.
eye(n) - matriz identidad n x n.
zeros(n,m) - matriz cero de tamaño n x m.
ones(n,m) - matriz n x m con todas las entradas uno.

Combinando estas instrucciones podemos generar matrices bastante complicadas. Por ejemplo, la instrucción

»E=[eye(2),ones(2,3);zeros(2),[1:3;3:-1:1]]

genera la matriz

La instrucción round(x) redondea "x" al entero más cercano a "x". Podemos combinar funciones en MATLAB. Por ejemplo, round(10*rand(4)) genera una matriz con entradas aleatorias entre 0 y 10.
1.3. Aritmética de Matrices

Considere las siguientes matrices:

Entonces las operaciones A*B (producto matricial de A con B), A+B (suma de A mas B), 3*A (multiplicación escalar de 3 por A) tienen los siguientes resultados:

»A*B

ans =

16 19 13
10 11 7
»A+B

??? Error using ==> +
Matrix dimensions must agree.

»3*A

ans =

12 15
  6   9
Note que MATLAB "anuncia" que A+B no se puede calcular. Las operaciones A’ (transpuesto de A), inv(A) (inversa de A), y A^3 (esto es A*A*A) tienen como resultados:

»A’

ans =

4 2
5 3
»inv(A)

ans =

1.5000 -2.5000

-1.0000 2.0000

»A^3

ans =

174 235
  94 127

Si precedemos las operaciones matriciales "*", "^" con el punto ".", entonces estas se hacen termino a termino. Por ejemplo A.*C y A.^2 generan:

» A.*C

ans =

-4 10
  4 12

» A.^2

ans =

16 25
  4   9
 

2. Solución de Sistemas Lineales
Considere el sistema lineal

Definimos la matriz de coeficientes y el lado derecho por las instrucciones:

»A=[1 -2 3; 4 1 -2; 2 -1 4];
»b=[1 -1 2]’;

Note que la transpuesta en b se usa para hacerlo un vector columna. Vamos a resolver este sistema por tres métodos:

  • eliminación Gaussiana
  • forma echelon reducida o método de Gauss-Jordan
  • método de la inversa

  • En el método de Gauss-Jordan, luego de obtener la forma echelon de la matriz de coeficientes aumentada, eliminamos también la parte de arriba de la matriz hasta producir una matriz donde las columnas con unos, solo tienen un uno. Esto se conoce como la forma echelon reducida (ver texto). Para comparar los tres métodos utilizamos la instrucción flops de MATLAB que estima el número de operaciones de punto flotante entre dos llamadas sucesivas a flops. Una llamada de la forma flops(0) inicializa el contador de operaciones a cero. La sucesión de instrucciones:

    » flops( 0 )
    » x=A\b

    x =

    -0.0417
     0.4167
     0.6250
    » flops

    lleva a cabo eliminación Gaussiana en el sistema de arriba y produce como resultado:

    ans =

    73

    entonces, aquí se necesitaron aproximadamente 73 operaciones de punto flotantes (sumas, restas, multiplicaciones ó divisiones) para resolver el sistema con eliminación Gaussiana.

    Para el método de Gauss-Jordan tenemos:

    » flops(0)
    » rref([A b])

    ans =

    1.0000 0 0 -0.0417
    0 1.0000 0 0.4167
    0 0 1.0000 0.6250
    » flops

    ans =

    483

    el cual requiere 483 operaciones de punto flotante.

    Finalmente el método de la inversa se realiza con la siguiente secuencia de instrucciones:

    » flops(0)
    » x=inv(A)*b

    x =

    -.0417
     0.4167
     0.6250
    » flops

    ans =

    108

    el cual toma 108 operaciones.

    Vemos pues que la eliminación Gaussiana es el mejor de los tres métodos lo cual es cierto en general.

    Usando MATLAB podemos estudiar la relación entre la solubilidad del sistema Ax=b y la no singularidad de la matriz de coeficientes A. En clase vimos que el sistema Ax=b tiene solución única para cualquier lado derecho b si y solo si la matriz A es no singular. ¿Qué sucede si A es singular? ¿Entonces Ax=b no tiene solución? Si A es singular el sistema Ax=b puede tener solución para algunos b’s pero de seguro hay al menos un b* para el cual Ax=b* no tiene solución. Vamos a generar una matriz singular con MATLAB:

    » A=round(10*rand(6));

    » A(:,3)=A(:,1:2)*[4 3]’

    A =

    2 5 23 9 7 3
    0 8 24 8 9 6
    7 0 28 5 8 8
    7 1 31 1 3 10
    9 5 51 7 0 4
    4 7 37 4 7 2
    (Como usamos la instrucción rand, el resultado de esta y cualquier secuencia de instrucciones que use esta función de MATLAB, no siempre será el mismo). La primera instrucción genera una matriz aleatoria con entradas enteras entre 0 y 10, y con la segunda instrucción remplazamos la tercera columna de A con cuatro veces la primera columna mas tres veces la segunda columna. ¡La matriz resultante es singular! (Explique esto sin calcular el determinante). Generamos ahora un lado derecho arbitrario mediante la instrucción:

    » b=round(20*(rand(6,1)-0.5))

    b =

    10
    4
    5
    3
    -9
    3
    Esto genera una matriz 6x1 aleatoria con entradas enteras entre -10 y 10. Resolvemos el sistema Ax=b calculando la forma echelon reducida de la matriz de coeficientes aumentada [A b]:

    » rref([A b])

    ans =

    1 0 4 0 0 0 0
    0 1 3 0 0 0 0
    0 0 0 1 0 0 0
    0 0 0 0 1 0 0
    0 0 0 0 0 1 0
    0 0 0 0 0 0 1
    Como la última fila es de la forma el sistema es inconsistente, i.e., no tiene solución. ¡Recuerde que A es singular! Esto no quiere decir que Ax=b nunca tenga solución. Si definimos c=A*b, con el b de arriba digamos, el sistema Ax=c tiene solución x=b (¿por qué?). De hecho si calculamos la forma echelon reducida de [A c] tenemos:

    » c=A*b;
    » rref([A c])

    ans =

    1 0 4 0 0 0 30
    0 1 3 0 0 0 19
    0 0 0 1 0 0 3
    0 0 0 0 1 0 -9
    0 0 0 0 0 1 3
    0 0 0 0 0 0 0

    el cual denota un sistema consistente dependiente con soluciones:

    donde x3 es arbitrario.
    Recordemos que MATLAB posee una gran cantidad de funciones matriciales. De las más comunes que tenemos que repasarlas son:

  • min(A), max(A) - dan el mínimo y máximo respectivamente por columnas de A
  • sum(A), prod(A) - producen la suma y producto respectivamente por columnas de A
  • norm(A,p) - norma p de la matriz A donde p=1,2, ó inf
  • eig(A) - vector cuyos componentes son los valores propios de A
  • det(A) - el determinante de A

  • inv(A) - la matriz inversa de A
     
     

    3. Interpolación Polinomial

    La función de interpolación es aquella función que pasa realmente por todos los puntos dados o aquella que "mejor" ajuste a esos puntos. Cuando se ve gráficamente, la línea pasa por cada uno de los puntos dados.

    Para conveniencia seleccionamos un polinomio de grado n para n+1 pares de ordenadas (x,y).

    En general el polinomio puede escribirse:

    y = a0 + a1x + a2x2 + a3x3 + ....... + anxn

    Para evaluar la interpolación polinomial de grado ‘n’ para cualquier conjunto de datos, vamos a evaluar los ‘n+1’ coeficientes, a0, a1, a2, a3, .....an.

    Dado los ‘n+1’ pares de datos, podemos formas las ‘n+1’ ecuaciones

    y1 = a0 + a1x1 + a2x12 + a3x13 + ...... + anx1n

    y2 = a0 + a1x2 + a2x22 + a3x23 + ...... + anx2n

    y3 = a0 + a1x3 + a2x32 + a3x33 + ...... + anx3n

    . . . . . .

    . . . . . .

    . . . . . .

    yn+1 = a0 + a1xn+1 + a2xn+12 + a3xn+13 + ... + anxn+1n

    Este es el conjunto soluble de ‘n+1’ ecuaciones desconocidas

    Los coeficientes desconocidos son a0, a1,......an. Si solo existen dos o tres ecuaciones podemos seguir con la Regla de Cramer para hallar estos coeficientes. Pero, en general vamos a recurrir al álgebra de matrices para manipular estas ecuaciones usando un formato de n sustituciones hacia atrás para obtener los coeficientes desconocidos.

    Observe que el conjunto de ecuaciones puede expresarse convenientemente por la ecuación matricial:

    [y] = [X][a]

    donde,

    [y] = [X] = [a] =
     
     

    y1 1 x1 x12.....x1n+1 a1

    y2 1 x2 x22.....x2n+1 a2

    y3 1 x3 x32.....x3n+1 a3

    . . . . . .

    . . . . . .

    . . . . . .

    yn+1 1 xn+1 xn+12... xn+1n+1 an+1

    Notamos que el producto de las matrices del lado derecho es una matriz columna de orden ‘n+1’x 1.

    La solución que usa la eliminación de Gauss usamos la división por la izquierda de ‘MATLAB’ o

    [a] = [X]\[y]

    Usando este método, podemos encontrar los coeficientes de a para el polinomio de grado n que pasa exactamente a través de los ‘n+1’ puntos.

    Si tenemos un conjunto grande de datos, cada uno de los datos se aparean incluyendo un error experimental, el polinomio de grado n no es una buena opción.

    Los polinomios de grado mayores que cinco o seis tienen a menudo un comportamiento poco realista aunque la curva polinómica pase por cada punto dado. Como ejemplo, consideremos el siguiente conjunto de puntos:

    x y

    2 4

    3 3

    4 5

    5 4

    6 7

    7 5

    8 7

    9 10

    10 9

    En este conjunto hay nueve puntos. A manera que el valor de x se incrementa, los valores de y también varían. Sin embargo, podemos observar que la distribución de los puntos no es lineal. Con ‘MATLAB’ vamos a crear dos vectores para estos datos:

    x9 = [2:1:10];

    y9 = [ 4 3 5 4 7 5 7 10 9 ];

    Para observar estos puntos trazados, ejecutamos:

    plot(x9,y9,’o’)

    Como existe nueve puntos, es posible construir el polinomio de interpolación de grado 8:

    y = a0 + a1x + a2x2 + a3x3 + ....... + a8x8

    Para encontrar los coeficientes desconocidos, definimos el vector columna y

    y = y9’

    y la matriz X

    X = [ones(1,9);x9;x9.^2;x9.^3;x9.^4;x9.^5;x9.^6;x9.^7;x9.^8]’

    Notamos que X es definida usando la transpuesta, la función one( ) y el operador de de array ‘ .^ ‘. Con X y y así definidos, estos satisfacen la ecuación

    [X][a] = [y]

    Resolvemos para los coeficientes de la matriz a indicada anteriormente, entrando el comando

    a = X\y

    dando resultados en

    a = 1.0e+003*

    3.8140

    -6.6204

    4.7831

    -1.8859

    0.4457

    -0.0649

    0.0057

    -0.0003

    0.0000

    Note que el noveno coeficiente a(8) parece tener el valor cero, realmente su valor es un número diferente de cero, aparece esto debido a que MATLAB está considerando 4 cifras significativas a la izquierda después del punto decimal. Para observar los coeficientes con cifras más significativas, entrar el comando:

    format long

    a

    y el formato se cambia con 15 dígitos significativos. Claramente vemos que a(8) no es cero, es un número pequeño elevado a la potencia 8.

    Ahora que ya contamos con los coeficiente, vamos a generar un número suficiente de puntos para crear una curva continua. Para el eje x, formamos un escala en el rango de

    2 <= x <= 10 con incrementos de 0.1.

    x = [ 2:.1:10 ];

    Para y, calculamos el valor en el polinomio de octavo grado para cada uno de los componentes de x:

    y =a(1)+ a(2).*x + a(3).*x.^2 + a(4).*x.^3 + a(5).*x.^4...

    • a(6).*x.^5 + a(7).*x.^6 + a(8).*x.^7 + a(9).*x.^8;

    Ahora plot(x,y) y los puntos dados (x9,y9).

    plot(x,y,x9,y9,’o’)

    Los resultados polinómicos parecen pasar por cada dato exactamente pero el polinomio no sirve para representar cualquier otro punto en el rango de x.
     
     



     






    Por esta razón, no se debe intentar de usar la interpolación polinomial para representar datos experimentales.

    3.1. Función MATLAB para los mínimos Cuadrados

    Hay en MATLAB una función para que la ecuación encaje con el método de los mínimos cuadrados. El comando es

    polyfit(x,y,n)

    donde x, y son los vectores con los datos y ‘n’ es el orden del polinomio para el método de los mínimos cuadrados que se desea. El comando ‘polifit’ devuelve un vector cuyos elementos son los coeficientes del polinomio.

    Los elementos del vector están en orden inverso, de lo que podemos anticipar que el primer elemento es el coeficiente del orden más alto de x y el último elemento es el coeficiente del orden más bajo (el orden 0 ó x0).
     

    4. Números Reales y Complejos
    4.1. Asignación de valores a variables:
    Los números complejos se trabajan igual que los reales en lo que se refiere a asignación, a operaciones matemáticas y a comandos. A continuación, unos pocos ejemplos para mostrar como se realiza la asignación:
    a = 25.203147;
    b = 3;
    c = 1 + 2j; ó también:
    d = 1.5476 + 2.8*i; (el uso de j ó i es indiferente, desde que se tenga en cuenta la nota importante sobre el uso de las variables i y j )
    d = 5.2347;

    e = 3j;
     
     

    4.2. Operaciones matemáticas simples:

    Las operaciones simples son las siguientes:

  • Suma (operador +)
  • Resta (operador -)
  • Multiplicación (operador *)
  • División (operador /)
  • Potenciación (operador ^)
  • A continuación hay algunos ejemplos para complejos: a = 3 + 4i;
    b = 2 - j;
    c = a + b da como resultado:
    c =

    5.0000 + 3.0000i

    d = a ^ b da como resultado:

    d =

    61.3022 + 15.3369i
    Nota importante sobre el uso de las variables i y j:
    Puede usarse indistintamente las dos variables incorporadas (i ó j) y MATLAB no pone problema si se usan las dos al tiempo. Pero si se asignan las variables i y/o j en algún lugar del programa, esta variable perderá su valor como raíz de -1. Para clarificar esto es útil un ejemplo:

    % Observación para cuando se trabaja con complejos.

    i = 8

    j = 9

    c = 2 + 3*j
     

    La salida del programa anterior es:
    i =

    8

    j =

    9

    c =

    29

    Como se puede ver si se intentaba representar un complejo con la variable c, no se logró debido a que se cambiaron las variables i y j. Por lo tanto recomiendo que si se va a trabajar con complejos en un programa: Deje libres las variables i y j (no las utilice en contadores ó en otros propósitos, que no sean representar raiz de -1.
    4.3. Comandos matemáticos para números (complejos y reales):

    Los comandos matemáticos más empleados con números son:

    4.3.1. Comando ABS

    Calcula la norma de un complejo, o el valor absoluto de un real.
    La sintaxis de la orden es:

    Valor = abs(Número);

    Valor es la norma del complejo si (Número es complejo) o el valor absoluto de Número (si es real).

    Número puede ser un real o un complejo:
    Si es Real: calcula el valor absoluto.

    Si es Complejo: calcula la norma del complejo.
    El siguiente ejemplo ilustra el uso de abs: (ver orden de programación DISP)

    %Ejemplo de uso de abs.

    R = -1.2341

    C = 1.5+3j

    disp( ‘ Para un real: ‘ );

    v = abs( R )

    disp ( ‘ Para un complejo: ‘ );

    v = abs( C )

    Al correr el programa se obtienen como salida los siguientes resultados: R =

    -1.2341

    C =

    1.5000 + 3.0000i

    Para un real:

    v =

    1.2341

    Para un complejo:

    v =

    3.3541

    4.3.2. Comando SQRT

    Calcula la raiz cuadrada de un complejo o de un real.

    La sintaxis de la orden es:

    Valor = sqrt(Número);

    En Valor se almacena la raíz cuadrada del número.
    Número puede ser un real o un complejo (si es real negativo, el resultado es un complejo)

    El siguiente ejemplo ilustra el uso de sqrt:

    %Ejemplo de uso de sqrt.

    R= - 12.347

    raiz = sqrt ( R )

    C = 2.6 – 7.3j

    raiz = sqrt ( C )


    Al correr el programa se obtienen como salida los siguientes resultados:

    R =

    12.347

    raiz =

    0 + 3.5138i

    C =

    2.6000 – 7.3i

    raiz =

    2.2748 – 1.6046i
     

    4.3.3. Comando ANGLE
    Calcula el ángulo de fase (en radianes) de una matriz (podría querer leer sobre matrices) con elementos complejos. Si la matriz sólo tiene un elemento, calcula el ángulo de fase de ese complejo.

    La sintaxis de la orden es:

    Valor = angle(Matriz);

    Valor es una matriz que almacena el valor del ángulo de fase del complejo (de 0 a 2*pi) que ocupa la misma posición en Matriz (el ángulo de fase del elemento 1,1 lo almacena en la posición 1,1).
    Matriz es una matriz (puede tener un solo elemento) cualquiera con componentes complejas (los reales forman parte de los complejos).
    El siguiente ejemplo ilustra el uso de angle: (ver orden de programación DISP)

    %Ejemplo de uso de angle.

    C = [1 2i;1+3i 2.3+5i]

    c=[1.5+3j]

    disp(‘Para la matriz:’);

    v=angle©

    disp(‘Para un complejo: (matriz de un solo elemento)’);

    v=angle©


    Al correr el programa se obtienen como salida los siguientes resultados:
    C =

    2.0000 0 - 2.7000i

    3.0000 + 5.0000i 0.7000 - 5.0000i
     

    c =

    6.3000 + 7.2300i

    Para la matriz:

    v =
    0 -1.5708

    1.0304 - 1.4317
     

    Para un complejo: (matriz de un solo elemento)

    v =

    0.8540
     

    5. Integrales Definidas
    Se solucionan numéricamente por medio del comando TRAPZ.
    5.1. Comando TRAPZ
    Calcula la integral definida entre dos límites de una función (área bajo la curva) representada por uno o dos vectores, como se explica más adelante. El cálculo de la integral se realiza numéricamente, por medio de una aproximación de la función a trapecios (En ningún momento calcula la integral simbólica).

    Debido a que el cálculo de la integral es numérico, se deben construir vectores "decentes" para calcular la integral. Por esta razón, es fundamental aclarar las características de los vectores, con el fin de tener un criterio para decidir como construir el vector de forma apropiada. (para mayor claridad en el ejemplo de esta orden, puede ser necesario leer las secciones sobre FOR y Vectores y matrices).

    La sintaxis de la orden es:
     

    Valor = trapz([Vector,] Matriz);

    Los símbolos [ ] significan que Vector es opcional.

    Matriz puede ser una matriz o un vector. Una matriz si se desea calcular la integral definida para varias funciones en el mismo rango (entre los mismos límites). Un vector si se desea calcular la integral para una sola función (su tamaño tiene relación con el tamaño de Vector, esta relación se muestra en detalle en la explicación de Vector).

    Vector es el vector de los valores para los cuales se desea calcular la integral, tal que si Matriz es:

  • Un vector: Matriz y Vector deben ser de la misma longitud (ya sean vectores fila, o columna). A cada valor almacenado en Vector corresponde el valor almacenado en Matriz (con el mismo subíndice).
  • Una matriz: Vector debe ser un vector columna y Matriz tiene almacenadas las funciones por columnas (cada columna = una función), Matriz debe tener el mismo número de filas que vector.

  • Si Vector se omite, es equivalente a introducir un vector con paso 1 ( por ejemplo: [0, 1, 2, 3] ), note que la integral no depende de los valores que se introducen en Valor, sino de su paso (ya que los valores de la función en cada punto están almacenados en Matriz), en otras palabras la integral sigue siendo la misma (en valor) si la corro hacia un lado y realizo la integral entre el nuevo par de límites.

    Valor es donde se almacena el valor de la integral (un real si sólo se calculó para una función, y un vector fila si se calculó para varias).
    5.2. Creación de vectores "decentes"
    La integral se realiza aproximando la curva (función) a una serie de rectas, con el fin de aproximar el área bajo la curva a una serie de trapecios contiguos. Por lo tanto la aproximación es buena ("decente") si efectivamente la función se comporta como una recta (aproximadamente) en cada sub-intervalo determinado por el paso y número de puntos que se tomen. Una forma empírica de verificar que los vectores están bien construidos es por medio de la orden plot, ya que esta función dibuja los vectores, aproximando la función de la misma forma que trapz. Por lo tanto, si al dibujar la curva con plot, esta se ve "suave", los vectores están bien definidos.

    El siguiente ejemplo ilustra el uso de trapz:

    %Ejemplo de uso de trapz.

    for i = 1:100,

    x(i, 1)=1+ i / 20; % Asigna los valores de x entre 1 y 6 en incrementos

    % de 0.05

    y(i, 1) = x( i ,1) + 1; % Define la función y = x + 1

    z(i, 1) = x( i,1)^2 + 1; % Define la función z=x^2+1

    end;

    Los vectores x, y, z se definieron como vectores columna arriba, con el fin de demostrar el funcionamiento de trapz con varias funciones.

    Estos vectores perfectamente hubieran podido ser fila, pero hubiera sido más

    difícil armar la matriz. Igualmente se requería construir un x que fuera

    columna.

    A(:, 1)=y;

    A(:, 2)=z;

    integral = trapz(x, y)

    integral = trapz(x, z) % Normalmente se usaría un nombre diferente al de arriba

    integral = trapz(x, A) % Normalmente se usaría un nombre diferente al de arriba


    Al correr el programa se obtiene la siguiente salida:

    integral =

    22.3988

    integral =

    76.5662

    integral =

    22.3988 76.5662
     
     

    6. Gráficas
    MATLAB provee excelentes funciones para gráficas en dos, tres y cuatro dimensiones. Veamos un par de ejemplos sencillos. Suponga que queremos trazar la gráfica de la función

    Esto lo podemos lograr con las instrucciones:

    » x=-5:.1:5;
    » y=x.^2.*exp(-x.^2);
    » plot(x,y)






    La primera instrucción divide el intervalo [-5,5] en subintervalos de largo 0.1, la segunda instrucción evalúa la función en los puntos de la partición, y finalmente graficamos los resultados con plot. La instrucción plot tiene opciones para cambiar patrones del trazado, poner titulos, etc.

    Supongamos ahora que queremos dibujar la superficie:

    Esto lo hacemos con la secuencia de instrucciones:

    » x=-5:.4:5;
    » y=x;
    » [X,Y]=meshgrid(x,y);
    » Z=X.^2.*exp(-Y.^2);
    » surf(X,Y,Z)

     

    Las primeras dos instrucciones dividen los ejes de "x" y "y" en subintervalos de largo 0.4; la tercera instrucción genera una rejilla en el conjunto [-5,5]x[-5,5] con cuadraditos de lados 0.4 como se ilustra en la siguiente figura:






    La cuarta instrucción evalúa la función en los puntos de la rejilla, y finalmente trazamos la superficie con surf.

    Los temas tratados hasta ahora son suficientes para realizar programas sencillos y útiles. Los comandos disponibles en MATLAB son muchos más, pero los tratados aquí son los más frecuentemente necesitados. En caso de ser necesario emplear otras ordenes, es posible "buscar" la solución por medio de HELP (todo está en inglés), la cual lista los temas matemáticos que se pueden emplear (separados en librerías llamadas toolbox). HELP [toolbox] lista los comandos en la librería y HELP [comando] explica su uso y sintaxis.