COMPUTACIÓN 2003 – ASTRONOMÍA

PRACTICA 3

1. Rehacer el ejercicio 5 de la Práctica 2, utilizando arreglos (DIMENSION). Comparar ambas formas y explicar cuál es la más conveniente.

2. Sea un vector A con N elementos.

a) Escribir un programa que calcule:

• SUM = A_{1}^{2} + A_{2}^{2} + ⋯ + A_{N}^{2}

• P ROD = (1 − 0.01A_{1})(1 − 0.01A_{2}) … (1 − 0.01A_{N}) Imprimir los resultados en un archivo de salida, con formato.

b) Realizar lo anterior en doble precisión y comente los resultados.

3. El vector B está compuesto de M elementos. Escribir un programa que encuentre el lugar J, tal que B(J) tenga el mayor valor absoluto de los valores de B.

4. Una matriz A^{m×n} es entrada por teclado.

(i) encontrar J, tal que A(J) contenga el mayor valor absoluto de la primera columna; (ii) intercambiar la primera fila con la fila J.

5. Una matriz KA(N, N) está en la memoria (generarla con la sentencia DATA). Escribir un programa que imprima los elementos de KA por encima de la diagonal, es decir, los elementos KA(I, J) para los cuales I < J.

6. Los datos observacionales f_{1}, f_{2}, ..., f_{n}, necesitan ser suavizados. Una técnica sencilla es aplicar:

f_{i} = \frac{f_{i−1} + f_{i} + f_{i+1}}{3}

a todos los datos, menos al primero y al último, que por simplicidad, no los modificamos. Hacer un programa que implemente esta técnica y generalizarlo para un suavizado de orden N. Imprimir los viejos y los nuevos datos. Graficar.

7. Realizar un programa que multiplique dos matrices A y B, las cuales, al igual que sus dimensiones puedan ser entradas por teclado.

8. Se desea encontrar la solución al siguiente sistema de ecuaciones:

a_{11}x_{1}  = b_{1}
a_{21}x_{1} + a_{22}x_{2}  = b_{2}
… … … … … …
a_{n1}x_{1} + a_{n2}x_{2} + a_{n3}x_{3} + … + a_{nn}x_{n} = b_{n}

Escribir un programa para resolver este sistema suponiendo que los coeficientes a_{ij} están contenidas en una matriz de n×n, que contendrá ceros en los elementos ausentes. Como sistema de prueba se puede utilizar:

(\begin{matrix}−5 \\ −1 & −2 \\ −1 & 3 & 2 \\ 4 & 2 & 3 & −1 \end{matrix}) (\begin{matrix}x_{1} \\ x_{2} \\ x_{3} \\ x_{4} \end{matrix}) = (\begin{matrix}−15 \\ −7 \\ 5 \\ 10 \end{matrix})

cuya solución es: x_{1} = 3.0, x_{2} = 2.0, x_{3} = 1.0, x_{4} = 9.0.

9. Realizar un programa para demostrar si una matriz A es normal, es decir, si A.A^{t} = A^{t}.A.

10. Realizar un programa para guardar una matriz fila por fila en un arreglo unidimensional (vector), de acuerdo a lo siguiente.

Sea A = (a_{ij}) una matriz (n × m) (esto es, de n filas y m columnas),

(\begin{matrix}a_{11} & a_{12} & … & a_{1m} \\ a_{21} & a_{22} & … & a_{2m} \\ … & … & … & … \\ a_{n1} & a_{n2} & … & a_{nm} \end{matrix})

entonces los elementos de A son guardados en el arreglo unidimensional A de tamaño N ∗ M fila por fila:

A(1)   = a(11)
A(2)   = a(12)
..............
A(M)   = a(1m)
A(M+1) = a(21)
A(M+2) = a(22)
..............
A(2*M) = a(2m)
..............
A(N*M) = a(nm)

Así, si los índices de un elemento a_{ij} son representados por las variables FORTRAN I y J, el índice K del correspondiente elemento del arreglo unidimensional A está dado por

K = (I − 1) ∗ M + J

11. Utilizando lo anterior, construir un programa para que multiplique las matrices (n × l) A y (l × m) B, previamente vectorizadas, y coloque la matriz producto (n × m) en R.