\( \newcommand{\abcp}[3]{\frc{#1+\sqrt{#2}}{#3}} \newcommand{\chao}[1]{\left\lfloor #1 \right\rfloor } \newcommand{\nPr}[2]{{}^{#1}A_{#2} } \newcommand{\combin}[2]{{}^{#1}C_{#2} } \newcommand{\cmod}[3]{#1 \equiv #2\left(\bmod {}{#3}\right)} \newcommand{\frc}[2]{\displaystyle\frac{#1}{#2}} \newcommand{\mdc}[2]{\left( {#1},{#2}\right)} \newcommand{\mmc}[2]{\left[ {#1},{#2}\right]} \newcommand{\cis}{\mathop{\rm cis}} \newcommand{\ImP}{\mathop{\rm Im}} \newcommand{\ReP}{\mathop{\rm Re}} \newcommand{\sen}{\mathop{\rm sen}} \newcommand{\tg}{\mathop{\rm tg}} \newcommand{\cotg}{\mathop{\rm cotg}} \newcommand{\cosec}{\mathop{\rm cosec}} \newcommand{\cotgh}{\mathop{\rm cotgh}} \newcommand{\cosech}{\mathop{\rm cosech}} \newcommand{\sech}{\mathop{\rm sech}} \newcommand{\sh}{\mathop{\rm sh}} \newcommand{\ch}{\mathop{\rm ch}} \newcommand{\th}{\mathop{\rm th}} \newcommand{\senEL}[1]{\mathop{\rm sen}^{#1}} \newcommand{\tgEL}[1]{\mathop{\rm tg}^{#1}} \newcommand{\cotgEL}[1]{\mathop{\rm cotg}^{#1}} \newcommand{\cosecEL}[1]{\mathop{\rm cosec}^{#1}} \newcommand{\shEL}[1]{\mathop{\rm sh^{#1}}} \newcommand{\chEL}[1]{\mathop{\rm ch^{#1}}} \newcommand{\thEL}[1]{\mathop{\rm th^{#1}}} \newcommand{\cotghEL}[1]{\mathop{\rm cotgh^{#1}}} \newcommand{\cosechEL}[1]{\mathop{\rm cosech^{#1}}} \newcommand{\sechEL}[1]{\mathop{\rm sech^{#1}}} \newcommand{\senq}{\senEL{2}} \newcommand{\tgq}{\tgEL{2}} \newcommand{\cotgq}{\cotgEL{2}} \newcommand{\cosecq}{\cosecEL{2}} \newcommand{\cotghq}{\cotghEL{2}} \newcommand{\cosechq}{\cosechEL{2}} \newcommand{\sechq}{\sechEL{2}} \newcommand{\shq}{\shEL{2}} \newcommand{\chq}{\chEL{2}} \newcommand{\arctg}{\mathop{\rm arctg}} \newcommand{\arcsen}{\mathop{\rm arcsen}} \newcommand{\argsh}{\mathop{\rm argsh}} \newcommand{\argch}{\mathop{\rm argch}} \newcommand{\argth}{\mathop{\rm argth}} \newcommand{\Var}{\mathop{\rm Var}} \newcommand{\vect}[1]{\overrightarrow{#1}} \newcommand{\tr}[1]{ \textnormal{Tr}\left({#1}\right)} \newcommand{\C}{\mathbb{C}} \newcommand{\E}{\mathbb{E}} \newcommand{\H}{\mathbb{H}} \newcommand{\I}{\mathbb{I}} \newcommand{\N}{\mathbb{N}} \newcommand{\P}{\mathbb{P}} \newcommand{\Q}{\mathbb{Q}} \newcommand{\R}{\mathbb{R}} \newcommand{\Z}{\mathbb{Z}} \newcommand{\til}{\sim} \newcommand{\mdc}{\mathop{\rm m.d.c.}} \newcommand{\mmc}{\mathop{\rm m.m.c.}} \newcommand{\vect}[1]{\overrightarrow{#1}} \newcommand{\dfrc}{\displaystyle\frac} \newcommand{\Mod}[1]{\ (\mathrm{mod}\ #1)} \)

quinta-feira, 28 de agosto de 2025

Aplicando cegamente o algoritmo das fracções contínuas...

    

No texto anterior referi-me aos "erros de arredondamento" no algoritmo (original, sem modificações) das fracções contínuas.
Chamar-lhes "erros de arredondamento" não está totalmente correcto.
A aritmética das calculadoras não é a dos nossos conhecidos números reais.
Nem sequer racionais!
Entramos no conjunto dos "números de ponto flutuante" ou "números de vírgula flutuante"
 se o separador decimal for uma vírgula em vez de um número.
Portanto aqueles "erros" devem-se também a outros factores, para além de arredondamentos.
Serão esses erros assim tão significativos, como escrevi na altura?

Hoje decidi implementar o algoritmo para calcular os primeiros 59 $(a_n)$ no meu emulador de
Zx Spectrum, comparar com os resultados obtidos com o Wolfram Mathematica de um dos meus
 Raspberry Pi 4b, com uma calculadora Casio, uma Texas Instruments, o Libre Office Calc,
 e uma calculadora Numworks.


As imagens são da implementação em Zx Spectrum 48k. O valor de $a_9$ já está mal!
Vamos lá ver se consigo copiar os resultados das outras máquinas para aqui.

n

Correcto

LibreOffice
calc

Wolfram
Mathematica

Ti84PlusCE

Casio 9860GII

Numworks

Zx Spectrum
48k

0

33

33

33

33

33

33

33

1

1

1

1

1

1

1

1

2

3

3

3

3

3

3

3

3

1

1

1

1

1

1

1

4

1

1

1

1

1

1

1

5

12

12

12

12

12

12

12

6

1

1

1

1

1

1

1

7

21

21

21

21

21

21

21

8

1

1

1

1

1

1

1

9

1

1

1

1

1

1

3

10

2

2

2

2

2

2

4

11

5

5

5

5

5

5

4

12

4

4

4

4

4

4

1

13

3

3

3

3

3

3

1

14

7

7

7

4

9

7

4

15

5

59

5

2

7

58

1

16

16

6

16

6

1

1

1

17

1

1

1

2

1

2

7

18

2

5

2

1

1

25

2

19

3

7

3

2

1

16

2

20

1

1

1

3

4

1

1

21

1

22

1

1

1

3

1

22

1

1

1

3

4

19

1

23

2

1

2

2

2

3

52

24

1

1

1

1

4

2

6

25

2

1

2

27

1

1

104

26

1

2

1

1

6

1

13

27

4

1

4

18

1

2

5

28

1

4

1

1

1

3

1

29

8

1

8

9

1

6

3

30

1

4

1

3

2

1

1

31

4

3

4

1

1

2

1

32

1

5

1

1

8

1

9

33

2

1

2

2

10

4

3

34

1

23

1

26

6

1

5

35

2

1

2

1

1

-

1

36

1

3

1

11

2

-

12

37

1

19

1

1

2

-

1

38

1

5

1

19

1

-

1

39

3

1

3

131

1

-

8

40

2

6

2

1

4

-

30

41

1

1

1

80

1

-

1

42

16

3

16

2

2

-

1

43

5

3

5

1

1

-

4

44

7

2

7

3

7

-

1

45

3

1

3

1

2

-

1

46

4

5

4

2

2

-

1

47

5

3

5

1

4092

-

1

48

2

9

2

2

3

-

2

49

1

1

1

1

1

-

6

50

1

2

1

5

18

-

2

51

21

2

21

5

1

-

57

52

1

1

1

1

1

-

2

53

12

7

12

1

1

-

26

54

1

4

1

1

1

-

1

55

1

1

1

2

5

-

2

56

3

1

3

1

1

-

1

57

1

3

1

8

3

-

31

58

66

1

66

2

2

-

9


Os cálculos dos números correctos estão no texto anterior, naquele botão com uma raiz de 1141.
Portanto: 
  • LibreOffice Calc: correcto até $a_{14}$
  • Wolfram Mathematica: todos correctos
  • TI 84 Plus CE: correcto até $a_{13}$
  • Casio fx-9860 GII SD: correcto até $a_{13}$
  • Numworks: correcto até $a_{14}$, e erro de memória a partir de $a_{35}$
  • ZX Spectrum: correcto até $a_{9}$
O leitor interessado, pode testar outras máquinas ou outras linguagens de programação. 
Á excepção do Zx Spectrum (máquina de 1982) e do Wolfram Mathematica, não escrevi código algum.
Apenas utilizei as funções internas de cada uma das máquinas/softwares.

Como eu disse no texto anterior, há formas de ultrapassar isto, e fazer todas estas máquinas dar resultados correctos. Isso consegue-se, estudando matematicamente as sucessões $(a_n)$ e $(\alpha_n)$. 
O segredo não é informático.

É matemático!

Sem comentários:

Enviar um comentário