Vector y Matriz

Embed Size (px)

DESCRIPTION

vectores y matrices

Citation preview

ASIGNACION DE VALORES A TABLASLas versiones anteriores de FORTRAN slo permitan la asignacin de valores a los elementos de una tabla elemento a elemento, tpicamente mediante la utilizacin de bucles DO. FORTRAN90 incluye una buena cantidad de procedimientos para manipular tablas de forma global.Se pueden asignar valores a vectores escribiendo a la derecha del signo igual los valores encerrados entre los signos (/ y /) , y separndolos por comas, como en:Ejemplo:Real:: v(5), w(5)V=(/ 1.,2.,3.,4.,5. /)X=1.1W=(/ 0.,x,x-1,0.,-1. /)Se pueden utilizar otras variables para escribir los valores. Tambin se puede incluir un vector que ya tenga valores asignados como parte de otro, como en:Ejemplo:Real:: v(5), w(3)W=(/ 1.2,3.1,-1.2 /)V=(/ 0., w ,0. /)Otra posibilidad es utilizar el DO implcito:Ejemplo:Integer:: nvec(5)nvec(/ (i,i=1,5) /)Este ejemplo asigna el vector entero nvec los valores nvec=(1,2,3,4,5)Debe tenerse en cuenta que con este mecanismo slo se puede crear un vector (i.e. una tabla de una dimensin) luego, por s solo, no es apto para asignar valores a una tabla con ms de una dimensin.ARREGLOSMuchos clculos cientficos usan vectores y matrices. El tipo de dato usado en Fortran para representar tales objetos es el array. Un arreglo unidimensional corresponde a un vector, mientras que un arreglo bidimensional corresponde a una matriz.Arreglos Unidimensionales El arreglo ms sencillo es el de una dimensin, el cual es slo un conjunto de elementos almacenados secuencialmente en memoria. Por ejemplo, la declaracin real d(20) o de manera alternativa: real, dimension (20) :: d declara a d como un arreglo del tipo real con 20 elementos. Esto es, d consiste de 20 nmeros del tipo real almacenados en forma contigua en memoria.Arreglos Bidimensionales Las matrices son muy importantes en lgebra lineal. Las matrices son usualmente representadas por arreglos bidimensionales. Por ejemplo, la declaracin real Arreglo(3,5) O real, dimension (3, 5) :: Arreglo define un arreglo bidimensional de 3 x 5 = 15 nmeros del tipo real. Es til pensar que el primer ndice es el ndice del rengln, y el segundo ndice corresponde a la columna. Por lo tanto se vera como: 12345

1

2

3

Para esto sirve la funcin RESHAPE. Su sintaxis es:RESHAPE(input,forma)Donde input es la tabla que se quiere re-interpretar y forma es un vector entero indicando las nuevas dimensiones que se le quieren dar a la tabla input. Por ejemplo, conRESHAPE(M,(/2,6/))Esta funcin se puede utilizar para asignar valores a tablas con ms de una dimensin. As, para conseguir una matriz ms amplia, se podra escribir:INTEGER:: M(4,3)M=RESHAPE( (/I,I=1,12)/), (/4,3/) )