<?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=Eduardoe995</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=Eduardoe995"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Especial:Contribui%C3%A7%C3%B5es/Eduardoe995"/>
	<updated>2026-05-12T03:33:03Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Burgers&amp;diff=5598</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=5598"/>
		<updated>2021-10-05T16:10:40Z</updated>

		<summary type="html">&lt;p&gt;Eduardoe995: /* 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 é 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_{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>Eduardoe995</name></author>
	</entry>
</feed>