Tutorial 8matrices
Tutorial 8matrices
Temas
Métodos de matrices
o La clase Matrix
o Método de suma de matrices
o Método de producto de matrices
Sistemas lineales
Colas y pilas
o Biblioteca java.util
o La clase Stack
o Marco para las colecciones de Java
o Interfaz Queue
Métodos de matrices
La clase Matrix La clase Matrix es una clase de Java creada para representar y llenar
matrices. Se utiliza sobre todo para preparar matrices para su uso en la resolución de
sistemas lineales. Consta de:
Suma de matrices
return result;
Producto de matrices
Por ejemplo:
Éste es el código
if (b.nrows == ncols)
return result;
Sistemas lineales
AX=B
1 2 4
4 7 3
X1
X2
15
(Para simplificar el código, asumiremos que todos los arrays de las matrices son
públicos)
//Imprimir la solución
result.print();
Éste es el resultado
X0 = 6.0
X1 = -1.5
X2 = 0.5
Como puede ver, resolver un sistema lineal con la clase Gauss es realmente sencillo. Si
está interesado en saber más sobre el modo en que hemos derivado el método
gaussiano, consulte el apéndice
Colas y pilas
Una estructura de datos es una forma sistemática de organizar los datos y acceder a
ellos; ya hemos visto varias estructuras de datos simples en este curso (por ejemplo, los
arrays y los vectores). En esta sección (y en la siguiente clase adicional), le enseñaremos
a implementar algunas de las estructuras de datos tradicionales (Queue, Stack, Linked
List y Tree) con Java.
Biblioteca java.util
La clase Stack representa una pila de objetos LIFO (el último en entrar es el
primero en salir). Proporciona un método de empuje para agregar un objeto en
la parte superior de la pila y un método de extracción para sacarlo.
Por su parte, la clase Hashtable almacena objetos como pares de clave y valor
a los que se puede tener acceso de forma aleatoria mediante la clave.
Clase Stack
En el siguiente ejemplos, simularemos una lata de pelotas de tenis con dos clases:
TennisBall y TennisBallCan. En primer lugar, definiremos una clase simple TennisBall
que contenga un solo atributo: color.
class TennisBall{
String color;
String getColor() {
return color;
}
}
A continuación, definiremos la clase TennisBallCan que utiliza una pila para organizar
las pelotas.
import java.util.*;
import TennisBall; class TennisBallCan {
Éste es el resultado
Contenido de la lata: 3
Tal como suele suceder con las bibliotecas de estructuras de datos actuales, la
biblioteca de la colección de Java separa las interfaces y las implementaciones. A
continuación, estudiaremos dicha separación con una estructura de datos familiar: la
cola. La biblioteca de Java no proporciona una clase de cola ni una interfaz, pero aun
así es un buen ejemplo para presentar los conceptos básicos.
Interfaz Queue
Una interfaz de cola especifica que se pueden añadir elementos al final de la cola,
eliminarlos de la cabecera y saber cuántos elementos existen en la cola. Utilizará la
cola cuando necesite recopilar objetos y recuperarlos según la secuencia “el primero
en entrar es el primero en salir”.
interface Queue{
void addLast(Object o)
Añade un elemento dado al final de la lista.
Object removeFirst()
Elimina y devuelve el primer elemento de la lista.
1 2 3
A= 5 6 7
9 4 5
3 2 4
B= 2 1 6
4 10 20
C= 5
2. Sistemas lineales
X+Y+Z=8
X+Y-Z=4
X-Y=4
3. Pila
Las pelotas de la nueva lata deben tener el orden contrario al de la lata original
Son muchos los problemas de ingeniería en los que aparecen ecuaciones simultáneas:
un sistema de n ecuaciones con n incógnitas. La formulación de la matriz para estos
sistemas lineales es la siguiente:
AX=B,
Triangularización
Sustitución inversa
Esta implementación aúna todo lo que hemos estado diciendo hasta ahora: