Mostrando postagens com marcador cálculo computacional. Mostrar todas as postagens
Mostrando postagens com marcador cálculo computacional. Mostrar todas as postagens

sexta-feira, 16 de março de 2018

Calculando Pi

O número Pi (π) há muito tempo encanta não apenas matemáticos, e há uma procura constante por métodos otimizados para obtê-lo com maior precisão. Em 1995, David Harold Bailey, em colaboração com Peter Borwein e Simon Plouffe, descobriu uma fórmula de cálculo de π, uma soma infinita (frequentemente chamada fórmula BBP):

Aqui um exemplo de implementação em Powershell. A fórmula converge rapidamente, com poucas iterações.

$PI = 0
For ([long]$k=0;$k -lt 12;$k++) {
   $PI += 1/[Math]::Pow(16,$k) * ( 4/(8*$k+1) - (2/(8*$k+4)) - 1/(8*$k+5) - 1/(8*$k+6) )
   Write-Host "Para k=$k, PI é ~" $PI 
}


Para k=0, PI é ~ 3,13333333333333
Para k=1, PI é ~ 3,14142246642247
Para k=2, PI é ~ 3,14158739034658
Para k=3, PI é ~ 3,14159245756744
Para k=4, PI é ~ 3,14159264546034
Para k=5, PI é ~ 3,14159265322809
Para k=6, PI é ~ 3,14159265357288
Para k=7, PI é ~ 3,14159265358897
Para k=8, PI é ~ 3,14159265358975
Para k=9, PI é ~ 3,14159265358979
Para k=10, PI é ~ 3,14159265358979
Para k=11, PI é ~ 3,14159265358979

sábado, 2 de dezembro de 2017

Cálculo de Exponencial de X

Implementando o cálculo de Exponencial de X através da Série de Maclaurin:

Function Fatorial([Int32]$num) {
    if ($num -eq 0) { return 1 }
    return $num * (Fatorial($num-1))
}

Function ExpX([Double]$x, [Int32]$max) {
    $eX = 1
    For ($n=1;$n -lt $max;$n++) {
        $eX = $eX + [math]::Pow($x,$n) / (Fatorial $n)
    }
    Return $eX 
}

Clear-Host
$x = Read-Host "Calcula e^x com serie de Maclaurin. Qual o valor de x? "
$eX = [math]::Round((ExpX $x 40),10)
Write-Host -ForeGroundColor Yellow "e^$x=$eX"

Calcula e^x com serie de Maclaurin. Qual o valor de x? : 7
e^7=1096.6331584285

sexta-feira, 17 de novembro de 2017

Séries de Taylor - Cosseno

Neste post, vamos implementar o cálculo do cosseno de um ângulo através de um série de Taylor.

Function Fatorial([Int32]$num) {
    if ($num -eq 0) { return 1 }
    return $num * (Fatorial($num-1))
}

Function Cosseno($x,$max) {
    $CossenoX = 1 - ([math]::Pow($x,2) / (Fatorial 2))
    For ($n=2;$n -lt $max;$n++) {
        $CossenoX = $CossenoX + [math]::Pow(-1,$n)*[math]::Pow($x,(2*$n)) / (Fatorial (2*$n))
    }
    Return $CossenoX 
}

Clear-Host
$angulo = Read-Host "Digite um ângulo para calcular o Cosseno"
$rad = $angulo / 180 * [math]::PI
$Cosseno = [math]::Round((Cosseno $rad 20),10)
Write-Host -ForeGroundColor Yellow "Cos($angulo°)=$Cosseno"

terça-feira, 14 de novembro de 2017

Séries de Taylor - Seno

Aqui um exercício de implementação de um algoritmo para o cálculo do Seno de um ângulo através de uma série de Taylor.

Na implementação, estamos fixando as iterações em 20 e o arredondamento em 10 casas decimais. Observa-se a função de apoio Fatorial, a mesma que implementamos no post sobre recursividade.
Function Fatorial([Int32]$num) {
    if ($num -eq 0) { return 1 }
    return $num * (Fatorial($num-1))
}

Function Seno($x,$max) {
    $senoX = $x - ([math]::Pow($x,3) / (Fatorial 3))
    For ($n=2;$n -lt $max;$n++) {
        $senoX = $senoX + [math]::Pow(-1,$n)*[math]::Pow($x,(2*$n+1)) / (Fatorial (2*$n+1))
    }
    Return $senoX 
}

Clear-Host
$angulo = Read-Host "Digite um ângulo para calcular o Seno"
$rad = $angulo / 180 * [math]::PI
$seno = [math]::Round((Seno $rad 20),10)
Write-Host -ForeGroundColor Yellow "Seno($angulo°)=$seno"