Fisica

Páginas: 7 (1737 palabras) Publicado: 9 de enero de 2013
-------------------------------------------------
Laboratorio de Computación Científica Curso 2012-13

PRÁCTICA 2. Ajuste e interpolación

Alumno:

Generación de números aleatorios.
Copia el siguiente código de matlab enun fichero.m , ejécutalo y comprueba que entiendes lo que hace. Mira en el help de matlab la función rand y la función randn
%uso de rand para la generación de números aleatorios.

%Matlab version 7.4 y siguientes%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Guardamos el estado actual del generador de números aleatorios esto nos
%permitirá reproducir la misma secuencia de numeros aleatoriossiempre que
%queramos
semilla=rand('twister')

%generamos un vector de cinco números aleatorios en el intervalo (0,1)
s1=rand(1,5)

%generamos un nuevo vector de números aleatorios, deben ser distintos de
%los obtenidos en s1
s2=rand(1,5)

%volvemos a reiniciar el generador de números aleatorios
rand('twister',semilla)

%si generamos una nuevo vector de números aleatorios, seráigual que s1
s3=rand(1,5)

%podemos reinicializar el generador de números aleatorios, empleando como
%semilla un valor entero cualquiera comprendido entre (0 y 2^32-1), es
%decir utiliza un registro de 32 bits para inicializar el generador:

%ejemplo, reiniciamos el generador con semillas 0,5,10...25) y generamos
%una matriz de números aleatorios (cada fila está generada con una semilla%distinta y contiene cinco números aleatorios.

aleatoria=[]
for i=0:5:25
rand('twister',i)
aleatoria=[aleatoria;rand(1,5)]
end

%Si reiniciamos empleando cualquiera de las semillas anteriores (i),
%podremos reproducir los números de la fila correspondiente de
%la matriz aleatoria.

%reproducimos los de cuarta fila
rand('twister',15)
fila4=rand(1,5)

%matlab tieneotros dos métodos para general números aleatorios:
% rand('state',s) Funciona a partir de la versión 5 de matlab
% rand('seed',s) Funciona en todas las versiones de matlab. Es el más
% antiguo de todos.

1. Emplea el comando rand para generar un vector de 10000 números aleatorios. Emplea el comando randn para generar otro vector de 10000 números aleatorios. Usa el comando hist dibuja loshistogramas de de los vectores generados. Explica los resultados.

2. Vañmos a emplear el generador de números aleatorios de matlab para calcular el número . Observa el dibujo de la figura, representa un cuadrado de lado 1 metro en el que aparece inscrito un cuarto de circunferencia de radio 1 metro. Supongamos que generamos puntos aleatorios dentro del cuadrado de lado 1 metro. Para ello,generamos las coordenadas x e y del punto, empleando la función rand de matlab.
1 m
x
y
P1
P2

Si el punto generado está dentro de la circunferencia cumplirá, si por ef contrario eftá fuera, . Si generamos suficientes puntos, ef númefro de fos caen dentro def cuafto de circunferencia frente al número total de puntos generados, estará en la misma relación que el área del cuarto de círculo,frente al área del cuadrado:

luego,

Realiza un programa en matlab que aproxime iterativamente el valor de , empleando el sistema descrito:
* Genera un punto aleatorio
* Comprobar si esta dentro del cuarto de círculo
* Estimar el valor de con los puntos calculados hasta esa iteración
El programa deberá admitir como entrada el número máximo de puntos aletorios generados ydeberá representar los sucesivos valores de , obtenidos en cada iteración (nota: para que pinte los valores sucesivos según los va calculando puedes emplear el comando drawnow de matlab). Emplea el programa realizado para obtener una estimación de empleando 2000 iteraciones.

n=input ('nº de numeros:')
x=rand(n,1);
y=rand(n,1);
p=sqrt(x.^2+y.^2)
dentro=0
fuera=0
for i=1:n
if p(i)<=1...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Fisica
  • Fisica
  • Fisica
  • Fisica
  • La fisica
  • Fisica
  • Fisica
  • Física

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS