Operaciones Básicas. Operaciones con matrices y vectores
Enviado por rafaelv_v • 1 de Julio de 2014 • 1.230 Palabras (5 Páginas) • 620 Visitas
1. Operaciones Básicas
1.1. Operaciones con matrices y vectores
Como se comentó en la introducción que hemos visto en el punto anterior, Scilab es un programa creado para trabajar con matrices, por lo tanto, este punto es probablemente el más importante y en el que mejor tenemos que aclararnos para empezar a trabajar. Tenemos muchas opciones para trabajar con ellas, podemos intercambiar matrices, permutarlas, invertirlas; Scilab es una herramienta de cálculo muy potente en lo que a matrices se refiere.
1.1.1. Introducción de matrices desde el teclado
Las matrices y vectores son variables del programa cuyos nombres podemos definir, siempre y cuando no utilicemos los caracteres que el programa tiene como caracteres prohibidos.
Para definir Scilab, se determinan el número de filas y de columnas en función del número de elementos que se proporcionan (o se utilizan). Las matrices se definen por filas; los elementos de una misma fila están separados por blancos o comas, mientras que las filas están separadas por pulsaciones intro o por caracteres punto y coma (;). Tomemos como ejemplo:
-->a=[1 2 1;3 4 2;5 3 1]
Cuya salida será:
a =
! 1.0E+00 2.0E+00 1.0E+00 !
! 3.0E+00 4.0E+00 2.0E+00 !
! 5.0E+00 3.0E+00 1.0E+00 !
Pág -5-
Manual de Iniciación de Scilab
A partir de este momento la matriz a está disponible para hacer cualquier tipo de operación con ella (además de valores numéricos, en la definición de una matriz o vector se pueden utilizar expresiones y funciones matemáticas). Por ejemplo, una sencilla operación con a es hallar su matriz transpuesta. En Scilab, el apóstrofo (') es el símbolo de transposición matricial. Para calcular a’ (transpuesta de a) basta teclear lo siguiente (se añade a continuación la respuesta del programa):
-->a'
ans =
! 1. 3. 5. !
! 2. 4. 3. !
! 1. 2. 1. !
Como el resultado de la operación no ha sido asignado a ninguna otra matriz, Scilab utiliza un nombre de variable por defecto (ans, de answer), que contiene el resultado de la última operación. La variable ans puede ser utilizada como operando en la siguiente expresión que se introduzca. También podría haberse asignado el resultado a otra matriz llamada b.
Ahora vamos a definir una matriz b conjugada para hacer operaciones básicas con estas 2 matrices:
-->b=a'
b =
! 1. 3. 5. !
! 2. 4. 3. !
! 1. 2. 1. !
Pág -6-
Manual de Iniciación de Scilab
Comenzamos con las operaciones más básicas que podemos encontrar, la suma y la resta de matrices:
-->a+b
ans =
! 2. 5. 6. !
! 5. 8. 5. !
! 6. 5. 2. !
-->a-b
ans =
! 0. - 1. - 4. !
! 1. 0. - 1. !
! 4. 1. 0. !
Si realizamos la multiplicación de matrices con el operando ‘*’ tendremos que tener cuidado con que el número de columnas de la primera matriz debe coincidir con el número de filas de la segunda:
-->a*b
ans =
! 6. 13. 12. !
! 13. 29. 29. !
! 12. 29. 35. !
Pág -7-
Manual de Iniciación de Scilab
También podemos utilizar una multiplicación elemento a elemento, que aunque no tiene demasiado sentido como multiplicación de matrices, si que es muy utilizable en el caso de que la matriz no sea más que un conjunto ordenado de valores.
-->a.*b
ans =
! 1. 6. 5. !
! 6. 16. 6. !
! 5. 6. 1. !
A continuación vamos a definir una nueva matriz a a partir de una función que genera valores aleatorios entre 0 y 1.
-->rand(2,2)
ans =
! 0.2113249 0.0002211 !
! 0.7560439 0.3303271 !
A partir de esta matriz a calculamos su inversa con el comando inv(a):
-->d=inv(a) //es necesario que la matriz sea cuadrada y que posea determinante
d =
! - 2. 1. - 4.9E-16 !
! 7. - 4. 1. !
! - 11. 7. - 2. !
Pág -8-
Manual de Iniciación de Scilab
Podemos comprobar multiplicando una por la otra que el cálculo es correcto:
-->a*d
ans =
! 1. 0. 0. !
! 0. 1. 0. !
! 0. 0. 1. !
Si los valores no son exactos podemos utilizar el comando round()
...