Saturday 3 June 2017

Fórmula Iteração Fractals Forex


Aqui está o meu esforço para explicar o básico dos fractals - sinta-se livre para comentar. Os fractals começam com um processo chamado iteração. Uma operação é repetida uma e outra vez. Muitas vezes, uma fórmula muito simples dá origem a uma imagem de aparência incrivelmente complicada. A maioria das pessoas que inicialmente se sentem adiadas ao analisar isso passou pela álgebra da escola secundária e fez coisas que eram muito mais difíceis do que isso. Você pode começar com a fórmula Mandelbrot: zz2 c (zz squared c). Para a equação de Mandelbrot, z é definido no início e na maioria das vezes é (0,0). O c corresponde à imagem de pixel da tela do computador com um eixo x horizontalmente e um eixo e verticalmente. Assim, um ponto no eixo x seria (2,0) e um ponto no eixo y seria (0,2) e um ponto na parte inferior esquerda seria (-2-, 2). (O segundo número é realmente multiplicado por i, a raiz quadrada de menos 1- mais sobre isso mais tarde.) (Como muito mais tarde, quando outra pessoa está fazendo a escrita) Então, para ver a cor que um pixel particular acabou, você colocou isso A equação Comece com o ponto (2,0) no eixo x. O segundo número é multiplicado por i, a raiz quadrada de menos um, então este número é 2 0i 2. Na equação de Mandelbrot, o z é definido no início e o pixel está entrando no valor c. Para z0 e cpixel (2,0) Então você coloca o 2 para o z antigo e obtém um novo novo z. Esta é a parte da iteração. Tente outro pixel - (-0,2,0.2) Então, de onde é que a imagem bonita vem Você executa um ponto correspondente ao pixel através da fórmula. Você escolhe um valor de resgate - na maioria das vezes o círculo correspondente a r2 4 (pontos em (2,0) (0,2) (0, -2) (-2,0). Se o ponto está fora disso, é quotoutside E, se for menor que isso, é quotinsidequot. (Na maioria das vezes, quotoutsquot obtém uma cor e quotinsidequot é preto - mais sobre isso mais tarde) O caminho que o número rastreia à medida que passa pelo resultado de cada iteração é chamado de quotorbitquot. A órbita poderia continuar para sempre - você pode conectá-lo à fórmula de iteração sem parar, mas, mais cedo ou mais, há uma tendência clara. Será que vai estar fora do círculo de resgate ou não. O número de vezes que você a conecta na fórmula é chamado de iterações quotmaximum Ou maxiter - uma das coisas que você pode variar no programa fractal. Aqui está um exemplo. Se você está usando Ultrafractal, você pode definir o quotinsidequot para preto e o quotoutsidequot para branco, o método de coloração mais simples. Este é o fractal Mandelbrot Com essa coloração, um resgate de 4. e um maxiter (ou seja, máximo Iterações, o número de vezes que você o conecta na equação) de 100. Fractal2 fractal: titlequotFractal2quot width320 height240 authorquotkathy rothquot createdquotAugust 20, 2000quot numlayers1 layer: captionquotLayer 1quot visibleyes mapeamento alfanico: center-0.50 magn1 angle0 formula: filenamequotStandard. ufmquot entryquotMandelbrotquot maxiter100 perchecknormal Pstart00 ppower20 pbailout4 dentro: transfernone repeatyes fora: transferlinear repeatyes gradiente: smoothyes numnodes4 index0 color16777215 index89 color16777215 index238 color16777215 index334 color16777215 Então, de onde são originadas todas as cores O método de coloração básico é o quotescape timequot coloring. A situação mais simples é que os pixels cujas órbitas nunca coteiam o cenário, isto é, estão dentro do círculo de resgate, são de cor preto. Os pixels que são quotoutsidequot são coloridos de muitas maneiras diferentes. A coloração do tempo de escape é simples. (Sim, eu realmente não entendo os outros. Bem, às vezes tipo de.) Escape time coloring colore os pixels em termos de quantas iterações é necessário para quotescapequot o círculo de resgate. Fractal3 fractal: titlequotFractal3quot width320 height240 authorquotkathy rothquot createdquotAugust 20, 2000quot numlayers1 layer: captionquotLayer 1quot visibleyes mapeamento de aloano: center-0.50 magn1 angle0 formula: filenamequotStandard. ufmquot entryquotMandelbrotquot maxiter100 perchecknormal pstart00 ppower20 pbailout4 dentro: transfernone repeatyes fora: transferlinear repeatyes gradiente: smoothyes position - 14 numnodes9 index0 color34303 index1 color58879 index13 color65535 index23 color11160234 index91 color7667829 index166 color6946890 index288 color6291488 index374 color1048576 index385 color0 Eu acho que é mais fácil encontrar imagens realmente adoráveis ​​com os conjuntos Julia do que com o conjunto Mandelbrot. No início dos anos 1900, antes dos computadores, antes que os carros fossem comuns, ao redor do tempo em que a teoria da relatividade estava sendo desenvolvida e antes do descobrimento do DNA, Julia apresentou o conjunto Julia. (Julia era um homem, mulheres desculpas, pelo que sei que Sylvie Gallet foi a primeira mulher em fractals, seguida por Janet Parke Preslar e Wizzle, e este não é meu campo). A equação para o conjunto Julia é a mesma que o Mandelbrot , Exceto que zpixel e c são configurados como uma constante no começo, ou seja, c é o quotJulia Seed. quot Se você começar um conjunto de Mandelbrot e acertar no quotswitchquot, você irá definir o Julia para qualquer valor de c que você escolheu. Foi descrito que o conjunto Mandelbrot é o quotmapquot para os conjuntos Julia - isto é, se você tiver um valor de quotcquot para o conjunto Mandelbrot e aplicá-lo ao conjunto Julia, você terá uma variedade de imagens interessantes. Você pode tentar isso - traga um Mandelbrot configurado no Ultrafractal e coloque o ponteiro em uma das baías ou em algum lugar perto da borda - se você bater no quotswitchquot, você terá um conjunto diferente de Julia. Realmente, o todo é parte de uma imagem quot Julibrotquot multidimensional. Se a tela do computador for um gráfico dos pixels, o conjunto Mandelbrot é um gráfico de c real e imag c. O conjunto Julia é um gráfico de z real e imag z. Existem várias outras formas possíveis de ver isso. Jim Muth tem feito uma exploração do Julibrot multidimensional - seu Fractal diário do dia está na filosofia fractal e na lista fractint. Existe real c e real z, real c e imag z, imag c e real z, imag c e imag z. Jim Muth chama isso de dimensões oblatas, retangulares, paralelas e outras. Addendum by Julian Smith. Heres um exercício interessante, se você quer entender um pouco do que está acontecendo quando um fractal está calculando. Este é um pouco de um exercício que você pode fazer simplesmente no Excel ou em outros pacotes de planilhas. Eu apresentei uma demonstração disso para alguns alunos recentemente. Era um pouco além da maioria deles (alguns tinham apenas doze), mas não por muito. Se tivéssemos podido passar mais tempo, acho que a maioria deles teria conseguido. Heres algumas instruções para os interessados. Comece com uma nova planilha. Na célula A1 tipo Na célula tipo B1 Esta é a coordenada com a qual vamos começar - (0.3,0.3) Podemos mudar No tipo de célula A2 Tipo de célula B2 Esta é a fórmula que irá produzir uma nova coordenada. Selecione as células A2 e B2. Deve haver um pequeno quadrado visível no canto inferior direito do B2. Clique nisso e arraste para B20. Isso copia a fórmula vinte vezes para que ele seja repetido (iterado) vinte vezes. Agora, ela é a parte divertida. Use o mouse para realçar A1 para B20. Clique em um botão na parte superior da tela - aquele que é rotulado como "Assistente de Assistente de Ciclo". Isso produzirá um gráfico da órbita do seu ponto. Você precisará escolher o tipo de gráfico de dispersão XY. Você então possui várias opções secundárias. Clique em um dos que tem pontos conectados. Clique quotnextquot e quotfinishquot para produzir o gráfico. Agora você deve ver um tipo de trajeto errático em ziguezague, começando no ponto (0.3,0.3) e terminando em um blob de pontos muito próximos uns dos outros próximos (0,0) Esta é a órbita de (0,3,0,3) usando esse particular Fórmula. Agora o que você pode fazer é mudar as células A1 e B1 para encontrar órbitas diferentes. Você deve encontrar dois tipos - aqueles onde os pontos ziguezagueam em torno de um pouco, e depois se acalmaram um pouco perto (0,0). Aqueles onde os pontos voam para o infinito em uma taxa alta. Você pode encontrar alguns lugares onde uma mudança muito pequena na coordenada de partida produzirá grandes mudanças na forma da órbita. Isso é chamado de teoria do caos. O que Mandelbrot fez na década de oitenta foi pintar diferentes pontos de partida de cores diferentes, dependendo de como a órbita se comportou. Aqueles que voavam para o infinito, pintou em branco e os que ficaram em torno de zero pintou preto. A região negra que desenhou tornou-se conhecida como o conjunto de Mandelbrot. Todos os pontos estão dentro do conjunto ou fora. (O UF usa esses termos) (o Ultrafractal precisa de algumas diretrizes para dizer quando parar de calcular a órbita, decidir se é um ponto interno ou externo e começar a calcular o próximo ponto. O primeiro guia é o valor de Resgate. Se qualquer um dos Os valores das coordenadas são maiores do que esse valor, então o UF o chama de um ponto externo. O outro guia é as iterações máximas. Isso foi configurado para 20 na planilha. Se um ponto não for resgatado após um certo número de iterações, a UF chama É um ponto interior.) O interessante a notar é que o conjunto mandelbrot tem um perímetro de comprimento infinito - um que se torce e se curva e se dobra em si mesmo um número infinito de vezes. Entretanto, inclui um espaço finito. Esta é a definição de um fractal (em termos simples). O que ultrafractal faz é capaz de colorir os pontos com diferentes algoritmos de coloração. Não apenas preto e branco como Mandelbrot fez, mas uma variedade de cores diferentes dependendo da forma e do comportamento da órbita. Estas são fórmulas de coloração ou UCLs. A outra coisa que ultrafractal faz é permitir que você use fórmulas diferentes em seus pontos - não apenas a simples que você digitou na planilha. Como Kathy salientou, a fórmula de Julia está relacionada com a fórmula de mandelbrot, mas ligeiramente diferente, e produz formas diferentes - muitas espirais. Outras fórmulas provêm de diferentes campos de matemática e ciência - Volterra-Lotka de biologia, métodos de Newton de engenharia e física, e assim por diante. Além disso, pessoas inteligentes nesta lista de correspondência escrevem fórmulas para fins artísticos - aquelas que produzirão um efeito particular desejado. E porque Frederik produziu um software tão maravilhoso, seu computador pode produzir milhares de cálculos por segundo - trabalhando com todas essas órbitas. Isso permite que o artista fractal se esqueça de todas as matemáticas e continue com a preocupação com a aparência da imagem. Espero que isso seja útil para alguém. O exercício da planilha foi um pouco de olho para mim - embora eu conhecesse a teoria, não apreciei o comportamento das órbitas até eu realmente vi uma. PhpMyVisites. Een aplicação de código aberto para o desenvolvimento de bibliotecas em PHPMYSQL em versões de licenças GNU GPL derivadas da iteração Newton-Raphson Introdução Esta página descreve um tipo de fractal derivado do método Newton-Raphson, que é mais usado normalmente como um Método aproximado de resolução de equações. Esta não é uma nova ideia para mim. Eu recebi a idéia de um colega no trabalho, e várias outras pessoas também têm páginas web sobre isso. Estou colocando mais uma, porque contém algumas adições ao conceito que eu não vi em nenhum outro lugar. Explicação A iteração de Newton-Raphson deve ser familiar para quem estudou o cálculo é um método para encontrar raízes de uma função usando a derivada da função para melhorar uma aproximação à raiz. Para realizar uma aproximação de Newton-Raphson, suponha que você tenha uma função f (x), com derivada f (x), e você tenha uma aproximação a para uma raiz da função. O procedimento Newton-Raphson é calcular aa-f (a) f (a), que é uma aproximação mais próxima da raiz. Normalmente, você iria então iterar isso novamente, e novamente, até que os valores sucessivos fossem extremamente próximos, em que ponto você conclui que você teve uma boa aproximação ao valor real r para o qual f (r) 0. O método de Newton-Raphson é útil na prática devido à sua convergência extremamente rápida. A distância da raiz para cada aproximação é aproximadamente quadrada em cada iteração, assumindo assim que a distância já é pequena o suficiente para que isso seja menor em vez de maior, você espera dobrar o número de dígitos decimais corretos em cada aproximação. Então, se você conseguir uma aproximação razoavelmente boa para começar, Newton-Raphson pode muito rapidamente lhe dar uma excelente. O que a fórmula de Newton-Raphson está essencialmente fazendo é desenhar uma tangente à curva no ponto da aproximação original, seguindo então essa tangente a onde atravessa o eixo dos x. Uma vez que qualquer função diferenciável se aproxima de uma linha reta quando vista em ampliação suficiente, isso explica por que ela funciona tão bem: a própria curva não diverge muito da linha tangente e os pontos onde cruzam o eixo dos x são muito perto um do outro. Por isso, esta técnica melhora massivamente uma boa aproximação. No entanto, se você começar com uma aproximação muito ruim, acontecem coisas muito mais interessantes. Suponha que a função se curve de uma interseção com o eixo dos x e de volta para outra, como uma parábola e suponha que sua aproximação inicial esteja em algum lugar próximo ao topo desse arco. Agora, desenhar uma tangente à curva e segui-la para o eixo x irá aterrá-lo a uma distância enorme das raízes da função 8211 e, como sua aproximação inicial, cruza o ponto máximo da curva, a segunda aproximação de Newton-Raphson a Vai de um lado das raízes para o outro. Na verdade, à medida que se move a distância relativamente curta ao longo do máximo da curva, a irá cobrir a maior parte da linha real. Esse tipo de comportamento, expandindo uma pequena área para uma grande, é exatamente o tipo de comportamento que esperamos dar origem a fractals auto-similares. Então, se começássemos uma iteração de Newton-Raphson em cada ponto da linha real, execute cada iteração até convergir para dentro de um determinado nível de tolerância de uma raiz e, em seguida, coloque o ponto de partida de acordo com a qual raiz acabou, Podemos muito bem esperar ver formas fractal. Fractals em uma linha não são muito interessantes, no entanto, vamos trabalhar no plano complexo. A iteração de Newton-Raphson ainda funciona perfeitamente, então é aí que eu vou gerar meus fractals. Ilustração Heres um exemplo de fractal, gerado a partir do polinômio z4-1, de modo que as quatro raízes da função estão em -1, 1, - i e i. Nesta imagem, vemos uma grande área aborrecida em torno de cada raiz da função 8211 como seria de esperar, já que qualquer ponto próximo a uma raiz converge rapidamente para essa raiz e não faz nada de interessante. Mas entre as áreas de convergência chata e bem comportada, vemos algumas belas formas fractal. Permite ampliar em uma dessas áreas de fronteira: assim como previmos 8211, cada uma das bolhas em forma de coração que compõem a linha de limite é composta por linhas de contorno constituídas por mais bolhas em forma de coração. Este padrão é um verdadeiro fractal. Este é um exemplo bastante diferente. Desta vez, a função que está sendo usada é (z-3) (z-2) (z-1) z (z1) (z2) (z3), então tem sete raízes enfiadas em uma linha longa: neste caso, o As formas fractal são muito menores em comparação com a estrutura geral da imagem. Mas eles não estão completamente ausentes. Se ampliarmos algumas das pequenas bolhas nas linhas de fronteira, vemos isso: Cada blob é dividido em áreas coloridas semelhantes às que cobrem todo o plano, e em cada linha de divisão vemos mais blobs que se parecem muito com o mesmo As gotas maiores. Decoração Estas imagens são razoavelmente bonitas, mas elas são um pouco chatas para serem transformadas em papel de parede na sua forma atual. Existe alguma coisa que possamos fazer para torná-los menos rígidos Sim, existe. Uma coisa óbvia que podemos fazer, bem como perceber qual raiz da função a iteração acabou, é contar quantas iterações ele levou para chegar lá. Podemos então colorir cada pixel com uma tonalidade diferente da cor atribuída a essa raiz dependendo do número de iterações. Então, usando a abordagem óbvia de configurar a sombra de pixels para o número de iterações, modulo o número de sombras disponíveis (para que cada cor percorra esses tons), vemos algo como isto: isso não é apenas mais bonito, mas também nos mostra Exatamente onde cada raiz da função é 8211 em vez de apenas saber que as raízes estão em algum lugar nas grandes áreas coloridas, agora podemos identificar positivamente cada raiz como o centro do ponto brilhante em cada área. O comportamento cíclico não é otimizado, embora funcione bem o suficiente se o número de cores disponíveis for limitado, mas significa que há bordas repentinas (como as que estão no centro de cada região) onde uma cor escura de repente se torna uma cor brilhante novamente. Talvez se tenhamos uma verdadeira cor disponível, seria melhor ter o som de pixel sendo monotônico. 8211 ficando cada vez mais escuro, são necessárias mais iterações, mas desaparecendo cada vez menos e nunca atingindo a escuridão: agora está começando a parecer muito mais agradável, Eu acho que. Mas seria ainda melhor se os limites visíveis entre diferentes tons da mesma cor pudessem ser removidos. Eu suspeito que fazer isso exige rigorosamente algumas matemáticas realmente horríveis e muitos casos especiais, mas descobriu que uma boa aproximação ad hoc é obtida simplesmente olhando a última iteração, na qual o primeiro ponto vem dentro da distância especificada de um raiz. Observamos a distância D0 do ponto anterior para a raiz e a distância D1 do novo ponto para a raiz, e sabemos que a distância limite T está em algum lugar entre os dois. Descobriu que simplesmente olhando a fração ou, em outras palavras, se o registro do raio do limiar estava perto do início ou do fim da distância interna percorrida pelo ponto (em uma escala logarítmica), produz um resultado perfeitamente aceitável que nós Pode usar para suavizar esses limites: para escrever um programa para gerar essas imagens, é necessário conhecer tanto a função que está sendo usada (tipicamente um polinômio) como a localização exata de todas as suas raízes. Encontrar as raízes exatas de um polinômio geral não é fácil (os cúbicos e as quaráticas são apenas solucionáveis, mas a quintia e além da falta da teoria de Galois), então faz muito mais sentido começar por decidir onde queremos as raízes e Usando isso para calcular o polinômio multiplicando uma série de (xa) termos. Isso não restringe a gama de polinômios com os quais podemos acabar, pois, no plano complexo, qualquer polinômio pode ser totalmente factorizado. Então, os parâmetros reais que você passaria para o programa fractal consistem nas coordenadas de um conjunto de pontos, juntamente com uma cor para cada ponto. Isso levou a uma ideia interessante: suponha que imaginemos um pequeno número de pontos coloridos que deriva suavemente ao redor do avião e, em cada instante, calculamos um fractal Newton-Raphson para as posições atuais dos pontos. Isso deve levar a uma seqüência de fractals que fluem naturalmente um do outro e, à medida que o ponto central brilhante em cada região colorida se move, as regiões se movem com eles e o fenômeno fractal nos limites da região gira constantemente. Aqui está uma animação. Para criar isso, eu configurei três pontos, cada um movendo-se ao longo da curva Lissajous (sin t, sin 2t) e cada um terço do caminho ao redor da curva do que o último. A qualidade da imagem não é incrível (devido à compressão MPEG), mas uma característica que é apenas visível é as linhas de pontos brilhantes adicionais que se deslocam dentro de cada região colorida, que parecem se tornar as gotas na linha de conexão quando as outras duas regiões se reúnem Para esmagar a linha de manchas. Olhando para o enredo acima do arco-íris com sete raízes em uma linha, eu encontrei-me pensando que não é muito bonito, porque as bolhas do fractal são tão pequenas. Por que eles são tão pequenos? Pode-se fazer qualquer coisa para torná-los maiores Eu especulei que talvez o motivo pelas quais as bolhas são tão pequenas (o que implica que Newton-Raphson converge particularmente bem para esta função) pode ser porque polinômios de alto grau geralmente são muito íngremes, E curva muito bruscamente no topo dos picos, então não há uma grande região do plano em que a auto-semelhança fractal pode ser observada. Isso sugeriu que uma maneira óbvia de suavizar o processo poderia ser reduzir o grau geral da função: torná-lo mais como x4 do que x7. Como fazer isso, preservando a localização das raízes Por que, pegue a raiz quadrada, é claro, pensando um pouco mais, isso soa como uma boa idéia. Nos números reais, a transformação da raiz quadrada abobe as coisas para o eixo dos x, e elas as esmagam mais longe, então eu espero que ele gire uma inversão muito nítida para uma curva mais suave. Além disso, é trivialmente fácil de fazer na iteração de Newton-Raphson. Suponhamos que tenhamos uma função f, e definimos uma função g para ser fk para algum poder (constante) k. Então, g k f f, então, quando calculamos gg, o termo F cancela, e ficamos com apenas (1k) (ff). Em outras palavras, o único efeito de aumentar a função inteira para o poder k é multiplicar um fator constante de 1k na distância movida por iteração. Então, isso teve que valer a pena tentar. Aqui estão os resultados de tirar o gráfico do arco-íris acima e elevar a função inteira para uma variedade de poderes gerais: como eu esperava, as pequenas bolhas fractânicas se expandiam para grandes bolhas fractals, o que é bom e tornam-se mais complexos e espinhosos Forma também, porque os pequenos fracturas do fractal sobre eles também se expandiram. O que eu não estava esperando, no entanto, era que as linhas de divisão entre as principais regiões de convergência mudaram completamente de forma, tornando-se mais vacilante. Acontece que realmente levar a raiz quadrada da função (elevando-a para o poder de 0,5) não é viável, já que o algoritmo converge cada vez mais lentamente, mais perto de 0,5 você obtém. Isso porque o aumento da função para o poder 0.5 faz com que nós dobremos a distância movida por iteração, então uma vez estava perto de uma raiz; ff dá uma estimativa precisa da distância da raiz e vamos duas vezes mais longe. Fazendo com que acabemos tão longe da raiz do lado oposto, então não é de admirar que a iteração não consiga convergir. 0,52 foi o menor valor que eu poderia usar sem ter que aumentar meu limite de iteração. Essa tendência para superar a raiz visava ao usar o klt1 também oferece uma explicação intuitiva alternativa para as formas do fractal se tornarem maiores. As formas fractal surgem porque, perto de um limite entre as regiões de convergência, há uma tendência para que um único passo de iteração percorra uma longa distância em regiões remotas do plano complexo, então, se estivessem se movendo ainda mais em uma única iteração, então não esperamos que não Ter que estar tão perto do limite antes de experimentar esse fenômeno. Aumentar o valor de k para algo maior do que 1 tem o efeito oposto: agora convergem em direção a nossa raiz em passos menores, mais devagar, mas com mais segurança, e assim foram menos propensos a superar e os efeitos fractals nas linhas de fronteira se tornam menos pronunciados. Não vou exibir fotos disso, porque são chatas. No entanto, eu volto para isso mais tarde. Além de aumentar o polinômio inteiro para uma potência, também é interessante ver o que acontece se tentarmos criar apenas um dos fatores (z-a) para um poder. Para fazer isso, devemos primeiro pensar se isso pode ser implementado de forma eficiente em software. Pode acontecer. Observe que se você tiver uma função composta pelo produto de muitos fatores menores f abcd, então a regra do produto dá sua derivada como a soma de uma lista de termos f abcd abcd abcd abcd em que cada termo parece muito parecido com f Em si. Na verdade, podemos dividir os dois lados por f para nos dar frac frac frac frac frac que é precisamente a coisa cujo recíproco nós subtraimos de z na fórmula N-R. Agora, quando cada fator a é da forma (zk), o termo resultante aa parece 1 (zk) e, como observamos na seção anterior, se o fator é aumentado para uma potência de modo que seja da forma (zk) E então o termo resultante aa só é alterado por uma constante, então torna-se e (zk). Então, se temos uma função que é o produto de uma série de termos do formulário (z-a1), podemos efetuar sua iteração Newton-Raphson eficientemente sem nunca computar toda a função em si. Nós simplesmente calculamos b1 (z-a1) para cada termo, somá-los, pegue o recíproco e subtrai-lo de z. Um ponto útil sobre este procedimento é que isso significa que podemos aumentar cada fator do nosso polinômio (o que não é muito polinomial, de verdade) para não apenas um poder real arbitrário, mas para um poder complexo se assim o desejarmos. E acontece que desejamos, porque alguns fractals muito impressionantes aparecem se o fizermos. Heres um mapa de 121 pequenas imagens fracturas, todas geradas a partir de funções com as mesmas três raízes, ou seja, as raízes complexas de 1. Mas a raiz vermelha (1 em si) foi aumentada para um poder diferente em cada imagem: através do mapa o real Parte da potência é de 0 a 1 e, para baixo, a parte imaginária passa de 0 a 1. Como mencionado acima, aumentar a raiz para uma potência de 0,5 ou menos inibe a convergência da iteração para essa raiz. Mas na presença de outras raízes às quais ainda podemos convergir, a região da não-convergência 8211 mostrada em preto no mapa acima - forma formas fractal complexas e interessantes. Enquanto isso, aplicar uma parte imaginária ao poder da raiz vermelha causa um efeito de torção: quanto maior a potência, mais a forma é menos reta e mais espiralada e parece ser a parte real da potência que deve ser superior a 0,5 Para convergir. Algumas das imagens nesse mapa valem a pena expandir para um tamanho maior para admirar com mais detalhes. Aqui estão quatro particularmente bons: você notará, é claro, que a coloração é muito diferente. Os dois tipos de fractal estão usando fórmulas de iteração correspondentes, mas um plotter set Julia concentra-se em quanto tempo leva o valor da iteração para aterrar fora de um círculo crítico, enquanto o plotter Newton-Raphson está realmente esperando que os iterados convergem para um ponto, E é apenas observando incidentalmente o que acontece quando não. Então, você realmente não quer jogar seus programas dedicados de gráficos de Julia, mas é interessante, no entanto, que algo muito parecido com o conjunto de Julia é um caso especial de fractals de Newton-Raphson. Dissecção Outra coisa notável sobre alguns dos fractals acima é que alguns têm muito mais conteúdo fractal do que outros. O fractal original no topo desta página com raízes em -1, 1, - i, eu tenho quatro grandes regiões de reunião de cores planas na origem, e a natureza auto-similar do fractal faz com que o ponto de contato quádruplo seja replicado Em outras partes do avião. Isso dá origem a fenômenos fracos qualitativamente mais interessantes do que o enredo com sete raízes em uma linha, em que todas as grandes regiões de convergência são separadas por curvas chatas que nunca se encontram, e as bolhas do fractal refletem essa estrutura. Então, eu me perguntei, existe uma maneira de prever como as regiões de convergência serão moldadas e, assim, construir polinômios que tenham pontos de encontro triplos ou quádruplos, exatamente onde os queremos, sim, como se verifica, existe. Eu observei acima que elevar um polinômio para um poder real maior do que 1 tem o efeito de fazer com que a iteração faça pequenos passos em direção à raiz, o que por sua vez faz com que a convergência seja mais lenta, mas mais segura e reduz a incidência de overshoot levando a fenômenos fractals. Como resultado, as linhas de fronteira entre as regiões tornam-se mais claras, mais suaves e simples. Isso pareceu uma coisa boa se quiséssemos conhecer a estrutura geral do fractal, mas simplesmente mais claro não é bom o suficiente. Eu queria o mais claro. Então eu me perguntei o que aconteceria no limite, já que a velocidade de iteração desacelerava cada vez mais. Em outras palavras, eu estava interessado no que eu vou descrever como Newton-Raphson contínuo, no qual você inicia sua iteração em um ponto arbitrário z0 no plano e depois deixa z evoluir continuamente de acordo com a equação diferencial frac-frac. Como na seção anterior, podemos resolver esta equação separando variáveis ​​e integrando naiumlvely, tentando ignorar a questão de saber se isso é rigoroso ou mesmo significativo nos números complexos. Desta vez, acabamos com frac1ffrac dz - dt, e então podemos aplicar a fórmula de integração por substituição ao LHS para nos dar frac - dt, o que se integra a nos dar f (z) Ae para alguma constante A. Podemos Verificar diferenciando com respeito a que isso realmente se revela uma resposta plausível à equação, mesmo nos números complexos: a regra da cadeia nos diz frac f (z) f (z) frac, então acabamos com f ( Z) frac - Ae - f (z) conforme necessário. E a constante A é claramente igual a f (z0), o valor de f no ponto em que iniciamos a nossa integração. Muito bom, eu ouço você protestar, mas o que isso significa Bem, uma vez que t é um real positivo, significa que qualquer que seja o caminho z que se segue do nosso ponto de partida z0 deve ter a propriedade que em todos os tempos f (z) é igual a kf (Z0), onde k Ae é um valor real que diminui de forma contínua e monotónica de 1 para 0. Portanto, normalmente esperamos que o limite de tal iteração seja um ponto em que f (z) é realmente igual a zero, ou seja, uma raiz fora. Mas isso não é o único que pode acontecer. Também é possível imaginar que possamos encontrar um ponto ao longo deste caminho em que não há uma direção clara em que devemos dirigir: nem há direção em que possamos dirigir de z, o que f (z) continuará diminuindo como um Múltiplo real de seu valor inicial, ou talvez exista mais de uma dessas direções. Como encontramos esses pontos. Bem, para a maioria dos pontos no plano complexo, a equação diferencial com a qual começamos geralmente nos dará uma direção única na qual podemos dirigir para diminuir linearmente f (z): calculamos f (z) f (z ), E siga na direção apontada por esse número complexo. Isso falha se f (z) 0, caso em que não há uma direção clara para a cabeça, esperamos que, é claro, porque se f (z) 0, então já atingimos uma raiz. Mas também pode falhar se f (z) 0. Então, isso sugere que as raízes da derivada de f podem valer a pena investigar. Portanto, considere alguma raiz r de f, na qual o próprio F não é zero. Se pudermos encontrar quaisquer caminhos contínuos no plano complexo que começam em r e que tenham aumentado como um múltiplo real de f (r), qualquer ponto em um desses caminhos será um ponto no qual iniciar um processo contínuo de Newton-Raphson Fará com que ele volte para trás ao longo do mesmo caminho e termine em r em vez de em uma raiz. Em outras palavras, esperamos que esses caminhos sejam precisamente os limites entre as regiões de convergência para as várias raízes (uma vez que é o conjunto óbvio de pontos que esperamos não convergir sensivelmente para uma raiz) e além disso, em todos esses limites, esperamos Encontre uma raiz de f (porque um processo contínuo de Newton-Raphson iniciado em qualquer limite deve terminar em algum lugar). Thats a lot of maths to endure without a break for a pretty picture, and its also a long and rather handwavey chain of reasoning to endure without some sort of reassurance that what Im saying still makes sense. So, here I present a sample polynomial Newton-Raphson fractal, with the roots of the polynomials derivative marked as black blobs. Observe that each dividing line between convergence regions has a blob somewhere on it, and that in particular the point where three regions (and three such lines) meet has a blob. So now we know, at least in theory, how to find the lines dividing the different convergence regions. Now, what distinguishes a simple dividing line . separating only two regions, from a point at which three or more regions meet Lets consider our root r of f again. Were now interested in how many directions we can head away from r in, such that f increases as a real multiple of f(r). Equivalently, were interested in directions we can head in such that f(z)(1k)f(r) for some real positive k in other words, we want small values epsilon such that f(repsilon)f(r)-1 is real and positive. So now lets consider the Taylor series expansion for the function f(repsilon)f(r)-1. We have f(repsilon) f(r) epsilon f(r) epsilon2 frac epsilon3 frac cdots and we know that f(r) 0 by construction, so this gives us frac -1 epsilon2 frac epsilon3 frac cdots In the usual case, f(r) will be non-zero, so for small values of epsilon, f(repsilon)f(r)-1 will be approximately equal to Kepsilon2 for some (complex) constant K. This means that we expect to have two directions in which we can head in order to make f(repsilon)f(r)-1 real and positive: one direction corresponding to each square root of 1K. This fits with what we expect, because in the usual case a root of f gives rise to a region boundary extending away from it in two opposite directions. But if f(r) is zero as well, then the epsilon3 term will now be the dominating one in the Taylor expansion so for small values of epsilon, f(repsilon)f(r)-1 will be approximately equal to Kepsilon3 for some K. And now we expect to have three region boundaries coming out of our root r, one for each cube root of 1K. If the third derivative of f is zero at r too, then we can have four region boundaries, and so on. And there it is: thats the result Ive been working towards for this entire section. A multiple-region meeting point occurs when a root r of f is also a root of f, and the more higher derivatives are zero at r the more regions meet there. For polynomials in particular, this translates into r being a repeated root of f, and the more repeated the merrier. To demonstrate beyond reasonable doubt that this actually works, I will now construct from first principles a Newton-Raphson fractal containing two points at each of which five regions meet. For a five-way meeting point we need f to have a four-times-repeated root so lets set f(z)(z-1)4(z1)4, which has two repeated roots as desired. We integrate this in the naiumlve way (actually what were doing is finding an anti-derivative of it, integration in the complex plane being a generally messy concept) to obtain the nasty-looking polynomial (35z9 - 180z7 378z5 - 420z3 315z)315. We can discard the constant factor of 1315 since it makes no difference to the convergence, and this gives us 35z9 - 180z7 378z5 - 420z3 315z. We find the roots of this (using Newton-Raphson for its more conventional purpose) and feed them into our fractal plotter, and get this picture: And, exactly as we asked for, this has two five-way meeting points at locations 1 and -1. Bingo Of course, integration lets us add an arbitrary constant term without affecting the derivative of our result. Heres what we get if we add a constant term of 50200i to the above polynomial: The roots of the polynomial have moved around, and the picture is distorted, but the region meeting points are still exactly where we asked for them. Oscillation Heres another curiosity. The following fractal is plotted using a pure polynomial f, placing the roots at i, - i, -2.3 and 2.3: The interesting feature of this picture is the black areas, which are regions in which Newton-Raphson failed to converge to a root within the programs limit of 256 iterations. At first sight one might assume that this is an artifact of having a finite iteration limit at all, but one would (it turns out) be wrong. Even if you crank up the iteration limit to a much larger number, those black areas stay black, because they represent genuine non-convergence. Whats actually happening here is that for this particular polynomial the Newton-Raphson method gives rise to period-2 cyclic behaviour. Theres a pair of points a and b, one in the middle of each of the two main black areas, which have the property that a single iteration of Newton-Raphson starting from a takes you to b, and vice versa. But this is more than just a cycle between those two points: its an attracting cycle. If you start from a point somewhere near a, an iteration of Newton-Raphson will take you to somewhere even nearer to b, from which another iteration will land you nearer still to a again. Hence, theres a sizeable region around each point of the cycle which all converges to the cycle itself, and hence never settles down to a root of the polynomial. This is interesting to me because it happens so rarely Ive plotted quite a lot of these fractals, including a lot of animated ones in which the points wander continuously around the plane, and this particular arrangement of roots is the only case Ive found in which a polynomial gives rise to a non-converging area. (Its not the only actual polynomial . you can obviously rotate or translate the root positions to obtain other polynomials with the same behaviour, and you can also move the roots around by a small amount relative to each other before the black areas go away. But this general pattern 8211 four roots in a diamond layout of roughly this shape 8211 is the only pattern I know of that does this.) On one level, its reasonably easy to see why it happens. If you define g(x) x - f(x)f(x) to be the Newton-Raphson iteration for this polynomial, then find roots of the equation g(g(x))x (probably using a computer algebra package, since its a pretty ugly mess) you will observe that it has roots which are not also roots of the similar first-order equation g(x)x (and hence of f). That proves that there are cycles at all then, to prove there are attracting cycles, compute the derivative of G(x)g(g(x)) at those roots and find the ones where it has modulus less than 1 (since for small h, G(rh) will be approximately G(r)G(r)h, and if G(r) r and G(r) lt 1 then this will be closer to r than we started out). But that doesnt really explain the phenomenon, or predict what other sorts of polynomial will give rise to cyclic behaviour of this type. Do there exist polynomials which exhibit period-n cycles for all n gt 1, for example How often does this happen How would one go about constructing polynomials with non-converging regions to order I dont currently know the answers to these questions, but Id be interested to hear them if anyone else does. Participation If you want to generate some of these fractal images yourself, you can download a program to generate them here: C source code and precompiled Windows executable. The program will produce PNG, Windows. BMP, or PPM files, and image processing software should be able to convert those to other formats if you prefer. Just typing newton should give some help about what all the command-line options do. If you want a quick start, heres a selection of sample command lines you might like to try: newton - o simple. png - s 256x256 - x 2 - c 1,0,0:1,1,0:0,0.7,0:0,0.5,1 -- -1 1 - i i This one is the cross-shaped plot I used at the top of this page, based on the polynomial z4-1. To zoom in on one of the boundary lines as I did above, replace - x 2 with - x 0.4 - X 1.05 - Y 1.05 . newton - o rainbow. png - s 320x256 - x 5 - c 1,0,0:1,0.7,0:1,1,0:0,1,0:0,0.7,1:0,0,1:0.5,0,1 -- -3 -2 -1 0 1 2 3 This one is the rainbow-coloured plot with seven roots strung out in a long line. newton - o powermap. png - s 256x256 - x 2 - c 1,0,0:1,1,0:0,1,0 -- 1 power -0.5-0.8660254i -0.50.8660254i This command plots the various images from the large map shown above, with the red root raised to an arbitrary power. Replace power with the power you want for example, replace it with 0.5 to get the Mandelbrot-like picture, and with 0.40.9i to get the disconnected yellow-and-green plot. newton - o holes. png - s 320x256 - y 2 - c 1,0,0:1,1,0:0,0.7,0:0,0.5,1 -- -2.3 2.3 - i i This one is the plot with black non-converging areas. By default the program will use the cyclic shading behaviour with 16 shades of each colour. You can specify - C no to turn off cyclic shading (so the colours get uniformly darker as more iterations are needed), - B yes to turn on blurring of the iteration boundaries, and - f 32 or - f 64 if you want to increase the number of shades used. To raise the function to an overall power, use the - p option, for example - p 0.52. This will slow down convergence, so you will probably also need to increase the number of shades of colour (the - f option, as discussed above) in order to make the result look nice. To raise an individual root to a power other than 1, put a slash after that root followed by the power value. For example, an argument of 2i1-0.5i specifies a factor of (x-(2i)) . If you want a larger version of an image, just change the picture size specified in the - s option. The program has a number of other options just type newton on its own to list them. Here are some pre-generated larger versions of the above images: Recognition Newton-Raphson fractals are not a new idea of mine, although most other pages Ive seen dont go so far into the maths. Here are a few such pages you can probably find more by googling for Newton-Raphson fractal. Alan Donovan was the person who introduced me to these fractals in the first place. Tom Womack also thought of animating them, although his page unfortunately doesnt include any actual movie files. Paul Bourke has some particularly well-chosen and pretty images. Bryan Krofchok has a more varied 8211 and more colourful 8211 gallery. MathWorld s page on the Newton-Raphson method itself mentions its fractal property, and has some small examples and further references. (comments to 971109710710511064112111981111204699111109 ) (thanks to chiark for hosting this page) (last modified on Tue Jan 10 13:49:32 2017 )

No comments:

Post a Comment