Ir al contenido

Manual de Scilab/Xcos/Vectores y matrices

De Wikilibros, la colección de libros de texto de contenido libre.
← Operaciones básicas Vectores y matrices Gráficos →
Manual de Scilab/Xcos


Creación de una matriz

[editar]

Para crear un vector o una matriz es lo mismo. El delimitador que se usa para filas es ";" y para columnas se puede dejar un espacio o también podemos utilizar ",".

Creación de un vector x que va desde -1 a 1 con intervalos de 0.2:

-->x=-1:.2:1
 x  =
 
 
         column 1 to 9
 
  - 1.  - 0.8  - 0.6  - 0.4  - 0.2    0.    0.2    0.4    0.6  
 
         column 10 to 11
 
    0.8    1.


Dada la siguiente matriz A:

Código en Scilab:

-->A=[0 1 1 2;1 2 3 4;2 0 2 0]
 A  =
 
    0.    1.    1.    2.  
    1.    2.    3.    4.  
    2.    0.    2.    0.

Operaciones con matrices

[editar]

Suma y resta

[editar]

Dado

-->A=[2 3;4 2];
-->B=[22 -23;-3 2];
-->A+B
 ans  =
 
    24.  - 20.  
    1.     4.

Multiplicación de matrices

[editar]

Utilizando las mismas matrices del ejemplo anterior el código en Scilab para multiplicar matrices no presenta dificultades...

-->A=[2 3;4 2];
-->A1=[22 -23;-3 2];
-->A1*A
 ans  =
 
    35.  - 40.  
    82.  - 88.

Ahora bien, si modificamos la matriz A y la hacemos de 2 fila y 3 columnas Scilab arroja el siguiente resultado:

 -->A=[2 3 1;4 2 1];A1=[22 -23;-3 2];
 
-->A*A1
    !--error 10 
Inconsistent multiplication.

Lo cual tiene que ver que las columnas de A son diferentes a las filas de A1.

Información de una matriz

[editar]

Puede resultar necesario conocer algunas de las caracteristicas de una matriz como:

Inversa

[editar]

La matriz inversa verifica la siguiente propiedad:

Dada la matriz A, se desea calcular la matriz inversa en Scilab:

Código en Scilab:

-->A=[2 3;4 2];
-->inv(A)
 ans  =
 
  - 0.25    0.375  
    0.5   - 0.25   
//o también se puede hacer así:
-->A^-1
 ans  =
 
  - 0.25    0.375  
    0.5   - 0.25

Verificación de la definición de la matriz inversa:

-->A*inv(A)
 ans  =
 
    1.    0.  
    0.    1.

Determinante

[editar]

Usamos como ejemplo la misma matriz para calcular el determinante que en el caso de la matriz inversa. Código en Scilab:

-->A=[2 3;4 2];
 
-->det(A)
 ans  =
 
  - 8.

Transpuesta

[editar]

Definición de la traspuesta de una matriz, En este caso para hacer los cálculos de la matriz traspuesta solo se utiliza el caracter "'".

Código en Scilab:

-->A'
 ans  =
 
    2.    4.  
    3.    2.

Matriz Adjunta

[editar]

Resolución de sistemas lineales

[editar]

Para resolver un sistema lineal podemos hacer:

  1. Primer método
A=[1 5;4 3];B=[1;2];
-->inv(A)*B
 ans  =
 
    0.4117647  
    0.1176471
  1. Segundo método: Resolver el sistema con el comando linsolve.
-->A=[1 5;4 3];B=[1;2];
 
-->linsolve(A,-B)
 ans  =
 
  0.4117647  
  0.1176471
  1. Tercer método: Otra forma:
-->A\B
 ans  =
 
    0.4117647  
    0.1176471

Rango de una matriz

[editar]
-->A=[0 1 1 2;1 2 3 4;2 0 2 0];
rank(A)
 ans  =
 
    2.

Autovalores y Autovectores

[editar]

Para el calculo de autovalores y autovectores se utiliza el comando "spec"; que según como le pasamos los parámetros nos devuelve los autovalores o los autovalores y los autovectores.

spec(A)

Descomposición de Cholesky

[editar]

Descomposición de Cholesky. Dada la siguiente matriz H:

Código en Scilab:

-->R=chol(H)
 R  =
 
    1.    2.    3.    4.  
    0.    1.  - 3.    4.  
    0.    0.    8.  - 2.  
    0.    0.    0.    3.

Descomposición QR

[editar]

Descomposición QR Dada la siguiente matriz H:

Código en Scilab:

H=[1 2 3 4;2 5 3 12;3 3 82 -16;4 12 -16 45];
-->[Q,R]=qr(H)
 R  =
 
  - 5.4772256  - 12.597619  - 34.871669  - 29.21187   
    0.         - 4.8270074    75.471192  - 39.776198  
    0.           0.         - 9.277166     0.0764873  
    0.           0.           0.           2.3483811  
 Q  =
 
  - 0.1825742    0.0621503    0.8685006    0.4566297  
  - 0.3651484  - 0.0828671    0.3750344  - 0.8480265  
  - 0.5477226    0.8079540  - 0.2072558    0.0652328  
  - 0.7302967  - 0.5800696  - 0.2492005    0.2609312  
 
-->Q*R
 ans  =
 
    1.    2.     3.     4.   
    2.    5.     3.     12.  
    3.    3.     82.  - 16.  
    4.    12.  - 16.    45.

Referencias

[editar]