Fractais em números irracionais

Este artigo é uma continuação do meu primeiro artigo , Fractals in Prime Numbers .

Próximo artigo: Fractais em números irracionais. Parte 2



Em um artigo anterior, aprendemos a desenhar padrões auto-semelhantes usando números primos entre si. Neste artigo, mostrarei a natureza fractal do número  sqrt2.
Sem um prefácio. Sob gato.

Definiremos terminologia e notação. Em matemática, os sistemas descritos abaixo são chamados de bilhar . Além disso, usaremos esse termo. As dimensões dos bilhar retangulares serão indicadas por M(largura) e N(altura).

Bilhar binário


No artigo anterior, pegamos um bilhar retangular com lados Me N, lançou uma bola e marcou a trajetória com uma linha tracejada através da célula:



Para mutuamente simples Me Nnós obtemos o padrão:



Na versão binária, marcamos a trajetória não com uma linha tracejada, mas preenchendo alternadamente as células com preto e branco (formamos uma matriz binária, colocamos 0 para preto e 1 para branco na célula correspondente):



Regras de reflexão de borda:



Para mutuamente simples Me Na trajetória passa por cada célula:



Para diferentes M e N
O que é mais surpreendente nesses padrões é que, para diferentes Me Nverifica-se seu próprio padrão único:



No artigo, como Me N, usamos principalmente números de Fibonacci. Aqui você pode desenhar padrões para outros números (coordenadas do mouse).

Se as partes tiverem um divisor comum, a bola entra no canto antes de passar por cada célula:



É conveniente considerar este caso como bilhar em um retângulo com lados  fracMGCDe  fracNGCD(GCD é o maior fator comum):



Antes de prosseguir , preencha a tabela proposta pelo usuário Captain1312 em seu artigo (dividiremos os lados do bilhar em GCD).

(1,0)um pouco


Para cada mesa de bilhar Me Ndemorar um pouco com coordenadas (1,0).



Se Mé um divisor N- então um pouco com coordenadas (1,0)ausente (  fracMGCD=1) Nesse caso, pegamos o bit invertido com as coordenadas (0,1).

Preencha a tabela. A origem é o canto superior esquerdo. Por x- largura dos bilhares Mpor y- altura N. Para cada bilhar marcamos um pouco (1,0)ou bit invertido (0,1)(retornaremos a este tópico abaixo).



Um pouco sobre os números de Fibonacci
A tabela mostra as linhas que emergem do canto superior esquerdo. Se você criar essa tabela um pouco com coordenadas (3,0)- estas linhas podem ser vistas ainda melhor:



Existe outra maneira original de obter essas linhas.

Para cada xe yse yé um divisor x, construa uma sequência de números de Fibonacci:

F0=y;F1=x;Fn=Fn1+Fn2


E marque os pontos no gráfico (Fn,Fn1)e (Fn1,Fn):


Sequência binária


Por que invertemos o bit quando a largura dos bilhares M=1? Para mutuamente simples Me N, a trajetória da bola passa por cada célula. Entre as paredes superior e esquerda do bilhar, a bola passa a cada vez um número par de células.





Os bits na coluna da esquerda são os bits invertidos da linha superior. Não aceitamos o zero - a trajetória começa com ele:



Além disso, podemos remover com segurança cada segundo bit dessa sequência (bit 2n1- bit invertido 2n):



Tem a sequência US $ 10 100 110 110 $ para bilhar (21,13). A sequência é exclusiva para todos. Me N.

Qualquer altura Nnós não pegamos - a bola sempre segue a trajetória 2Nentre duas reflexões da parede superior. Na parede superior, o movimento sempre começa com um bit "0" (célula preta) e termina com um bit "1" (célula branca):



De fato, a sequência (que destacamos acima - US $ 10 100 110 110 $ ) mostra de que lado a bola voou: 1 - se a bola voou, refletida na parede direita e 0 - se a bola voou, refletida na parede esquerda. Na figura, a trajetória da bola é marcada em preto se a bola se moveu para a direita e branca se se move para a esquerda:



É interessante
Com a ajuda de bilhar, você pode dividir dois números no sistema binário. No momento de tocar na parede superior ou inferior, fixamos a direção do movimento da bola. Se a bola se moveu para a direita, escrevemos 0. Se para a esquerda, escrevemos 1. Vamos consertar cada 2ntocando a bola.
Primeiro toque na parede inferior. A bola se moveu para a direita. Fixed 0
O segundo toque é a parede superior. A bola se moveu para a esquerda. Fixed 1
O quarto toque é a parede superior. A bola se moveu para a direita. Fixed 0
O oitavo toque está na parede superior. A bola se moveu para a direita. Fixed 0
Etc.

Got: 0.1001111001111001111 ... é uma notação binária para a fração  frac1321.



Esta sequência ( US $ 10 100 110 110 $ ) contém todas as informações necessárias sobre o padrão. Com ele, podemos restaurar o padrão original (e até olhar além da borda inferior do padrão). Pegue um quadrado com os lados M. Organizamos os bits de nossa sequência nos locais em que a bola bate na parede superior (a distância entre os toques adjacentes da bola é de 2 células).



Se o bit correspondente = 1 - começamos a mover para a esquerda, marcando a trajetória através da célula. Se bit = 0 - mova para a direita.



Nesse caso, não esqueça o bit zero:



Gif:



Obtivemos o padrão original (e parecíamos um pouco além da borda inferior):



Script para visualizar sequências binárias

Podemos construir essa sequência usando o restante da divisão.

Bilhar unidimensional


No eixo numérico Xpegue dois pontos: 0e M.



Movendo-se de um ponto para outro, meça a distância N:



Marcou o ponto. Continuamos a medir a distância a partir deste ponto, mantendo a direção. Se você chegou ao ponto 0ou M- mudar de direção:



Como pode ser visto nas figuras acima, o primeiro ponto mostra o local em que a bola toca a parede inferior do bilhar. Este ponto não nos interessa. Nós só vamos consertar pontos 2kNpara k=0,1,2,....

Como marcar esses pontos? Vire nossos bilhar no eixo X. Marque os pontos 0,M,2M,3M,.... Agora chegando ao ponto Mnão mudamos a direção do movimento, mas continuamos a ir ao ponto US $ 2 milhões .



Múltiplos M, divida nosso eixo em segmentos. Marcamos condicionalmente esses segmentos com uns e zeros (alternados). Nos segmentos marcados com zeros, a bola (em um bilhar retangular) se move da esquerda para a direita. Nos segmentos marcados com unidades - da direita para a esquerda. Ou mais simples: a bola se move da esquerda para a direita se Qk=0para

Qk= lfloor frac2kNM rfloor( textrmmod2); quadk=0,1,2,...


(Atenção especial deve ser dada a esta fórmula. A seguir, retornaremos a ela)

É fácil ver que o ponto em que a bola tocou a parede superior do bilhar é o restante da divisão 2kNem M. Nesse caso, não podemos fixar o movimento da bola na direção oposta. Tomamos toda a parte da divisão 2kNem Mse for par - consideramos o restante da divisão 2kNem M. Divida o restante resultante por 2 (a distância entre pontos de contato adjacentes é de duas células). Obteve os índices dos elementos da matriz, que precisamos preencher com zeros. Os demais elementos são preenchidos com unidades (a bola se move da parede direita para a esquerda).

Comprimento da sequência =  fracM2.

function sequence(m,n){ var md=m/2; var array=[]; for(var k=0;k<md;k++) array[k]=1; for(var k=0;k<md;k++) if(Math.floor(2*k*n/m)%2==0) array[((2*k*n)%m)/2]=0; return array; } console.log(sequence(55, 34).join('')); // -> 0101001011010010110101101001 

Agora podemos construir uma sequência binária para bilhar com qualquer lado Me N(por números naturais).
Alguns exemplos:
144x89 (números de Fibonacci):
010100101101001011010110100101101001010010110100101101011010010110100101

169x70 (números de Pell):
0101011010100101011010100101011010110101001010110101001010110101001010010101101010010

233x55 (números ímpares de Fibonacci Fne Fn3):
0100100110110110010011011011001001001101100100100110110010010011011011001001101101100
10010011011001001001101100100100


Outra mesa interessante
Gráficos muito interessantes são obtidos se você pegar bilhar com largura Me construir sequências para cada Nde 0antes M. Em seguida, empilhe essas seqüências.

 var array; for(var y=1;y<m;y++){ array=sequence(m,y); for(var x=0;x<array.length;x++){ if(array[x]==0) context.fillRect (x, y, 1, 1); } } 

Alguns exemplos

M = 610:



M = 611:



M = 612:



M = 613:



M = 614:



Quanto ao resto M


Nós temos sequências. De que outra forma você pode visualizar sequências binárias? Usando gráficos da tartaruga .

Gráficos de tartaruga


Desenhe uma linha. Em seguida, pegamos alternadamente os bits da nossa sequência. Se bit = 1 - gire o segmento em relação ao anterior 60 circ(sentido horário). Se bit = 0 - gire o segmento 60 circ. O início do próximo segmento é o fim do anterior.



Tome dois números de Fibonacci grandes o suficiente: F29=514229e F28=317811.

Construiu a sequência:
00101101001011010010100101101001011010110100101101001010010110100101 ... (257114 caracteres mais zero bits).

Nós visualizamos usando gráficos de tartarugas. O tamanho do segmento inicial é de 10 pixels (o segmento inicial no canto inferior direito):



O tamanho do segmento inicial é de 5 pixels:



O tamanho do segmento inicial é de 1 pixel:



O próximo exemplo são os números de Pell.

Pn= begincases0,n=0;1,n=12Pn1+Pn2,n>1 endcases


Tome P16=470832e P15=195025.

Sequência:
0010100101011010100101011010100101001010110101001010110101000010101101 (235415 caracteres mais bit zero).

O tamanho do segmento inicial é de 1 pixel:



Outro exemplo são números ímpares de Fibonacci Fne Fn3.
Tome F28=317811e F25=75025.
Sequência:
00110110010010011111001001001001101101100100110110110010010011011011001001 ... (158905 mais zero bit).
Em vez de cantos 60 circe 60 circvamos usar os cantos 90 circe 90 circ.
O tamanho do segmento inicial é de 5 pixels:



O tamanho do segmento inicial é de 0,4 pixels:



Esta curva tem um nome - " palavra fractal de Fibonacci ". A dimensão Hausdorff para esta curva é conhecida:

D=3 frac log Phi log(1+ sqrt2)=1,6379; quad Phi= frac1+ sqrt52



Script para visualizar seqüências binárias usando Turtle Graphics

O problema


É possível desenhar um padrão para bilhar, cujos lados são incomensuráveis ​​(um dos lados é um número irracional)? A tarefa não é trivial. Tentando resolver esse problema, enfrentaremos várias perguntas:

1. Se as partes são incomensuráveis ​​- não podemos pavimentar os bilhares com células do mesmo tamanho.
2. Se os lados forem incomensuráveis ​​- a bola será refletida infinitamente e nunca atingirá o canto.
3. Sequências de bilhar são preenchidas não em ordem, mas aleatoriamente.



As duas primeiras perguntas, obviamente, não têm solução. Mas se houvesse uma maneira de preencher a sequência em ordem, poderíamos, movendo a sequência da esquerda para a direita, restaurar o padrão da maneira que usamos acima. E assim, ver como o padrão fica no canto superior esquerdo dos bilhar, cujos lados são incomensuráveis.

Magia negra


Tome bilhar, cujos lados são iguais aos números de Fibonacci (com outros números, esse truque pode não funcionar). Coloque a bola nela e fixe o número da bola tocando na parede superior. Preencha os números com branco - se a bola se mover da direita para a esquerda e preto - se a bola se mover da esquerda para a direita:



A cor branca corresponde a uma na sequência, preto - zero. Agora vamos organizar os números em ordem:



Temos exatamente a mesma sequência de uns e zeros.

Para outros números
A origem é o canto superior esquerdo. Ao longo do eixo x- largura dos bilhares M. Ao longo do eixo y- altura do bilhar N. Pontos brancos indicam números para os quais as seqüências coincidem:



Números para os quais a sequência é invertida:



Fiz upload do script :



A primeira linha são as coordenadas do mouse, usadas como largura e altura dos bilhares.
A segunda linha são os primeiros 100 bits da sequência obtida através do restante da divisão.
A terceira linha são os primeiros 100 bits da sequência obtida através da paridade da parte inteira.

Cor preta - Renderize a primeira sequência usando gráficos Turtle.
Violeta - visualização da segunda sequência.

De fato, em alguns casos, não precisamos pegar o restante da divisão. Para números de Fibonacci, basta verificar a paridade da parte inteira da divisão 2kNem M:

Qk= piso frac2kNM piso( textrmmod2); quadk=0,1,2,...



No numerador, temos Fn. No denominador - Fn+1.

Como você sabe:

 limn to infty fracFnFn+1= frac1 Phi



 Phi- A proporção áurea. Número irracional. Agora podemos escrever nossa fórmula como:

Qk= lfloor frac2k Phi rfloor( textrmmod2); quadk=0,1,2,...



Temos uma fórmula com a qual podemos preencher a sequência de bilhar em ordem, cuja largura é igual a  Phie altura 1. Comprimento da sequência =  infty, mas podemos restaurar parte do padrão, movendo-se da esquerda para a direita em sequência e olhando para o canto superior esquerdo da mesa de bilhar. Resta descobrir como contar  Phi

A unidade dividida pela proporção áurea pode ser reescrita como:

 frac1 Phi= frac1+ sqrt52



Podemos nos livrar de dois:

 frac2k Phi= frac2k(1+ sqrt5)2=k sqrt5k



Nossa fórmula assume a forma:

Qk= lfloork sqrt5k rfloor( textrmmod2); quadk=0,1,2,...



Para maior clareza, desenhei uma mesa. Na terceira coluna, descartamos a parte fracionária e deixamos o todo. Na quarta coluna, verificamos a paridade da parte inteira:



Na quarta coluna, temos nossa sequência: 01010010110100 ...

Continuamos a calcular os bits para o resto k. Restaurando parte do padrão de bilhar com lados 1e  Phi:



Se você não tira o tempo todo k- então cada segundo bit na sequência é invertido. Temos a fórmula geral:

Qk= lfloork sqrtx rfloor( textrmmod2); quadk=0,1,2,...



O que nos impede de usar a raiz quadrada de três ou, digamos, de dois, em vez da raiz quadrada de cinco? Nada.

Construímos uma sequência para k sqrt3+k

 var x=3; var q=[]; for(var k=0;k<256000;k++) q[k]=Math.floor(k*Math.sqrt(x)+k)%2; 

Os primeiros bits da sequência:
00100101101001001011010010110110100101101001001011010010010110100101 ...

Vamos visualizar usando gráficos de tartarugas. Ângulos de 90 e -90 graus. O tamanho inicial do segmento é de 5 pixels:



O tamanho do segmento inicial é de 0,5 pixels:



Construímos uma sequência para k sqrt2

 var x=2; var q=[]; for(var k=0;k<256000;k++) q[k]=Math.floor(k*Math.sqrt(x))%2; 

Os primeiros bits da sequência ( A083035 ):
01001101100100110010011011001101100100110110011011001001100100110110 ...

Ângulos de 90 e -90 graus. O tamanho inicial do segmento é de 5 pixels:



O tamanho do segmento inicial é de 0,5 pixels:



É interessante
Nessa curva, você pode restaurar o "padrão de bilhar" e ver o que está ao redor da curva:



Seria interessante pegar Me Npara esse padrão.

E isso
O número de segmentos na parte repetida da curva = Pn(Números de referência: 0, 1, 2, 5, 12, 29, 70, 169, 408, 985, 2378, ...).



 sqrt2= limn to infty tfracPn1+PnPn



Ângulos de 60 e -60 graus. O tamanho inicial do segmento é de 5 pixels:



Script de visualização

Alguém pode duvidar que a paridade da parte inteira de k sqrt2dá uma sequência fractal. Visualizamos parte dessa sequência da segunda maneira:



Para maior clareza, pintei a curva mais longa no padrão resultante:



Esta curva tem um nome - "palavra fractal de Fibonacci".

Como obter essa sequência usando bilhar? Pegamos bilhar, cuja largura = 1 e altura =  sqrt2. Nos limites superior e inferior, fixamos a direção do movimento da bola. Se a bola se moveu da esquerda para a direita - escreva 0, se da direita para a esquerda - escreva 1.



Dois gráficos:

z= lfloory sqrtx rfloor( textrmmod2)





z= lflooryx sqrt2 rfloor( textrmmod2)





Você pode continuar nessa linha por muito tempo - os padrões têm muitas propriedades interessantes. Mas o artigo já era muito pesado. Vou contar sobre uma das propriedades interessantes no final.

Ao visualizar imagens, alguns usuários podem sofrer uma convulsão epiléptica.
No bilhar binário, começamos a bola no canto superior esquerdo e enchemos a matriz com pedaços.

Para bilhar 610x377:



Parte ampliada do padrão:



Se você iniciar a segunda bola de um ângulo diferente (no canto inferior esquerdo do bilhar 610x377) e marcar os bits que coincidem nas duas trajetórias - obtemos um padrão muito interessante:



Os bits correspondentes são marcados com pixels pretos. Parte ampliada do padrão:



Existem mais duas maneiras de desenhar esse padrão. Um deles foi mencionado no artigo Perfect shuffle . Segundo:

Vamos desenhar um gráfico da função:

z= sin(x pi( sqrt5+1))+ sin(y pi( sqrt5+1))



E marque com pontos pretos z<0:



Parte ampliada do padrão:


Source: https://habr.com/ru/post/pt441516/


All Articles