Matlab - ayuda con el Método del cuadrado medio-Matlab

   
Vista:

ayuda con el Método del cuadrado medio-Matlab

Publicado por manuel ruiz (3 intervenciones) el 22/03/2011 11:31:52
Hola, estoy haciendo un código en matlab. El problema es generar número seudoaleatorio por medio del método del cuadrado medio.

Su idea consistía en tomar el cuadrado del número aleatorio anterior y extraer los dígitos
del medio; por ejemplo, si estamos generando números de 4 dígitos y partimos de 5729
(semilla) , lo elevamos al cuadrado, obtenemos 32821441; el próximo número se forma tomando
los 4 dígitos centrales 8214 y repitiendo el proceso se obtienen los sucesivos números
pseudoaleatorios

Mi código es el siguiente:

clear all
x0=3234
for I=1:100 %realizar el ciclo 100 veces
y=x0^2;
%Ahora tenemos que tomar los 4 dígitos centrales. Para eso, tenemos que transformar al
%número ‘y’ en la cadena
%de caracteres ‘ystr’. Una vez que tenemos la cadena de caracteres, podemos
%manipularla como si fuera un vector:
if y > 9000
ystr=num2str(y); %Paso el número a cadena
x1=ystr(3:6); %Obtengo los 4 dígitos centrales
end
if y < 9000
ystr=num2str(y); %Paso el número a cadena
ystr=strcat('0',ystr); % Le añado un cero al principio de la cadena.
x1=ystr(2:5); %Obtengo los 4 dígitos centrales
end
u1=str2num(x1); %Convierto la cadena a número
x0=u1; %guardo la siguiente semilla.
u1=u1/10000 %Divido para obtener el número aleatorio entre 0 y 1
end

el problema es que hasta 64 números me sale bien, pero luego me dice exceso de matrix, pero ese número se debería de corregir en el segundo if, de echo manual sale

Gracias por vuestra atención.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda con el Método del cuadrado medio-Matlab

Publicado por manuel ruiz (3 intervenciones) el 22/03/2011 12:00:34
vale, lo a cabo de solucionar, es solo cambiando if y > 9000 por if y > 90000
y if y < 9000 por if y < 90000

perdonen las molestias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE CABALLERO

ayuda con el Método del cuadrado medio-Matlab

Publicado por JOSE CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 22/03/2011 16:25:48
Gracias por enseñarnos algo mas de matlab, lo haz hecho bien explicado tu programa. Gracias por compartir.
GRACIAS Manuel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con el Método del cuadrado medio-Matlab

Publicado por manuel ruiz (3 intervenciones) el 22/03/2011 21:09:04
De nada, estoy empezando a programar. Es uno de mis programas. Di algo de programación en primero de física, pero muy facilita, jeje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con el Método del cuadrado medio-Matlab

Publicado por tomas tomas_tapia_@hotmail.com (1 intervención) el 04/10/2014 06:00:10
El mismo resultado se puede obtener con el sofware libre octave!!

:D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

ayuda con el Método del cuadrado medio-Matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 04/10/2014 14:02:42
Si el foro de es de Matlab.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con el Método del cuadrado medio-Matlab

Publicado por Jenny (1 intervención) el 07/03/2015 18:54:13
Estoy empezando a programar y tengo una duda
¿Por qué pones la condición de que y>90000 e y<90000?
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar