SlideShare una empresa de Scribd logo
Departamento de Matem´tica Aplicada
                                                            a
                                        ´
                                       CALCULO COMPUTACIONAL.
                                   Licenciatura en Qu´ımica (Curso 2005-06)
                                              Matrices Pr´ctica 1
                                                         a


1.      Introducci´n
                  o
   En esta pr´ctica vamos a profundizar un poco en las capacidades de Matlab para trabajar con matrices. Veremos
             a
en primer lugar algunas operaciones y comandos b´sicos y no tan b´sicos que tiene el programa para trabajar con
                                                 a                 a
matrices.


2.      Matrices en Matlab
     Para introducir una matriz en Matlab se procede de la forma siguiente. Si por ejemplo tenemos la matriz

                                                         1 2 3 4
                                                  A=
                                                         5 6 7 8

se introduce como:
>>A=[1 2 3 4; 5 6 7 8]

A =
        1    2    3   4
        5    6    7   8
O bien,

>>A=[1,2,3,4;5,6,7,8];

    Observemos que unas matrices especiales son los vectores, de esta forma, el vector fila v = (1.0, 1.1,1.2,1.3, . . . ,
1.9,2.0), se escribe en Matlab como
>>v=[1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0]


3.      Operaciones y comandos para Matrices
   Hemos visto c´mo se introducen las matrices en Matlab. Veamos un ejemplo para introducir algunos de los
                o
comandos b´sicos:
          a

Ejemplo 1 Operaciones Elementales
   Definimos dos matrices:

>>A=[2 1;3 2]
A =
      2                 1
      3                 2

>>B=[3 4;-1 5]
B =
      3                 4
     -1                 5

     • Para sumar las dos matrices:



                                                           1
>>A+B
ans =
        5             5
        2             7

   • Para multiplicar una matriz por un escalar:

>>3*A
ans =
        6             3
        9             6

   • Producto de matrices:

>>C=A*B
C =
      5              13
      7              22

    Siempre que los tama˜os de las matrices sean los adecuados. Para saber cu´l es el tama˜ o de una matriz con
                        n                                                    a            n
la que estamos trabajando,

>>size(A)
ans =
      2               2

   Que quiere decir, evidentemente, 2 filas y 2 columnas.
   • Para calcular la matriz transpuesta:

>>A’
ans =
        2             3
        1             2

Ejercicio 1 Utilizando las matrices definidas en el ejemplo anterior, comprobar que (AB) t = B t At . (At es la
transpuesta de A).

Ejemplo 2 Operaciones t´rmino a t´rmino: .* ./ .^
                            e          e
Matlab tiene tres operaciones, que las llamaremos operaciones con punto, que permiten
    i) multiplicar matrices t´rmino a t´rmino: .*
                             e          e
    ii) dividir matrices t´rmino a t´rmino: ./
                          e         e
    ii) elevar los t´rminos de una matriz a una cierta potencia: .^
                    e
Si v es el vector definido en la Secci´n 2, explorar qu´ hace la orden
                                      o               e
>>v.^2
Por otra parte, si A y B son las matrices definidas anteriormente, explorar qu´ hacen las ordenes
                                                                             e           ´
>>A.*B
>>A./B

   Estas operaciones con punto son esenciales en el c´lculo num´rico y se utilizan para representar funciones
                                                     a         e
num´ricamente.
    e

Ejemplo 3 Matrices especiales con Matlab
   • Para generar la matriz identidad cuadrada,




                                                       2
>>eye(3)
ans =
      1                 0             0
      0                 1             0
      0                 0             1

¿Por qu´ habr´n elegido el nombre eye?
          e    a
   • Una matriz 3 × 2 llena de unos,
   >>ones(3,2)
   • Y si queremos que est´ llena de ceros,
                           e
   >>zeros(3,2)
   • Para generar una matriz con n´meros aleatorios uniformemente distribuidos entre 0 y 1,
                                    u
   >>rand(3,2)
   Si se usa el comando randn los n´meros aleatorios son normalmente distribuidos, siguiendo la Normal Estandar
                                   u
N (0, 1).

Ejemplo 4 Rango, Inversa y Determinante
   • Definimos la matriz,

>>X=[2 3 4; 1 -1 0]
X =
     2     3     4
     1    -1     0

   Para calcular su rango,

>>rank(X)
ans =
      2

   • Supongamos que tenemos definida la siguiente matriz,
H =
      8      1      6
      3      5      7
      4      9      2
Para calcular su inversa,

>>inv(H)
ans =
    0.1472       -0.1444     0.0639
   -0.0611        0.0222     0.1056
   -0.0194        0.1889    -0.1028


   Y si queremos ver el resultado en forma racional,

>>format rational
>>inv(H)
ans =
    53/360      -13/90             23/360
   -11/180        1/45             19/180
    -7/360       17/90            -37/360

(Para ver todas las opciones del comando format hacer help format)
   • Para calcular el determinante de la matriz anterior H,


                                                       3
>>det(H)
ans =
   -360

Ejercicio 2 Generar una matriz cualquiera, por ejemplo 25×25, y calcular su inversa, su rango y su determinante.
(¡No imprimirla!) ¿Qu´ ocurre con el determinante de la matriz y el de su inversa?
                     e

Ejemplo 5 Los comandos especiales rref y rrefmovie
   • El comando rref produce la forma reducida escalonada por filas de una matriz usando la eliminaci´n de  o
Gauss-Jordan, es decir, haciendo ceros por debajo y por encima de la diagonal principal sin mover las columnas.
   Por ejemplo, definimos la matriz,

>>A=[-1 2 -1;2 1 2;2 4 2]

A =

      -1              2              -1
       2              1               2
       2              4               2

   Ahora escribimos el comando aplicado a la matriz,

>>R=rref(A)

R =

       1              0               1
       0              1               0
       0              0               0

    • El comando rrefmovie produce exactamente el mismo resultado pero nos indica paso a paso c´mo se vao
obteniendo la matriz resultado e incluso qu´ filas o columnas son despreciables (por ser linealmente dependientes
                                             e
de las otras), informaci´n muy ultil si queremos calcular el rango de la matriz por ejemplo. Es decir, produce una
                        o        ´
especie de pel´cula (movie) de todo el proceso.
              ı

>>rrefmovie(A)
Original matrix

A =

      -1              2              -1
       2              1               2
       2              4               2

Press any key to continue. . .

Ahora pulsamos una tecla para continuar,
swap rows 1 and 2

A =

       2              1               2
      -1              2              -1
       2              4               2

Press any key to continue. . .

                                                        4
Nos indica que ha intercambiado la primera y segunda filas, pulsamos de nuevo una tecla,
pivot = A(1,1)

A =

        1              1/2             1
       -1               2             -1
        2               4              2

Press any key to continue. . .
Ahora nos indica que va a pivotear sobre el elemento (1,1) de la matriz,
eliminate in column 1

A =

        1              1/2             1
       -1               2             -1
        2               4              2

Press any key to continue. . .
Ahora nos est´ indicando que va a eliminar (hacer ceros) en la primera columna y as´ sucesivamente hasta obtener
             a                                                                     ı
el mismo resultado que nos di´ el comando rref.
                             o

Ejercicio 3 a) Calcular el rango de la matriz siguiente utilizando el comando rref o rrefmovie:
                                                                  
                                                   16 2 3 13
                                                  5 11 10 8 
                                           A=    9 7 6 12
                                                                   

                                                    4 14 15 1
   b) Si una matriz H es cuadrada y no singular, es decir det(H) = 0, ¿cu´l ser´ la matriz R = rref(H)?
                                                                         a     a
   c) ¿C´mo podemos utilizar estos comandos para calcular la inversa de una matriz invertible? Aplicarlo a la
         o
matriz,
                                                             
                                                      8 1 6
                                              B = 3 5 7
                                                      4 9 2
     Para verificar el resultado se puede calcular la inversa directamente con inv(B).


4.      Matrices “dispersas”
Ejemplo 6 A veces usamos matrices con muchos ceros. MatLab tiene una forma de trabajar con ellas usando
menos bytes con el comando sparse. Ve´moslo con un ejemplo:
                                        a
   Introducimos una matriz:
   >>A=[0 0 0 3;0 0 -1 2;3 0 0 1;0 0 0 -2];
   - Para convertirla a matriz dispersa
   >>s=sparse(A)
   Si preguntamos ‘‘whos" vemos que s ocupa menos que A.
   - Para recuperar la matriz inicial
   >>full(s)
   Para visualizar gr´ficamente la matriz:
                     a
   >>spy(s)


                                                         5
o bien,
   >>imagesc(s),colorbar

   Se pueden generar directamente matrices “sparse”:
   >>sparse(i,j,s,m,n)
   donde: i,j son los sub´ındices de los elementos no nulos (i,j son vectores)
   s es un vector con los valores de los elementos no nulos
   (m,n) es el tama˜o de la matriz.
                    n
   De modo que, en el ejemplo anterior, para generar s deber´ ıamos escribir:
   >>i=[1 2 2 3 3 4];
   >>j=[4 3 4 1 4 4];
   >>s=[3 -1 2 3 1 -2];

>>m=4;n=4;

   >>sparse(i,j,s,m,n)
   Y obtenemos s. Para obtener la matriz inicial >>full(s)

Ejercicio 4 Utilizando el comando sparse, generar la   matriz 20 × 20
                                                                     
                                        0    1 0        0 ...    0  0
                                     −1 0 1            0 ...    0  0
                                                                     
                                      0 −1 0           1 ...    0  0
                                      .                            .
                                                                     
                                      .                  ..        .
                                      .                     .      .
                                     0      0 0        0 ...    0 1
                                        0    0 0        0 ...    −1 0

   (Visualizarla para comprobar que est´ bien.)
                                       a




                                                        6

Más contenido relacionado

PPT
Matlab presentacion enero2012
PDF
Guia 2 matlab
DOCX
Matlab -compu_aplicada
PDF
Capitulo5
PDF
Guia 1 matlab
DOCX
EJEMPLO APLICACIÓN DE MATRICES
PDF
Curso matlab
PPTX
Resolución de ecuaciones diferenciales con MATLAB R2015a
Matlab presentacion enero2012
Guia 2 matlab
Matlab -compu_aplicada
Capitulo5
Guia 1 matlab
EJEMPLO APLICACIÓN DE MATRICES
Curso matlab
Resolución de ecuaciones diferenciales con MATLAB R2015a

La actualidad más candente (18)

PDF
2 vectores matrices
PPTX
Estadística con Lenguaje R: Sesión 2
PDF
Guia 3 matlab
PDF
Seminario de matlab
PPT
Matlab
PPT
MATLAB 2010
PDF
Matlab (1)
PDF
Curso matlab
PDF
Matlabreyes
PDF
Apuntesmatlab
PPTX
Introduccion y operaciones basicas (matlab)
DOC
resolucion de ecuaciones diferenciales con MATLAB
PPT
Curso de introduccion_al_matlab
PDF
Desarrollo de ejercicios básicos en matlab
PPTX
Funciones y gráficas en matlab
PDF
Matrices y determinantes
DOCX
Matrices y determinantes
2 vectores matrices
Estadística con Lenguaje R: Sesión 2
Guia 3 matlab
Seminario de matlab
Matlab
MATLAB 2010
Matlab (1)
Curso matlab
Matlabreyes
Apuntesmatlab
Introduccion y operaciones basicas (matlab)
resolucion de ecuaciones diferenciales con MATLAB
Curso de introduccion_al_matlab
Desarrollo de ejercicios básicos en matlab
Funciones y gráficas en matlab
Matrices y determinantes
Matrices y determinantes
Publicidad

Destacado (7)

PDF
1.generalidades
PPTX
Generalidades del cáncer
PPTX
Introduccion oncologia universidad (1)
PPTX
Principios, definiciones y generalidades de oncología
PPT
Introduccion Curso Oncologia
PDF
Study: The Future of VR, AR and Self-Driving Cars
PDF
Hype vs. Reality: The AI Explainer
1.generalidades
Generalidades del cáncer
Introduccion oncologia universidad (1)
Principios, definiciones y generalidades de oncología
Introduccion Curso Oncologia
Study: The Future of VR, AR and Self-Driving Cars
Hype vs. Reality: The AI Explainer
Publicidad

Similar a Practica2 (20)

DOC
10 vectores y matrices
PDF
Tema 3
PDF
Manual matlab
PDF
Matlab
PPT
Matlab
PPT
Matlab
PDF
Libro de métodos matriciales con matlab para ingenieros [ph.d. juan carlos he...
PDF
PPT
Matlab
PDF
practica matlab
PDF
Tutorial De Matlab
PPTX
Operaciones matemáticas con arrays y aplicaciones
DOCX
Introducion al matlab
DOCX
Trabajo matlab
PPTX
Presentación1
PPT
Cursos de MATLAB
PDF
Practica1
DOC
Notas matlab
PPTX
Comando ELMAT_UAP_2014_MATC_comandos.pptx
PDF
matlab
10 vectores y matrices
Tema 3
Manual matlab
Matlab
Matlab
Matlab
Libro de métodos matriciales con matlab para ingenieros [ph.d. juan carlos he...
Matlab
practica matlab
Tutorial De Matlab
Operaciones matemáticas con arrays y aplicaciones
Introducion al matlab
Trabajo matlab
Presentación1
Cursos de MATLAB
Practica1
Notas matlab
Comando ELMAT_UAP_2014_MATC_comandos.pptx
matlab

Practica2

  • 1. Departamento de Matem´tica Aplicada a ´ CALCULO COMPUTACIONAL. Licenciatura en Qu´ımica (Curso 2005-06) Matrices Pr´ctica 1 a 1. Introducci´n o En esta pr´ctica vamos a profundizar un poco en las capacidades de Matlab para trabajar con matrices. Veremos a en primer lugar algunas operaciones y comandos b´sicos y no tan b´sicos que tiene el programa para trabajar con a a matrices. 2. Matrices en Matlab Para introducir una matriz en Matlab se procede de la forma siguiente. Si por ejemplo tenemos la matriz 1 2 3 4 A= 5 6 7 8 se introduce como: >>A=[1 2 3 4; 5 6 7 8] A = 1 2 3 4 5 6 7 8 O bien, >>A=[1,2,3,4;5,6,7,8]; Observemos que unas matrices especiales son los vectores, de esta forma, el vector fila v = (1.0, 1.1,1.2,1.3, . . . , 1.9,2.0), se escribe en Matlab como >>v=[1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0] 3. Operaciones y comandos para Matrices Hemos visto c´mo se introducen las matrices en Matlab. Veamos un ejemplo para introducir algunos de los o comandos b´sicos: a Ejemplo 1 Operaciones Elementales Definimos dos matrices: >>A=[2 1;3 2] A = 2 1 3 2 >>B=[3 4;-1 5] B = 3 4 -1 5 • Para sumar las dos matrices: 1
  • 2. >>A+B ans = 5 5 2 7 • Para multiplicar una matriz por un escalar: >>3*A ans = 6 3 9 6 • Producto de matrices: >>C=A*B C = 5 13 7 22 Siempre que los tama˜os de las matrices sean los adecuados. Para saber cu´l es el tama˜ o de una matriz con n a n la que estamos trabajando, >>size(A) ans = 2 2 Que quiere decir, evidentemente, 2 filas y 2 columnas. • Para calcular la matriz transpuesta: >>A’ ans = 2 3 1 2 Ejercicio 1 Utilizando las matrices definidas en el ejemplo anterior, comprobar que (AB) t = B t At . (At es la transpuesta de A). Ejemplo 2 Operaciones t´rmino a t´rmino: .* ./ .^ e e Matlab tiene tres operaciones, que las llamaremos operaciones con punto, que permiten i) multiplicar matrices t´rmino a t´rmino: .* e e ii) dividir matrices t´rmino a t´rmino: ./ e e ii) elevar los t´rminos de una matriz a una cierta potencia: .^ e Si v es el vector definido en la Secci´n 2, explorar qu´ hace la orden o e >>v.^2 Por otra parte, si A y B son las matrices definidas anteriormente, explorar qu´ hacen las ordenes e ´ >>A.*B >>A./B Estas operaciones con punto son esenciales en el c´lculo num´rico y se utilizan para representar funciones a e num´ricamente. e Ejemplo 3 Matrices especiales con Matlab • Para generar la matriz identidad cuadrada, 2
  • 3. >>eye(3) ans = 1 0 0 0 1 0 0 0 1 ¿Por qu´ habr´n elegido el nombre eye? e a • Una matriz 3 × 2 llena de unos, >>ones(3,2) • Y si queremos que est´ llena de ceros, e >>zeros(3,2) • Para generar una matriz con n´meros aleatorios uniformemente distribuidos entre 0 y 1, u >>rand(3,2) Si se usa el comando randn los n´meros aleatorios son normalmente distribuidos, siguiendo la Normal Estandar u N (0, 1). Ejemplo 4 Rango, Inversa y Determinante • Definimos la matriz, >>X=[2 3 4; 1 -1 0] X = 2 3 4 1 -1 0 Para calcular su rango, >>rank(X) ans = 2 • Supongamos que tenemos definida la siguiente matriz, H = 8 1 6 3 5 7 4 9 2 Para calcular su inversa, >>inv(H) ans = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 Y si queremos ver el resultado en forma racional, >>format rational >>inv(H) ans = 53/360 -13/90 23/360 -11/180 1/45 19/180 -7/360 17/90 -37/360 (Para ver todas las opciones del comando format hacer help format) • Para calcular el determinante de la matriz anterior H, 3
  • 4. >>det(H) ans = -360 Ejercicio 2 Generar una matriz cualquiera, por ejemplo 25×25, y calcular su inversa, su rango y su determinante. (¡No imprimirla!) ¿Qu´ ocurre con el determinante de la matriz y el de su inversa? e Ejemplo 5 Los comandos especiales rref y rrefmovie • El comando rref produce la forma reducida escalonada por filas de una matriz usando la eliminaci´n de o Gauss-Jordan, es decir, haciendo ceros por debajo y por encima de la diagonal principal sin mover las columnas. Por ejemplo, definimos la matriz, >>A=[-1 2 -1;2 1 2;2 4 2] A = -1 2 -1 2 1 2 2 4 2 Ahora escribimos el comando aplicado a la matriz, >>R=rref(A) R = 1 0 1 0 1 0 0 0 0 • El comando rrefmovie produce exactamente el mismo resultado pero nos indica paso a paso c´mo se vao obteniendo la matriz resultado e incluso qu´ filas o columnas son despreciables (por ser linealmente dependientes e de las otras), informaci´n muy ultil si queremos calcular el rango de la matriz por ejemplo. Es decir, produce una o ´ especie de pel´cula (movie) de todo el proceso. ı >>rrefmovie(A) Original matrix A = -1 2 -1 2 1 2 2 4 2 Press any key to continue. . . Ahora pulsamos una tecla para continuar, swap rows 1 and 2 A = 2 1 2 -1 2 -1 2 4 2 Press any key to continue. . . 4
  • 5. Nos indica que ha intercambiado la primera y segunda filas, pulsamos de nuevo una tecla, pivot = A(1,1) A = 1 1/2 1 -1 2 -1 2 4 2 Press any key to continue. . . Ahora nos indica que va a pivotear sobre el elemento (1,1) de la matriz, eliminate in column 1 A = 1 1/2 1 -1 2 -1 2 4 2 Press any key to continue. . . Ahora nos est´ indicando que va a eliminar (hacer ceros) en la primera columna y as´ sucesivamente hasta obtener a ı el mismo resultado que nos di´ el comando rref. o Ejercicio 3 a) Calcular el rango de la matriz siguiente utilizando el comando rref o rrefmovie:   16 2 3 13  5 11 10 8  A=  9 7 6 12  4 14 15 1 b) Si una matriz H es cuadrada y no singular, es decir det(H) = 0, ¿cu´l ser´ la matriz R = rref(H)? a a c) ¿C´mo podemos utilizar estos comandos para calcular la inversa de una matriz invertible? Aplicarlo a la o matriz,   8 1 6 B = 3 5 7 4 9 2 Para verificar el resultado se puede calcular la inversa directamente con inv(B). 4. Matrices “dispersas” Ejemplo 6 A veces usamos matrices con muchos ceros. MatLab tiene una forma de trabajar con ellas usando menos bytes con el comando sparse. Ve´moslo con un ejemplo: a Introducimos una matriz: >>A=[0 0 0 3;0 0 -1 2;3 0 0 1;0 0 0 -2]; - Para convertirla a matriz dispersa >>s=sparse(A) Si preguntamos ‘‘whos" vemos que s ocupa menos que A. - Para recuperar la matriz inicial >>full(s) Para visualizar gr´ficamente la matriz: a >>spy(s) 5
  • 6. o bien, >>imagesc(s),colorbar Se pueden generar directamente matrices “sparse”: >>sparse(i,j,s,m,n) donde: i,j son los sub´ındices de los elementos no nulos (i,j son vectores) s es un vector con los valores de los elementos no nulos (m,n) es el tama˜o de la matriz. n De modo que, en el ejemplo anterior, para generar s deber´ ıamos escribir: >>i=[1 2 2 3 3 4]; >>j=[4 3 4 1 4 4]; >>s=[3 -1 2 3 1 -2]; >>m=4;n=4; >>sparse(i,j,s,m,n) Y obtenemos s. Para obtener la matriz inicial >>full(s) Ejercicio 4 Utilizando el comando sparse, generar la matriz 20 × 20   0 1 0 0 ... 0 0 −1 0 1 0 ... 0 0    0 −1 0 1 ... 0 0  . .    . .. .  . . . 0 0 0 0 ... 0 1 0 0 0 0 ... −1 0 (Visualizarla para comprobar que est´ bien.) a 6