<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://fiscomp.if.ufrgs.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Luisgustta</id>
	<title>Física Computacional - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="http://fiscomp.if.ufrgs.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Luisgustta"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Especial:Contribui%C3%A7%C3%B5es/Luisgustta"/>
	<updated>2026-06-13T03:12:59Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6621</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6621"/>
		<updated>2021-12-02T01:51:35Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo SIR com quarentena voluntária */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo. Espera-se obter ondas de infecção quando utilizado o processo de quarentena voluntária, tal qual observada pelos dados da Covid-19 e encontrada pelo artigo de referência do modelo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. São deixados alguns objetivos futuros para um trabalho posterior. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
A pandemia atual mostrou que táticas para mitigar o avanço da doença dependem não só de medidas governamentais, mas também da percepção do indivíduo nesse meio. &amp;lt;ref name=&amp;quot;introref&amp;quot;&amp;gt;SIEGRIST, Michael;BERTH, Angela. &#039;&#039;Worldviews, trust, and risk perceptions shape public acceptance of COVID-19 public health measures&#039;&#039;. DOI: https://doi.org/10.1073/pnas.2100411118.&amp;lt;/ref&amp;gt;. Essa percepção depende da métrica utilizada por cada pessoa, levando em consideração fatores como: prejuízos psicológicos, situação econômica, o entendimento sobre o que é certo (como a sociedade o enxerga, quais as verdades que são consideradas pelo indivíduo), a escolha pelo bem comum, entre outros. A visão do indivíduo pode mudar ao longo do tempo e, com isso, modificar como a doença evolui - como é quantificado pela formação de ondas de infecção atualmente. &amp;lt;ref name=&amp;quot;nature&amp;quot;&amp;gt;BAVEL, Jay; et al, &#039;&#039;Using social and behavioural science to support COVID-19 pandemic response&#039;&#039;. DOI: https://doi.org/10.1038/s41562-020-0884-z .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A fim de simular esses cenários de pandemia com e sem a percepção do indivíduo, propõe-se um trabalho com o &#039;&#039;&#039;objetivo&#039;&#039;&#039; de realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a uma das estratégias da quarentena (fazer ou não) dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para a solução, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo. &lt;br /&gt;
&lt;br /&gt;
É esperado obter as ondas de infecção como previsto por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; e observadas nos dados reais da Covid-19, ambos os exemplos podem ser observados a seguir. Como o método é diferente, não é esperado que as ondas sejam iguais às do artigo, mas sim, um movimento mais sutil.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[File:evolucao-marco-infectados.png|400px|thumb|Resultado do modelo proposto por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[File:coronavirus-data-explorer.png|500px|thumb|Casos diários confirmados de Covid-19 a cada um milhão de pessoas no Reino Unido e na Alemanha]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No gráfico da direita pode-se observar a quantidade de casos diários (infectados) na Alemanha e no Reino Unido ao longo do tempo, vê-se que existem ondas de infecção. Já no gráfico da direita, é possível observar a solução obtida por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estas quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt;, esta depende de outras duas variáveis, a primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt;, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;lt;math&amp;gt;\bar c&amp;lt;/math&amp;gt;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} s_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando a curva &amp;lt;math&amp;gt;i(s)&amp;lt;/math&amp;gt;. Para obter essa função dividimos a expressão (2) pela expressão (1) na forma normalizada, posteriormente integramos ambos os lados da igualdade, assim chegamos em &amp;lt;ref&amp;gt; Beckley, Ross; Weatherspoon, Cametria; Alexander, Michael; Chandler, Marissa; Johnson, Anthony; Batt, Ghan S. (2013). Modeling epidemics with diﬀerential equations. Disponível em: http://www.tnstate.edu/mathematics/mathreu/filesreu/GroupProjectSIR.pdf &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; i(s) = \frac{\gamma}{\beta}\ln (s) -\frac{\gamma}{\beta}\ln (s_0) -s +1 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;s = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;s &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;i(s)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;i(s)&amp;lt;/math&amp;gt;, observe que o sentido da abscissa &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
[[File:I(s).png|500 px|center|thumb|Função do número de indivíduos infectados &amp;lt;math&amp;gt; i &amp;lt;/math&amp;gt; em relação ao número de indivíduos suscetíveis &amp;lt;math&amp;gt; s &amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt; s &amp;lt;/math&amp;gt; esta à direita da reta &amp;lt;math&amp;gt;s = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior do que &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;. Podemos entender melhor esta informação plotando as curvas i(s) e &amp;lt;math&amp;gt; R_0(s) &amp;lt;/math&amp;gt; juntas:&lt;br /&gt;
&lt;br /&gt;
[[File:R0(S).png|500 px|center|thumb|Curva do número de reprodução &amp;lt;math&amp;gt;R_0&amp;lt;/math&amp;gt; variando com o número de indivíduos suscetíveis &amp;lt;math&amp;gt; s &amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemático modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha depende da estratégia adotada pelos quatro vizinhos do sítio escolhido.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-la novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados independente do seu estado de infecção, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera (&#039;&#039;&#039;A&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;) e a situação onde &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | R / R&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | T / S&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; |P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente ocupa um espaço fixo sem poder se movimentar. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos individuais. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;P_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;P_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, se este for menor que a probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente. Assim, quando a probabilidade calculada for igual a 1, qualquer número escolhido resultará na mudança da estratégia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\phi_S = [1 + \exp(-(P_{vizinho} - P_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. &lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
Código fonte do modelo SIR: [[Código Modelo Sir]]&lt;br /&gt;
&lt;br /&gt;
O fluxograma abaixo descreve a implementação computacional deste modelo: &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sir_certo.png|center|thumb|800px|Fluxograma para a dinâmica SIR]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas a partir do código anterior para adicionar a quarentena voluntária: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a escolha de se isolar ou não.&lt;br /&gt;
&lt;br /&gt;
A estrutura principal do código é dada pelo laço temporal onde a cada tempo é chamado o modelo SIR e o jogo da quarentena. Antes de entrar no &#039;&#039;loop&#039;&#039; é realizada a inicialização do sistema definindo o estado SIR e de quarentena dos indivíduos em vetores distintos e a matriz &#039;&#039;payoff&#039;&#039; do jogo. A seguir é possível visualizar o fluxograma para as funções da evolução do SIR e do jogo da quarentena.&lt;br /&gt;
&lt;br /&gt;
Os códigos estão disponíveis No [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit], os arquivos utilizados foram &#039;&#039;versao_viz_quarentena.c&#039;&#039; para a dinâmica SIR com quarentena voluntária e &#039;&#039;mc.h&#039;&#039; para o suporte com os números aleatórios. O primeiro código gerará três arquivos de saída: &#039;&#039;outup.txt&#039;&#039;, contendo a evolução temporal do SIR, &#039;&#039;output_dinamica_sir.txt&#039;&#039;, com o vetor de indivíduos contendo o estado SIR de cada um, sendo que cada linha corresponde a um tempo e &#039;&#039;output_dinamica_loc.txt&#039;&#039;, com o vetor de indivíduos contendo o estado de quarentena de cada um, sendo que cada linha corresponde a um tempo. Para realizar a visualização, é utilizado o arquivo &#039;&#039;visualizacao.py&#039;&#039; que lê os arquivos gerados e faz os gráficos buscados (note, que está separado em blocos por &#039;&#039;#%%&#039;&#039;, sendo possível utilizar apenas alguns softwares como &#039;&#039;Spyder&#039;&#039; ou &#039;&#039;Visual Studio&#039;&#039;); alguns comandos para geração das animações no &#039;&#039;gnuplot&#039;&#039; estão comentados ao longo do código e podem ser usados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sir_quarentena_certo_2.png|center|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo_certo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
Abaixo segue o primeiro gráfico obtido para a dinâmica do modelo SIR, o qual mostra a fração do número de indivíduos suscetíveis, infectados, e recuperados com relação ao tempo. Este sistema contém uma população constante de &amp;lt;math&amp;gt; N = 10^6 &amp;lt;/math&amp;gt;, taxa de transmissibilidade &amp;lt;math&amp;gt; \beta = 0.4 &amp;lt;/math&amp;gt;, taxa de remoção da doença &amp;lt;math&amp;gt; \gamma = 0.1 &amp;lt;/math&amp;gt;. Inicialmente o número de indivíduos suscetíveis corresponde a 98,98% do sistema, enquanto 0,02% dos indivíduos são infectados. Observa-se que a fração de indivíduos infectados aumenta a medida que o tempo avança, porém quando o número de indivíduos suscetíveis atinge a fração &amp;lt;math&amp;gt;\gamma / \beta = 0.25&amp;lt;/math&amp;gt; (representada pela reta horizontal) a fração de indivíduos infectados atinge o ponto máximo e posteriormente entra em declínio. Podemos observar, utilizando a expressão (8), que valores acima da fração &amp;lt;math&amp;gt;\gamma / \beta = 0.25&amp;lt;/math&amp;gt; correspondem ao número de reprodução &amp;lt;math&amp;gt; R_0 &amp;gt; 1&amp;lt;/math&amp;gt;, enquanto valores abaixo da fração &amp;lt;math&amp;gt;\gamma / \beta = 0.25&amp;lt;/math&amp;gt; correspondem ao número de reprodução &amp;lt;math&amp;gt; R_0 &amp;lt; 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_sir_01.png|center|thumb|600px|Modelo SIR - População total N =1000^2]]&lt;br /&gt;
&lt;br /&gt;
Obtemos a curva numérica do número de indivíduos infectados pelo número de indivíduos suscetíveis &amp;lt;math&amp;gt; i(s) &amp;lt;/math&amp;gt;, comparamos esta solução com a solução analítica expressa por (9). Note que a solução numérica se aproxima da analítica na situação inicial, pois o efeito dos vizinhos neste intervalo é mínimo, já que a maioria dos indivíduos é suscetível. No entanto, a medida que a pandemia avança, o efeito dos vizinhos torna-se relevante, e como a expressão analítica não contempla este efeito, as duas curvas diferenciam-se uma da outra. Podemos observar que quando &amp;lt;math&amp;gt; s &amp;lt; \gamma/\beta &amp;lt;/math&amp;gt; o número de indivíduos infectados aumenta, já quando a fração de indivíduos se iguala a &amp;lt;math&amp;gt; \gamma/ \beta &amp;lt;/math&amp;gt; o número de indivíduos infectados se torna máximo e a pandemia estabiliza, por fim quando &amp;lt;math&amp;gt; s &amp;gt; \gamma/ \beta &amp;lt;/math&amp;gt; temos o declínio da pandemia.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Imagem 02.jpg|center|thumb|600px|Modelo SIR - População total N =1000^2]]&lt;br /&gt;
&lt;br /&gt;
O gráfico abaixo tem a mesma configuração para ambas as curvas, mas parâmetros de taxa de transmissão &amp;lt;math&amp;gt; \beta &amp;lt;/math&amp;gt; diferentes. Podemos observar, que para a curva com maior taxa de transmissão, o pico da fração de indivíduos infectados é bastante superior ao da outra. Podemos concluir, através deste gráfico, que medidas estratégicas para diminuir a taxa &amp;lt;math&amp;gt; \beta &amp;lt;/math&amp;gt; são importantes para não congestionar o sistema de saúde.     &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_sir_03.png|center|thumb|600px|Modelo SIR - População total N =1000^2]]&lt;br /&gt;
&lt;br /&gt;
O gráfico abaixo apresenta uma população constante de &amp;lt;math&amp;gt; N = 10^6 &amp;lt;/math&amp;gt;, taxa de transmissão &amp;lt;math&amp;gt; \beta = 0.1 &amp;lt;/math&amp;gt; e taxa de remoção da doença &amp;lt;math&amp;gt; \gamma = 0.2 &amp;lt;/math&amp;gt;. Portanto, temos um número de reprodução &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; sempre menor do que um, isto implica que a pandemia nunca irá ocorrer, tal como vemos no gráfico abaixo.&lt;br /&gt;
[[Arquivo:Figura sir 04.jpeg|center|thumb|600px|Modelo SIR - População total N =1000^2]]&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Na simulação com quarentena voluntária não é utilizado o SIR com a dinâmica dependendo dos vizinhos infectados (ponto para o trabalho futuro). Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Estado de infecção inicial&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 3600&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 100% &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena. A dinâmica SIR sem o jogo é realizada definindo que nenhuma pessoa está isolada. Com essas premissas e com os parâmetros os resultados obtidos são apresentados a seguir, neles é possível comparar a simulação com a escolha da quarentena e sem. Define-se que o indivíduo isolado não tem chance de se tronar infectado (&amp;lt;math&amp;gt;\beta_Q = 0&amp;lt;/math&amp;gt;), o que não é totalmente verdade, pois existe sempre algum contato das pessoas mesmo que ínfimo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|450px|center|Comparação da evolução entre os suscetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|450px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|450px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com esses resultados é possível perceber que a quarentena auxilia na diminuição das infecções iniciais, ainda assim, não é vista a formação de uma segunda onda de contaminação com esses parâmetros. Abaixo são mostradas as animações com a evolução da doença e do isolamento no sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_optmized.gif|thumb|450px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_sir_optmized.gif|thumb|450px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial de isolamento no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando a proporção entre indivíduos quarentenados e não quarentenados. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente -, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. A porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|1000px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. No gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso e, em seguida, é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
Note que no gráfico abaixo existem dois eixos com a mesma quantidade, isso ocorre porque a grandeza dos quarentenados é muito maior do que as de infectados. No lado esquerdo tem-se os valores da fração da população quarentenada (linha preta) e no direito a fração relacionada aos infectados (linha azul).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|1000px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|1000px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Acima é possível fazer uma relação entre diminuição de componentes em isolamento e infectados. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena. Na animação SIR 2 equivale ao suscetível, 0 é o infectado e 1 são os recuperados. Novamente, note que no gráfico abaixo existem dois eixos com a mesma quantidade, isso ocorre porque a grandeza dos quarentenados é muito maior do que as de infectados. No lado esquerdo tem-se os valores da fração da população quarentenada (linha preta) e no direito a fração relacionada aos infectados (linha azul).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|1000px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para a inicialização com 82% dos indivíduos isolados consegue-se perceber que a infecção se dá nos espaços onde existem mais pessoas fora da quarentena nos primeiros tempos, o resto da população se quarentena e atrasa a sua infecção e de seus vizinhos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18.gif|thumb|450px|Evolução do sistema de quarentena a partir de 82% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18_sir_optmized.gif|thumb|450px|Evolução do sistema SIR a partir de 82% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados na &#039;&#039;&#039;primeira onda&#039;&#039;&#039;, tendência prevista por outras pesquisas e que evita o esgotamento dos serviços de saúde. &amp;lt;ref&amp;gt;MAGENTA, Matheus. Quarentenas funcionam para combater o coronavírus? Veja o que dizem os estudos. BBC News. Disponível em: &amp;lt;https://www.bbc.com/portuguese/internacional-52830618&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na quantidade de infectados. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se há diferenças quando a percepção do componente está só no primeiro vizinho e quando ele consegue ver mais o sistema&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6341</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6341"/>
		<updated>2021-11-26T17:04:01Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Dinâmica do Modelo SIR e o Número de Reprodução */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
A pandemia atual mostrou que táticas para mitigar o avanço da doença dependem não só de medidas tomadas por governos, mas também da percepção do indivíduo nesse meio. Essa percepção depende da métrica utilizada por cada pessoa, levando em consideração fatores como: prejuízos psicológicos, situação econômica, o entendimento sobre o que é certo (como a sociedade o enxerga, quais as verdades que são consideradas pelo indivíduo), a escolha pelo bem comum, entre outros. A visão do indivíduo pode mudar ao longo do tempo e, com isso, modificar como a doença evolui - como é quantificado pela formação de ondas de infecção atualmente. &amp;lt;ref name=&amp;quot;nature&amp;quot;&amp;gt;BAVEL, Jay; et al, &#039;&#039;Using social and behavioural science to support COVID-19 pandemic response&#039;&#039;. DOI: https://doi.org/10.1038/s41562-020-0884-z .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A fim de simular esses cenários de pandemia com e sem a percepção do indivíduo, propõe-se um trabalho com o &#039;&#039;&#039;objetivo&#039;&#039;&#039; de realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a uma das estratégias da quarentena (fazer ou não) dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} s_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando a curva &amp;lt;math&amp;gt;i(s)&amp;lt;/math&amp;gt;. Para obter essa função dividimos a expressão (2) pela expressão (1) na forma normalizada, posteriormente integramos ambos os lados da igualdade, assim chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; i(S) = \frac{\gamma}{\beta}\ln (s N) -\frac{\gamma}{\beta}\ln (s_0 N) -s +i_0 +s_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \beta/\gamma&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;s &amp;lt; \beta/\gamma&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s &amp;gt; \beta/\gamma&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; s_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;s = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor que &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | R / R&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | T / S&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; |P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + \exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. &lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sir.drawio.png|center|thumb|800px|Fluxograma para a dinâmica SIR]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas a partir do código anterior para adicionar a quarentena voluntária: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a escolha de se isolar ou não.&lt;br /&gt;
&lt;br /&gt;
A estrutura principal do código é dada pelo laço temporal onde a cada tempo é chamado o modelo SIR e o jogo da quarentena. Antes de entrar no &#039;&#039;loop&#039;&#039; é realizada a inicialização do sistema definindo o estado SIR e de quarentena dos indivíduos em vetores distintos e a matriz &#039;&#039;payoff&#039;&#039; do jogo. A seguir é possível visualizar o fluxograma para as funções da evolução do SIR e do jogo da quarentena.&lt;br /&gt;
&lt;br /&gt;
Os códigos estão disponíveis No [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit], os arquivos utilizados foram &#039;&#039;versao_viz_quarentena.c&#039;&#039; para a dinâmica SIR com quarentena voluntária e &#039;&#039;mc.h&#039;&#039; para o suporte com os números aleatórios. O primeiro código gerará três arquivos de saída: &#039;&#039;outup.txt&#039;&#039;, contendo a evolução temporal do SIR, &#039;&#039;output_dinamica_sir.txt&#039;&#039;, com o vetor de indivíduos contendo o estado SIR de cada um, sendo que cada linha corresponde a um tempo e &#039;&#039;output_dinamica_loc.txt&#039;&#039;, com o vetor de indivíduos contendo o estado de quarentena de cada um, sendo que cada linha corresponde a um tempo. Para realizar a visualização, é utilizado o arquivo &#039;&#039;visualizacao.py&#039;&#039; que lê os arquivos gerados e faz os gráficos buscados (note, que está separado em blocos por &#039;&#039;#%%&#039;&#039;, sendo possível utilizar apenas alguns softwares como &#039;&#039;Spyder&#039;&#039; ou &#039;&#039;Visual Studio&#039;&#039;); alguns comandos para geração das animações no &#039;&#039;gnuplot&#039;&#039; estão comentados ao longo do código e podem ser usados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|center|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena. A dinâmica SIR sem o jogo é realizada definindo que nenhuma pessoa está isolada. Com essas premissas e com os parâmetros os resultados obtidos são apresentados a seguir, neles é possível comparar a simulação com a escolha da quarentena e sem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os suscetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com esses resultados é possível perceber que a quarentena auxilia na diminuição das infecções iniciais, ainda assim, não é vista a formação de uma segunda onda de contaminação com esses parâmetros. Abaixo são mostradas as animações com a evolução da doença e do isolamento no sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_sir_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial de isolamento no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando a proporção entre indivíduos quarentenados e não quarentenados. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente -, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. A porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. No gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso e, em seguida, é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Acima é possível fazer uma relação entre diminuição de componentes em isolamento e infectados. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena. Na animação SIR 2 equivale ao suscetível, 0 é o infectado e 1 são os recuperados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para a inicialização com 82% dos indivíduos isolados consegue-se perceber que a infecção se dá nos espaços onde existem mais pessoas fora da quarentena nos primeiros tempos, o resto da população se quarentena e atrasa a sua infecção e de seus vizinhos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18.gif|thumb|400px|Evolução do sistema de quarentena a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18_sir_optmized.gif|thumb|400px|Evolução do sistema SIR a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados na &#039;&#039;&#039;primeira onda&#039;&#039;&#039;, tendência prevista por outras pesquisas e que evita o esgotamento dos serviços de saúde. &amp;lt;ref&amp;gt;MAGENTA, Matheus. Quarentenas funcionam para combater o coronavírus? Veja o que dizem os estudos. BBC News. Disponível em: &amp;lt;https://www.bbc.com/portuguese/internacional-52830618&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na quantidade de infectados. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* Fazer a evolução da doença SIR olhando a infecção dos vizinhos&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se há diferenças quando a percepção do componente está só no primeiro vizinho e quando ele consegue ver mais o sistema&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6339</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6339"/>
		<updated>2021-11-26T03:06:08Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Resultados SIR com quarentena voluntária */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
A pandemia atual mostrou que táticas para mitigar o avanço da doença dependem não só de medidas tomadas por governos, mas também da percepção do indivíduo nesse meio. Essa percepção depende da métrica utilizada por cada pessoa, levando em consideração fatores como: prejuízos psicológicos, situação econômica, a percepção sobre o que é certo (como a sociedade o enxerga, quais as verdades que são consideradas pelo indivíduo), a escolha pelo bem comum, entre outros. A visão do indivíduo pode mudar ao longo do tempo e, com isso, modificar como a doença evolui - como é quantificado pela formação de ondas de infecção atualmente. &amp;lt;ref name=&amp;quot;nature&amp;quot;&amp;gt;BAVEL, Jay; et al, &#039;&#039;Using social and behavioural science to support COVID-19 pandemic response&#039;&#039;. DOI: https://doi.org/10.1038/s41562-020-0884-z .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A fim de simular esses cenários de pandemia com e sem a percepção do indivíduo, propõe-se um trabalho com o &#039;&#039;&#039;objetivo&#039;&#039;&#039; de realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a uma das estratégias da quarentena (fazer ou não) dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} s_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando a curva &amp;lt;math&amp;gt;i(s)&amp;lt;/math&amp;gt;. Para obter essa função dividimos a expressão (2) pela expressão (1) na forma normalizada, posteriormente integramos ambos os lados da igualdade, assim chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; i(S) = \frac{\gamma}{\beta}\ln (s N) -\frac{\gamma}{\beta}\ln (s_0 N) -s +i_0 +s_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \beta/\gamma&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;s &amp;lt; \beta/\gamma&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s &amp;gt; \beta/\gamma&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; s_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;s = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor que S. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que S.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | R / R&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | T / S&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; |P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + \exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. &lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sir.drawio.png|center|thumb|800px|Fluxograma para a dinâmica SIR]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas a partir do código anterior para adicionar a quarentena voluntária: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a escolha de se isolar ou não.&lt;br /&gt;
&lt;br /&gt;
A estrutura principal do código é dada pelo laço temporal onde a cada tempo é chamado o modelo SIR e o jogo da quarentena. Antes de entrar no &#039;&#039;loop&#039;&#039; é realizada a inicialização do sistema definindo o estado SIR e de quarentena dos indivíduos em vetores distintos e a matriz &#039;&#039;payoff&#039;&#039; do jogo. A seguir é possível visualizar o fluxograma para as funções da evolução do SIR e do jogo da quarentena.&lt;br /&gt;
&lt;br /&gt;
Os códigos estão disponíveis No [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit], os arquivos utilizados foram &#039;&#039;versao_viz_quarentena.c&#039;&#039; para a dinâmica SIR com quarentena voluntária e &#039;&#039;mc.h&#039;&#039; para o suporte com os números aleatórios. O primeiro código gerará três arquivos de saída: &#039;&#039;outup.txt&#039;&#039;, contendo a evolução temporal do SIR, &#039;&#039;output_dinamica_sir.txt&#039;&#039;, com o vetor de indivíduos contendo o estado SIR de cada um, sendo que cada linha corresponde a um tempo e &#039;&#039;output_dinamica_loc.txt&#039;&#039;, com o vetor de indivíduos contendo o estado de quarentena de cada um, sendo que cada linha corresponde a um tempo. Para realizar a visualização, é utilizado o arquivo &#039;&#039;visualizacao.py&#039;&#039; que lê os arquivos gerados e faz os gráficos buscados (note, que está separado em blocos por &#039;&#039;#%%&#039;&#039;, sendo possível utilizar apenas alguns softwares como &#039;&#039;Spyder&#039;&#039; ou &#039;&#039;Visual Studio&#039;&#039;); alguns comandos para geração das animações no &#039;&#039;gnuplot&#039;&#039; estão comentados ao longo do código e podem ser usados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|center|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena. A dinâmica SIR sem o jogo é realizada definindo que nenhuma pessoa está isolada. Com essas premissas e com os parâmetros os resultados obtidos são apresentados a seguir, neles é possível comparar a simulação com a escolha da quarentena e sem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os suscetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com esses resultados é possível perceber que a quarentena auxilia na diminuição das infecções iniciais, ainda assim, não é vista a formação de uma segunda onda de contaminação com esses parâmetros. Abaixo são mostradas as animações com a evolução da doença e do isolamento no sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_sir_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial de isolamento no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando a proporção entre indivíduos quarentenados e não quarentenados. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente -, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. A porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. No gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso e, em seguida, é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Acima é possível fazer uma relação entre diminuição de componentes em isolamento e infectados. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena. Na animação SIR 2 equivale ao suscetível, 0 é o infectado e 1 são os recuperados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para a inicialização com 82% dos indivíduos isolados consegue-se perceber que a infecção se dá nos espaços onde existem mais pessoas fora da quarentena nos primeiros tempos, o resto da população se quarentena e atrasa a sua infecção e de seus vizinhos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18.gif|thumb|400px|Evolução do sistema de quarentena a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18_sir_optmized.gif|thumb|400px|Evolução do sistema SIR a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados na &#039;&#039;&#039;primeira onda&#039;&#039;&#039;, tendência prevista por outras pesquisas e que evita o esgotamento dos serviços de saúde. &amp;lt;ref&amp;gt;MAGENTA, Matheus. Quarentenas funcionam para combater o coronavírus? Veja o que dizem os estudos. BBC News. Disponível em: &amp;lt;https://www.bbc.com/portuguese/internacional-52830618&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na quantidade de infectados. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* Fazer a evolução da doença SIR olhando a infecção dos vizinhos&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se há diferenças quando a percepção do componente está só no primeiro vizinho e quando ele consegue ver mais o sistema&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6338</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6338"/>
		<updated>2021-11-26T02:52:33Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Resultados SIR com quarentena voluntária */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
A pandemia atual mostrou que táticas para mitigar o avanço da doença dependem não só de medidas tomadas por governos, mas também da percepção do indivíduo nesse meio. Essa percepção depende da métrica utilizada por cada pessoa, levando em consideração fatores como: prejuízos psicológicos, situação econômica, a percepção sobre o que é certo (como a sociedade o enxerga, quais as verdades que são consideradas pelo indivíduo), a escolha pelo bem comum, entre outros. A visão do indivíduo pode mudar ao longo do tempo e, com isso, modificar como a doença evolui - como é quantificado pela formação de ondas de infecção atualmente. &amp;lt;ref name=&amp;quot;nature&amp;quot;&amp;gt;BAVEL, Jay; et al, &#039;&#039;Using social and behavioural science to support COVID-19 pandemic response&#039;&#039;. DOI: https://doi.org/10.1038/s41562-020-0884-z .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A fim de simular esses cenários de pandemia com e sem a percepção do indivíduo, propõe-se um trabalho com o &#039;&#039;&#039;objetivo&#039;&#039;&#039; de realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a uma das estratégias da quarentena (fazer ou não) dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} s_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando a curva &amp;lt;math&amp;gt;i(s)&amp;lt;/math&amp;gt;. Para obter essa função dividimos a expressão (2) pela expressão (1) na forma normalizada, posteriormente integramos ambos os lados da igualdade, assim chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; i(S) = \frac{\gamma}{\beta}\ln (s N) -\frac{\gamma}{\beta}\ln (s_0 N) -s +i_0 +s_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \beta/\gamma&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;s &amp;lt; \beta/\gamma&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s &amp;gt; \beta/\gamma&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; s_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;s = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor que S. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que S.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | R / R&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | T / S&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; |P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + \exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. &lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sir.drawio.png|center|thumb|800px|Fluxograma para a dinâmica SIR]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas a partir do código anterior para adicionar a quarentena voluntária: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a escolha de se isolar ou não.&lt;br /&gt;
&lt;br /&gt;
A estrutura principal do código é dada pelo laço temporal onde a cada tempo é chamado o modelo SIR e o jogo da quarentena. Antes de entrar no &#039;&#039;loop&#039;&#039; é realizada a inicialização do sistema definindo o estado SIR e de quarentena dos indivíduos em vetores distintos e a matriz &#039;&#039;payoff&#039;&#039; do jogo. A seguir é possível visualizar o fluxograma para as funções da evolução do SIR e do jogo da quarentena.&lt;br /&gt;
&lt;br /&gt;
Os códigos estão disponíveis No [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit], os arquivos utilizados foram &#039;&#039;versao_viz_quarentena.c&#039;&#039; para a dinâmica SIR com quarentena voluntária e &#039;&#039;mc.h&#039;&#039; para o suporte com os números aleatórios. O primeiro código gerará três arquivos de saída: &#039;&#039;outup.txt&#039;&#039;, contendo a evolução temporal do SIR, &#039;&#039;output_dinamica_sir.txt&#039;&#039;, com o vetor de indivíduos contendo o estado SIR de cada um, sendo que cada linha corresponde a um tempo e &#039;&#039;output_dinamica_loc.txt&#039;&#039;, com o vetor de indivíduos contendo o estado de quarentena de cada um, sendo que cada linha corresponde a um tempo. Para realizar a visualização, é utilizado o arquivo &#039;&#039;visualizacao.py&#039;&#039; que lê os arquivos gerados e faz os gráficos buscados (note, que está separado em blocos por &#039;&#039;#%%&#039;&#039;, sendo possível utilizar apenas alguns softwares como &#039;&#039;Spyder&#039;&#039; ou &#039;&#039;Visual Studio&#039;&#039;); alguns comandos para geração das animações no &#039;&#039;gnuplot&#039;&#039; estão comentados ao longo do código e podem ser usados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|center|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena. A dinâmica SIR sem o jogo é realizada definindo que nenhuma pessoa está isolada. Com essas premissas e com os parâmetros os resultados obtidos são apresentados a seguir, neles é possível comparar a simulação com a escolha da quarentena e sem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os suscetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com esses resultados é possível perceber que a quarentena auxilia na diminuição das infecções iniciais, ainda assim, não é vista a formação de uma segunda onda de contaminação com esses parâmetros. Abaixo são mostradas as animações com a evolução da doença e do isolamento no sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_sir_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial de isolamento no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando a proporção entre indivíduos quarentenados e não quarentenados. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente -, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. A porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doença dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. No gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso e, em seguida, é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Acima é possível fazer uma relação entre diminuição de componentes em isolamento e infectados. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena. Na animação SIR 2 equivale ao suscetível, 0 é o infectado e 1 são os recuperados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para a inicialização com 82% dos indivíduos isolados consegue-se perceber que a infecção se dá nos espaços onde existem mais pessoas fora da quarentena nos primeiros tempos, o resto da população se quarentena e atrasa a sua infecção e de seus vizinhos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18.gif|thumb|400px|Evolução do sistema de quarentena a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18_sir_optmized.gif|thumb|400px|Evolução do sistema SIR a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados na &#039;&#039;&#039;primeira onda&#039;&#039;&#039;, tendência prevista por outras pesquisas e que evita o esgotamento dos serviços de saúde. &amp;lt;ref&amp;gt;MAGENTA, Matheus. Quarentenas funcionam para combater o coronavírus? Veja o que dizem os estudos. BBC News. Disponível em: &amp;lt;https://www.bbc.com/portuguese/internacional-52830618&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na quantidade de infectados. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* Fazer a evolução da doença SIR olhando a infecção dos vizinhos&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se há diferenças quando a percepção do componente está só no primeiro vizinho e quando ele consegue ver mais o sistema&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6331</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6331"/>
		<updated>2021-11-26T01:29:34Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Implementação modelo SIR com quarentena voluntária */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} s_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando a curva &amp;lt;math&amp;gt;i(s)&amp;lt;/math&amp;gt;. Para obter essa função dividimos a expressão (2) pela expressão (1) na forma normalizada, posteriormente integramos ambos os lados da igualdade, assim chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; i(S) = \frac{\gamma}{\beta}\ln (s N) -\frac{\gamma}{\beta}\ln (s_0 N) -s +i_0 +s_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \beta/\gamma&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;s &amp;lt; \beta/\gamma&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s &amp;gt; \beta/\gamma&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; s_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;s = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor que S. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que S.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding:10px&amp;quot; scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | R / R&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; | T / S&lt;br /&gt;
| style=&amp;quot;padding:10px; text-align:center&amp;quot; |P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + \exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. &lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sir.drawio.png|center|thumb|800px|Fluxograma para a dinâmica SIR]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas a partir do código anterior para adicionar a quarentena voluntária: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a escolha de se isolar ou não.&lt;br /&gt;
&lt;br /&gt;
A estrutura principal do código é dada pelo laço temporal onde a cada tempo é chamado o modelo SIR e o jogo da quarentena. Antes de entrar no &#039;&#039;loop&#039;&#039; é realizada a inicialização do sistema definindo o estado SIR e de quarentena dos indivíduos em vetores distintos e a matriz &#039;&#039;payoff&#039;&#039; do jogo. A seguir é possível visualizar o fluxograma para as funções da evolução do SIR e do jogo da quarentena.&lt;br /&gt;
&lt;br /&gt;
Os códigos estão disponíveis No [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit], os arquivos utilizados foram &#039;&#039;versao_viz_quarentena.c&#039;&#039; para a dinâmica SIR com quarentena voluntária e &#039;&#039;mc.h&#039;&#039; para o suporte com os números aleatórios. O primeiro código gerará três arquivos de saída: &#039;&#039;outup.txt&#039;&#039;, contendo a evolução temporal do SIR, &#039;&#039;output_dinamica_sir.txt&#039;&#039;, com o vetor de indivíduos contendo o estado SIR de cada um, sendo que cada linha corresponde a um tempo e &#039;&#039;output_dinamica_loc.txt&#039;&#039;, com o vetor de indivíduos contendo o estado de quarentena de cada um, sendo que cada linha corresponde a um tempo. Para realizar a visualização, é utilizado o arquivo &#039;&#039;visualizacao.py&#039;&#039; que lê os arquivos gerados e faz os gráficos buscados (note, que está separado em blocos por &#039;&#039;#%%&#039;&#039;, sendo possível utilizar apenas alguns softwares como &#039;&#039;Spyder&#039;&#039; ou &#039;&#039;Visual Studio&#039;&#039;); alguns comandos para geração das animações no &#039;&#039;gnuplot&#039;&#039; estão comentados ao longo do código e podem ser usados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|center|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena. A dinâmica SIR sem o jogo é realizada definindo que nenhuma pessoa está isolada. Com essas premissas e com os parâmetros os resultados obtidos são apresentados a seguir, neles é possível comparar a simulação com a escolha da quarentena e sem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com esses resultados é possível perceber que a quarentena auxilia na diminuição das infecções iniciais, ainda assim, não é vista a formação de uma segunda onda de contaminação com esses parâmetros. Abaixo são mostradas as animações com a evolução da doença e do isolamento no sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_sir_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial de isolamento no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando a proporção entre indivíduos quarentenados e não quarentenados. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente -, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. A porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. No gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso e, em seguida, é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Acima é possível fazer uma relação entre diminuição de componentes em isolamento e infectados. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena. Na animação SIR 2 equivale ao suscetível, 0 é o infectado e 1 são os recuperados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para a inicialização com 82% dos indivíduos isolados consegue-se perceber que a infecção se dá nos espaços onde existem mais pessoas fora da quarentena nos primeiros tempos, o resto da população se quarentena e atrasa a sua infecção e de seus vizinhos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18.gif|thumb|400px|Evolução do sistema de quarentena a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18_sir_optmized.gif|thumb|400px|Evolução do sistema SIR a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados na &#039;&#039;&#039;primeira onda&#039;&#039;&#039;, tendência prevista por outras pesquisas e que evita o esgotamento dos serviços de saúde. &amp;lt;ref&amp;gt;MAGENTA, Matheus. Quarentenas funcionam para combater o coronavírus? Veja o que dizem os estudos. BBC News. Disponível em: &amp;lt;https://www.bbc.com/portuguese/internacional-52830618&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na quantidade de infectados. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* Fazer a evolução da doença SIR olhando a infecção dos vizinhos&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se há diferenças quando a percepção do componente está só no primeiro vizinho e quando ele consegue ver mais o sistema&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6322</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6322"/>
		<updated>2021-11-25T21:01:29Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo SIR com quarentena voluntária */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} s_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando a curva &amp;lt;math&amp;gt;i(s)&amp;lt;/math&amp;gt;. Para obter essa função dividimos a expressão (2) pela expressão (1) na forma normalizada, posteriormente integramos ambos os lados da igualdade, assim chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; i(S) = \frac{\gamma}{\beta}\ln s -\frac{\gamma}{\beta}\ln s_0 -S +i_0 +s_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \beta/\gamma&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;s &amp;lt; \beta/\gamma&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s &amp;gt; \beta/\gamma&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; s_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;s = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor que S. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que S.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + \exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. &lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sir.drawio.png|center|thumb|800px|Fluxograma para a dinâmica SIR]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas a partir do código anterior para adicionar a quarentena voluntária: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a escolha de se isolar ou não.&lt;br /&gt;
&lt;br /&gt;
A estrutura principal do código é dada pelo laço temporal onde a cada tempo é chamado o modelo SIR e o jogo da quarentena. Antes de entrar no &#039;&#039;loop&#039;&#039; é realizada a inicialização do sistema definindo o estado SIR e de quarentena dos indivíduos em vetores distintos e a matriz &#039;&#039;payoff&#039;&#039; do jogo. A seguir é possível visualizar o fluxograma para as funções da evolução do SIR e do jogo da quarentena.&lt;br /&gt;
&lt;br /&gt;
Os códigos estão disponíveis No [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit], os arquivos utilizados foram &#039;&#039;versao_viz_quarentena.c&#039;&#039; para a dinâmica SIR com quarentena voluntária e &#039;&#039;mc.h&#039;&#039; para o suporte com os números aleatórios. O primeiro código gerará três arquivos de saída: &#039;&#039;outup.txt&#039;&#039;, contendo a evolução temporal do SIR, &#039;&#039;output_dinamica_sir.txt&#039;&#039;, com o vetor de indivíduos contendo o estado SIR de cada um, sendo que cada linha corresponde a um tempo e &#039;&#039;output_dinamica_loc.txt&#039;&#039;, com o vetor de indivíduos contendo o estado de quarentena de cada um, sendo que cada linha corresponde a um tempo. Para realizar a visualização, é utilizado o arquivo &#039;&#039;visualizacao.py&#039;&#039; que lê os arquivos gerados e faz os gráficos buscados (note que está separado em blocos por &#039;&#039;#%%&#039;&#039;, sendo possível utilizar apenas algumas utilizando softwares como &#039;&#039;Spyder&#039;&#039; ou &#039;&#039;Visual Studio&#039;&#039;); alguns comandos para geração das animações no &#039;&#039;gnuplot&#039;&#039; estão comentados ao longo do código e também podem ser usadas.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|center|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena. A dinâmica SIR sem o jogo é realizada definindo que nenhuma pessoa está isolada. Com essas premissas e com os parâmetros os resultados obtidos são apresentados a seguir, neles é possível comparar a simulação com a escolha da quarentena e sem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com esses resultados é possível perceber que a quarentena auxilia na diminuição das infecções iniciais, ainda assim, não é vista a formação de uma segunda onda de contaminação com esses parâmetros. Abaixo são mostradas as animações com a evolução da doença e do isolamento no sistema.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_50_sir_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 50% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial de isolamento no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando a proporção entre indivíduos quarentenados e não quarentenados. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente -, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. A porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. No gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso e, em seguida, é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Acima é possível fazer uma relação entre diminuição de componentes em isolamento e infectados. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena. Na animação SIR 2 equivale ao suscetível, 0 é o infectado e 1 são os recuperados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para a inicialização com 82% dos indivíduos isolados consegue-se perceber que a infecção se dá nos espaços onde existem mais pessoas fora da quarentena nos primeiros tempos, o resto da população se quarentena e atrasa a sua infecção e de seus vizinhos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;gt; [[Arquivo:gif_18.gif|thumb|400px|Evolução do sistema de quarentena a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18_sir_optmized.gif|thumb|400px|Evolução do sistema SIR a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população, bem como ao número inicial de indivíduos quarentenados. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* Fazer a evolução da doença SIR olhando a infecção dos vizinhos&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se há diferenças quando a percepção do componente está só no primeiro vizinho e quando ele consegue ver mais o sistema&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6306</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6306"/>
		<updated>2021-11-25T20:34:13Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo SIR com quarentena voluntária */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} s_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando a curva &amp;lt;math&amp;gt;i(s)&amp;lt;/math&amp;gt;. Para obter essa função dividimos a expressão (2) pela expressão (1) na forma normalizada, posteriormente integramos ambos os lados da igualdade, assim chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; i(S) = \frac{\gamma}{\beta}\ln s -\frac{\gamma}{\beta}\ln s_0 -S +i_0 +s_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \beta/\gamma&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;s &amp;lt; \beta/\gamma&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s &amp;gt; \beta/\gamma&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;i(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; s_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;s = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor que S. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que S.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. &lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sir.drawio.png|center|thumb|800px|Fluxograma para a dinâmica SIR]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas a partir do código anterior para adicionar a quarentena voluntária: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a escolha de se isolar ou não.&lt;br /&gt;
&lt;br /&gt;
A estrutura principal do código é dada pelo laço temporal onde a cada tempo é chamado o modelo SIR e o jogo da quarentena. Antes de entrar no &#039;&#039;loop&#039;&#039; é realizada a inicialização do sistema definindo o estado SIR e de quarentena dos indivíduos em vetores distintos e a matriz &#039;&#039;payoff&#039;&#039; do jogo. A seguir é possível visualizar o fluxograma para as funções da evolução do SIR e do jogo da quarentena.&lt;br /&gt;
&lt;br /&gt;
Os códigos estão disponíveis No [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit], os arquivos utilizados foram &#039;&#039;versao_viz_quarentena.c&#039;&#039; para a dinâmica SIR com quarentena voluntária e &#039;&#039;mc.h&#039;&#039; para o suporte com os números aleatórios. O primeiro código gerará três arquivos de saída: &#039;&#039;outup.txt&#039;&#039;, contendo a evolução temporal do SIR, &#039;&#039;output_dinamica_sir.txt&#039;&#039;, com o vetor de indivíduos contendo o estado SIR de cada um, sendo que cada linha corresponde a um tempo e &#039;&#039;output_dinamica_loc.txt&#039;&#039;, com o vetor de indivíduos contendo o estado de quarentena de cada um, sendo que cada linha corresponde a um tempo. Para realizar a visualização, é utilizado o arquivo &#039;&#039;visualizacao.py&#039;&#039; que lê os arquivos gerados e faz os gráficos buscados (note que está separado em blocos por &#039;&#039;#%%&#039;&#039;, sendo possível utilizar apenas algumas utilizando softwares como &#039;&#039;Spyder&#039;&#039; ou &#039;&#039;Visual Studio&#039;&#039;); alguns comandos para geração das animações no &#039;&#039;gnuplot&#039;&#039; estão comentados ao longo do código e também podem ser usadas.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|center|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com esses resultados é possível perceber que a quarentena auxilia na diminuição das infecções em um intervalo de tempo, ainda assim, não é vista a formação de uma segunda onda de contaminação com esses parâmetros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. No gráfico, a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação, é feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Abaixo é possível ver a evolução de cada componente do sistema no jogo da escolha da quarentena. Na animação dos quarentenados o valor zero é para quarentenados e 1 para não quarentenados. Na animação SIR 2 equivale ao suscetível, 0 é o infectado e 1 são os recuperados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para a inicialização com 82% dos indivíduos isolados consegue-se perceber que a infecção se dá nos espaços onde existem mais pessoas fora da quarentena nos primeiros tempos, o resto da população se quarentena e atrasa a sua infecção e de seus vizinhos.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18.gif|thumb|400px|center|Evolução do sistema de quarentena a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:gif_18_sir_optmized.gif|thumb|400px|center|Evolução do sistema SIR a partir de 80% dos componentes isolados]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população, bem como ao número inicial de indivíduos quarentenados. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* Fazer a evolução da doença SIR olhando a infecção dos vizinhos&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se há diferenças quando a percepção do componente está só no primeiro vizinho e quando ele consegue ver mais o sistema&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6273</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6273"/>
		<updated>2021-11-25T06:30:44Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo SIR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Para obter essa função deve-se dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}\ln S -\frac{\gamma}{\beta}\ln S_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. No gráfico, a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação, é feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população, bem como ao número inicial de indivíduos quarentenados. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6272</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6272"/>
		<updated>2021-11-25T06:29:33Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Dinâmica do Modelo SIR e o Número de Reprodução */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Para obter essa função deve-se dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}\ln S -\frac{\gamma}{\beta}\ln S_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. No gráfico, a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação, é feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população, bem como ao número inicial de indivíduos quarentenados. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6271</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6271"/>
		<updated>2021-11-25T06:27:44Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo SIR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Pode-se interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Para obter essa função deve-se dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. No gráfico, a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação, é feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população, bem como ao número inicial de indivíduos quarentenados. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6270</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6270"/>
		<updated>2021-11-25T06:20:47Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Dinâmica do Modelo SIR e o Número de Reprodução */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contaminadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;, para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. No gráfico, a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação, é feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população, bem como ao número inicial de indivíduos quarentenados. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6269</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6269"/>
		<updated>2021-11-25T05:55:48Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferenciais que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressada pela soma total dos indivíduos suscetíveis, infectados e removidos: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;, é o inverso do período infeccioso, indicada por &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;, para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. No gráfico, a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação, é feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população, bem como ao número inicial de indivíduos quarentenados. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6268</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6268"/>
		<updated>2021-11-25T05:16:02Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Introdução */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] - enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;, para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. No gráfico, a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação, é feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população, bem como ao número inicial de indivíduos quarentenados. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6267</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6267"/>
		<updated>2021-11-25T04:43:17Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Resultados e Discussão */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] -, enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;, para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no modelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. Percebe-se que quando o sistema é iniciado com um total próximo de 80%, existe uma tendência de aumento nos casos após um tempo - por esse motivo será discutido com mais detalhes posteriormente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento. Para os outros valores, percebe-se apenas uma diminuição dos casos conforme a fração de isolados. No gráfico, a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno de 20% de não isolados um comportamento ondulatório de infecções começa a aparecer - esperado para o modelo SIR com quarentena voluntária &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação, é feito uma simulação utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção, como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e 1 os sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população, bem como ao número inicial de indivíduos quarentenados. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, expressando tanto comportamentos ondulatórios quanto similares ao SIR normal. Diferentemente do observado pelo método do campo médio, o comportamento ondulatório foi mais sutil, parecendo representar de maneira mais satisfatória os dados observados para o Covid-19.&#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6266</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6266"/>
		<updated>2021-11-25T04:23:47Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Introdução */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha adequar-se a alguma estratégia, fazer quarentena ou não, dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha da estratégia, está o modelo SIR; com parâmetros distintos para indivíduos não isolados e isolados. Para a simulação, os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], que resulta em ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha da estratégia pelo indivíduo se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] -, enquanto a evolução dos infectados no sistema será realizada com o modelo SIR, assim como no trabalho citado. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;, para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no mobelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. É possível perceber que quando o sistema é iniciado com um total próximo de 80% tende-se a formar um aumento nos casos após um tempo - por isso será estudado com mais detalhes posteriomente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento, nas outras quantidades só se percebe uma diminuição dos casos conforme a fração de isolados. No gráfico a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno dos 20% de não isolados começa-se a perceber um comportamento ondulatório de infecções - desejado para o modelo de SIR com quarentena voluntária - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e com os infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação é testado utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e o valor 1 é o sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Apesar disso, foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, esse conjunto de parâmetros ideais (supondo que existam) para obter as ondas de infecção ao longo do tempo não foram encontrados. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6265</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6265"/>
		<updated>2021-11-25T04:13:51Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo SIR com quarentena voluntária */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha fazer a quarentena dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha pela quarentena está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para realizar a simulação os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha do indivíduo pela quarentena se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] -, enquanto a evolução dos infectados no sistema será realizada com o modelo SIR tal como na referência citada. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;, para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes têm probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação em que dois condenados (&#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039;) precisam decidir se cooperam ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; cooperam (ambos saem com uma recompensa &#039;&#039;&#039;R&#039;&#039;&#039;), &#039;&#039;&#039;A&#039;&#039;&#039; coopera mas &#039;&#039;&#039;B&#039;&#039;&#039; não coopera (&#039;&#039;&#039;B&#039;&#039;&#039; ficaria com o valor da tentação &#039;&#039;&#039;T&#039;&#039;&#039; e &#039;&#039;&#039;A&#039;&#039;&#039; com o custo do sonso &#039;&#039;&#039;S&#039;&#039;&#039;), o caso contrário onde &#039;&#039;&#039;A&#039;&#039;&#039; não coopera e &#039;&#039;&#039;B&#039;&#039;&#039; coopera e &#039;&#039;&#039;A&#039;&#039;&#039; e &#039;&#039;&#039;B&#039;&#039;&#039; não cooperam (ambos ganham com uma penalidade &#039;&#039;&#039;P&#039;&#039;&#039;). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039; ou &#039;&#039;[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro forma normal]&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interage com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:fluxograma_sirquarentena.png|thumb|800px|Fluxograma para a dinâmica SIR com quarentena]]&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|thumb|center|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no mobelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. É possível perceber que quando o sistema é iniciado com um total próximo de 80% tende-se a formar um aumento nos casos após um tempo - por isso será estudado com mais detalhes posteriomente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento, nas outras quantidades só se percebe uma diminuição dos casos conforme a fração de isolados. No gráfico a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno dos 20% de não isolados começa-se a perceber um comportamento ondulatório de infecções - desejado para o modelo de SIR com quarentena voluntária - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e com os infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação é testado utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e o valor 1 é o sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Apesar disso, foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, esse conjunto de parâmetros ideais (supondo que existam) para obter as ondas de infecção ao longo do tempo não foram encontrados. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6259</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6259"/>
		<updated>2021-11-25T02:47:44Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo SIR com quarentena voluntária */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha fazer a quarentena dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha pela quarentena está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para realizar a simulação os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha do indivíduo pela quarentena se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] -, enquanto a evolução dos infectados no sistema será realizada com o modelo SIR tal como na referência citada. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;, para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes tem probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação onde dois condenados (A e B) precisam decidir se colaboram ou não sem saber a decisão do seu par. Para isso temos quatro possibilidades: A e B colaboram (ambos saem com uma recompensa R), A colabora mas B não colabora (B ficaria com o valor da tentação T e A com o custo do sonso S), o caso contrário onde A não colabora e B colabora e A e B não colaboram (ambos ganham com uma penalidade P). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interagem com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente S se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|right|thumb|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no mobelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. É possível perceber que quando o sistema é iniciado com um total próximo de 80% tende-se a formar um aumento nos casos após um tempo - por isso será estudado com mais detalhes posteriomente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento, nas outras quantidades só se percebe uma diminuição dos casos conforme a fração de isolados. No gráfico a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno dos 20% de não isolados começa-se a perceber um comportamento ondulatório de infecções - desejado para o modelo de SIR com quarentena voluntária - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e com os infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação é testado utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e o valor 1 é o sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Apesar disso, foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, esse conjunto de parâmetros ideais (supondo que existam) para obter as ondas de infecção ao longo do tempo não foram encontrados. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6258</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6258"/>
		<updated>2021-11-25T02:45:16Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Dinâmica do Modelo SIR e o Número de Reprodução */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha fazer a quarentena dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha pela quarentena está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para realizar a simulação os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha do indivíduo pela quarentena se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] -, enquanto a evolução dos infectados no sistema será realizada com o modelo SIR tal como na referência citada. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;, para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes tem probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação onde dois condenados (A e B) precisam decidir se colaboram ou não sem saber a decisão do seu par. Para isso temos 4 possibilidades: A e B colaboram (ambos saem com uma recompensa R), A colabora mas B não colabora (B ficaria com o valor da tentação T e A com o custo do sonso S), o caso contrário onde A não colabora e B colabora e A e B não colaboram (ambos ganham com uma penalidade P). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interagem com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente S se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|right|thumb|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no mobelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. É possível perceber que quando o sistema é iniciado com um total próximo de 80% tende-se a formar um aumento nos casos após um tempo - por isso será estudado com mais detalhes posteriomente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento, nas outras quantidades só se percebe uma diminuição dos casos conforme a fração de isolados. No gráfico a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno dos 20% de não isolados começa-se a perceber um comportamento ondulatório de infecções - desejado para o modelo de SIR com quarentena voluntária - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e com os infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação é testado utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e o valor 1 é o sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Apesar disso, foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, esse conjunto de parâmetros ideais (supondo que existam) para obter as ondas de infecção ao longo do tempo não foram encontrados. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6257</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6257"/>
		<updated>2021-11-25T02:44:53Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Dinâmica do Modelo SIR e o Número de Reprodução */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
[https://www.overleaf.com/project/6184d09526f07533ad33cd75 Apresentação]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha fazer a quarentena dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha pela quarentena está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para realizar a simulação os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha do indivíduo pela quarentena se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] -, enquanto a evolução dos infectados no sistema será realizada com o modelo SIR tal como na referência citada. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva I(S), para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt;. Nas situações em que temos &amp;lt;math&amp;gt;S &amp;lt; \gamma/\beta&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S &amp;gt; \gamma/\beta&amp;lt;/math&amp;gt;, obtemos respectivamente o comportamento crescente e decrescente para função &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt;. Na sequência é plotada a curva &amp;lt;math&amp;gt;I(S)&amp;lt;/math&amp;gt; para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à direita da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a &amp;lt;math&amp;gt;\gamma/\beta&amp;lt;/math&amp;gt;, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está à esquerda da reta &amp;lt;math&amp;gt;S = \gamma/\beta&amp;lt;/math&amp;gt; a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes tem probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação onde dois condenados (A e B) precisam decidir se colaboram ou não sem saber a decisão do seu par. Para isso temos 4 possibilidades: A e B colaboram (ambos saem com uma recompensa R), A colabora mas B não colabora (B ficaria com o valor da tentação T e A com o custo do sonso S), o caso contrário onde A não colabora e B colabora e A e B não colaboram (ambos ganham com uma penalidade P). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem &amp;lt;math&amp;gt;T &amp;gt; R &amp;gt; P &amp;gt; S&amp;lt;/math&amp;gt;. Além disso, para simulações com várias iterações deve ser obedecido que &amp;lt;math&amp;gt;2R &amp;gt; T + S&amp;lt;/math&amp;gt;. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interagem com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
A probabilidade de escolha pela troca (adquirir a mesma tática que o vizinho) é dada pela equação abaixo. As variáveis são: &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; é a performance de um dos vizinhos do sítio (soma dos ganhos e perdas pela matriz &#039;&#039;payoff&#039;&#039;), &amp;lt;math&amp;gt;S_{sitio}&amp;lt;/math&amp;gt; é a performance do sítio, calculada pela interação entre os seus vizinhos da mesma forma que &amp;lt;math&amp;gt;S_{vizinho}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a irracionalidade dos componentes. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;. Dado um número aleatório entre 0 e 1, se este for maior que a probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; o sítio adota a estratégia do vizinho escolhido anteriormente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;p = [1 + exp(-(S_{vizinho} - S_{sitio})/k)]^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente S se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]. Na página também é possível visualizar os fluxogramas para o cálculo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:diagrama_jogo.png|right|thumb|600px|Fluxograma para a quarentena voluntária]]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
colocar aqui o I(s) tambem&lt;br /&gt;
&lt;br /&gt;
=== Resultados SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Para os gráficos abaixo mostrados foram utilizadas os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;2&amp;quot; | Simulação&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;3&amp;quot; | Dinâmica SIR&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; colspan=&amp;quot;5&amp;quot; | Matriz de &#039;&#039;Payoff&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Tempo (passos)&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | Número de indivíduos&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; &lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;padding:10px&amp;quot; center | &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 500&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 60&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.3&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.6&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.04&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 1.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.0&lt;br /&gt;
| style=&amp;quot;padding:10px&amp;quot; | 0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
É utilizado que os indivíduos em isolamento estão distribuídos aleatoriamente; inicialmente é proposto uma relação de 1:1 de estados de quarentena que após será testado. A dinâmica SIR sem o jogo é feita colocando que nenhuma pessoa está isolada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_suscetiveis_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os sucetíveis na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_infectados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os infectados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top;&amp;quot;&amp;gt; [[Arquivo:2411_recuperados_comparacao_v1.png|thumb|350px|center|Comparação da evolução entre os recuperados na dinâmica SIR e com parte da população quarentenada]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para entender o efeito do estado inicial do sistema no mobelo, são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento inicial dos indivíduos. É possível perceber que quando o sistema é iniciado com um total próximo de 80% tende-se a formar um aumento nos casos após um tempo - por isso será estudado com mais detalhes posteriomente, com 90% de quarentenados a melhor escolha para os indivíduos é se manter em isolamento, nas outras quantidades só se percebe uma diminuição dos casos conforme a fração de isolados. No gráfico a porcentagem na legenda é de indivíduos em quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:evolucao doenca dependendo qaurentenados.png|thumb|600px|center|Evolução da doença dependendo da quantidade de indivíduos inicialmente em isolamento]]&lt;br /&gt;
&lt;br /&gt;
No gráfico acima, foi possível perceber que em torno dos 20% de não isolados começa-se a perceber um comportamento ondulatório de infecções - desejado para o modelo de SIR com quarentena voluntária - no gráfico a seguir é possível ver a evolução dos suscetíveis, infectados e recuperados para esse caso. Em seguida é mostrada a evolução da quantidade de indivíduos quarentenados e com os infectados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_infectados_quarentenados_v3_20p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411_sir_jogo_v3_20p.png|thumb|600px|center|Evolução da dinâmica SIR com quarentena voluntária, iniciando com 80% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como uma confirmação é testado utilizando 18% da população não isolada e os resultados são mais satisfatórios, pois há maior correlação entre isolamento e infecção como é possível observar no gráfico abaixo. A evolução também pode ser observada na animação em seguida, onde 0 são os indivíduos em quarentena e o valor 1 é o sem quarentena.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2411 infectados quarentenados v2 18p.png|thumb|600px|center|Evolução da quantidade de infectados e quarentenados no sistema, iniciando com 82% de isolados]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Apesar disso, foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, esse conjunto de parâmetros ideais (supondo que existam) para obter as ondas de infecção ao longo do tempo não foram encontrados. &#039;&#039;&#039;[referencia pra essa frase]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Próximos Passos ==&lt;br /&gt;
&lt;br /&gt;
Algumas pendências são deixadas para um futuro trabalho:&lt;br /&gt;
&lt;br /&gt;
* SIR &amp;quot;olhando pros vizinhos&amp;quot;&lt;br /&gt;
* Estudar melhor a relação entre parâmetros (SIR e quarentena) e a quantidade inicial de indivíduos isolados&lt;br /&gt;
* Buscar se ao olhar para uma vizinhança maior o objetivo é obtido&lt;br /&gt;
* Desenvolver um jogo onde a escolha pela quarentena seja dada pelo estado infectado ou não do vizinho, não pela sua quarentena&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6184</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6184"/>
		<updated>2021-11-24T19:54:40Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] (&#039;&#039;&#039;&#039;&#039;S&#039;&#039;&#039;uscetível, &#039;&#039;&#039;I&#039;&#039;&#039;nfectado e &#039;&#039;&#039;R&#039;&#039;&#039;ecuperado&#039;&#039;) e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha fazer a quarentena dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha pela quarentena está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para realizar a simulação os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha do indivíduo pela quarentena se dará de acordo com o estado dos seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] -, enquanto a evolução dos infectados no sistema será realizada com o modelo SIR tal como na referência citada. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva I(S), para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando S = γ/β. Nas situações em que temos S &amp;lt; γ/β e S &amp;gt; γ/β, obtemos respectivamente o comportamento crescente e decrescente para função I(S). Na sequência é plotada a curva I(S) para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa S é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está a direita da reta S = γ/β a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a γ/β, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está a esquerda da reta S = γ/β a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes tem probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação onde dois condenados (A e B) precisam decidir se colaboram ou não sem saber a decisão do seu par. Para isso temos 4 possibilidades: A e B colaboram (ambos saem com uma recompensa R), A colabora mas B não colabora (B ficaria com o valor da tentação T e A com o custo do sonso S), o caso contrário onde A não colabora e B colabora e A e B não colaboram (ambos ganham com uma penalidade P). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem T &amp;gt; R &amp;gt; P &amp;gt; S. Além disso, para simulações com várias iterações deve ser obedecido que 2R &amp;gt; T + S. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interagem com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente S se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. Ambos &#039;&#039;scripts&#039;&#039; estão disponíveis no [https://replit.com/@JuliaRemus/sirmodificado#README.md projeto criado no Replit]&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os diferentes parâmetros de infecção para indivíduos suscetíveis e os vetores que conterão os estados de quarentena. A seguir é possível visualizar o fluoxograma para cálculo.&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* evolução temporal monte carlo SIR com jogo&lt;br /&gt;
&lt;br /&gt;
* evolução temporal monte carlo SIR com jogo e quantidade de quarentenados por passo&lt;br /&gt;
&lt;br /&gt;
* evolução temporal monte carlo SIR com jogo e SIR normal &lt;br /&gt;
&lt;br /&gt;
* animações com quarentenados e sir (acho que o pessoal gosta)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. [referencia pra essa frase].&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Apesar disso, foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, esse conjunto de parâmetros ideais (supondo que existam) para obter as ondas de infecção ao longo do tempo não foram encontrados.&lt;br /&gt;
&lt;br /&gt;
O não aparecimento das ondas de contaminação pode ser resultado do método utilizado, já que essa abordagem considera apenas os primeiros vizinhos no momento da escolha da estratégia, e não o total.&lt;br /&gt;
&lt;br /&gt;
Abaixo são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento dos indivíduos.&lt;br /&gt;
&lt;br /&gt;
- % de quarentenas random&lt;br /&gt;
- todos eles de um lado&lt;br /&gt;
- todos eles no centro&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6182</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6182"/>
		<updated>2021-11-24T19:53:45Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo SIR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha fazer a quarentena dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha pela quarentena está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para realizar a simulação os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha do indivíduo pela quarentena se dará de acordo com o estado do seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] -, enquanto a evolução dos infectados no sistema será realizada com o modelo SIR tal como na referência citada. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Suscetível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva I(S), para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando S = γ/β. Nas situações em que temos S &amp;lt; γ/β e S &amp;gt; γ/β, obtemos respectivamente o comportamento crescente e decrescente para função I(S). Na sequência é plotada a curva I(S) para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa S é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está a direita da reta S = γ/β a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a γ/β, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está a esquerda da reta S = γ/β a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes tem probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação onde dois condenados (A e B) precisam decidir se colaboram ou não sem saber a decisão do seu par. Para isso temos 4 possibilidades: A e B colaboram (ambos saem com uma recompensa R), A colabora mas B não colabora (B ficaria com o valor da tentação T e A com o custo do sonso S), o caso contrário onde A não colabora e B colabora e A e B não colaboram (ambos ganham com uma penalidade P). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem T &amp;gt; R &amp;gt; P &amp;gt; S. Além disso, para simulações com várias iterações deve ser obedecido que 2R &amp;gt; T + S. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interagem com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente S se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. &lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
Talvezzzz: Usar essa [https://iopscience.iop.org/article/10.1088/1751-8121/abc65d Analytical solution of SIR-model] &amp;lt;ref&amp;gt; Analytical solution of SIR-model&amp;lt;/ref&amp;gt; pra verificar se o código funciona&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os parâmetros diferentes para indivíduos suscetíveis e os vetores que conterão os estados de quarentena.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;c&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A função do jogo (escolha pelo isolamento) é definido abaixo. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;c&#039;&amp;gt;&lt;br /&gt;
void jogo(int t){&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
    Dinâmica da escolha voluntária do quarentenado ou não&lt;br /&gt;
    */&lt;br /&gt;
	&lt;br /&gt;
    int sitio, i, j, k;&lt;br /&gt;
    double prob;&lt;br /&gt;
    double sums, sumv;&lt;br /&gt;
    int vizinho, dir;&lt;br /&gt;
&lt;br /&gt;
    for (i=0;i&amp;lt;L2;i++){&lt;br /&gt;
	    &lt;br /&gt;
      sitio = FRANDOM * L2;&lt;br /&gt;
      dir = FRANDOM * 4 + 1;&lt;br /&gt;
      vizinho = viz[sitio][dir];&lt;br /&gt;
      sums = 0;&lt;br /&gt;
      sumv = 0;&lt;br /&gt;
&lt;br /&gt;
      for(j=1 ; j &amp;lt; 5 ; j++) {&lt;br /&gt;
         sums += payoff[dmc_quarentena[sitio]][dmc_quarentena[viz[sitio][j]]];&lt;br /&gt;
         sumv += payoff[dmc_quarentena[vizinho]][dmc_quarentena[viz[vizinho][j]]];&lt;br /&gt;
      }&lt;br /&gt;
    &lt;br /&gt;
      prob = 1.0 / (1.0 + exp(-(sumv - sums) / TEMP ));&lt;br /&gt;
    &lt;br /&gt;
      if(FRANDOM &amp;gt; prob) {&lt;br /&gt;
      	dmc_quarentena[sitio] = dmc_quarentena[vizinho];&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Escreve o estado de quarentena no arquivo, cada tempo uma linha&lt;br /&gt;
&lt;br /&gt;
    FILE *dmcfile;&lt;br /&gt;
    char output2[10000];&lt;br /&gt;
    sprintf(output2, &amp;quot;output_dinamica_loc.txt&amp;quot;);&lt;br /&gt;
    dmcfile = fopen(output2,&amp;quot;a&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    for(k=0; k&amp;lt;L2; k++){&lt;br /&gt;
&lt;br /&gt;
      fprintf(dmcfile,&amp;quot; %d &amp;quot;, dmc_quarentena[k]);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    fprintf(dmcfile,&amp;quot; \n &amp;quot;);&lt;br /&gt;
    fclose(dmcfile);&lt;br /&gt;
&lt;br /&gt;
  return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* evolução temporal monte carlo SIR com jogo&lt;br /&gt;
&lt;br /&gt;
* evolução temporal monte carlo SIR com jogo e quantidade de quarentenados por passo&lt;br /&gt;
&lt;br /&gt;
* evolução temporal monte carlo SIR com jogo e SIR normal &lt;br /&gt;
&lt;br /&gt;
* animações com quarentenados e sir (acho que o pessoal gosta)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. [referencia pra essa frase].&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Apesar disso, foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, esse conjunto de parâmetros ideais (supondo que existam) para obter as ondas de infecção ao longo do tempo não foram encontrados.&lt;br /&gt;
&lt;br /&gt;
O não aparecimento das ondas de contaminação pode ser resultado do método utilizado, já que essa abordagem considera apenas os primeiros vizinhos no momento da escolha da estratégia, e não o total.&lt;br /&gt;
&lt;br /&gt;
Abaixo são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento dos indivíduos.&lt;br /&gt;
&lt;br /&gt;
- % de quarentenas random&lt;br /&gt;
- todos eles de um lado&lt;br /&gt;
- todos eles no centro&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6180</id>
		<title>Modelos Epidemiológicos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Epidemiol%C3%B3gicos&amp;diff=6180"/>
		<updated>2021-11-24T19:44:54Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Resultados e Discussão */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Em construção&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Grupo: Gabriel Schmökel, Julia Remus e Luis Gustavo Lang Gaiato&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Será apresentada uma breve introdução sobre o tema e as equações que envolvem o desenvolvimento dos cálculos, as implementações e seus respectivos resultados. &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
O &#039;&#039;&#039;objetivo&#039;&#039;&#039; do trabalho é realizar a implementação do modelo [https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology SIR] e de um modelo simplificado do proposto pelo artigo &amp;quot;&#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;&amp;quot; &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; utilizando Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
O modelo apresentado por Marco Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt; propõe que o indivíduo escolha fazer a quarentena dependendo do risco que observa a partir da quantidade de infectados no sistema. Acoplada à escolha pela quarentena está o modelo SIR com parâmetros distintos para indivíduos não isolados e isolados. Para realizar a simulação os autores utilizam a [https://en.wikipedia.org/wiki/Mean-field_theory teoria de campo médio], obtendo ondas de infecção ao longo do tempo.&lt;br /&gt;
&lt;br /&gt;
Neste trabalho, a escolha do indivíduo pela quarentena se dará de acordo com o estado do seus vizinhos mais próximos - utilizado o [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro dilema do prisioneiro] -, enquanto a evolução dos infectados no sistema será realizada com o modelo SIR tal como na referência citada. Para a simulação foi utilizado o método de Monte Carlo.&lt;br /&gt;
 &lt;br /&gt;
O esquemático do modelo SIR com a escolha da quarentena pode ser visto na seção &#039;&#039;Modelo SIR com quarentena voluntária&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Modelos ==&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_model.png|right|300px|thumb|Esquemáto modelo SIR]]&lt;br /&gt;
&lt;br /&gt;
Em 1927 Kermack e McKendrick elaboraram o modelo SIR que tinha como função descrever o comportamento de uma pandemia &amp;lt;ref name = SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;. O modelo SIR é um dos mais simples modelos comportamentais, o qual descreve a variação de três parâmetros ao longo do tempo: &lt;br /&gt;
&lt;br /&gt;
* Susceptível (&#039;&#039;&#039;S&#039;&#039;&#039;): Número de indivíduos suscetíveis. Quando um indivíduo suscetível e um infectado entram em contato, o indivíduo suscetível tem uma probabilidade de contrair a doença, caso contraia o indivíduo deixa de ser suscetível e torna-se infectado.    &lt;br /&gt;
&lt;br /&gt;
* Infectado (&#039;&#039;&#039;I&#039;&#039;&#039;): Número de indivíduos infectados. Indivíduos infectados tem uma probabilidade de infectar indivíduos suscetíveis quando em contato, e uma probabilidade de tornar-se indivíduos removidos a medida que tempo avança.&lt;br /&gt;
&lt;br /&gt;
* Recuperado ou Removido (&#039;&#039;&#039;R&#039;&#039;&#039;): Número de indivíduos removidos (recuperados ou mortos pela doença). Indivíduos que foram infectados, tornam-se recuperados ou mortos pela doença, desta forma entram na classificação de indivíduos removidos, já que não são mais suscetíveis a pegar a doença, pois adquiriram imunidade. Assumindo que o número de mortos é irrelevante ao se comparar com a população total, então o parâmetro R recebe o nome de indivíduos recuperados ou resistentes.&lt;br /&gt;
&lt;br /&gt;
A dinâmica de uma epidemia geralmente é mais rápida do que os números de nascimentos e óbitos, por essa razão se omite estás quantidades no modelo comportamental simples do SIR. Usando uma população fixa, Kermack e McKendrick chegaram nas seguintes equações diferencias que descrevem a dinâmica de uma epidemia &amp;lt;ref name=SIR&amp;gt; MCKENDRICK, A.G.; KERMACK, W. O.. Mathematical Theory of Epidemics. Disponível em: https://gallica.bnf.fr/ark:/12148/bpt6k56208r/f728.item.langFR &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dS}{dt} = - \beta IS  \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dI}{dt} =  \beta IS - \gamma I \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{dR}{dt} = \gamma I \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O sistema descrito pelas equações acima é não linear, porém é possível derivar uma solução analítica de forma implícita &amp;lt;ref&amp;gt; Harko, Tiberiu; Lobo, Francisco S. N.; Mak, M. K. (2014). &amp;quot;Exact analytical solutions of the Susceptible-Infected-Recovered (SIR) epidemic model and of the SIR model with equal death and birth rates&amp;quot;. Applied Mathematics and Computation. 236: 184–194. arXiv:1403.2160. Bibcode:2014arXiv1403.2160H. doi:10.1016/j.amc.2014.03.030. S2CID 14509477 &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A população total no SIR é constante, e pode ser expressa pela soma total dos indivíduos suscetíveis, infectados e removidos. Abaixo segue a expressão: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S + I + R = N \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na forma normalizada a expressão (4) é representada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s + i + r = 1 \qquad (5)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de transmissão da doença é dada pela variável beta, está depende de outras duas variáveis. A primeira indica a &amp;quot;transmissibilidade&amp;quot;, definida por Tau, a segunda indica o &amp;quot;número médio de contatos&amp;quot; entre infectados e suscetíveis, indicada por &amp;quot;c barra&amp;quot;. Portanto, pode-se escrever a taxa de transmissão pela expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\beta = \tau \bar c \qquad (6)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A taxa de remoção da doença, indicada por γ, é o inverso do período infeccioso, indicada por d, que o indivíduo permanecerá doente. Note, que quanto maior o período infeccioso, mais demorada é a remoção de Infectados para Removidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
d = \frac {1}{\gamma} \qquad (7)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dinâmica do Modelo SIR e o Número de Reprodução ====&lt;br /&gt;
&lt;br /&gt;
O número básico de reprodução, &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt;, corresponde ao número médio de pessoas que serão contagiadas pela doença quando um indivíduo infectado é introduzido em uma população completamente suscetível &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; R_0 = \frac{\beta}{\gamma} S_0 \qquad (8) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conforme o valor de &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; temos o seguinte comportamento &amp;lt;ref name = r0 &amp;gt; M.G.Roberts. The pluses and minuses of r 0 . Journal of the Royal Society interface4, 2007. &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;gt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia crescente;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 = 1 \Rightarrow &amp;lt;/math&amp;gt; equilíbrio endêmico;&lt;br /&gt;
* &amp;lt;math&amp;gt; R_0 &amp;lt; 1 \Rightarrow &amp;lt;/math&amp;gt; epidemia decrescente.&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar melhor o comportamento do número de reprodução analisando o comportamento da curva I(S), para obter essa função iremos dividir a expressão (2) pela expressão (1) e posteriormente integrar ambos os lados da igualdade, desta forma chegamos em:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; I(S) = \frac{\gamma}{\beta}lnS -\frac{\gamma}{\beta}lnS_0 -S +I_0 +S_0 \qquad (9) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando a expressão (9) em relação a S observa-se que a função atinge o ponto de máximo quando S = γ/β. Nas situações em que temos S &amp;lt; γ/β e S &amp;gt; γ/β, obtemos respectivamente o comportamento crescente e decrescente para função I(S). Na sequência é plotada a curva I(S) para diferentes valores de &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt;. Observe que o sentido da abscissa S é negativo para o avanço da pandemia.&lt;br /&gt;
&lt;br /&gt;
Figura&lt;br /&gt;
&lt;br /&gt;
Quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está a direita da reta S = γ/β a epidemia irá aumentar o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é maior que um. O número de infectados irá aumentar até o número de indivíduos suscetíveis ser igual a γ/β, posteriormente o número de infectados irá decair. Já quando a condição inicial &amp;lt;math&amp;gt; S_0 &amp;lt;/math&amp;gt; está a esquerda da reta S = γ/β a epidemia irá diminuir o seu número de infectados, pois &amp;lt;math&amp;gt; R_0 &amp;lt;/math&amp;gt; é menor do que um.&lt;br /&gt;
&lt;br /&gt;
=== Modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:sir_modificado.png|right|300px|thumb|Esquemáto modelo SIR com quarentena voluntária em suscetíveis]]&lt;br /&gt;
&lt;br /&gt;
No esquemático pode-se ver o modelo utilizado no trabalho, ele é uma simplificação do artigo escrito por Amaral, et al &amp;lt;ref name=&amp;quot;multiple&amp;quot;&amp;gt;AMARAL, Marco; OLIVEIRA, Marcelo de; JAVARONE, Marco, &#039;&#039;An epidemiological model with voluntary quarantine strategies governed by evolutionary game dynamics&#039;&#039;. arXiv:2008.05979v2 [physics.soc-ph] .&amp;lt;/ref&amp;gt;. Nele temos: &lt;br /&gt;
&lt;br /&gt;
* Componentes suscetíveis podem estar ou não em quarentena. A probabilidade &amp;lt;math&amp;gt;\phi_S&amp;lt;/math&amp;gt; para a escolha da quarentena ocorrer depende de quantos infectados há nos vizinhos.&lt;br /&gt;
&lt;br /&gt;
* Ao escolher estar ou não em quarentena, esses componentes tem probabilidades diferentes de adquirir a doença (&amp;lt;math&amp;gt;\beta_Q&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\beta_N&amp;lt;/math&amp;gt;) e se tornar infectados.&lt;br /&gt;
&lt;br /&gt;
* Infectados possuem a mesma probabilidade de se tornarem recuperados.&lt;br /&gt;
&lt;br /&gt;
* Após recuperados da doença, as pessoas não conseguem adquiri-lá novamente.&lt;br /&gt;
&lt;br /&gt;
* Todos os indivíduos escolhem estar ou não isolados, modificando a escolha do vizinho, mas somente a quarentena dos suscetíveis afeta a evolução SIR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para simular a quarentena voluntária é utilizado o jogo definido pelo [https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Dilema do Prisioneiro]. Esse dilema descreve a situação onde dois condenados (A e B) precisam decidir se colaboram ou não sem saber a decisão do seu par. Para isso temos 4 possibilidades: A e B colaboram (ambos saem com uma recompensa R), A colabora mas B não colabora (B ficaria com o valor da tentação T e A com o custo do sonso S), o caso contrário onde A não colabora e B colabora e A e B não colaboram (ambos ganham com uma penalidade P). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essas possibilidades podem ser resumidas em uma matriz de perdas e ganhos (&#039;&#039;matriz de payoff&#039;&#039;): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; center| A coopera&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| A não coopera&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B coopera&lt;br /&gt;
| center | R / R&lt;br /&gt;
| S / T&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| B não coopera&lt;br /&gt;
| T / S&lt;br /&gt;
| P / P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os valores da matriz &#039;&#039;payoff&#039;&#039; devem obedecer a ordem T &amp;gt; R &amp;gt; P &amp;gt; S. Além disso, para simulações com várias iterações deve ser obedecido que 2R &amp;gt; T + S. &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A proposta de observar a evolução da infecção dependendo da quarentena precisa utilizar mais de um par de interagentes, por isso é definido uma rede onde cada componente possui um ponto fixo. A partir disso, cada um desses componentes interagem com seus quatro vizinhos mais próximos (para os pontos do contorno é utilizado que as bordas são unidas por condições de contorno periódicas). &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segundo Hauert e Szabó &amp;lt;ref name=&amp;quot;hauert&amp;quot;&amp;gt;HAUERT, Christoph; SZABÓ, György. &#039;&#039;Game theory and physics&#039;&#039;. DOI: 10.1119/1.18485144 .&amp;lt;/ref&amp;gt;, os colaboradores tendem a ser extintos em jogos que consideram a interação aleatória, independente da sua concentração inicial, ou seja, todos tendem a não ganhar nada (não colaborar mutuamente) a fim de reduzir custos. Enquanto isso, se for proposto que um componente só escolhe uma estratégia conforme seus vizinhos, é visto é a formação de &#039;&#039;clusters&#039;&#039; de cooperadores e de não cooperadores; com isso, os componentes que estão na borda desses espaços, ganham na interação com os vizinhos colaboradores e perdem com a outra interação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esse jogo de quarentena é acoplado ao sistema SIR anteriormente descrito. A única diferença para o SIR sem o jogo é que as probabilidades de um componente S se tornar infectado mudam a partir do seu estado de quarentena.&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
Os códigos da simulação foram implementados na linguagem [https://en.wikipedia.org/wiki/C_(programming_language) C], para a visualização foi utilizada a linguagem [https://pt.wikipedia.org/wiki/Python Python]. &lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR ===&lt;br /&gt;
&lt;br /&gt;
Talvezzzz: Usar essa [https://iopscience.iop.org/article/10.1088/1751-8121/abc65d Analytical solution of SIR-model] &amp;lt;ref&amp;gt; Analytical solution of SIR-model&amp;lt;/ref&amp;gt; pra verificar se o código funciona&lt;br /&gt;
&lt;br /&gt;
=== Implementação modelo SIR com quarentena voluntária ===&lt;br /&gt;
&lt;br /&gt;
Algumas modificações são realizadas no código anterior: a probabilidade do indivíduo passar de suscetível a infectado depende da escolha pela quarentena e é adicionada a parte da escolha individual.&lt;br /&gt;
&lt;br /&gt;
Inicialmente é definida a matriz de &#039;&#039;payoff&#039;&#039;, os parâmetros diferentes para indivíduos suscetíveis e os vetores que conterão os estados de quarentena.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;c&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A função do jogo (escolha pelo isolamento) é definido abaixo. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;c&#039;&amp;gt;&lt;br /&gt;
void jogo(int t){&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
    Dinâmica da escolha voluntária do quarentenado ou não&lt;br /&gt;
    */&lt;br /&gt;
	&lt;br /&gt;
    int sitio, i, j, k;&lt;br /&gt;
    double prob;&lt;br /&gt;
    double sums, sumv;&lt;br /&gt;
    int vizinho, dir;&lt;br /&gt;
&lt;br /&gt;
    for (i=0;i&amp;lt;L2;i++){&lt;br /&gt;
	    &lt;br /&gt;
      sitio = FRANDOM * L2;&lt;br /&gt;
      dir = FRANDOM * 4 + 1;&lt;br /&gt;
      vizinho = viz[sitio][dir];&lt;br /&gt;
      sums = 0;&lt;br /&gt;
      sumv = 0;&lt;br /&gt;
&lt;br /&gt;
      for(j=1 ; j &amp;lt; 5 ; j++) {&lt;br /&gt;
         sums += payoff[dmc_quarentena[sitio]][dmc_quarentena[viz[sitio][j]]];&lt;br /&gt;
         sumv += payoff[dmc_quarentena[vizinho]][dmc_quarentena[viz[vizinho][j]]];&lt;br /&gt;
      }&lt;br /&gt;
    &lt;br /&gt;
      prob = 1.0 / (1.0 + exp(-(sumv - sums) / TEMP ));&lt;br /&gt;
    &lt;br /&gt;
      if(FRANDOM &amp;gt; prob) {&lt;br /&gt;
      	dmc_quarentena[sitio] = dmc_quarentena[vizinho];&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Escreve o estado de quarentena no arquivo, cada tempo uma linha&lt;br /&gt;
&lt;br /&gt;
    FILE *dmcfile;&lt;br /&gt;
    char output2[10000];&lt;br /&gt;
    sprintf(output2, &amp;quot;output_dinamica_loc.txt&amp;quot;);&lt;br /&gt;
    dmcfile = fopen(output2,&amp;quot;a&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    for(k=0; k&amp;lt;L2; k++){&lt;br /&gt;
&lt;br /&gt;
      fprintf(dmcfile,&amp;quot; %d &amp;quot;, dmc_quarentena[k]);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    fprintf(dmcfile,&amp;quot; \n &amp;quot;);&lt;br /&gt;
    fclose(dmcfile);&lt;br /&gt;
&lt;br /&gt;
  return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualização ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;python&#039;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
Graficos - Trabalho SIR e SIR modificado&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import pandas as pd&lt;br /&gt;
import numpy as np&lt;br /&gt;
from matplotlib import animation&lt;br /&gt;
&lt;br /&gt;
#%% Read data&lt;br /&gt;
&lt;br /&gt;
data = pd.read_csv(&#039;./output.txt&#039;, &lt;br /&gt;
                    sep=&amp;quot; &amp;quot;, index_col=False)  # sir x tempo&lt;br /&gt;
data.sort_values(by=&#039;t&#039;, ascending=True, inplace=True)&lt;br /&gt;
&lt;br /&gt;
data.set_index(&#039;t&#039;, inplace=True)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
data_j = pd.read_csv(&#039;./output_jogo.txt&#039;, &lt;br /&gt;
                    sep=&amp;quot; &amp;quot;, index_col=False)  # sir x tempo&lt;br /&gt;
data_j.sort_values(by=&#039;t&#039;, ascending=True, inplace=True)&lt;br /&gt;
&lt;br /&gt;
data_j.set_index(&#039;t&#039;, inplace=True)&lt;br /&gt;
&lt;br /&gt;
data[&#039;total&#039;] = data[&#039;r&#039;] + data[&#039;i&#039;] + data[&#039;s&#039;]&lt;br /&gt;
&lt;br /&gt;
L2 = data[&#039;s&#039;][0]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#%% SIR versus time&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Evolução temporal da doença&#039;)&lt;br /&gt;
&lt;br /&gt;
data = data / L2  # normalização da população&lt;br /&gt;
# data_j = data_j / data_j[&#039;s&#039;][0]  # normalização da população&lt;br /&gt;
&lt;br /&gt;
plt.plot(data[&#039;r&#039;], label=&#039;R&#039;)&lt;br /&gt;
plt.plot(data[&#039;s&#039;], label=&#039;S&#039;)&lt;br /&gt;
plt.plot(data[&#039;i&#039;], label=&#039;I&#039;)&lt;br /&gt;
&lt;br /&gt;
# data_j = data_j / data_j[&#039;s&#039;][0]  # normalização da população&lt;br /&gt;
&lt;br /&gt;
# plt.plot(data_j[&#039;r&#039;], label=&#039;R jogo&#039;)&lt;br /&gt;
# plt.plot(data_j[&#039;s&#039;], label=&#039;S jogo&#039;)&lt;br /&gt;
# plt.plot(data_j[&#039;i&#039;], label=&#039;I jogo&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.ylabel(&#039;Fração da população&#039;)&lt;br /&gt;
plt.xlabel(&#039;Tempo&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.grid()&lt;br /&gt;
&lt;br /&gt;
plt.legend()&lt;br /&gt;
#%% Dinamica da quarentena voluntaria&lt;br /&gt;
&lt;br /&gt;
dmc_loc = np.loadtxt(&#039;./dados/output_dinamica_loc.txt&#039;) # lê o arquivo&lt;br /&gt;
#%%&lt;br /&gt;
L = int(np.sqrt(np.shape(dmc_loc)[1]))&lt;br /&gt;
&lt;br /&gt;
# forma uma malha LxL, pra poder plotar como se fosse x - y - z&lt;br /&gt;
&lt;br /&gt;
x = y = np.arange(0, L, 1)&lt;br /&gt;
&lt;br /&gt;
xv, yv = np.meshgrid(x, y)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def animate(i):&lt;br /&gt;
    plt.clf()  # limpa a figura, pra nao ficar sobrepondo figs&lt;br /&gt;
&lt;br /&gt;
    # # titulos&lt;br /&gt;
    plt.suptitle(&#039;Evolução da dinâmica de quarentenados&#039;, fontsize=14)&lt;br /&gt;
    plt.title(f&#039;Tempo: {i}&#039;, fontsize=10)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    quarentena = np.zeros(shape=(L, L))&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    for j in range(L):&lt;br /&gt;
        &lt;br /&gt;
        quarentena[j] = dmc_loc[i, j*L : (j+1) * L]&lt;br /&gt;
        &lt;br /&gt;
    # # plot&lt;br /&gt;
    graph = plt.scatter(xv,yv, c= quarentena, marker=&#039;.&#039;, vmax=1.0, vmin=0.0)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    return graph&lt;br /&gt;
&lt;br /&gt;
fig, ax = plt.subplots()&lt;br /&gt;
ani = animation.FuncAnimation(fig, animate, frames = len(dmc_loc), repeat=False, interval=5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#%% Reorganiza para plot da quantidade por tempo&lt;br /&gt;
&lt;br /&gt;
quarentena, nao_quarentena = [], []&lt;br /&gt;
&lt;br /&gt;
for i in range(len(dmc_loc)):&lt;br /&gt;
    &lt;br /&gt;
    quarentena.append(len(np.where(dmc_loc[i] == 0)[0])/L2)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    nao_quarentena.append(len(np.where(dmc_loc[i] == 1)[0])/L2)&lt;br /&gt;
    &lt;br /&gt;
#%% Evolução da quantidade de quarentenados e infectados&lt;br /&gt;
&lt;br /&gt;
fig, ax = plt.subplots()&lt;br /&gt;
&lt;br /&gt;
ax2 = ax.twinx()&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Evolução da quantidade de quarentenados e infectados&#039;)&lt;br /&gt;
&lt;br /&gt;
ax.plot(quarentena, label=&#039;QT&#039;, color=&#039;black&#039;, alpha=0.8)&lt;br /&gt;
&lt;br /&gt;
# ax.plot(nao_quarentena, label=&#039;QN&#039;, color=&#039;red&#039;, alpha=0.6)&lt;br /&gt;
&lt;br /&gt;
# ax.set_ylim(0, 1600*1.5)&lt;br /&gt;
ax2.plot(data[&#039;i&#039;], label=&#039;I&#039;)&lt;br /&gt;
# ax.plot(data[&#039;r&#039;], label=&#039;I&#039;)&lt;br /&gt;
# ax.plot(data[&#039;s&#039;], label=&#039;I&#039;)&lt;br /&gt;
    &lt;br /&gt;
ax.legend(loc=&#039;lower left&#039;)&lt;br /&gt;
# ax2.legend(loc=&#039;lower right&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resultados e Discussão ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* evolução temporal monte carlo SIR com jogo&lt;br /&gt;
&lt;br /&gt;
* evolução temporal monte carlo SIR com jogo e quantidade de quarentenados por passo&lt;br /&gt;
&lt;br /&gt;
* evolução temporal monte carlo SIR com jogo e SIR normal &lt;br /&gt;
&lt;br /&gt;
* animações com quarentenados e sir (acho que o pessoal gosta)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Os resultados obtidos mostram que a quarentena voluntária diminui significativamente o número de infectados em um primeiro momento bem como a taxa de contaminação (em relação ao SIR normal), o que era esperado uma vez que os dados da evolução da Covid-19, em países que conseguiram obter níveis de isolamento adequados, expressam um comportamento semelhante. [referencia pra essa frase].&lt;br /&gt;
&lt;br /&gt;
Outro comportamento observado nos dados da Covid-19, foi o aparecimento de ondas de contaminação, isto é, uma sucessão de aumentos e diminuições na taxa de contaminação ao longo do tempo. Esse comportamento foi atribuído pelo grupo à adesão (ou não) da população à estratégia da quarentena voluntária, fator que dependeria da percepção da pandemia pela população. Assim como observados em outros artigos, esperava-se que esse comportamento fosse replicado nas simulações. Apesar disso, foi observado que tanto os parâmetros da matriz de &#039;&#039;payoff&#039;&#039; e os da dinâmica SIR quanto o sistema inicial da quarentena, interferem na evolução da doença de maneiras diferentes, esse conjunto de parâmetros ideais (supondo que existam) para obter as ondas de infecção ao longo do tempo não foram encontrados.&lt;br /&gt;
&lt;br /&gt;
O não aparecimento das ondas de contaminação pode ser resultado do método utilizado, já que essa abordagem considera apenas os primeiros vizinhos no momento da escolha da estratégia, e não o total.&lt;br /&gt;
&lt;br /&gt;
Abaixo são comparadas as curvas do modelo SIR com quarentena voluntária variando o estado inicial do sistema em relação ao isolamento dos indivíduos.&lt;br /&gt;
&lt;br /&gt;
- % de quarentenas random&lt;br /&gt;
- todos eles de um lado&lt;br /&gt;
- todos eles no centro&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5789</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5789"/>
		<updated>2021-10-12T23:27:01Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Método parabólico */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ unidimensional corresponde a versão estocástica da equação de Burgers com campo &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; pela substituição &amp;lt;math&amp;gt;u=-\lambda\frac{\partial h}{\partial x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition a condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{E}+(M-s t) u_{D} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{E}-u_{D}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2}\right) /\left(u_{E}-u_{D}\right)=\frac{u_{E}+u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{E}\right)-f\left(u_{D}\right)}{u_{E}-u_{D}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{i}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;i&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{i}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;i\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; i&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{i-1}^{0}\right)=0, &amp;amp; i \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{i}^{1}=U_{i}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{i}^{n}=U_{i}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{i-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{i+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{i-1 / 2}}^{x_{i+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\nu\frac{\partial u}{\partial x}\right]_{x_{i-1 / 2}}^{x_{i+1 / 2}}=-[f(u)]_{x_{i-1 / 2}}^{x_{i+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{i-1 / 2}}^{x_{i+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{i}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\nu\frac{\partial u}{\partial x}\right]_{x_{i-1 / 2}}^{x_{i+1 / 2}}=\nu\left[\frac{\partial u}{\partial x}\left(x_{i-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{i+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\nu\frac{\partial u}{\partial x}\right]_{x_{i-1 / 2}}^{x_{i+1 / 2}} \approx \nu\left[\frac{u\left(x_{i}, t\right)-u\left(x_{i-1}, t\right)}{h}-\frac{u\left(x_{i+1}, t\right)-u\left(x_{i}, t\right)}{h}\right] = -\nu \frac{u\left(x_{i+1}, t\right)-2 u\left(x_{i}, t\right)+u\left(x_{i-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{i-1 / 2}}^{x_{i+1 / 2}}=f\left(u\left(x_{i-1 / 2}, t\right)\right)-f\left(u\left(x_{i+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{i}(t)\equiv u(x_{i},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{i}}{d t}-\nu \frac{U_{i+1}-2 U_{i}+U_{i-1}}{h^{2}}=\frac{f\left(U_{i-\frac{1}{2}}\right)-f\left(U_{i+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}+k\left(\nu \frac{U_{i+1}^{n}-2 U_{i}^{n}+U_{i-1}^{n}}{h^{2}}-\frac{f\left(U_{i+\frac{1}{2}}^{n}\right)-f\left(U_{i-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{i\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{i})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{i\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5788</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5788"/>
		<updated>2021-10-12T21:35:15Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Conservação */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ unidimensional corresponde a versão estocástica da equação de Burgers com campo &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; pela substituição &amp;lt;math&amp;gt;u=-\lambda\frac{\partial h}{\partial x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition a condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{E}+(M-s t) u_{D} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{E}-u_{D}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2}\right) /\left(u_{E}-u_{D}\right)=\frac{u_{E}+u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{E}\right)-f\left(u_{D}\right)}{u_{E}-u_{D}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{i}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;i&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{i}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;i\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; i&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{i-1}^{0}\right)=0, &amp;amp; i \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{i}^{1}=U_{i}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{i}^{n}=U_{i}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5787</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5787"/>
		<updated>2021-10-12T20:37:21Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Conservação */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ unidimensional corresponde a versão estocástica da equação de Burgers com campo &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; pela substituição &amp;lt;math&amp;gt;u=-\lambda\frac{\partial h}{\partial x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition a condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{E}+(M-s t) u_{D} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{E}-u_{D}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2}\right) /\left(u_{E}-u_{D}\right)=\frac{u_{E}+u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{E}\right)-f\left(u_{D}\right)}{u_{E}-u_{D}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{i}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;i&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{i}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;i\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; i&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{i-1}^{0}\right)=0, &amp;amp; i \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{i}^{1}=U_{i}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{i}^{n}=U_{i}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5603</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5603"/>
		<updated>2021-10-05T18:43:36Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Velocidade de Choque */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ unidimensional corresponde a versão estocástica da equação de Burgers com campo &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; pela substituição &amp;lt;math&amp;gt;u=-\lambda\frac{\partial h}{\partial x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition a condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{E}+(M-s t) u_{D} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{E}-u_{D}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2}\right) /\left(u_{E}-u_{D}\right)=\frac{u_{E}+u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{E}\right)-f\left(u_{D}\right)}{u_{E}-u_{D}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5602</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5602"/>
		<updated>2021-10-05T18:38:35Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Velocidade de Choque */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ unidimensional corresponde a versão estocástica da equação de Burgers com campo &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; pela substituição &amp;lt;math&amp;gt;u=-\lambda\frac{\partial h}{\partial x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{E}+(M-s t) u_{D} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{E}-u_{D}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2}\right) /\left(u_{E}-u_{D}\right)=\frac{u_{E}+u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{E}\right)-f\left(u_{D}\right)}{u_{E}-u_{D}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5601</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5601"/>
		<updated>2021-10-05T18:37:26Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Velocidade de Choque */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ unidimensional corresponde a versão estocástica da equação de Burgers com campo &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; pela substituição &amp;lt;math&amp;gt;u=-\lambda\frac{\partial h}{\partial x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{E}+(M-s t) u_{D} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{E}-u_{D}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2}\right) /\left(u_{E}-u_{D}\right)=\frac{u_{E}+u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{E}\right)-f\left(u_{D}\right)}{u_{E}-u_{D}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5600</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5600"/>
		<updated>2021-10-05T18:31:03Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo de Deposição - Crescimento de Interfaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ unidimensional corresponde a versão estocástica da equação de Burgers com campo &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; pela substituição &amp;lt;math&amp;gt;u=-\lambda\frac{\partial h}{\partial x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5599</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5599"/>
		<updated>2021-10-05T18:25:10Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo de Deposição - Crescimento de Interfaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Cole.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5597</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5597"/>
		<updated>2021-10-05T13:48:40Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5596</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5596"/>
		<updated>2021-10-05T13:39:53Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Para o Caso Invíscido */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 4, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5595</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5595"/>
		<updated>2021-10-05T13:37:48Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Gráfico 3D Invíscido (Caso 1) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    t = 0&lt;br /&gt;
    dt = 0&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = t + dt&lt;br /&gt;
        dt += tmax/num&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5594</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5594"/>
		<updated>2021-10-05T12:41:43Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5593</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5593"/>
		<updated>2021-10-05T12:32:02Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Método parabólico */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma &amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5592</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5592"/>
		<updated>2021-10-05T12:30:55Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Método parabólico */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \epsilon\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_{j-1 / 2}}^{x_{j+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{j}, t\right) h&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=\epsilon\left[\frac{\partial u}{\partial x}\left(x_{j-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{j+1 / 2}, t\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies -\left[\epsilon \frac{\partial u}{\partial x}\right]_{x_{j-1 / 2}}^{x_{j+1 / 2}} \approx \epsilon\left[\frac{u\left(x_{j}, t\right)-u\left(x_{j-1}, t\right)}{h}-\frac{u\left(x_{j+1}, t\right)-u\left(x_{j}, t\right)}{h}\right] = -\epsilon \frac{u\left(x_{j+1}, t\right)-2 u\left(x_{j}, t\right)+u\left(x_{j-1}, t\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o terceiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;-[f(u)]_{x_{j-1 / 2}}^{x_{j+1 / 2}}=f\left(u\left(x_{j-1 / 2}, t\right)\right)-f\left(u\left(x_{j+1 / 2}, t\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo as aproximações na expressão completa e definindo &amp;lt;math&amp;gt;U_{j}(t)\equiv u(x_{j},t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d U_{j}}{d t}-\epsilon \frac{U_{j+1}-2 U_{j}+U_{j-1}}{h^{2}}=\frac{f\left(U_{j-\frac{1}{2}}\right)-f\left(U_{j+\frac{1}{2}}\right)}{h}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando a derivada em relação a tempo por um método FTCS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{j}^{n+1}=U_{j}^{n}+k\left(\epsilon \frac{U_{j+1}^{n}-2 U_{j}^{n}+U_{j-1}^{n}}{h^{2}}-\frac{f\left(U_{j+\frac{1}{2}}^{n}\right)-f\left(U_{j-\frac{1}{2}}\right)}{h}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;f(U_{j\pm\frac{1}{2}})&amp;lt;/math&amp;gt; é calculada numericamente como a média entre &amp;lt;math&amp;gt;f(U_{j})&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(U_{j\pm 1})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5591</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5591"/>
		<updated>2021-10-05T12:08:18Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Método Conservativo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5590</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5590"/>
		<updated>2021-10-05T12:04:18Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Como Resultado */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação da última iteração de dois métodos numéricos, FTCS não conservativo (Burgers) e parabólico, para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5589</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5589"/>
		<updated>2021-10-04T19:21:09Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Modelo de Deposição - Crescimento de Interfaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5588</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5588"/>
		<updated>2021-10-04T19:20:20Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5587</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5587"/>
		<updated>2021-10-04T19:18:25Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5586</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5586"/>
		<updated>2021-10-04T19:11:25Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Burgers FTCS Víscido Parabólico */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5585</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5585"/>
		<updated>2021-10-04T19:11:01Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Como Resultado */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5584</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5584"/>
		<updated>2021-10-04T19:10:50Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Como Resultado */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Como Resultado ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Como Resultado ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5583</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5583"/>
		<updated>2021-10-04T19:05:48Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Objetivos Futuros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Como Resultado ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Como Resultado ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5582</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5582"/>
		<updated>2021-10-04T19:05:32Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Como Resultado */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Como Resultado ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Como Resultado ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar o comportamento discutido acima, quando &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt; a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.&lt;br /&gt;
&lt;br /&gt;
== Objetivos Futuros ==&lt;br /&gt;
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5581</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5581"/>
		<updated>2021-10-04T19:03:16Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Conservação no Caso Invíscido */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Método Conservativo ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Como Resultado ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Como Resultado ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Objetivos Futuros ==&lt;br /&gt;
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5580</id>
		<title>Equação de Burgers</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5580"/>
		<updated>2021-10-04T19:00:23Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: /* Implementação */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt; (EM EDIÇÃO)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um dos maiores desafios no campo dos [https://en.wikipedia.org/wiki/Complex_system sistemas complexos] é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares &amp;lt;ref name=White&amp;gt; F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.&lt;br /&gt;
 &amp;lt;/ref&amp;gt;. Da [https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations equação de Navier–Stokes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}v(x,t) + \nabla \cdot v(x,t) = -\nabla p(x,t) + \nu\Delta v(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nabla \cdot v(x,t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido à incompressibilidade, a pressão &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; é definida pela [https://en.wikipedia.org/wiki/Poisson%27s_equation equação de Poisson]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; corresponde ao campo de velocidades e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; ao coeficiente de difusão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a &#039;&#039;transformação de Hopf-Cole&#039;&#039;, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica &amp;lt;ref name=Hopf&amp;gt;Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.&lt;br /&gt;
&lt;br /&gt;
== A transformação de Hopf-Cole ==&lt;br /&gt;
A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor &amp;lt;ref name=Hopf&amp;gt;&amp;lt;/ref&amp;gt; &amp;lt;ref name=Evans&amp;gt;Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176&amp;lt;/ref&amp;gt; &amp;lt;ref name=&#039;Meyland&#039;&amp;gt; &lt;br /&gt;
Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/CsnUKrLjtyQ&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escrevendo a equação, para uma certa condição inicial &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,0)=F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, reescrevendo a equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Busca-se uma solução &amp;lt;math&amp;gt; \psi(x,t) &amp;lt;/math&amp;gt; que satisfaça:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \psi}{\partial x}=u\\&lt;br /&gt;
\cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se, que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a transformação de Hopf-Cole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \psi=-2\nu\ln{(\phi)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, os seguintes resultados são obtidos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação se torna a própria [https://en.wikipedia.org/wiki/Diffusion_equation equação de difusão]. É necessário, no entanto, transformar também as condições de contorno; assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podendo ser reescrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é preciso resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\&lt;br /&gt;
\phi(x,0)=\Phi(x)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando a [https://en.wikipedia.org/wiki/Fourier_transform transformada de Fourier]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
\cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\&lt;br /&gt;
\hat{\phi}(k,0)=\hat{\Phi}(k)&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o [https://en.wikipedia.org/wiki/Convolution_theorem teorema da convolução]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelo de Deposição - Crescimento de Interfaces ==&lt;br /&gt;
[[Arquivo:kpzgrow.gif|275px|thumb|right|&#039;&#039;&#039;Figura 1&#039;&#039;&#039;: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato &amp;lt;ref name=&#039;Halpin&#039;&amp;gt; Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: &amp;lt;https://youtu.be/pdeswgu9rS8&amp;gt; [Acessado em 30 Setembro de 2021] &amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, [https://en.wikipedia.org/wiki/Kardar%E2%80%93Parisi%E2%80%93Zhang_equation &#039;&#039;equação de Kardar-Parisi-Zhang&#039;&#039;] (equação &#039;&#039;KPZ&#039;&#039;), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo &amp;lt;ref name=Reis&amp;gt;REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação é obtida a partir da equação de [https://en.wikipedia.org/wiki/Advection advecção simples] para uma superfície &amp;lt;math&amp;gt;z=h(x,t)&amp;lt;/math&amp;gt; se movimentando com velocidade &amp;lt;math&amp;gt;U(x,t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A velocidade é assumida como sendo proporcional ao gradiente de &amp;lt;math&amp;gt;h(x,t)&amp;lt;/math&amp;gt; (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.&lt;br /&gt;
&lt;br /&gt;
A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.&lt;br /&gt;
&lt;br /&gt;
== Solução de Onda Viajante ==&lt;br /&gt;
Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=w(\Delta x - st)\equiv w(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial x} u(x,t) = w^{\prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo na equação de Burgers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu &lt;br /&gt;
w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impondo condições em &amp;lt;math&amp;gt;\pm\infty&amp;lt;/math&amp;gt;, tais que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
w(-\infty)=u_{E}\\&lt;br /&gt;
w(\infty)=u_{D}\\&lt;br /&gt;
w^{\prime}(\pm\infty)=0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{E}&amp;gt;u_{D}&amp;lt;/math&amp;gt;. Dessa forma, tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; C=-u_{E}u_{D}/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula &amp;lt;math&amp;gt;\left(\nu=0\right)&amp;lt;/math&amp;gt;. Continuando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando ambas as partes, utilizando que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &amp;lt;math&amp;gt;u_{E}&amp;gt;w&amp;gt;u_{D}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Multiplicando e dividindo por &amp;lt;math&amp;gt;\exp{(-\alpha/2)}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico ===&lt;br /&gt;
&lt;br /&gt;
O perfil da função &amp;lt;math&amp;gt;w(y)&amp;lt;/math&amp;gt; pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento &amp;lt;math&amp;gt;x-st&amp;lt;/math&amp;gt; (ver [[#Apêndice|Apêndice]]).&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Shockwaveee.gif|1024px|thumb|center|&#039;&#039;&#039;Figura 2&#039;&#039;&#039;: Os perfis da solução da equação de Burgers víscida para, u&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;=0, u&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;=1, x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;=0 e &amp;amp;nu; variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando &amp;amp;nu;-&amp;gt;0.]]&lt;br /&gt;
&lt;br /&gt;
O gráfico pode ser construido utilizando o código em [https://www.python.org/ &#039;&#039;Python&#039;&#039;] abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
from matplotlib.animation import FuncAnimation&lt;br /&gt;
from matplotlib.lines import Line2D&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy import ndarray&lt;br /&gt;
from typing import Any&lt;br /&gt;
&lt;br /&gt;
u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E&lt;br /&gt;
&lt;br /&gt;
def w(y:ndarray, nu:float): # funcao w(y)&lt;br /&gt;
    arg = (y*(v-u))/(4*nu)&lt;br /&gt;
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))&lt;br /&gt;
&lt;br /&gt;
fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico&lt;br /&gt;
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos&lt;br /&gt;
              xlabel=r&#039;$y$&#039;, ylabel=r&#039;$w(y)$&#039;)&lt;br /&gt;
line, = ax.plot([], [], lw=3) # cria-se um obejto &#039;Line&#039; de 2D&lt;br /&gt;
plt.title(&#039;Perfis da Equação &#039;+r&#039;$w(y)$&#039;+ # titulo do grafico&lt;br /&gt;
          &#039; para Diferentes Viscosidades&#039;)&lt;br /&gt;
&lt;br /&gt;
def init(): # funcao que inicia a animacao caso o frame=0 seja vazio&lt;br /&gt;
    line.set_data([], [])&lt;br /&gt;
    return line,&lt;br /&gt;
&lt;br /&gt;
def animate(frame, *fargs: Any) -&amp;gt; tuple[Line2D]: # função que plota os gráficos&lt;br /&gt;
    c = 0 # inicializa a variavel&lt;br /&gt;
    y = np.linspace(-2,2,100) # cria um array de valores para y&lt;br /&gt;
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade&lt;br /&gt;
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)&lt;br /&gt;
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores&lt;br /&gt;
    &lt;br /&gt;
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes&lt;br /&gt;
        c = next(colour)&lt;br /&gt;
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames&lt;br /&gt;
    ax.text(1, 0.9, r&#039;$\nu = $&#039;+f&#039;{nu_list[frame]:.3f}&#039;, fontsize=15, # adiciona nu&lt;br /&gt;
            bbox=dict(edgecolor=&#039;white&#039;, facecolor=&#039;white&#039;, alpha=1))&lt;br /&gt;
    line.set_color(c) # define a cor da linha com base no iteravel atualizado&lt;br /&gt;
    line.set_data(y, w_arr) # define o novo conjunto de dados&lt;br /&gt;
    return(line,) # retorna o objeto iteravel [Linha2D]&lt;br /&gt;
&lt;br /&gt;
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao&lt;br /&gt;
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s&lt;br /&gt;
anim.save(&#039;shockwaveee.gif&#039;, writer=&#039;imagemagick&#039;) # gera um .GIF (e renderizacao)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Velocidade de Choque ==&lt;br /&gt;
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como&amp;lt;ref name=Cameron&amp;gt;Cameron, M. Notes on Burgers&#039;s Equation. University of Maryland, 2021&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução é dada na forma e uma onda viajante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=V(\Delta x - st) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;V(y)&amp;lt;/math&amp;gt; é uma função degrau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u_{E}\text{ para } y&amp;lt;0\\&lt;br /&gt;
u_{D}\text{ para } y&amp;gt;0&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;u_{L}&amp;gt;u_{R}&amp;lt;/math&amp;gt;. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por outro lado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.&lt;br /&gt;
&lt;br /&gt;
== Métodos Numéricos ==&lt;br /&gt;
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme &#039;&#039;Foward Time Central Space&#039;&#039;]), com a derivada à direita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{array}{l}&lt;br /&gt;
u(x, t) := U_{i}^{n}\\&lt;br /&gt;
u(x, t+\Delta t) := U_{i}^{n+1}\\&lt;br /&gt;
u(x+\Delta x, t) := U_{i+1}^{n}&lt;br /&gt;
\end{array}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conservação ===&lt;br /&gt;
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma &#039;&#039;quasi&#039;&#039;-linear com viscosidade nula:&amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com condições iniciais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x, 0)=u_{0}(x)= \begin{cases}1, &amp;amp; x&amp;lt;0 \\ 0, &amp;amp; x \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela discretização feita anteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelas condições iniciais, &amp;lt;math&amp;gt;U_{j}^{0}=1&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U_{j}^{0}=0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;j\geq 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, &amp;amp; j&amp;lt;0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, &amp;amp; j \geq 0\end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como resultado, &amp;lt;math&amp;gt;U_{j}^{1}=U_{j}^{0}&amp;lt;/math&amp;gt;. Dessa forma, &amp;lt;math&amp;gt;U_{j}^{n}=U_{j}^{0}&amp;lt;/math&amp;gt;; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, &amp;lt;math&amp;gt;s=0&amp;lt;/math&amp;gt;; ou seja, não ocorre propagação após o choque.&lt;br /&gt;
&lt;br /&gt;
==== Conservação no Caso Invíscido ====&lt;br /&gt;
A partir da discretização para o caso víscido, se &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a [https://en.wikipedia.org/wiki/Conservation_law lei de conservação]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discretizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde a função &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; corresponde à uma função de &amp;lt;math&amp;gt;p+q+1&amp;lt;/math&amp;gt; argumentos, chamada de fluxo numérico &amp;lt;ref name=Cameron&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011&amp;lt;/ref&amp;gt; &amp;lt;ref name=LeVeque&amp;gt;LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.&amp;lt;/ref&amp;gt;. Assim, para &amp;lt;math&amp;gt;p=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;q=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F(U,V)=f(u)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Friedrichs === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Friedrichs] para sistemas não lineares possui a forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o caso da equação de Burgers invíscida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lax-Wendroff === &lt;br /&gt;
O método de [https://en.wikipedia.org/wiki/Lax%E2%80%93Friedrichs_method Lax-Wendroff] é um método de segunda ordem e possui a forma &amp;lt;ref name=LeVeque&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=Mikel&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;A_{j\pm\frac{1}{2}}&amp;lt;/math&amp;gt; corresponde à matriz jacobiana &amp;lt;math&amp;gt;A(u)=f^{\prime}(u)&amp;lt;/math&amp;gt;, avaliada em &amp;lt;math&amp;gt;1/2(U_{i}^{n}+U_{j\pm1}^{n})&amp;lt;/math&amp;gt;. Para a equação de Burgers (invíscida) &amp;lt;math&amp;gt;f^{\prime}(u)=u&amp;lt;/math&amp;gt;, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método parabólico ===&lt;br /&gt;
Considerando a equação de Burgers víscida com &amp;lt;math&amp;gt;f(u)=u^{2}/2&amp;lt;/math&amp;gt;, na forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Integrando de &amp;lt;math&amp;gt;x_{j-1/2}&amp;lt;/math&amp;gt; até &amp;lt;math&amp;gt;x_{j+1/2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + f(u)\frac{\partial u}{\partial x} = \nu\frac{\partial^{2} u}{\partial x^{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementação == &lt;br /&gt;
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica &amp;lt;math&amp;gt;U_{i=0}^{n}=u_{i_{max}}^{n}&amp;lt;/math&amp;gt;, e utilizando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Caso 1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x, t)= \begin{cases}1, &amp;amp; x \leq 1 \\ 0, &amp;amp; x&amp;gt;1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuja solução analítica é &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{array}{l}&lt;br /&gt;
u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\&lt;br /&gt;
\phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}&lt;br /&gt;
\end{array}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; e substituindo na equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importando os Módulos Utilizados ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from math import pi, exp&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import matplotlib.cm as cm&lt;br /&gt;
&lt;br /&gt;
Array2D = np.ndarray # typing...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers Analítico (Caso 2) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u_a = np.zeros((nx, nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    t = np.zeros(nt)&lt;br /&gt;
&lt;br /&gt;
    # len(x)&lt;br /&gt;
    for i in range(0, nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
&lt;br /&gt;
    # solucao analitica&lt;br /&gt;
    for n in range(0, nt):&lt;br /&gt;
        t = n*dt&lt;br /&gt;
&lt;br /&gt;
        for i in range(0, nx):&lt;br /&gt;
            phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) + &lt;br /&gt;
                   exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))&lt;br /&gt;
&lt;br /&gt;
            dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )&lt;br /&gt;
                -0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )&lt;br /&gt;
&lt;br /&gt;
            u_a[i,n] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    return((u_a, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1) # no tempo&lt;br /&gt;
    dx = xmax/(nx-1) # no espaco&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx, nt)) # velocidade&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx) &lt;br /&gt;
    ineg = np.zeros(nx) &lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0, nx): # i:     0,  1, ... nx-2, nx-1, nx&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1 # 1, 2, ... nx-2, nx+1&lt;br /&gt;
        ineg[i] = i-1 # -1, 0, ... nx-2, nx-1&lt;br /&gt;
&lt;br /&gt;
    ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}&lt;br /&gt;
    ineg[0] = nx-1 # u_{n-1}&lt;br /&gt;
&lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0, nx):&lt;br /&gt;
          phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
          dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                  *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
          u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0, nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+&lt;br /&gt;
                        v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Víscido Parabólico ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    if caso == 1:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        if x[i] &amp;lt;= 1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i] &amp;gt; 1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
    elif caso == 2:&lt;br /&gt;
      for i in range(0,nx):&lt;br /&gt;
        phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )&lt;br /&gt;
        dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )&lt;br /&gt;
                *exp(-(x[i]-2*pi)**2 / (4*v) ))&lt;br /&gt;
        u[i,0] = -2*v*(dphi/phi) + 4&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))&lt;br /&gt;
            fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))&lt;br /&gt;
            u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Não Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Burgers FTCS Invíscido Conservativo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -&amp;gt; tuple:&lt;br /&gt;
    def f(u):&lt;br /&gt;
        return((u**2)/2)&lt;br /&gt;
    # incrementos&lt;br /&gt;
    dt = tmax/(nt-1)&lt;br /&gt;
    dx = xmax/(nx-1)&lt;br /&gt;
&lt;br /&gt;
    # arrays&lt;br /&gt;
    u = np.zeros((nx,nt))&lt;br /&gt;
    x = np.zeros(nx)&lt;br /&gt;
    ipos = np.zeros(nx)&lt;br /&gt;
    ineg = np.zeros(nx)&lt;br /&gt;
&lt;br /&gt;
    # condicoes de contorno periodicas&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        x[i] = i*dx&lt;br /&gt;
        ipos[i] = i+1&lt;br /&gt;
        ineg[i] = i-1&lt;br /&gt;
&lt;br /&gt;
    ipos[nx-1] = 0&lt;br /&gt;
    ineg[0] = nx-1&lt;br /&gt;
    &lt;br /&gt;
    # condicoes iniciais&lt;br /&gt;
    for i in range(0,nx):&lt;br /&gt;
        if x[i]&amp;lt;=1:&lt;br /&gt;
            u[i,0] = 1&lt;br /&gt;
        elif x[i]&amp;gt;1:&lt;br /&gt;
            u[i,0] = 0&lt;br /&gt;
&lt;br /&gt;
    # solucao numerica&lt;br /&gt;
    for n in range(0,nt-1):&lt;br /&gt;
        for i in range(0,nx):&lt;br /&gt;
            u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))&lt;br /&gt;
    return((u, x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):&lt;br /&gt;
    plt.figure(figsize=(8, 6), dpi=80)&lt;br /&gt;
    colour=iter(cm.rainbow(np.linspace(0, 20, nt)))&lt;br /&gt;
    for n in range(0, nt, 20):&lt;br /&gt;
        c=next(colour)&lt;br /&gt;
        plt.plot(x, u[:, n], &#039;ko&#039;, markerfacecolor=c, alpha=0.5)&lt;br /&gt;
        plt.plot(x, u_a[:, n], linestyle=&#039;-&#039;, c=c, label=f&#039;i={n}&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.ylim([0, 8.0])&lt;br /&gt;
    plt.xlim([0, max(x)])&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{p}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{a}&amp;lt;/math&amp;gt; &#039;&#039;vs.&#039;&#039; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; na Última Iteração ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):&lt;br /&gt;
    plt.plot(x, u[:,-10], label=&#039;Burgers&#039;, color=&#039;blue&#039;)&lt;br /&gt;
    plt.plot(x, u_a[:,-10], label=&#039;Analítico&#039;, color=&#039;red&#039;)&lt;br /&gt;
    plt.plot(x, u_p[:,-10], label=&#039;Parabólico&#039;, color=&#039;green&#039;)&lt;br /&gt;
    plt.legend()&lt;br /&gt;
    plt.xlabel(r&#039;$x$&#039;)&lt;br /&gt;
    plt.ylabel(r&#039;$u$&#039;)&lt;br /&gt;
    plt.title(&#039;Última Interação com &#039; + r&#039;$\nu=$&#039; + f&#039;{v}&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gráfico 3D Invíscido (Caso 1) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def plot3D(num:int, arr:Array2D, xmax:int, n:int, nx:int, title:str, cond:int) -&amp;gt; None:&lt;br /&gt;
    w_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    x_arr = np.zeros((num,len(arr[:,-1])))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        if cond == 0:&lt;br /&gt;
          w, x_res = burgInv(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 1:&lt;br /&gt;
          w, x_res = burgCons(nt, nx, n*i/num, xmax)&lt;br /&gt;
        elif cond == 2:&lt;br /&gt;
          w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)&lt;br /&gt;
        elif cond == 3:&lt;br /&gt;
          w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)&lt;br /&gt;
        w_arr[i] = w[:,-1]&lt;br /&gt;
        x_arr[i] = x_res&lt;br /&gt;
    ax = plt.axes(projection=&#039;3d&#039;)&lt;br /&gt;
    times = np.zeros((num,1))&lt;br /&gt;
    for i in range(num):&lt;br /&gt;
        times[i,0] = i/10&lt;br /&gt;
    ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,&lt;br /&gt;
                    cmap=&#039;jet&#039;, edgecolor=&#039;none&#039;)&lt;br /&gt;
    plt.title(title)&lt;br /&gt;
    ax.set_xlabel(&#039;x&#039;)&lt;br /&gt;
    ax.set_ylabel(&#039;t&#039;)&lt;br /&gt;
    ax.set_zlabel(&#039;u&#039;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo de Utilização ===&lt;br /&gt;
&lt;br /&gt;
Define-se &amp;lt;math&amp;gt;\nu=0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{t}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{x}=200&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;t_{max}=0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_{max}=2\pi&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chama-se as funções de cálculo e constrói os gráficos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo&lt;br /&gt;
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico&lt;br /&gt;
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico&lt;br /&gt;
title = str(r&#039;($\nu=$&#039;+f&#039;{v}, &#039;+r&#039;$n_t$&#039;+f&#039;={nt}, &#039;+&lt;br /&gt;
     r&#039;$n_x$&#039;+f&#039;={nx}, &#039;+r&#039;$t_{max}$&#039;+f&#039;={tmax})&#039;)&lt;br /&gt;
plot(u_a, u, x, nt, &#039;Não Conservativo &#039; + title) # grafico de u e u_a vs. x&lt;br /&gt;
plot(u_a, u_p, x, nt, &#039;Parabólico &#039; + title) # grafico de u_p e u_a vs. x&lt;br /&gt;
plotErro(u, u_p, u_a, x, v)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Como Resultado ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=275px&amp;gt;&lt;br /&gt;
U_ncon.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando FTCS não conservativo.&lt;br /&gt;
U_parab.png|Gráfico da solução numérica e analítica para a equação de Burgers víscida utilizando o método parabólico.&lt;br /&gt;
Burgers_erro.png|Comparação do erro de dois métodos numéricos (FTCS não conservativo e parabólico) para a equação de Burgers víscida, com sua solução analítica.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver [[#Conserva.C3.A7.C3.A3o|Conservação]]), no caso em que &amp;lt;math&amp;gt;\nu=0&amp;lt;/math&amp;gt;, pelo método não conservativo a velocidade é nula.&lt;br /&gt;
&lt;br /&gt;
=== Para o Caso Invíscido ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
u_nc, x_nc = burgInv(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (não conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_nc, 2, 2, 100, title, 0)&lt;br /&gt;
&lt;br /&gt;
u_c, x_c = burgCons(nt, 100, 4, 2)&lt;br /&gt;
title = &#039;Burgers Invíscido (conservativo) - Caso 1&#039;&lt;br /&gt;
plot3D(200, u_c, 2, 2, 100, title, 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Como Resultado ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=packed heights=350px&amp;gt;&lt;br /&gt;
U_inv_nc.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo.&lt;br /&gt;
U_inv_con.png|Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Objetivos Futuros ==&lt;br /&gt;
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.&lt;br /&gt;
&lt;br /&gt;
== Apêndice ==&lt;br /&gt;
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o segundo caso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando a regra do produto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}&amp;lt;u_{E} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}&amp;lt;u_{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:U_inv_con.png&amp;diff=5579</id>
		<title>Arquivo:U inv con.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:U_inv_con.png&amp;diff=5579"/>
		<updated>2021-10-04T18:47:31Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: Luisgustta enviou uma nova versão de &amp;amp;quot;Arquivo:U inv con.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS conservativo&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:U_inv_nc.png&amp;diff=5578</id>
		<title>Arquivo:U inv nc.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:U_inv_nc.png&amp;diff=5578"/>
		<updated>2021-10-04T18:46:53Z</updated>

		<summary type="html">&lt;p&gt;Luisgustta: Luisgustta enviou uma nova versão de &amp;amp;quot;Arquivo:U inv nc.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gráfico 3D da solução da equação de Burgers para o caso invíscido com método FTCS não conservativo&lt;/div&gt;</summary>
		<author><name>Luisgustta</name></author>
	</entry>
</feed>