Como calcular computacionalmente o valor de PI

Apesar de existirem vários meios de se obter o valor de \pi, talvez a mais simples é a que usa alguns conceitos básicos de estatística. Considere a figura abaixo que mostra um círculo de raio 1 inscrito em um quadrado de lado 2. A área do círculo e a área do quadrado são dadas pelas equações

{A}_{circulo} = \pi{r}^{2} = \pi , r = 1

{A}_{quadrado} = {l}^{2} = 4 , l = 2

 

Circulo inscrito em um quadrado

 

Obviamente, a relação entre {A}_{circulo} e {A}_{quadrado} é

\frac{{A}_{circulo}}{{A}_{quadrado}} = \frac{\pi}{4}

Ou seja, \pi vale

\pi = 4\frac{{A}_{circulo}}{{A}_{quadrado}}

Feito isso, para calcular \pi basta gerar vários pontos aleatórios dentro do quadrado. O valor de \pi será dado pela quantidade de pontos que estão dentro do círculo dividido pela quantidade de pontos que estão dentro do quadrado (quantidade de pontos gerados). Em Matlab, isso pode ser feito com o seguinte código

amostras = 5000000; px = 2 * rand(amostras,1) - 1; py = 2 * rand(amostras,1) - 1; ptosDentroDoCirculo = sum(px.^2 + py.^2 <= 1); estimadorPi = 4 * ptosDentroDoCirculo/amostras

Em Java, este mesmo código pode ser escrito como

int amostras = 5000000;
int pontosDentroDoCirculo = 0;
for (int i = 0; i < amostras; i++) {

double px = 2*Math.random()-1;
double py = 2*Math.random()-1;
if (Math.pow(px,2) + Math.pow(py,2) <= 1) {

pontosDentroDoCirculo++;

}

}
System.out.println("PI: " + 4*(double)pontosDentroDoCirculo/(double)amostras);

Apesar de não ser a forma mais efeciente de se calcular \pi, mas é uma das mais simples de entender.

Tags: , , , , ,

19 Respostas to “Como calcular computacionalmente o valor de PI”

  1. liandra Says:

    queria que me respondesse o mais rapido possivel

    1-(a) Considere o varol PI e responda:
    qual é o comprimento da circunferencia cujo raio mede 2,5 cm?

    (b) Qual é o o comprimento da circunferência cujo diâmetro mede 7,5m?

    (c) Calcule a medida do diâmetro de uma circunferencia cujo comprimento mede 31,4m.

    2-(a) Mírian=m está fazendo uma toalha circular para por em sua mesa e quer colocar em todo o seu contorno uma renda.quantos metros de renda deverá usar,se o diametro da toalha mede 1,25?

    (b) Para mostrar aos turistas o que há em torno do lago,o barco irá contorna-lo.Sabendo que a medida do raio do lago é de 320m,quantos metros o barco irá percorrer?
    (considere PI=3,14)

    Porfavo me ajudem presizo isso para um trbalho para amanha dia 07-03-08

    por favor
    perguntas do livro didatico
    “Projéto Araribá 7ª série”
    editora moderna

    ME AJUDEM

  2. demoniodemaxwell Says:

    O objetivo desse blog não é fazer trabalhos escolares. Sugiro que estude.

  3. Isabelly Says:

    nossa que orror isso não da pra entender nada não vale apena não vill eu estava procurando como se calcular o comprimento da circufêrência e apareceu essa coisa orrivel…….

  4. demoniodemaxwell Says:

    Isabelly,

    vi aqui que você usou o seguinte texto para pesquisar no google: “como calcular o comprimento da circunferencia” e entrou nessa página cujo título é mostrado no google: “Como calcular computacionalmente o valor de PI”. Você queria que aqui estivesse escrito algo diferente de como calcular computacionalmente o valor de PI?

    Sugiro pegar qualquer livro básico de matemática de primeiro grau que você vai achar a resposta para sua dúvida. Além disso, sugiro um bom livro de português. Uso de pontuação e palavras corretas faz bem para a compreensão de qualquer texto.

    Abraços e obrigado pela visita,
    Demônio de Maxwell

  5. VanHokSan Says:

    Meus parabéns… Muito bom…
    Usei o código java no eclipse e obtive o que eu esperava.

    public class teste {
    public static void main(String[] args) {
    int amostras = 5000000;
    int pontosDentroDoCirculo = 5;
    for (int i = 0; i < amostras; i++) {
    double px = 2*Math.random()-1;
    double py = 2*Math.random()-1;
    if (Math.pow(px,2) + Math.pow(py,2) <= 1) {
    pontosDentroDoCirculo++;
    }
    }
    System.out.println(“PI: ” + 4*(double)pontosDentroDoCirculo/(double)amostras);
    }
    }

  6. Ariane Says:

    eu não gostei de isso dai,e isso não é o que eu estava procurando

  7. demoniodemaxwell Says:

    Ariane,

    o que você esperava de um post com título Como calcular computacionalmente o valor de pi? O que você estava procurando?

    Abraços e obrigado pela visita,
    Demônio de Maxwell

  8. Professor Says:

    Por favor gente, estudem um pouco… Não sabem nem escrever! É incrível ver a quantidade de gente ignorante junta. Expressão! Leiam mais, estudem mais, pelo amor de Deus…

  9. barbara Says:

    o professor eu não entendi o que é valor pi você pode me ajudar?

  10. Mandrake Says:

    Realmente o que eu estava procurando, passei o dia vendo tecnicas diferentes de se calcular.

    Achei interessante essa vlw!

    Só um jeito facil pro pessoal que soh precisa do valor:

    public class pi {
    public static void main(String args[]){
    System.out.println(Math.PI);
    }
    }

    Abraço e mto obrigado.

  11. Gleydson Says:

    Muito bom, pra o que to precisando aki, soh preciso agora fazer ele gerar PI com umas 200 bilhoes de casas decimais hehehehe, coisas da ciencia da computação. Mas valeu ficou bunitinho esse ai.

  12. Gabriella Fonseca Says:

    Olá😉

    Confesso que ri dos posts ignorantes daí de cima.
    E também confesso que adorei seu blog. No momento ele está sendo útil para resolver um probleminha aqui na empresa.

    Parabéns pelo trabalho!

  13. will Says:

    COMO É Q SE CALCULA ESSE VALOR DO PI? NAO ESTOU ENTENDENDO NADA

  14. Ricardo Says:

    hoje tava sem nada pra fazer… então aew vai:

    class ExercicioX {
    public static void main(String[] args) {
    double x;
    x = 1;
    double z = 1;
    double y = 1;
    int c = 0;
    for(y = 1; y < 10; y = y + x){
    z++;
    z++;
    x = 1 / z;
    y = y – x;
    z++;
    z++;
    x = 1 / z;
    c++;
    if(c % 99999999 == 0)
    System.out.println(y * 4);
    }
    }
    }

  15. Bitetti Says:

    Ainda não boto fé que eu li aquilo nos primeiros posts!
    Como uma pessoa pode chegar num nível de burrice de procurar uma coisa, achar a página errada e ao invés de gastar tempo com oque deveria fazer prefere parar pra digitar sua reclamação inútil aqui!?

  16. Salve galera, a… | Análise e Desenvolvimento de Sistemas Says:

    […] Como calcular computacionalmente o valor de PI […]

  17. bender Says:

    eu estava procurando um igual só que ao contrario
    área de um circulo inscrito em um quadrado
    só que devo caucula apenas uma area do ciruclo que ta rachurada

  18. luan Says:

    quero a do quadrado nao a do circulo

  19. Celso Pires Says:

    Este programa em java calcula o pi com a máximo de precisão que a linguagem permite. É baseado em preencher o círculo com triângulos:
    package matematica;

    public class Triangulo {
    private double base;
    private double altura;
    private double area;
    private double areaIsosceles;
    private double hipotenusa;
    private double alturaIsosceles;

    public Triangulo(){
    }

    public Triangulo(Triangulo trianguloAnterior) {
    this.base = trianguloAnterior.hipotenusa / 2;
    this.altura = 1 – trianguloAnterior.alturaIsosceles;
    this.area = (this.base * this.altura) / 2;
    this.hipotenusa = Math.sqrt(Math.pow (this.base,2)+ Math.pow(this.altura,2));
    this.areaIsosceles = (trianguloAnterior.areaIsosceles / 2) + this.area;
    this.alturaIsosceles = (2 * this.areaIsosceles) / this.hipotenusa;
    }

    public static void main(String[] args) {

    Triangulo triangulo = new Triangulo();
    triangulo.hipotenusa = 2;
    triangulo.alturaIsosceles = 0;
    triangulo.areaIsosceles = 0;

    int pot = 1;
    double piAnterior = 0;
    for (int i = 0; i <= 25; i++) {
    pot++;
    Triangulo novoTriangulo = new Triangulo(triangulo);
    double piNovo = piAnterior + Math.pow (2, pot) * novoTriangulo.area;
    System.out.println("pi (" + i + " = " + piNovo);
    triangulo = novoTriangulo;
    piAnterior = piNovo;
    }
    System.out.println("pi Java= " + Math.PI);
    }

    }

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s


%d blogueiros gostam disto: