Modelo de Turing

De Física Computacional
Revisão de 02h17min de 25 de novembro de 2020 por Jcrodrigues (discussão | contribs)
Ir para navegação Ir para pesquisar

EM CONSTRUÇÃO

Equações de Turing

Simulações computacionais que envolvem equações diferenciais parciais (EDP's) são usualmente modeladas através da discretização das variáveis espaciais e temporais. Algumas dessas equações descrevem comportamentos difusivos no sistema, sendo chamadas de equações de difusão. Tais equações envolvem variáveis de estado que apresentam variações temporal e espacial e coeficientes de difusão no sistema, além de outros parâmetros que influenciam na evolução dos estados. Dentro desse ramo de equações, encontra-se o Modelo de Turing, desenvolvido por Alan Turing, que utiliza como base a concentração de espécies em um sistema, avaliando sua reação, difusão e variação espacial e temporal. São muitas as aplicações do modelo, principalmente em ramos como biologia e química, envolvendo problemas com formação de padrões[1]. A seguir, descrevemos sua formulação matemática.

Sejam u e v as concentrações das espécies que serão analisadas. Sejam a,b,c e d parâmetros e h e k constantes. Os coeficientes de difusão são Du e Dv, cada um associado a uma das concentrações[2]. O Modelo de Turing é dado pelas EDP's


∂u∂t=a(u−h)+b(v−k)+Du∇2u

∂v∂t=c(u−h)+d(v−k)+Dv∇2v


Note que certa parte de cada equação depende apenas dos parâmetros e das concentrações. Podemos, portanto, utilizar funções de variáveis u e v para descrever o sistema[3], de modo que


ut=Du∇2u+f(u,v)

vt=Dv∇2v+g(u,v)

Estabilidade e Instabilidade no Modelo de Turing

Pontos de Equilíbrio

Vimos que o modelo de Turing depende de parâmetros a,b,c,d, de constantes h e k e dos coeficientes de difusão.

Afirmação: Se Du=Dv=0, temos (veq,ueq)=(h,k) como o único ponto de equilíbrio.

Demonstração: Mostraremos que (h,k) é ponto de equilíbrio. De fato, ao aplicarmos esse ponto na equação do modelo de Turing, temos


ut|u=k=0=vt|v=h


para mostrar que é único, suponha que existem dois pontos de equilíbrio, a saber, (v1,u1) e (v2,u2). Vemos que, como as equações diferenciais em cada ponto fixo são iguais a zero, temos


a(u1−u2)+b(v1−v2)=0


c(u1−u2)+d(v1−v2)=0


Consequentemente, devemos ter


(b−adc)(v1−v2)=0⟹v1=v2.


Do mesmo modo, u1=u2. Portanto, o ponto de equilíbrio é único nessas circunstâncias.

Estabilidade de Sistemas Reativos-Difusivos

Para estudarmos a estabilidade dos sistemas reativos-difusivos precisamos encontrar os autovalores da matriz[2]


(J−Dω2)|f=feq


Onde J é a matriz jacobiana dos termos de reação, D é a matriz diagonal dos termos de difusão e ω é o parâmetro que determina a frequência espacial das perturbações. A prova dessa afirmação pode ser encontrada nas referências. Aplicando isso ao modelo de Turing obtemos


((abcd)−(Du00Dv)ω2)|(u,v)=(h,k)=(a−Duω2bcd−Dvω2)


Para esta matriz ser estável precisamos que o determinante dessa matriz seja positivo e o traço seja negativo. Obtemos então


0<(a−Duω2)(d−Dvω2)−bc


0>a−Duω2+d−Dvω2


Podemos ver que em ambas desigualdades aparecerá o Determinante e o Traço da matriz dos coeficientes de reação. Reescrevendo então obtemos


aDvω2+dDuω2−DuDvω4<det(J)

Duω2+Dvω2>Tr(J)


Se o sistema fosse originalmente estável, isto é, Tr(J)<0 e det(J)>0 a segunda desigualdade é sempre verdade, mas a primeira não. Podemos ver que a desigualdade pode ser violada se


g(z)=−DuDvz2+(aDv+dDu)z−det(J)


tomar valores positivos para algum z>0 (Onde z=ω2). Podemos reescrever g(z) da forma


g(z)=−DuDv(z−aDv+dDu2DuDv)2+((aDv+dDu)24DuDv)−det(J)


Vamos então analisar duas opções onde podemos ter z>0: (1) o ponto mais alto da função fica no lado positivo do eixo z ou (2) o ponto mais alto da função fica no no lado negativo do eixo z. Na primeira opção (1) a única condição é que o máximo da função seja acima do eixo z, logo teremos


(aDv+dDu)24DuDv−det(J)>0


Se o máximo da função estiver no lado negativo de z, opção (2), a condição é que o ponto que interceptar g(z) deve ser positivo, podemos escrever isso da forma


g(0)=−det(J)>0


Podemos ver que a opção (2) nunca pode ser obtida, pois o modelo é inicialmente estável e det(J)>0, assim a única opção para que a difusão desestabilize o sistema é quando


aDv+dDu>2DuDvdet(J)


e com essa desigualdade é fácil checar quais valores dos parâmetros a, b, c e d e dos coeficientes de difusão Du e Dv formarão padrões de Turing.

Implementação

Para resolver numericamente as equações de Turing iremos utilizar o método FTCS (Forward Time Central Space). O método FTCS é o mais simples e consiste em discretizar a derivada em t de forma não simetrizada. Obtemos as seguintes discretizações para uma função genérica f(r,t)


∂f∂t=f(r,t+dt)−f(r,t)dt


∂2f∂r2=f(r+dr,t)−2f(r,t)+f(r−dr,t)dr2


Onde r→ é o vetor posição, que neste trabalho utilizamos apenas duas dimensões, r→=(x,y).

Podemos discretizar as equações de Turing diretamente com o método FTCS. Talvez o único problema seja o laplaciano, porém basta escrever da forma


∇2f(r,t)=∂2f∂x2+∂2f∂y2


Assim podemos utilizar a discretização simetrizada e obter


∇2f(r,t)=f(x+dx,t)−2f(r,t)+f(x−dx,t)dx2+f(y+dy,t)−2f(r,t)+f(y−dy,t)dy2


Ao tomarmos dx=dy=dh, que faremos aqui, podemos simplificar a discretização do laplaciano para


∇2f(r,t)=f(x+dh,t)+f(x−dh,t)+f(y+dh,t)+f(y−dh,t)−4f(r,t)dh2

Então obtemos que as equações de Turing discretizadas pelo método FTCS, em notação discreta, são dadas por


ui,jn+1=ui,jn+[a(ui,jn−h)+b(vi,jn−k)+Duui+1,jn+ui−1,jn+ui,j+1n+ui,j−1n−4ui,jndh2]dt

vi,jn+1=vi,jn+[c(ui,jn−h)+d(vi,jn−k)+Dvvi+1,jn+vi−1,jn+vi,j+1n+vi,j−1n−4vi,jndh2]dt


Onde i e j são os índices espaciais e n é o índice temporal.

Utilizamos uma rede quadrada de tamanho L×L com condições de contorno periódicas. O sistema inicia próximo do equilibrio (u,v)=(h,k) e então é aplicado um pequeno ruído para começar a difusão. O ruído é muito importante, sem ele o sistema ficaria sempre no equilíbrio. O ruído também deve ser pequeno suficiente para quebrar o estado inicial, mas não grande suficiente para causar instabilidades numéricas na simulação. O ruído utilizado aqui consiste em números aleatórios no intervalo [−0,003:0,003]. Tomamos dh=1/L.

Resultados e Discussão

Na rede 100×100 escolhendo (a,b,c,d)=(1,−1,2,−1.5) e (Du,Dv)=(10−4,6×10−4), podemos verificar se a desigualdade é respeitada.


aDv+dDu=4.5×10−4

2DuDvdet(J)≈3.464×10−4


A desigualdade é sim respeitada. Abaixo podemos ver a simulação das concentrações de u e de v.

Modelo Turing com (a,b,c,d)=(1,−1,2,−1.5) e (Du,Dv)=(10−4,6×10−4)
Alt text
Simulação do Modelo de Turing da concentração de u.
Alt text
Simulação do Modelo de Turing da concentração de v.


Quanto mais amarelo maior a densidade, assim como quanto mais roxo menor a densidade. Outra escolha de constantes é (a,b,c,d)=(0.5,−1,0.75,−1;) e (Du,Dv)=(10−4,10−3). Verificando que a desigualdade é respeitada:


aDv+dDu=4×10−4

2DuDvdet(J)≈3.162×10−4


Novamente respeitamos a desigualdade. Na rede 100×100 obtemos a seguinte simulação das concentrações de u e de v.

Modelo de Turing com (a,b,c,d)=(0.5,−1,0.75,−1;) e (Du,Dv)=(10−4,10−3)
Alt text
Simulação do Modelo de Turing da concentração de u.
Alt text
Simulação do Modelo de Turing da concentração de v.


É possível ver que o sistema rapidamente forma um padrão, onde existem algum aglomerados com maior densidade e diversos pontos onde existe baixa densidade. Diferentes conjuntos das constantes e dos coeficientes de difusão formam diferentes padrões.

Podemos estudar também a estudar a razão crítica dos coeficientes de difusão, onde o sistema passa a formar padrões. Definindo um novo parâmetro ρ=Dv/Du podemos rearranjar a desigualdade necessária para formar padrões da forma


aρDu+dDv>2ρDu2det(J)

aρ+d>2ρdet(J)


Por exemplo, aplicando isso para um conjunto de constantes que simulamos (a,b,c,d)=(1,−1,2,−1.5) chegaremos a


ρ−1.5>20.5ρ

ρ>4.5


Isso significa que a difusão de v deve ser quase cinco vezes maior que a difusão de u para gerar os padrões. A difusão de u age mais localmente enquanto a de v age em áreas maiores. Uma transição de fase é observada perto de ρ=4.5. Essa transição de fase entre homogenização e formação de padrões é chamada de Bifurcação de Turing [4].

Programas Utilizados

Programas na linguagem C. Para utilizar os programas, abra o terminal e compile da forma

$ gcc prog.c -lm

Onde prog.c é o programa que deseja utilizar. E execute da seguinte maneira

$ ./a.out PARAMETROS

onde o segundo termo são os parâmetros do sistema, argumento dos programas. Dentro dos programas tem um exemplo de execução. O programa da simulação possuei uma diretiva de compilação para visualização do sistema ao decorrer da execução. Para utilizar é necessário ter o gnuplot [5] instalado e compilar da forma

$ gcc -DGNU prog.c -lm

e então executar da maneira

$ ./a.out PARAMETROS | gnuplot

Estabilidade das Constantes

Simulação do Modelo de Turing


Conclusão

Partindo das equações diferenciais que caracterizam o modelo de Turing, analisamos os pontos de estabilidade no caso específico Du=Dv=0 e no caso mais geral, utilizando os autovalores da matriz (J−Dω2)|f=feq. Com isso, foi obtido uma equação que determina se os parâmetros desejados formarão padrões de Turing. Descrevemos a implementação de um algoritmo que aplica o método FTCS para encontrar soluções numericamente. Para alguns parâmetros selecionados, foram feitas simulações do modelo para a concentração de u e v, nas quais notou-se a formação de padrões que dependem dos parâmetros. Acima, foram deixados os programas computacionais utilizados na resolução numérica do método de Turing.


Referências

  1. ↑ https://en.wikipedia.org/wiki/Turing_pattern
  2. ↑ 2,0 2,1 H. Sayama, "Introduction to the Modeling and Analysis of Complex Systems", p. 260. Open SUNY Textbooks, Geneseo, NY, 2015. Erro de citação: Etiqueta inválida <ref>; Nome "Sayama260" definido várias vezes com conteúdo diferente
  3. ↑ J. Jost, "Partial Differential Equations", 3ed, p.140. Springer Science+Business Media, New York, 2013.
  4. ↑ A. M. Turing, “The chemical basis of morphogenesis,”Philosophical Transactions ofthe Royal Society of London. Series B, Biological Sciences, vol. 237, no. 641, pp.37–72, 1952
  5. ↑ https://fiscomp.if.ufrgs.br/index.php/Gnuplot