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*********************
Intente hacerlo de la siguiente manera pero la grafica sale en blanco
Agradezco de antemano cualquier ayuda y disculpen las molestias soy algo nuevo en matlab
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
0