Você está na página 1de 3

I.

CDIGO FONTE.

1 /********************************************************************************
2 *** ***
3 *** LABORATORIO 1 ***
4 *** Grupo n.: EQ1502 ***
5 *** Amanda Arago Silva, Diogo Martins Aguilar, Gustavo Cavalcante de Barros, ***
6 *** Thalita Rodrigues. ***
7 *********************************************************************************/
8
9 #include<stdlib.h>
10 #include<stdio.h>
11 #include<time.h>
12
13 #define ITMAX 300
14 #define TOL 0.00001
15
16 int main()
17 {
18 long int semente;
19 int repeticoes,
20 j,/*contador das repeties*/
21 i,/*contador da quantidade de nmeros aleatorios*/
22 IT=1;/*iteraes*/
23 float aleatorio,/*quantidade de nmeros aleatrios*/
24 sucessos;/*nmero de pontos dentro do semi-crculo*/
25 double coordX,coordY,/*coordenadas de cada ponto*/
26 distancia,/*varivel criada para saber se o ponto est dentro do semicrculo*/
27 pi,/*pi calculado a cada repetio*/
28 somapi=0,/*somatrio de todos os pis*/
29 somapii=0,/*somatrio de cada pi ao quadrado*/
30 pi_medio,/*mdia de todos os pis*/
31 variancia,/*varincia dos pis calculados*/
32 desvio,desvioinicial;/*Variveis necessrias para mtodo de Newton*/
33
34 time(&semente);
35 srand((unsigned)semente);
36
37 printf("Escreva o numero de pontos aleatorios:");
38 scanf("%f",&aleatorio);
39 printf("Escreva o numero de repeticoes:");
40 scanf("%d",&repeticoes);
41
42 for(j=0;j<repeticoes;j++) /*lao para o clculo do pi final*/
43 {
44 pi=0;
45 sucessos=0;
46 for(i=0;i<aleatorio;i++) /*lao para o clculo de cada pi*/
47 {
48 coordX=(double)rand()/RAND_MAX;
49 coordY=(double)rand()/RAND_MAX;
50 distancia=(coordX*coordX+coordY*coordY);
51 if (distancia<=1)
52 sucessos=sucessos+1;
53 }
54 pi=4.0*(sucessos/aleatorio);
55 somapi=somapi+pi; /* soma para clculo da mdia do pi*/
56 somapii=somapii+pi*pi; /*parte do clculo da varincia*/
57 }
58 pi_medio=(somapi/repeticoes);/*Resultado do pi a ser apresentado*/
59 printf("Valor de pi:%f", pi_medio);
60 variancia=(somapii-2.0*somapi*pi_medio+pi_medio*pi_medio*repeticoes)/(repeticoes1);/*frmula da varincia*/
61 if(variancia<0)
62 {
63 variancia=-variancia;
64 }
65 printf("\nVariancia:%f", variancia);
66 desvioinicial=1.0;/*chute inicial do mtodo de newton*/
67 desvio=(1.0/2.0)*(desvioinicial+(variancia/desvioinicial));/*frmula do mtodo de
newton*/
68 while(((desvio-desvioinicial)/desvio)>TOL || ((desvio-desvioinicial)/desvio)<(-TOL))
69 {
70 desvioinicial=desvio;
71 desvio=(1.0/2.0)*(desvioinicial+(variancia/desvioinicial));
72 IT++;
73 if(IT==ITMAX)
74 {
75 break;
76 }
77 }
78 printf("\nDesvio Padrao:%f \n \n",desvio);
79 system("PAUSE");
80 return 0;
81 }

II.

SADAS DO PROGRAMA.

1.
Numero de pontos aleatorios:1000
Numero de repeticoes:50
Valor de pi: 3.150160
Variancia: 0.003094
Desvio Padrao: 0.055627

2.
Numero de pontos aleatorios:1000
Numero de repeticoes:100
Valor de pi: 3.146600
Variancia: 0.002619
Desvio Padrao: 0.051176

3.
Numero de pontos aleatorios:1000
Numero de repeticoes: 150
Valor de pi: 3.147253
Variancia: 0.002168
Desvio Padrao: 0.046559

4.
Numero de pontos aleatorios:1000
Numero de repeticoes: 200
Valor de pi: 3.139420
Variancia: 0.002883
Desvio Padrao:0.053690

5.

Numero de pontos aleatorios:1000


Numero de repeticoes: 250
Valor de pi: 3.143760
Variancia: 0.002731
Desvio Padrao:0.052258

Você também pode gostar