Texto

(1)

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.

(2)

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;

(3)

> 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

(4)

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);

(5)

" 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).

Imagem

Referências

temas relacionados :