\( \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)} \)

sexta-feira, 5 de setembro de 2025

O algoritmo de Euclides e fracções contínuas simples.

O algoritmo de Euclides consiste numa sequência de divisões inteiras para determinar o máximo divisor comum entre dois números naturais. Não o vou descrever, o leitor interessado investiga e encontra sem problemas.
Vou dar um exemplo.
Suponhamos que se pretende calcular $mdc(310402,23725)$. Faz-se: \begin{eqnarray*} {310402}&{=}&{23725\times {\color{blue}13}+1977}\\ {23725}&{=}&{1977\times {\color{blue}12}+{\color{red}1}}\\ {1977}&{=}&{1\times {\color{blue}1977}+0} \end{eqnarray*} O último resto diferente de zero, é ${\color{red}1}$ logo $mdc(310402,23725)={\color{red}1}$.
Isto implica que a fracção $\frc{310402}{23725}$ é irredutível. Estão a ver aqueles números a azul? \[\frc{310402}{23725}=[{\color{blue}13};{\color{blue}12},{\color{blue}1977}]\] Ou seja, \[\frc{310402}{23725}={\color{blue}13}+\frc{1}{{\color{blue}12}+\frc{1}{{\color{blue}1977}}}\] No post anterior eu demonstrei por indução, umas fórmulas de recorrência. Desta vez deixo a cargo do leitor o trabalho de escrever uma demonstração de que sempre que temos uma fracção irredutível, isto funciona. É mais simples, mas mesmo assim dou uma sugestão: comece por obter o desenvolvimento em fracção contínua passo por passo, sem recorrer ao algoritmo das fracções contínuas, recorrendo apenas ao algoritmo de Euclides.
Note-se que o facto de o algoritmo de Euclides ter um número finito de passos, implica que um número racional terá sempre uma "fracção simples finita".

domingo, 31 de agosto de 2025

Umas fórmulas de recorrência para os convergentes das fracções contínuas (simples).

   Como motivação inicial para este post, vou recorrer ao algoritmo das fracções contínuas para obter a expansão de $\pi$ em fracção contínua simples. É verdade que seria mais interessante e desafiante fazê-lo de outra forma, mas isso está além dos meus objectivos neste blog. \begin{eqnarray*} {\alpha_{0}}&{=}&{\pi}\\ {a_{0}}&{=}&{\chao{\alpha_{0}}=\chao{\pi}=3 }\\ {\alpha_{ 1 }}&{=}&{\frc{1}{\alpha_{ 0 }-a_{ 0 }}\approx 7.062513305931052 }\\ {a_{ 1 }}&{=}&{ 7 }\\ {\alpha_{ 2 }}&{=}&{\frc{1}{\alpha_{ 1 }-a_{ 1 }}\approx 15.996594406684103 }\\ {a_{ 2 }}&{=}&{ 15 }\\ {\alpha_{ 3 }}&{=}&{\frc{1}{\alpha_{ 2 }-a_{ 2 }}\approx 1.0034172310150002 }\\ {a_{ 3 }}&{=}&{ 1 }\\ {\alpha_{ 4 }}&{=}&{\frc{1}{\alpha_{ 3 }-a_{ 3 }}\approx 292.63459087501246 }\\ {a_{ 4 }}&{=}&{ 292 }\\ {\alpha_{ 5 }}&{=}&{\frc{1}{\alpha_{ 4 }-a_{ 4 }}\approx 1.5758184357446987 }\\ {a_{ 5 }}&{=}&{ 1 }\\ {\alpha_{ 6 }}&{=}&{\frc{1}{\alpha_{ 5 }-a_{ 5 }}\approx 1.736658533182795 }\\ {a_{ 6 }}&{=}&{ 1 }\\ {\alpha_{ 7 }}&{=}&{\frc{1}{\alpha_{ 6 }-a_{ 6 }}\approx 1.3574810511994153 }\\ {a_{ 7 }}&{=}&{ 1 }\\ {\alpha_{ 8 }}&{=}&{\frc{1}{\alpha_{ 7 }-a_{ 7 }}\approx 2.797351066986108 }\\ {a_{ 8 }}&{=}&{ 2 }\\ {\alpha_{ 9 }}&{=}&{\frc{1}{\alpha_{ 8 }-a_{ 8 }}\approx 1.2541527081413217 }\\ {a_{ 9 }}&{=}&{ 1 }\\ {\alpha_{ 10 }}&{=}&{\frc{1}{\alpha_{ 9 }-a_{ 9 }}\approx 3.93464231529632 }\\ {a_{ 10 }}&{=}&{ 3 }\\ \end{eqnarray*} $$\pi= [3; 7, 15, 1, 292, 1, 1, 1, 2, 1, 3\dots]$$ É suposto a sucessão dos números a que chamei convergentes, convergir para $\pi$. \begin{eqnarray*} {c_{0}}&{=}&{3}\\ {c_{1}}&{=}&{3 + \frc{1}{7} = \frc{{22}}{7}}\\ {c_{2}}&{=}&{3 + \frc{1}{{7 + \frc{1}{{15}}}} = \frc{{333}}{{106}}}\\ {c_{3}}&{=}&{3 + \frc{1}{{7 + \frc{1}{{15 + \frc{1}{1}}}}} = \frc{{355}}{{113}}}\\ {c_{4}}&{=}&{3 + \frc{1}{{7 + \frc{1}{{15 + \frc{1}{{1 + \frc{1}{{292}}}}}}}} = \frc{{103993}}{{33102}}} \end{eqnarray*}    Para quem tem de fazer estes cálculos à mão, ou mesmo numa calculadora, ou até como eu, escrever num smartphone, fazer estas contas já não tem piada. Torna-se trabalhoso!
Vamos lá ver se conseguimos deduzir uma formula mais amigável! \begin{eqnarray*} {c_{0}}&{=}&{a_0}\\ {c_{1}}&{=}&{a_0 + \frc{1}{a_1} = \frc{a_1a_0+1}{a_1}}\\ {c_{2}}&{=}&{a_0 + \frc{1}{a_1 + \frc{1}{a_2}} = \frc{a_2(a_1a_0+1)+a_0}{a_2a_1+a_0}}\\ {c_{3}}&{=}&{\cdots = \frc{a_3\left(a_2(a_1a_0+1)+a_0\right)+a_1a_0+1}{a_3(a_2a_1+1)+a_1}} \end{eqnarray*} Portanto, podemos dizer que todos os $c_n$ calculados são fracções do tipo $c_n=\frc{p_n}{q_n}$ onde
\[ \left\{ {\begin{array}{l} {p_0 = a_0 } \\ {q_0 = 1} \end{array}} \right. \] \[ \left\{ {\begin{array}{l} {p_1 = a_1 a_0 + 1} \\ {q_1 = a_1 } \end{array}} \right. \] \[ \left\{ {\begin{array}{l} {p_2 = a_2 \left( {a_1 a_0 + 1} \right) + a_0 } \\ {q_2 = a_2 a_1 + 1} \end{array}} \right. \] \[ \left\{ {\begin{array}{l} {p_3 = a_3 \left( {a_2 \left( {a_1 a_0 + 1} \right) + a_0 } \right) + a_1 a_0 + 1} \\ {q_3 = a_3 \left( {a_2 a_1 + 1} \right) + a_1 } \end{array}} \right. \] Um olhar mais atento permite reescrever \[ \left\{ {\begin{array}{l} {p_0 = a_0 } \\ {q_0 = 1} \end{array}} \right. \] \[ \left\{ {\begin{array}{l} {p_1 = a_1 p_0 + 1} \\ {q_1 = a_1 } \end{array}} \right. \] \[ \left\{ {\begin{array}{l} {p_2 = a_2 p_1 + p_0 } \\ {q_2 = a_2 q_1 + q_0 } \end{array}} \right. \] \[ \left\{ {\begin{array}{l} {p_3 = a_3 p_2 + p_1 } \\ {q_3 = a_3 q_2 + q_1 } \end{array}} \right. \] E parece que se definirmos recursivamente \[ \left\{ {\begin{array}{l} {p_{n + 1} = a_{n + 1} p_n + p_{n - 1} } \\ {q_{n + 1} = a_{n + 1} q_n + q_{n - 1} } \end{array}} \right. \] Podemos ter uma sucessão de recorrência que permite calcular as fracções $c_n$ mais facilmente. Para que as fórmulas se mantenham válidas, pelo menos até $n=3$ definimos $p_{-1}=1$ , $p_{-2}=0$ $q_{-1}=0$ e $q_{-2}=1$.
Vamos ver que de facto isto funciona para todo o $n$ natural (comecem os naturais onde vos apetecer). Vou enunciar como teorema, e provar, recorrendo ao método de indução matemática.

Sejam $r=\left[a_0;a_1,a_2,\dots,a_n,\dots\right]$. \[ \left\{ {\begin{array}{l} {p_{-2} = 0} \\ {p_{-1} = 1} \\ {p_{n} = a_{n} p_{n-1} + p_{n - 2} \forall n\in \N_0} \end{array}} \right. \] e \[ \left\{ {\begin{array}{l} {q_{-2} = 1} \\ {q_{-1} = 0} \\ {q_{n} = a_{n} q_{n-1} + q_{n - 2} \forall n\in \N_0} \end{array}} \right. \] então, $$c_n=[a_0;a_1,\dots,a_n]=a_0+\frc{1}{a_1+\frc{1}{\frc{\cdots}{a_{n-1}+\frc{1}{a_n}}}}=\frc{p_n}{q_n} $$

Demonstração: [Por indução matemática em $n$ ]
Para $n=0$ temos \[p_0=a_0p_{-1}+p_{-2}=a_0\times 1+ 0=a_0\] \[q_0=a_0q_{-1}+q_{-2}=a_0\times 0+ 1=1\] E então \[\frac{p_0}{q_0}=\frac{a_0}{1}=c_0\] portanto é verdade!
Hipótese de indução: $$c_n=[a_0;a_1,\dots,a_n]=a_0+\frc{1}{a_1+\frc{1}{\frc{\cdots}{a_{n-1}+\frc{1}{a_n}}}}=\frc{p_n}{q_n} $$ Tese: $$c_{n+1}=[a_0;a_1,\dots,a_n,a_{n+1}]=a_0+\frc{1}{a_1+\frc{1}{\frc{\cdots}{a_{n-1}+\frc{1}{a_n+\frc{1}{a_{n+1}}}}}}=\frc{p_{n+1}}{q_{n+1}} $$ Para provar a tese começamos por notar que para calcular $c_{n+1}$ só temos de substituir $a_n$ por $a_n+\frc{1}{a_{n+1}}$ na expressão de $c_n$. Assim sendo, se $$c_n=\frc{p_n}{q_n}=\frc{a_{n} p_{n-1} + p_{n - 2}}{a_{n} q_{n-1} + q_{n - 2}}$$ então \begin{eqnarray*} {c_{n+1}}&{=}&{\frc{\left(a_{n}+\frc{1}{a_{n+1}}\right) p_{n-1} + p_{n - 2}}{\left(a_{n}+\frc{1}{a_{n+1}}\right) q_{n-1} + q_{n - 2}}}\\ {}&{=}&{\frc{\frc{{\left( {a_n a_{n + 1} + 1} \right)p_{n - 1} + a_{n + 1} p_{n - 2} }}{{a_{n + 1} }}}{\frc{{\left( {a_n a_{n + 1} + 1} \right)q_{n - 1} + a_{n + 1} q_{n - 2} }}{{a_{n + 1} }}}}\\ {}&{=}&{\frc{{\left( {a_n a_{n + 1} + 1} \right)p_{n - 1} + a_{n + 1} p_{n - 2} }}{{\left( {a_n a_{n + 1} + 1} \right)q_{n - 1} + a_{n + 1} q_{n - 2} }}} \end{eqnarray*} Note-se que de $p_{n} = a_{n} p_{n-1} + p_{n - 2} $ se deduz que $p_{n-2} =p_{n} - a_{n} p_{n-1} $ e também de $q_{n} = a_{n} q_{n-1} + q_{n - 2} $ se deduz que $q_{n-2} =q_{n} - a_{n} q_{n-1} $
Isso conduz-nos a: \begin{eqnarray*} {\frc{{\left( {a_n a_{n + 1} + 1} \right)p_{n - 1} + a_{n + 1} p_{n - 2} }}{{\left( {a_n a_{n + 1} + 1} \right)q_{n - 1} + a_{n + 1} q_{n - 2} }}}&{=}&{\frc{{\left( {a_n a_{n + 1} + 1} \right)p_{n - 1} + a_{n + 1} \left( {p_n - a_n p_{n - 1} } \right)}}{{\left( {a_n a_{n + 1} + 1} \right)q_{n - 1} + a_{n + 1} \left( {q_n - a_n q_{n - 1} } \right)}}}\\ {}&{=}&{\frc{{a_n a_{n + 1} p_{n - 1} + p_{n - 1} + a_{n + 1} p_n - a_n a_{n + 1} p_{n - 1} }}{{a_n a_{n + 1} q_{n - 1} + q_{n - 1} + a_{n + 1} q_n - a_n a_{n + 1} q_{n - 1} }}}\\ {}&{=}&{\frac{{p_{n - 1} + a_{n + 1} p_n }}{{q_{n - 1} + a_{n + 1} q_n }}}\\ {}&{=}&{\frac{{a_{n + 1} p_n+p_{n - 1} }}{{ a_{n + 1} q_n+q_{n - 1}}}}\\ {}&{=}&{\frc{p_{n+1}}{q_{n+1}}} \end{eqnarray*} O que termina a demonstração.
Estas fórmulas simplificam bastante o cálculo dos $c_n$.
Na versão da cadeira de Teoria dos Números que eu tive, o professor deu-nos estas fórmulas sem dedução, a que estou a vos apresentar foi a que fiz, mas reencontrei anos mais tarde, num livro da editora Mir. Assim que o reencontrar, ponho a referência.
Sim, a minha versão da dedução também foi feita numa mesa de café.
Torna-se tão simples calcular os $c_n$ que se pode construir uma tabela auxiliar.
$n$$a_n$$q_n$$p_n$$c_n$
$-2$$-$$1$$0$$-$
$-1$$-$$0$$1$$-$
$0$$a_0$$1$$a_0$$a_0$
$1$$a_1$$a_1$$a_1p_0+1$$\frc{p_1}{q_1}$
... No caso do $\pi$ a tabela então fica
$n$$a_n$$q_n$$p_n$$c_n$
$-2$$-$$1$$0$$-$
$-1$$-$$0$$1$$-$
$0$$3$$1$$3$$3$
$1$$7$$7$$22$$\frc{22}{7}$
$2$$15$$106$$333$$\frc{333}{106}$
$3$$1$$113$$355$$\frc{355}{113}$
$4$$292$$33102$$103993$$\frc{103993}{33102}$
$5$$1$$33215$$104348$$\frc{104348}{33215}$
$6$$1$$66317$$208341$$\frc{208341}{66317}$
$7$$1$$99532$$312689$$\frc{312689}{99532}$
$8$$2$$265381$$833719$$\frc{833719}{265381}$
$9$$1$$364913$$1146408$$\frc{1146408}{364913}$
$10$$3$$1360120$$4272943$$\frc{4272943}{1360120}$
E as contas são bem menos aborrecidas.
O leitor mais atento deverá notar que acabei de identificar a sucessão de há dias. $3$,$\frc{22}{7}$,$\frc{333}{106}$,$\frc{355}{113}$,$\frc{103993}{33102}$,$\frc{104348}{33215}$,$\frc{208341}{66317}$,$\frc{312689}{99532}$,$\frc{833719}{265381}$,$\frc{1146408}{364913}$,$\frc{4272943}{1360120}$ são os primeiros termos da sucessão dos convergentes de $\pi$.
Note que cada uma delas dá um valor aproximado de $\pi$.
Aproveito e vou introduzir uma nova definição:

Chamarei "fracção reduzida" ou abreviadamente "reduzida" a cada valor de $c_n$ quando escrito na forma de fracção irredutível.


Devo continuar num próximo post.
PS:
  • Em 1997 implementei este algoritmo, incluindo a tabela, numa Casio CFX-9950 G.
    Num dos 3 dias que levei a escrever este texto, implementei-o (directamente) na minha TI84plus CE-T, em Basic.
    Clicando no botão abaixo, pode ver fotos do programa a correr.



  • Com aquelas fórmulas de recorrência, isto até se faz numa folha de cálculo, como MS Excel, LibreOffice Calc, ou no Google Docs, ou até mesmo no Geogebra... No entanto, convém recordar o post anterior e ter noção do problema dos erros associados ao sistema de ponto/vírgula flutuante das folhas.

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!

sábado, 23 de agosto de 2025

O algoritmo das fracções contínuas

 A notação $$a_0+\frc{1}{a_1+\frc{1}{a_2+\frc{1}{a_3+\frc{1}{a_4+\frc{1}{a_5+\cdots}}}}}$$para fracções contínuas simples, introduzida no texto anterior, é intuitiva mas não tem muita piada para quem, como eu, escreve num editor de texto ou num smartphone.
Já agora, a designação 'simples' vem daqueles numeradores com valor 1.

Vou utilizar outra notação para estas  fracções:

$$a_0+\frc{1}{a_1+\frc{1}{a_2+\frc{1}{a_3+\frc{1}{a_4+\frc{1}{a_5+\cdots}}}}} = [a_0; a_1,a_2,a_3,a_4,a_5,\cdots]$$

Por exemplo, $$[3;7]=3+\frc{1}{7}=\frc{22}{7}$$

Se a expansão for infinita e tiver repetições, vou escrever $[a_0; a_1,a_2,a_3,a_4,a_5,\cdots \overline {a_k\cdots a_n} ]$,aquela barra, indica que $\overline {a_k\cdots a_n}$ repete-se. Como vimos nos textos anteriores: \[\sqrt{2}=[1;\overline{2}]\] \[\phi=[1;\overline{1}]\] E abaixo, veremos que \[\sqrt{1141}=[33;\overline{1,3,1,1,1,12,1,21,1,1,2,5,4,3,7,5,16,1,2,3,1,1,1,2,1,2,1,4,1,8,1,4,1,2,1,2,1,1,1,3,2,1,16,5,7,3,4,5,2,1,1,21,1,12,1,1,3,1,66}]\]

A primeira vez que me cruzei com estes objectos, foi num livro requisitado numa biblioteca itinerante Calouste Gulbenkian.
 A segunda... foi cinco anos depois, durante a licenciatura em Matemática, na cadeira de Teoria dos Números.
A terceira, num livro que eu utilizei numa cadeira de Sistemas Dinâmicos, em mestrado.


Em cada uma das vezes apareceram com um objectivo, não são meras curiosidades, nem extravagâncias matemáticas. Aqui neste blog, aparecem porque também tenciono dar-lhes alguns usos.

A definição de fracção contínua sugere um algoritmo para dado um número real positivo arbitrário, expandi-lo em fracção contínua.


Seja $\alpha_0$ o número a expandir.

Passo 0: k=0

Passo 1: $a_0=\left\lfloor \alpha_0\right\rfloor$

Passo 2: se $\alpha_k\neq a_k$ então $\alpha_{k+1}=\frc{1}{\alpha_k-a_k}$, caso contrário, o algoritmo termina

Passo 3: $a_{k+1}=\left\lfloor \alpha_{k+1}\right\rfloor$

Passo 4: $k+1\to k$

Repetem-se os passos 2,3,4 até acabar.

E quando é que acaba?
No caso de números irracionais, não acaba! Por isso, convém estudar propriedades destas sucessões $(a_n)$.
Implementar este algoritmo assim num computador ou numa calculadora sem cálculo algébrico é má ideia.
Hoje em dia, implementa-se bem no Wolfram Mathematica, por exemplo.
 Os erros de arredondamentos fazem com que ao fim de poucos passos, os $a_k$ saiam mal.
Em 1997, notei isso ao expandir números da forma $\sqrt{d}$, (para resolução de equações diofantinas de Pell).
Então estudei as sucessões $\left(a_k\right), \left(\alpha_k\right)$ e outras auxiliares, num papel que embrulhava uma tablete de chocolate, por forma a livrar-me dos "erros de arredondamento", e implementei a minha versão do algoritmo para esse caso.
A ideia era poupar-me trabalho, mas, no dia seguinte, foi-me útil para obter, numa aula, a expansão de um número 'parecido' com $\sqrt{1141}$.
Muito pouca gente na altura percebeu que o verdadeiro esforço... foi matemático - O poder da ignorância, mesmo entre professores catedráticos, nunca vai deixar de me surpreender.
Aquela expansão de $\sqrt{1141}$ deu nas vistas.
Vou deixar aqui um botão só para quem estiver interessado no porquê.

\begin{eqnarray*} {\alpha_{0}}&{=}&{\sqrt{ 1141}}\\ {a_{0}}&{=}&{\chao{\alpha_{0}}=33 }\\ {\alpha_{1}}&{=}&{\frc{ 33 +\sqrt{ 1141}}{ 52}}\\ {a_{1}}&{=}&{ 1 }\\ {\alpha_{2}}&{=}&{\frc{ 19 +\sqrt{ 1141}}{ 15}}\\ {a_{2}}&{=}&{ 3 }\\ {\alpha_{3}}&{=}&{\frc{ 26 +\sqrt{ 1141}}{ 31}}\\ {a_{3}}&{=}&{ 1 }\\ {\alpha_{4}}&{=}&{\frc{ 5 +\sqrt{ 1141}}{ 36}}\\ {a_{4}}&{=}&{ 1 }\\ {\alpha_{5}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 5}}\\ {a_{5}}&{=}&{ 12 }\\ {\alpha_{6}}&{=}&{\frc{ 29 +\sqrt{ 1141}}{ 60}}\\ {a_{6}}&{=}&{ 1 }\\ {\alpha_{7}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 3}}\\ {a_{7}}&{=}&{ 21 }\\ {\alpha_{8}}&{=}&{\frc{ 32 +\sqrt{ 1141}}{ 39}}\\ {a_{8}}&{=}&{ 1 }\\ {\alpha_{9}}&{=}&{\frc{ 7 +\sqrt{ 1141}}{ 28}}\\ {a_{9}}&{=}&{ 1 }\\ {\alpha_{10}}&{=}&{\frc{ 21 +\sqrt{ 1141}}{ 25}}\\ {a_{10}}&{=}&{ 2 }\\ {\alpha_{11}}&{=}&{\frc{ 29 +\sqrt{ 1141}}{ 12}}\\ {a_{11}}&{=}&{ 5 }\\ {\alpha_{12}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 15}}\\ {a_{12}}&{=}&{ 4 }\\ {\alpha_{13}}&{=}&{\frc{ 29 +\sqrt{ 1141}}{ 20}}\\ {a_{13}}&{=}&{ 3 }\\ {\alpha_{14}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 9}}\\ {a_{14}}&{=}&{ 7 }\\ {\alpha_{15}}&{=}&{\frc{ 32 +\sqrt{ 1141}}{ 13}}\\ {a_{15}}&{=}&{ 5 }\\ {\alpha_{16}}&{=}&{\frc{ 33 +\sqrt{ 1141}}{ 4}}\\ {a_{16}}&{=}&{ 16 }\\ {\alpha_{17}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 45}}\\ {a_{17}}&{=}&{ 1 }\\ {\alpha_{18}}&{=}&{\frc{ 14 +\sqrt{ 1141}}{ 21}}\\ {a_{18}}&{=}&{ 2 }\\ {\alpha_{19}}&{=}&{\frc{ 28 +\sqrt{ 1141}}{ 17}}\\ {a_{19}}&{=}&{ 3 }\\ {\alpha_{20}}&{=}&{\frc{ 23 +\sqrt{ 1141}}{ 36}}\\ {a_{20}}&{=}&{ 1 }\\ {\alpha_{21}}&{=}&{\frc{ 13 +\sqrt{ 1141}}{ 27}}\\ {a_{21}}&{=}&{ 1 }\\ {\alpha_{22}}&{=}&{\frc{ 14 +\sqrt{ 1141}}{ 35}}\\ {a_{22}}&{=}&{ 1 }\\ {\alpha_{23}}&{=}&{\frc{ 21 +\sqrt{ 1141}}{ 20}}\\ {a_{23}}&{=}&{ 2 }\\ {\alpha_{24}}&{=}&{\frc{ 19 +\sqrt{ 1141}}{ 39}}\\ {a_{24}}&{=}&{ 1 }\\ {\alpha_{25}}&{=}&{\frc{ 20 +\sqrt{ 1141}}{ 19}}\\ {a_{25}}&{=}&{ 2 }\\ {\alpha_{26}}&{=}&{\frc{ 18 +\sqrt{ 1141}}{ 43}}\\ {a_{26}}&{=}&{ 1 }\\ {\alpha_{27}}&{=}&{\frc{ 25 +\sqrt{ 1141}}{ 12}}\\ {a_{27}}&{=}&{ 4 }\\ {\alpha_{28}}&{=}&{\frc{ 23 +\sqrt{ 1141}}{ 51}}\\ {a_{28}}&{=}&{ 1 }\\ {\alpha_{29}}&{=}&{\frc{ 28 +\sqrt{ 1141}}{ 7}}\\ {a_{29}}&{=}&{ 8 }\\ {\alpha_{30}}&{=}&{\frc{ 28 +\sqrt{ 1141}}{ 51}}\\ {a_{30}}&{=}&{ 1 }\\ {\alpha_{31}}&{=}&{\frc{ 23 +\sqrt{ 1141}}{ 12}}\\ {a_{31}}&{=}&{ 4 }\\ {\alpha_{32}}&{=}&{\frc{ 25 +\sqrt{ 1141}}{ 43}}\\ {a_{32}}&{=}&{ 1 }\\ {\alpha_{33}}&{=}&{\frc{ 18 +\sqrt{ 1141}}{ 19}}\\ {a_{33}}&{=}&{ 2 }\\ {\alpha_{34}}&{=}&{\frc{ 20 +\sqrt{ 1141}}{ 39}}\\ {a_{34}}&{=}&{ 1 }\\ {\alpha_{35}}&{=}&{\frc{ 19 +\sqrt{ 1141}}{ 20}}\\ {a_{35}}&{=}&{ 2 }\\ {\alpha_{36}}&{=}&{\frc{ 21 +\sqrt{ 1141}}{ 35}}\\ {a_{36}}&{=}&{ 1 }\\ {\alpha_{37}}&{=}&{\frc{ 14 +\sqrt{ 1141}}{ 27}}\\ {a_{37}}&{=}&{ 1 }\\ {\alpha_{38}}&{=}&{\frc{ 13 +\sqrt{ 1141}}{ 36}}\\ {a_{38}}&{=}&{ 1 }\\ {\alpha_{39}}&{=}&{\frc{ 23 +\sqrt{ 1141}}{ 17}}\\ {a_{39}}&{=}&{ 3 }\\ {\alpha_{40}}&{=}&{\frc{ 28 +\sqrt{ 1141}}{ 21}}\\ {a_{40}}&{=}&{ 2 }\\ {\alpha_{41}}&{=}&{\frc{ 14 +\sqrt{ 1141}}{ 45}}\\ {a_{41}}&{=}&{ 1 }\\ {\alpha_{42}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 4}}\\ {a_{42}}&{=}&{ 16 }\\ {\alpha_{43}}&{=}&{\frc{ 33 +\sqrt{ 1141}}{ 13}}\\ {a_{43}}&{=}&{ 5 }\\ {\alpha_{44}}&{=}&{\frc{ 32 +\sqrt{ 1141}}{ 9}}\\ {a_{44}}&{=}&{ 7 }\\ {\alpha_{45}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 20}}\\ {a_{45}}&{=}&{ 3 }\\ {\alpha_{46}}&{=}&{\frc{ 29 +\sqrt{ 1141}}{ 15}}\\ {a_{46}}&{=}&{ 4 }\\ {\alpha_{47}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 12}}\\ {a_{47}}&{=}&{ 5 }\\ {\alpha_{48}}&{=}&{\frc{ 29 +\sqrt{ 1141}}{ 25}}\\ {a_{48}}&{=}&{ 2 }\\ {\alpha_{49}}&{=}&{\frc{ 21 +\sqrt{ 1141}}{ 28}}\\ {a_{49}}&{=}&{ 1 }\\ {\alpha_{50}}&{=}&{\frc{ 7 +\sqrt{ 1141}}{ 39}}\\ {a_{50}}&{=}&{ 1 }\\ {\alpha_{51}}&{=}&{\frc{ 32 +\sqrt{ 1141}}{ 3}}\\ {a_{51}}&{=}&{ 21 }\\ {\alpha_{52}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 60}}\\ {a_{52}}&{=}&{ 1 }\\ {\alpha_{53}}&{=}&{\frc{ 29 +\sqrt{ 1141}}{ 5}}\\ {a_{53}}&{=}&{ 12 }\\ {\alpha_{54}}&{=}&{\frc{ 31 +\sqrt{ 1141}}{ 36}}\\ {a_{54}}&{=}&{ 1 }\\ {\alpha_{55}}&{=}&{\frc{ 5 +\sqrt{ 1141}}{ 31}}\\ {a_{55}}&{=}&{ 1 }\\ {\alpha_{56}}&{=}&{\frc{ 26 +\sqrt{ 1141}}{ 15}}\\ {a_{56}}&{=}&{ 3 }\\ {\alpha_{57}}&{=}&{\frc{ 19 +\sqrt{ 1141}}{ 52}}\\ {a_{57}}&{=}&{ 1 }\\ {\alpha_{58}}&{=}&{33 +\sqrt{ 1141}}\\ {a_{58}}&{=}&{ 66 } \end{eqnarray*} $$a_{58+k}=a_k; k\in\N_1$$ Agora digam-me: Em finais do século XX, princípio do século XXI algum matemático digno desse título atreve-se a calcular isto à mão?
Portanto $$\sqrt{1141}=[33;\overline{1,3,1,1,1,12,1,21,1,1,2,5,4,3,7,5,16,1,2,3,1,1,1,2,1,2,1,4,1,8,1,4,1,2,1,2,1,1,1,3,2,1,16,5,7,3,4,5,2,1,1,21,1,12,1,1,3,1,66}]$$
$$\sqrt{1141}=[33;\overline{1,3,1,1,1,12,1,21,1,1,2,5,4,3,7,5,16,1,2,3,1,1,1,2,1,2,1,4,1,8,1,4,1,2,1,2,1,1,1,3,2,1,16,5,7,3,4,5,2,1,1,21,1,12,1,1,3,1,66}]$$ O papel de chocolate com as minhas deduções das expressões implementadas ainda está dentro de um dos meus cadernos...
Na altura, depois de ter explicado o meu raciocínio e como passei por cima dos problemas com arredondamentos, o professor pegou na minha calculadora e copiou a expressão anterior para o quadro.

Á sucessão de termo geral $c_n=[a_0;a1,\cdots,a_n]$ chamarei sucessão dos "convergentes".

Como o nome sugere, esta sucessão converge para o número que se expandiu em fracção contínua.

Por hoje é tudo, volto ao assunto no próximo post. Deixo aqui um screenshot de uma das minhas redes sociais.
Atenção, o meu programa de 1997 ainda corre muito bem.
 O de 2025, da foto, é uma versão diferente, que foi usada para gerar a sucessão que também está na foto. Consegue identificar, só pelos primeiros termos? É claro que existe uma infinidade de sucessões com estes oito primeiros termos. Só que eu estava a pensar numa muito particular...


PS: quanto às expressões que deduzi... não as vou partilhar aqui no blog, mas deixo como exercício, para o leitor interessado. Posso eventualmente partilhar num pdf/livro que tenciono escrever e publicar a partir deste blog.
No próximo post, partilho uma foto de uma calculadora de outra marca, não vão os leitores achar que estou a ser patrocinado.

sexta-feira, 15 de agosto de 2025

De um ponto fixo às fracções contínuas

Todo o número real em $]0,1]$ é inverso de um (e só um) número real em $[1,+\infty[$.
 Ora, como $1<2<4$ então $1<\sqrt{2}<2$
Portanto existe um número real $r>1$ tal que
$$\sqrt{2}=1+\frc{1}{r}$$
Esse $r$ consegue calcular-se:
$$r=\frc{1}{\sqrt{2}-1}=\frc{\sqrt{2}+1}{\sqrt{2}^2-1^2}=1+\sqrt{2}$$
Ou seja
$$\sqrt{2}=1+\frc{1}{1+\sqrt{2}}$$
Aquele $\sqrt{2}$ escrito à custa dele próprio pode parecer estranho, mas pode interpretar-se assim: $\sqrt{2}$ é um ponto fixo da função de termo geral $$f(x)=1+\frc{1}{1+x}$$

Só que também se pode escrever 
$$\sqrt{2}=1+\frc{1}{1+\sqrt{2}}=1+\frc{1}{2+\frc{1}{1+\sqrt{2}}}$$
E se continuarmos obtemos a expressão com infinitas fracções:
$$\sqrt{2}=1+\frc{1}{2+\frc{1}{2+\frc{1}{2+\frc{1}{2+\frc{1}{2+\cdots}}}}}$$

A esta expansão chamamos expansão de $\sqrt{2}$ em fracção contínua simples.
Se calhar é boa ideia definir isto de forma rigorosa.

Considere-se uma sequência, ou uma sucessão de números positivos $(a_n)_{n\in \N_0}$. Se fizer sentido, à expressão $$a_0+\frc{1}{a_1+\frc{1}{a_2+\frc{1}{a_3+\frc{1}{a_4+\frc{1}{a_5+\cdots}}}}}$$ Chamamos fracção contínua simples
Se a sucessão $(a_n)_{n\in \N_0}$ for finita, isto é, se for uma sequência, a expressão diz-se uma fraccão contínua finita, e será infinita caso contrário.

Uma consequência óbvia é que todos os números racionais têm expansão em fracção contínua finita, e então se a expansão é infinita, o número é irracional.
Isso torna as fracções contínuas em ferramentas uteis e simples para provar que um número é racional ou irracional. Há mais algumas notações e definições que eu poderia introduzir já, só que vou deixar para quando eu precisar delas.
Exercício: por analogia ao que fiz com $\sqrt{2}$ obtenha uma expansão para $\sqrt{3}$

E se for ao contrário?
Conseque descobrir que número positivo tem a expansão abaixo? $$1+\frc{1}{1+\frc{1}{1+\frc{1}{1+\frc{1}{1+\frc{1}{1+\cdots}}}}}$$ Não é complicado. Se $$x=1+\frc{1}{1+\frc{1}{1+\frc{1}{1+\frc{1}{1+\frc{1}{1+\cdots}}}}}$$ então $$x=1+\frc{1}{x}$$ 
É um problema de ponto fixo.
Este é equivalente a $x^2-x-1=0$ portanto $$x=\phi=\frc{1+\sqrt{5}}{2}$$ Ou melhor ainda,$$\phi=\frc{1+\sqrt{5}}{2}=1+\frc{1}{1+\frc{1}{1+\frc{1}{1+\frc{1}{1+\frc{1}{1+\cdots}}}}}$$ Por hoje é tudo. Posso prometer fazer algo mais interessante com fraccões contínuas da próxima vez que eu falar delas.

domingo, 10 de agosto de 2025

O ponto inexistente

 Errar é humano. Eu tenho ali ao lado, neste blog uma nota: "Se detectar um erro, avise-me. Eu ainda sou humano."

Há erros que custam vidas. E há erros que não são admitidos por teimosia, burrice, orgulho... etc.

No segundo ano, segundo semestre da minha licenciatura, eu tive uma cadeira de Análise Matemática IV . Um dos primeiros assuntos da cadeira foi, o teorema do ponto fixo de Banach.
O  conceito de ponto fixo não era novo, já o tínhamos visto em Análise Numérica. 
Um ponto fixo $a$ de uma função $f$ é um ponto que pertence simultaneamente ao domínio e ao contradomínio da função, e tal que $$f(a)=a$$
ou seja, um ponto que não é alterado pela função.

Por exemplo, $-1,0$ e $1$ são pontos fixos da função de domínio $\R$ cuja expressão algébrica é $$f(x)=x^3$$.

No caso de funções reais de variável real, até se conseguem detectar visualmente: São simultâneamente a abcissa e a ordenada da intersecção do gráfico da função $f$ com a recta de equação $$y=x$$

Os teoremas de ponto fixo em Matemática são úteis para provar a existência de objectos, que podem nem ser números.

O teorema do ponto fixo de Banach é útil porque além de garantir a existência, até nos dá uma forma constructiva de obter um ponto fixo.

Logo na primeira aula prática da cadeira a professora decidiu rever o conceito como se nunca o tivessemos visto, e enquanto eu me controlava para não bocejar, nos exemplos dela saiu este:

"O cosseno não tem ponto fixo."

Usou uns argumentos facilmente refutáveis, até porque estava a contradizer tanto o professor da teórica que usou explicitamente esse exemplo, como o de Análise Numérica, que também o usou.

Basicamente estava a dizer que como não encontrava um número racional ou uma fracção racional de $\pi$ , que satisfizessem $\cos x=x$, não existiam pontos fixos para o cosseno.
Mas que afirmação rigorosa!
Eu olhei para a equação.
"Eu consigo provar que existe, pelo teorema de Bolzano, e até pelo teorema da cadeira, o teorema do ponto fixo de Banach.",
Mas isto é ser estúpido! Com um desenho, que obviamente, não deve ser usado como prova rigorosa, consegue-se ver que o ponto existe em $\R$.

E mostrei-lhe, na altura, a minha casio CFX 9800G com o gráfico da função cosseno a intersectar o gráfico de $y=x$

Saíu-lhe da boca uma frase tão infeliz que me fez perceber que o problema era bem mais grave, a mulher não fazia mesmo a mínima ideia do que dizia.

Não foi o erro mais grave que a mulher cometeu à minha frente. A certa altura, depois de uma série deles, percebi que aquelas aulas eram uma perda de tempo, e que em casa, com os meus livros, eu era muito mais produtivo. Deixei de ir às aulas. 

Portanto, hoje em dia, a história de obrigar um aluno, adulto, a aparecer a 75% das aulas teórico-práticas é mesmo muito discutível, e tem muita má fé à mistura.
Eu tive a nota mais alta em Análise IV.

Passei a chamar, sarcasticamente, ao único ponto fixo da função cosseno, "o ponto inexistente". Pá, já chamamos 'imaginários' a coisas que existem. É só mais um nome inadequado.

A mulher nunca se corrigiu.

A gravidade dos erros, fez com que eu nunca os tenha esquecido...

As imagens do post de hoje foram obtidas por captura numa Casio fx-CG 20.
Eu nunca escreveria "interceção"


PS: são sejam idiotas, aquele $0.739085332$ não é o ponto fixo, é um valor racional, aproximado do ponto fixo real, que existe... e deixo ao leitor interessado e sem nada melhor para fazer, provar a sua existência.


domingo, 3 de agosto de 2025

Valores exactos da trigonometria

 O post anterior 'Exercício perdido' chamou-me a atenção porque deu-me mais uma forma de calcular o valor exacto das razões trigonométricas do ângulo de $36°$, ou, se preferirem $\frc{\pi}{5}$, do seu complementar, $54°$, e com essas, $6°$, $3°$, $9°$... etc.

Eu num dos meus blogs determinei $\cos 36°=\sen 54°$ através de um pentagrama.

Esse valor permite-me por exemplo calcular

$$\cos 18°=\sqrt{\frc{1+\cos 36°}{2}}=\sqrt{\frc{5+\sqrt{5}}{8}}$$ Espero que haja uma fórmula com melhor aspecto para isto.

Calcular valores exactos de razões trigonometricas já foi um passatempo meu.

Passatempo, porque, utilidade real, bem,... sejamos honestos, os valores aproximados dados pela análise numérica, obtidos em tabelas ou calculadoras costumam ser mais do que suficientes para o meu dia a dia.

A cultura dos valores exactos tem alguns problemas. É que não vivemos num mundo ideal. 

Vivemos no mundo real, onde por mais preciso que seja, tudo é aproximado.

Até à próxima.


PS:

Para saber se se consegue tentar arranjar uma forma mais "agradável", a $$\sqrt{\frc{5+\sqrt{5}}{8}}$$ nomeadamente saber se está em $\Q\left(\sqrt{5}\right)$ é boa ideia estudar/recordar/rever alguns conceitos e teoremas de Álgebra. A minha não está assim tão enferrujada. Percebi que as I.A.s a que recorri tentaram me vigarizar.