metodo congruencial mixto en java

6
Hugo Alberto Rivera Diaz-Simulación Instituto Tecnológico de Villahermosa. Ingeniería en Sistemas Computacionales Quinto Semestre Simulación Alumno: Hugo Alberto Rivera Diaz 10:00am-11:00am Profr. Andrés Guerrero Aldana Unidad 1 Practica 1: Método Congruencial Mixto. Números Pseudoaleatorios. 1) Código de Programación. 2) Introducción al tema de Pseudoaleatorios. 3) Conclusiones. 4) Bibliografía.

Upload: hugo-alberto-rivera-diaz

Post on 28-Jan-2018

4.075 views

Category:

Technology


35 download

TRANSCRIPT

Page 1: Metodo congruencial mixto en java

Hugo Alberto Rivera Diaz-Simulación

Instituto Tecnológico de Villahermosa.

Ingeniería en Sistemas Computacionales

Quinto Semestre

Simulación

Alumno: Hugo Alberto Rivera Diaz

10:00am-11:00am

Profr. Andrés Guerrero Aldana

Unidad 1

Practica 1: Método Congruencial Mixto. Números

Pseudoaleatorios.

1) Código de Programación.

2) Introducción al tema de Pseudoaleatorios.

3) Conclusiones.

4) Bibliografía.

Page 2: Metodo congruencial mixto en java

Hugo Alberto Rivera Diaz-Simulación

1) Código de Programación

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.event.ActionEvent;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.table.DefaultTableModel;

import componentes.CompVentana;

public class Ejercicio1 extends CompVentana

{

private JTable tabla;

private DefaultTableModel modelo;

private JScrollPane desplazamiento;

private int[] arreglo ={0,1,2,3,4,5,6,7};

private int columna1,columna2,columna3,columna5;

private double columna4;

public Ejercicio1()

{

super("Metodo Congruencial Mixto",false,0,0,200,100);

}

protected void crearContenido()

{

String[] columnas={"N","Xn","5Xn+7","(5Xn+7)/8","Xn+1"};

tabla=new JTable();

modelo=new DefaultTableModel();

desplazamiento=new JScrollPane(tabla);

modelo.setColumnIdentifiers(columnas);

desplazamiento.setHorizontalScrollBarPolicy(30);

desplazamiento.setVerticalScrollBarPolicy(20);

tabla.setAutoResizeMode(4);

tabla.setFillsViewportHeight(true);

pPie.setBackground(Color.red);

getContentPane().add(desplazamiento,"Center");

pack();

setTitle("Simulacion");

Page 3: Metodo congruencial mixto en java

Hugo Alberto Rivera Diaz-Simulación

setDefaultCloseOperation(2);

getContentPane().setLayout(new BorderLayout());

setResizable(false);

setVisible(true);

}

public void iterar()

{

System.out.println("n------xn------5xn+7------(5xn+7)/8------Xn+1--

---"+"\n");

columna2=4;

Object[] fila=new Object[5];

for(int i=0; i<arreglo.length; i++)

{

columna1=arreglo[i];

columna3=(5*columna2)+7;

columna4=(columna3/8);

columna5=columna3%8;

System.out.println(columna1+" "+columna2+"

"+columna3+" "+columna4+" "+columna5);

System.out.println("--------------------------------------------

------");

modelo.addRow(fila);

columna2=columna5;

}

tabla.setModel(modelo);

}

public void actionPerformed(ActionEvent pE)

{

}

public static void main(String[] args)

{

new Ejercicio1().iterar();

;

}

}

*****En el método iterar se llevan a cabo las operaciones para dar

valores a las columnas.

Page 4: Metodo congruencial mixto en java

Hugo Alberto Rivera Diaz-Simulación

2) Introducción al tema de Pseudoaleatorios.

Introducción a la generación de números Pseudoaleatorios Casi todos los métodos de simulación se basan en la posibilidad de crear números aleatorios con distribución U (0,1). Hasta la aparición de las computadoras, los números aleatorios se obtenías de procedimientos experimentales como lotería o ruleta y se almacenaban en tablas. Los números generados por computadora se llaman números Pseudoaleatorios, dado que son predecibles a partir del primer número denominado semilla .Para poder utilizar un generador automático de números Pseudoaleatorios, éste debe cumplir con ciertas propiedades:

• Producir muestras según la distribución U(0,1) • Pasar los contrastes de aleatoriedad e independencia más habituales • Que la sucesión generada sea reproducible a partir de la semilla • Tener una longitud de ciclo tan grande como se desee • Generar valores a alta velocidad • Ocupar poca memoria

Page 5: Metodo congruencial mixto en java

Hugo Alberto Rivera Diaz-Simulación

3) Conclusiones

Como conclusión podemos añadir que la simulación es una disciplina importante para el

desarrollo científico tecnológico en general ya que nos permite analizar los procesos que se

llevan a cabo simulándolos y así mejorar los sistemas que buscan estudiarse.

La simulación es aplicada en áreas muy amplias, numerosas y diversas como el análisis de

impacto ambiental, de sistemas de manufactura, financieros, de procesos y fenómenos

físicos etc.

En el ejercicio anterior podemos ver la manera de como simular la generación de números

aleatorios. A los cuales llamados Pseudoaleatorios porque siguen un cierto algoritmo con

iteraciones para generar los dígitos. Muy bien se podía usar la sentencia Math.Random para

generarlos pero aplicando la simulación desarrollamos el método Congruencial mixto que

nos proporciona estos números.

Si bien pude desarrollar esta implementación como nota puedo agregar la falta de vaciado

de los datos en el JTable, aún se corregirá y mejorara esa parte del programa.

Page 6: Metodo congruencial mixto en java

Hugo Alberto Rivera Diaz-Simulación

4) Bibliografía

COSS Bu,Raúl.Simulación (Un enfoque práctico), Limusa,

México. 2003.

ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall,

México. 1997

http://www.material_simulacion.ucv.cl/en%20PDF/Definici

on%20de%20la%20simulacion%20de%20sistemas.pdf