Cálculo a uma Variável
Sinésio Pesco
CAP 2 - Expansão Decimal e Aproximações de Números Reais
Exercícios Resolvidos
Exercício 1: Obter um truncamento até a 9o casa decimal da expansão decimal de 2 .
Para obter truncamentos de 2 usamos a propriedade que se 0 < a < b então a < b
Assim no primeiro passo observamos que 1 < 2 < 4
e portanto
1 < 2 < 4
1 < 2 < 2
Portanto a parte inteira de 2 é 1.
Para determinarmos os dígitos restantes, iniciamos dividindo o intervalo [1,2) em 10 subintervalos de mesmo tamanho e devemos encontrar qual dos subintervalos, contém
2
> restart;
for x from 1 by 0.1 to 2 do
x, " ao quadrado = ", x^2; end do;
Assim observamos que para
temos que 1.96 < 2 < 2.25 e portanto 1.4 < 2 < 1.5 e determinamos que o truncamento até a primeira casa de 2 é 1.4.
Prosseguindo:
> for x from 1.4 by 0.01 to 1.5 do x, x^2;
end do;
E analogamente temos que 1.9881 < 2 < 2.0164 e portanto 2 = 1.41...
> for x from 1.41 by 0.001 to 1.42 do x, x^2;
end do;
Você pode voltar com o cursor e editar o for, trocando para os novos valores e sem ser necessario digitar novamente.
Ao final de 6 passos teremos:
> for x from 1.414213 by 0.0000001 to 1.414214 do x, x^2;
end do;
Após algumas casas decimais, será necessário alterar o número de dígitos desejados na precisão numérica:
> Digits:=20:
for x from 1.41421356 by 0.000000001 to 1.41421357 do x, x^2;
end do;
Assim o truncamento na nona casa decimal será: 1,414213562
Exercício 2: Outro método de se obter aproximações para 2
.
Outro método de se obter aproximações para 2 inicia: x2 = 2
x x 2 =
x = 2
x
Considerando c uma boa aproximação para x (desconhecido), então 2
c também será.
Neste caso, uma melhor aproximação poderia ser a média entre estes dois valores:
m = 1 c + 2 c 2
Assim podemos montar um pequeno programa para verificar a convergência de 2 :
> restart; c:=1;
for i from 1 to 5 do c:=1/2*(c+2/c) end do;
Numericamente (note a substituição de 2/c por 2./c) > restart;
c:=1;
for i from 1 to 5 do c:=1/2*(c+2./c) end do;
> restart; Digits := 100; c:= 1; for i from 1 to 3 do c:=0.5*(c+2.0/c); d:=evalf(sqrt(2)); end do;
Exercício 3: Aproximações para π (Arquimedes).
Um dos métodos de estimar π é devido a Arquimedes. Usando polígonos inscritos e circunscritos, ele estimou o comprimento do circulo por aproximação do perímetro dos polígonos. Vamos estimar π usando o perímetro de polígonos inscritos em uma
circunferência de raio 0.5, assim o comprimento será C = 2 π 0.5 = π. O algoritmo consiste em partir de um polígono regular qualquer (no nosso exemplo o hexágono), e depois seguir subdividindo cada aresta gerando um novo poligono de 12 lados
(dodecágono) conforme a figura e assim por diante. A cada passo, partindo de um polígono de n lados, geramos um novo polígono que terá 2n lados.
Queremos determinar o valor de y em função de x. Podemos usar Pitágoras, porém falta determinar a dimensão do cateto b.
Por pitágoras podemos obter o cateto a em azul: a2 + x = 2 4 1 2 2
a2 = 1 − 4 x2 4 segue que: a = 1 x − 2 2 Como a b + = 1 2 b = 1 − 2 a b = 1 − 1 x − 2 2
Agora aplicamos Pitágoras no triângulo:
y2 = b2 + x 2 4 y2 = + 1 − 1 x − 2 2 2 x2 4 y = + 1 − 1 x − 2 2 2 x2 4 y = 1 − 1 x − 2 2 > restart; x := 0.5; h := 6; Digits := 100; for i from 1 to 5 do y:= sqrt((1-sqrt(1-x^2))/2.0); w := y/(sqrt(1-y*y)); x := y; " Pi estimado = ", 2* h * y; "Pi estimado 1 = ", 2*h*w; " Pi = ", evalf(Pi);
" Erro = ", abs(evalf(Pi)-2*h*y); h := 2*h;
end do;
Exercício 4: Outras formulas:
1) Jonathan and Peter Borwein
(19 dígitos após 4 iterações segundo os autores)
> restart; Digits := 50; y:=1/sqrt(2.0); a:=1/2.0; for n from 0 to 3 do y := (1-sqrt(1-y*y))/(1+sqrt(1-y^2)); a:= (a*(1+y)^2)-y*(2^(n+1)); 1/a; erro := evalf(Pi-1/a); end do;
2) Jonathan and Peter Borwein
(694 dígitos após 4 iterações segundo os autores)
Em 1997, o recorde era de 51 539 600 000 de digitos para π.
> restart; Digits := 700; y:=sqrt(2.0)-1; a:=6-4*sqrt(2.0); for n from 0 to 3 do y := (1-sqrt(sqrt(1-y^4)))/(1+sqrt(sqrt(1-y^4))); a := (a*(1+y)^4)-y*(1+y+y^2)*2^(2*n+3); 1/a; evalf(Pi-1/a); end do;
Exercícios Propostos
Exercício 1: Obtenha o truncamento até a 15o casa decimal da expansão decimal de 5
.
Exercício 2: Determine um intervalo I = (a,b), tal que se um número real α pertence a I, então α é uma aproximação para 7 com erro menor do que 10(−8).