Manual de Scilab/Xcos/Vectores y matrices
Creación de una matriz
editarPara 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
editarSuma y resta
editarDado
-->A=[2 3;4 2]; -->B=[22 -23;-3 2]; -->A+B ans = 24. - 20. 1. 4.
Multiplicación de matrices
editarUtilizando 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
editarPuede resultar necesario conocer algunas de las caracteristicas de una matriz como:
Inversa
editarLa 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
editarUsamos 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
editarDefinició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
editarResolución de sistemas lineales
editarPara resolver un sistema lineal podemos hacer:
- Primer método
A=[1 5;4 3];B=[1;2];
-->inv(A)*B
ans =
0.4117647
0.1176471
- 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
- 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
editarPara 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
editarDescomposició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
editarDescomposició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.