Matlab - GRAFICA PLOT

 
Vista:
sin imagen de perfil

GRAFICA PLOT

Publicado por LUIS ALEJANDRO GOMEZ ARREAGA (9 intervenciones) el 10/07/2017 01:22:40
Buenas tardes,

Tengo un algoritmo para calcular el valor de pi mediante el metodo de buffon, pero tengo un inconveniente al querer realizar una grafica con plot, en la grafica el eje "x" es el numero de corridas representada por la variable c y el eje "y" debe ser el valor de pi en cada corrida

ejemplo:
Corrida -------- Valor estimado de pi
1 -------- 3.10
2 -------- 3.14

******************Algoritmo*********************

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
clc,clear
%inicializar Ncorta y n
Ncorta=0;      %número de veces que la aguja corta o toca la l?nea 
n=0;           %numero de lanzamientos 
 
%inicializar l, d, y Ntotal
Ntotal=500;    %numero total de lanzamientos de la aguja
l=10;          %longitud de la aguja
d=20;          %espaciado entre lineas paralelas donde d>=l
c=1;
 
while(c<=10)   %numero de corridas
while(n<Ntotal)
 
 
%generar dos numeros pseudoaletorios u1, u2
u1 = random('Uniform',0,1); % Generación de entradas aleatorias
u2 = random('Uniform',0,1); % Generación de entradas aleatorias
 
 
%calcular a y angulo
a=(d/2)*(u1);
angulo=(degtorad(180))*u2;
 
 
%procedimiento para saber si la aguja toca la linea
if a <= ((l/2)*(sin(angulo)))
  n=n+1;
  Ncorta=Ncorta+1;
else
  n=n+1;
 
end
 
end
 
p=Ncorta/Ntotal;
pi=(2*l)/(p*d);
disp(pi);
 
 
c=c+1;
n=0;
Ncorta=0;
end

Intente hacerlo de la siguiente manera pero la grafica sale en blanco
1
2
3
x=1:1:10;
y=pi;
plot(x,y);

Agradezco de antemano cualquier ayuda y disculpen las molestias soy algo nuevo en matlab
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
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

GRAFICA PLOT

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 10/07/2017 01:59:02
se pueden ir guardando los valores en una nueva variable :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
clc,clear
%inicializar Ncorta y n
Ncorta=0; %número de veces que la aguja corta o toca la l?nea 
n=0; %numero de lanzamientos 
%inicializar l, d, y Ntotal
Ntotal=500; %numero total de lanzamientos de la aguja
l=10; %longitud de la aguja
d=20; %espaciado entre lineas paralelas donde d>=l
c=1;
figure;
nc=10;%numero de corridas
vpi=zeros(1,nc);%numero de corridas
while(c<=nc) %numero de corridas
while(n<Ntotal)
%generar dos numeros pseudoaletorios u1, u2
u1 = random('Uniform',0,1); % Generación de entradas aleatorias
u2 = random('Uniform',0,1); % Generación de entradas aleatorias
%calcular a y angulo
a=(d/2)*(u1);
angulo=(degtorad(180))*u2;
%procedimiento para saber si la aguja toca la linea
if a <= ((l/2)*(sin(angulo)))
n=n+1;
Ncorta=Ncorta+1;
else
n=n+1;
end
end
p=Ncorta/Ntotal;
pi=(2*l)/(p*d);
disp(pi);
vpi(c)=pi;
c=c+1;
n=0;
Ncorta=0;
end
plot(1:nc,vpi,'*r-')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar