Saltar al contenido principal
LibreTexts Español

8.7: Vectores y Matrices

  • Page ID
    82293
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Como su nombre lo indica, MATLAB está especialmente diseñado para manejar matrices. La forma más sencilla de ingresar a una matriz es usar una lista explícita. En la lista, los elementos están separados por espacios en blanco o comas, y se usa el punto y coma (;) para indicar el final de una fila. La lista está rodeada de corchetes []. Por ejemplo, la declaración

    ≫ A = [1 2 3;4 5 6;7 8 9]

    resultados en la salida

    A = 
       1 2 3
       4 5 6
       7 8 9

    La variable A es una matriz de tamaño 3×3. Los elementos de matriz pueden ser cualquier expresión de MATLAB. Por ejemplo, el comando

    ≫ x = [-1.3 sqrt(3) (1+2+3)*4/5]

    resultados en la matriz

    x = 
       -1.3000  1.7321  4.8000

    Llamamos a una matriz con solo una fila o una columna un vector, y una matriz 1×1 es un escalar. Los elementos individuales de la matriz pueden ser referenciados con índices que se colocan entre paréntesis. Escriba x (5) = abs (x (1)) para producir el nuevo vector

    x = 
       -1.3000  1.7321  4.8000  0.000  1.3000

    Tenga en cuenta que el tamaño de x se ha ajustado automáticamente para acomodar el nuevo elemento y que los elementos no referenciados se establecen iguales a 0 (aquí x (4)). Nuevas filas o columnas se pueden agregar muy fácilmente. Intente escribir r = [10 11 12], A = [A; r]. Las dimensiones en el comando deben coincidir. Prueba r = [13 14], A = [A; r].

    El tamaño del comando (A) da el número de filas y el número de columnas de A. La salida del tamaño (A) es en sí misma una matriz de tamaño 1×2. Estos números se pueden almacenar si es necesario mediante el comando [m n] = tamaño (A). En nuestro ejemplo anterior, A = [A; r] es una matriz 4×3, por lo que la variable m contendrá el número 4 y n contendrá el número 3. Un vector es una matriz para la cual m o n es igual a 1. Si m es igual a 1, la matriz es un vector de fila; si n es igual a 1, la matriz es un vector de columna. Las matrices y vectores pueden contener números complejos. Por ejemplo, la declaración

    ≫ A = [1 2;3 4]+j*[5 6;7 8]

    y la declaración

    ≫ A = [1+5*j 2+6*j;3+7*j 4+8*j]

    son equivalentes, y ambos producen la matriz

    A =
       1.0000+5.0000i    2.0000+6.0000i
       3.0000+7.0000i    4.0000+8.0000i

    Tenga en cuenta que los espacios en blanco deben evitarse en la segunda expresión para A. Intente escribir

    ≫A = [1 + 5*j 2 + 6*j 2 + 6*j;3 +7*j 4 + 8*j]

    ¿Cuál es el tamaño de A ahora?

    MATLAB tiene varias funciones integradas para manipular matrices. El carácter especial, ', para primo denota la transposición de una matriz. El enunciado A = [1 2 3; 4 5 6; 7 8 9] 'produce la matriz

    A = 
       1 4 7 
       2 5 8
       3 6 9

    Las filas de A' son la columna de A, y viceversa. Si A es una matriz compleja, entonces A es su transposición conjugada compleja o transposición hermitiana. Para una transposición “no conjugada”, use el operador de dos caracteres dot-prime (. '). Las variables matriciales y vectoriales se pueden sumar, restar y multiplicar como variables regulares si los tamaños coinciden. Sólo se pueden sumar o restar matrices del mismo tamaño. Sin embargo, existe una manera fácil de sumar o restar un escalar común de cada elemento de una matriz. Por ejemplo, x = [1 2 3 4], x = x-1 produce la salida

    x = 
       1 2 3 4
    
    x = 
       0 1 2 3

    Como se discutió en el capítulo sobre álgebra lineal, la multiplicación de dos matrices solo es válida si los tamaños internos de las matrices son iguales. En otras palabras, A*B es válido si el segundo tamaño de A (número de columnas) es el mismo que el primer tamaño de B (número de filas). Que ai, jai, j representen el elemento de A en la\(i^{\text {th}}\) fila y la\(j^{\text {th}}\) columna. Entonces la matriz A*B consta de elementos

    \[(\mathrm{AB})_{i, j}=\sum_{k=1}^{n} \mathrm{a}_{i, k} b_{k, j} \nonumber \]

    donde nn es el número de columnas de A y el número de filas de B. Intente escribir A = [1 2 3; 4 5 6]; B = [7; 8; 9]; A*B. Deberías obtener el resultado

    ans =
        50
        112

    El producto interno entre dos vectores de columna x e y es el escalar definido como el producto x'*y o equivalentemente como y'*x Por ejemplo, x = [1; 2], y = [3; 4], x'*y, lleva al resultado

    ans =
        11

    De manera similar, para los vectores de fila el producto interno se define como x*y'. La norma euclidiana de un vector se define como la raíz cuadrada del producto interno entre un vector y él mismo. Trate de computar la norma del vector [1 2 3 4]. Deberías obtener 5.4772. El producto externo de dos vectores de columna (fila) es la matriz x*y' (x'*y).

    Cualquier escalar puede multiplicarse o multiplicarse por una matriz. La multiplicación se realiza entonces elemento por elemento. Prueba A = [1 2 3; 4 5 6; 7 8 9]; A*2. Deberías obtener

    ans =
        2  4  6
        8 10 12
       14 26 28

    Verifique que 2*A dé el mismo resultado.

    La inversa de una matriz se calcula utilizando la función inv (A) y sólo es válida si A es cuadrada. Si la matriz es singular, es decir, que no tiene inversa, aparecerá un mensaje. Intente escribir inv (A). Deberías obtener

    Warning: Matrix is close to singular or badly scaled.
       Results may be inaccurate. RCOND=2.937385e-18
    
    ans =
         1.0e+16*
         0.3152  -0.6304   0.3152
        -0.6304   1.2609  -0.6304
         0.3152  -0.6304   0.3152  

    La inversa de una matriz puede ser utilizada para resolver un sistema lineal de ecuaciones. Por ejemplo, para resolver el sistema podrías escribir A = [1 2 3; 1 -2 4; 0 -2 1]; b = [2; 7; 3]; inv (A) *b y obtener

    ans =
        1
       -1
        1

    \ [\ left [\ begin {array} {lll}
    1 & 2 & 3\\
    1 & -2 & 4\\
    0 & -2 & 2 & 1
    \ end {array}\ right]\ left [\ begin {array} {l}
    x_ {1}\\
    x_ {2}\\
    x_ {3}
    \ end {array}\ right] =\ left [\ begin {array} {l }
    2\\
    7\\
    3
    \ end {array}\ derecha]\ nonumber\]

    Comprueba que esta es la respuesta correcta escribiendo A* [1; -1; 1]. ¿Qué ves?

    MATLAB ofrece otra forma de resolver sistemas lineales, basados en la eliminación de Gauss, que es más rápida que calcular la inversa. La sintaxis es A\ b y es válida siempre que A tenga el mismo número de filas que b. Pruébalo.

    El operador “Dot”

    En ocasiones es posible que desee realizar una operación elemento por elemento. En MATLAB, estas operaciones elemento por elemento se denominan operaciones de matriz. Por supuesto, la suma y resta de matriz ya son operaciones elemento por elemento. La operación A. *B denota la multiplicación, elemento por elemento, de las matrices A y B. Haz dos matrices 3×3, A y B, y prueba

    ≫ A*B
    ≫ A.*B

    Supongamos que queremos encontrar el cuadrado de cada número en A. La forma correcta de especificar este cálculo es

    ≫ A_squared=A.^2

    donde el punto (punto) indica una “operación de matriz” a realizar en cada elemento de A. Sin el punto, A se multiplica por A según las reglas de multiplicación matricial descritas en el Capítulo 4, dando un resultado totalmente diferente:

    ≫ A^2

    Sutilezas

    Debido a que MATLAB puede hacer tantas funciones matemáticas diferentes con solo unas pocas pulsaciones de teclas, hay momentos en los que un cambio muy ligero en lo que escribe conducirá a un resultado diferente. Usando la matriz A introducida anteriormente, escriba las dos líneas siguientes:

    ≫ 2.^A
    ≫ 2 .^A                        %with a space after the 2.

    En el primer caso, el punto es “absorbido” por el 2 como punto decimal y el ^ se toma como una matriz exponencial. Pero, cuando el punto está separado del 2 por un espacio, se convierte en parte del operador (.^) y especifica que 2 debe elevarse a la potencia de cada elemento en A. El punto es, debes tener mucho cuidado de escribir lo que quieres decir de una manera inequívoca hasta que estés lo suficientemente familiarizado con MATLAB para saber cómo lo sutil situaciones serán interpretadas. Una forma inequívoca de escribir las líneas anteriores es

    ≫ (2.)^A                     %for matrix exponential
    ≫ (2).^A                     %for array exponential.

    This page titled 8.7: Vectores y Matrices is shared under a CC BY 3.0 license and was authored, remixed, and/or curated by Louis Scharf (OpenStax CNX) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.