<?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=Lucaso</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=Lucaso"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Especial:Contribui%C3%A7%C3%B5es/Lucaso"/>
	<updated>2026-05-06T23:51:12Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=10036</id>
		<title>Modelo de Ising</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=10036"/>
		<updated>2024-02-22T13:13:53Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Autores: André Guimarães, Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo estudar o Modelo de Ising em uma e duas dimensões, com interações com primeiros e segundos vizinhos. Para essa finalidade, foi utilizado o algoritmo de Metropolis do método de Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O modelo de Ising surgiu na década de 1920 como uma simplificação do modelo de Heisenberg. Inicialmente desenvolvido para compreender o ferromagnetismo, passou, ao longo dos tempo, a ser aplicado em diversas áreas interdisciplinares, tais como biologia, neurociência, dinâmica social e economia, devido a sua simplicidade.&lt;br /&gt;
&lt;br /&gt;
Este é, provavelmente, o modelo mais comumente estudado na mecânica estatística. É possível dizer que o modelo de Ising é, para a mecânica estatística, o que a mosca-da-fruta é para a genética. O modelo possibilita ilustrar o conceito essencial de como o equilíbrio entre energia e entropia conduz a uma mudança de fase.&lt;br /&gt;
&lt;br /&gt;
= Problema com o modelo de Heisenberg =&lt;br /&gt;
&lt;br /&gt;
Em 1924, Wilhelm Lenz delegou a seu aluno de graduação Ernst Ising a tarefa de compreender e resolver o modelo de Heisenberg para o ferromagnetismo.&lt;br /&gt;
Heisenberg propõe um modelo de rede que busca explicar o ferromagnetismo em sólidos a partir da energia de interação entre os spins. Por exemplo, podemos considerar uma rede quadrada com contornos periódicos onde os elétrons do sólido são distribuídos uniformemente. Dessa forma, podemos descrever a energia resultante da interação entre quaisquer dois elétrons como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
E_{ij} = -J_{ij}(\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (1) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na equação acima, &amp;lt;math&amp;gt;J_{ij}&amp;lt;/math&amp;gt; representa uma constante de troca que denota a intensidade da interação &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; entre dois spins vizinhos. Caso os spins não sejam vizinhos, esse coeficiente de interação é nulo. Além disso, os vetores &amp;lt;math&amp;gt;\vec{S}_{i}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\vec{S}_{j}&amp;lt;/math&amp;gt; representam os momentos magnéticos. Portanto, através do produto escalar, a energia depende da projeção de um momento magnético em relação ao outro: será &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; se estiverem alinhados e &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; se estiverem em sentidos contrários.&lt;br /&gt;
&lt;br /&gt;
Vale ressaltar que o coeficiente J é positivo, o que implica em contribuições negativas na energia quando os vetores momento magnético são paralelos, devido ao sinal negativo da expressão. Por conseguinte, para spins antiparalelos, observa-se um aumento na energia. Como esperado, o sistema tende a permanecer no estado de menor energia. Assim, os spins do sistema tendem a se alinhar, como é característico de uma fase ferromagnética.&lt;br /&gt;
&lt;br /&gt;
Esse sistema tem um Hamiltoniano da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (2) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na expressão, os símbolos de bra-ket são usados para representar a soma sobre os primeiros vizinhos. Contudo, desse sistema, temos uma função de partição da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{Z} = \sum_{E_i} e^{\frac{E_i}{K_{B} T}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (3) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Essa expressão representa o somatório de todas as configurações da exponencial da energia de cada configuração dividida pela constante de Boltzmann e pela temperatura.&lt;br /&gt;
&lt;br /&gt;
Nesse momento, Ising se deparou com um problema, pois, além de possuir poucos recursos matemáticos na época, o número de configurações é infinito, uma vez que é possível observar qualquer direção entre os vetores momento magnético de forma contínua.&lt;br /&gt;
&lt;br /&gt;
= Modelo de Ising =&lt;br /&gt;
&lt;br /&gt;
Ising resolveu o problema das infinitas configurações assumindo que, ao invés de lidar com spins que rotacionam 360 graus nas três coordenadas espaciais, ele selecionaria uma coordenada e consideraria a projeção dos spins nela. Na prática, ele conseguiu reduzir o problema de infinitas configurações para apenas duas: ou o spin aponta para o sentido positivo do eixo, ou para o sentido negativo.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, avaliando uma rede linear, o uso do produto escalar para os vetores de momento magnético não é mais necessário, uma vez que esses agora assumem valores entre &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;. Assim, podemos escrever o Hamiltoniano como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (4) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essas considerações, torna-se possível descrever a transição de fase entre ferromagnetismo e paramagnetismo em sistemas ao menos bidimensionais.&lt;br /&gt;
&lt;br /&gt;
Além disso, podemos introduzir um termo no Hamiltoniano responsável por descrever o sistema na presença de um campo magnético externo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (5) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
onde H é um coeficiente relacionado ao campo magnético externo. O acréscimo desse termo faz com que o estado de menor energia seja aquele favorável à direção desse campo.&lt;br /&gt;
&lt;br /&gt;
Para o estudo da transição de fase magnética definimos uma grandeza chamada de magnetização. Essa grandeza é responsável para computar a média de todos os spins do sistema e, nesse caso, será o parâmetro de ordem. Seja &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; o número de spins do sistema, escrevemos a magnetização como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{1}{N} \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (6) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ou ainda, é possível expressarmos a magnetização em função do número de spins para cima &amp;lt;math&amp;gt;N_{\uparrow}&amp;lt;/math&amp;gt; ou para baixo &amp;lt;math&amp;gt;N_{\downarrow}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{N_{\uparrow} - N_{\downarrow}}{N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (7) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essa notação, é possível observar um comportamento característico da magnetização. A magnetização será próxima de zero quando os números de spins para cima e para baixo forem próximos, ou seja, quando o sistema está em um estado de alta desordem. Por outro lado, para valores do módulo da magnetização próximos da unidade, temos um sistema bem ordenado, com praticamente todos os spins paralelos entre si.&lt;br /&gt;
&lt;br /&gt;
Esse comportamento, conforme esperado do parâmetro de ordem, auxilia na distinção clara da transição de fase de um estado ordenado para um estado desordenado. Tal visualização pode ser realizada fixando alguns parâmetros físicos do sistema e analisando o comportamento da magnetização em relação à temperatura ou ao campo externo, por exemplo.&lt;br /&gt;
&lt;br /&gt;
= Implementação =&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Metrópolis==&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metrópolis em Monte Carlo é uma técnica fundamental em simulações computacionais, amplamente utilizada em física estatística, química computacional, ciência dos materiais e várias outras áreas. Ele é utilizado para amostragem de configurações de um sistema físico ou químico de acordo com a sua distribuição de probabilidade, mesmo quando essa distribuição é desconhecida ou difícil de calcular diretamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Algoritmo de Metrópolis para o modelo de Ising:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;1) Inicialização:&#039;&#039; Começamos com uma configuração inicial do sistema. Nesse caso, iniciamos uma rede de spins aleatoriamente desemparelhados;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;2) Proposição de uma Mudança:&#039;&#039; Uma nova configuração do sistema é proposta. Isso pode ser feito mudando a configuração de um spin aleatório da rede;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;3) Avaliação da Aceitação da Mudança:&#039;&#039; Avaliamos a probabilidade de aceitar a nova configuração proposta. Se a nova configuração for mais provável do que a configuração atual, ela será aceita automaticamente. Caso contrário, a aceitação será baseada em uma probabilidade determinada pela relação entre as probabilidades das duas configurações, de acordo com a condição de balanceamento detalhado: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{A(a \rightarrow b)}{A(b \rightarrow a)} = e^{-\frac{E_b - E_a}{k_BT}} = e^{-\frac{\Delta E}{k_BT}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039;(8)&#039;&#039;&#039;&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;4) Atualização do Sistema:&#039;&#039; Se a mudança for aceita, o sistema é atualizado com a nova configuração. Caso contrário, o sistema permanece no estado atual.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;5) Repetição:&#039;&#039; Repetimos os passos 2-4 por um grande número de iterações ou até que o sistema atinja o equilíbrio termodinâmico.&lt;br /&gt;
&lt;br /&gt;
O aspecto crucial do algoritmo de Metrópolis é a garantia de que, à medida que o número de iterações tende ao infinito, a distribuição de configurações amostradas converge para a distribuição de equilíbrio do sistema.&lt;br /&gt;
&lt;br /&gt;
É válido notar que, em nossa primeira análise, avaliamos as energias de cada estado conforme a equação &#039;&#039;&#039;(4)&#039;&#039;&#039;, na qual há interação apenas entre primeiros vizinhos.&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Metrópolis para Segundos Vizinhos ==&lt;br /&gt;
&lt;br /&gt;
Com o objetivo de implementar interações de segundos vizinhos ao modelo de Ising é necessário modificá-lo levemente, transformando a equação &#039;&#039;&#039;(5)&#039;&#039;&#039; na seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J_1 \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j}) - J_2 \sum_{\langle ik \rangle} (\vec{S}_{i} \cdot \vec{S}_{k}) - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (9) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Onde o índice &#039;&#039;j&#039;&#039; indica os primeiros vizinhos do índice &#039;&#039;i&#039;&#039;, enquanto os índices &#039;&#039;k&#039;&#039; indicam os segundos vizinhos do mesmo. A partir dessa simples alteração é possível gerar comportamentos distintos, de acordo com a relação entre os parâmetros &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis garante que o modelo de Ising leve em conta a temperatura mas ainda tenda ao seu estado de menor energia. Para tal um spin aleatório da malha sofre um &amp;quot;flip&amp;quot;, ou seja, seu valor é multiplicado por &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;. Com essa modificação na malha, a energia é calculada e comparada à energia antes da modificação. Caso a variação seja negativa a alteração é aceita; mas se for positiva só será aceita com uma probabilidade de &amp;lt;math&amp;gt; e^{-\beta \Delta E} &amp;lt;/math&amp;gt;. Isso garante que altas temperaturas permitam mais alterações positivas, gerando mais ruído.&lt;br /&gt;
&lt;br /&gt;
No entanto, a fim de simplificar computacionalmente a conta, o &amp;lt;math&amp;gt; \Delta E &amp;lt;/math&amp;gt; é calculado diretamente utilizando a seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta E = 2 J_1 \vec{S}_{i} \sum_{j} \vec{S}_{j} + 2 J_2 \vec{S}_{i} \sum_{k} \vec{S}_{k} + 2 H S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (10) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sendo &#039;&#039;i&#039;&#039; o índice do spin sorteado a ser invertido. Nota-se que é possível determinar o próximo passo para o sistema sem mesmo calcular sua energia ou modificá-lo, basta utilizar a equação &#039;&#039;&#039;(10)&#039;&#039;&#039; e os critérios do algoritmo de Metropolis.&lt;br /&gt;
&lt;br /&gt;
= Resultados =&lt;br /&gt;
&lt;br /&gt;
== Malha Unidimensional ==&lt;br /&gt;
&lt;br /&gt;
Inicialmente, aplicamos o algoritmo descrito na seção anterior a um sistema linear com &amp;lt;math&amp;gt;N = 10000&amp;lt;/math&amp;gt; spins. O sistema é inicializado aleatoriamente de acordo com as proporções descritas nos gráficos de energia por passo da simulação e magnetização por passo da simulação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Energia:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Energia por passo de MCS 1D.png|thumb|upright=0.0|center|Energida do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
A energia pode oscilar enquanto o sistema busca alcançar o equilíbrio térmico. Essas flutuações iniciais são esperadas à medida que os spins interagem e se reorganizam para alcançar uma configuração de menor energia. Após um período inicial de termalização, espera-se que a energia média do sistema se estabilize em torno de um valor constante. Isso indica que o sistema alcançou um estado estacionário ou de equilíbrio, onde as flutuações na energia são mínimas ao longo do tempo. Mesmo após a estabilização, pequenas flutuações na energia podem ocorrer devido a mudanças locais na configuração dos spins. A forma e a amplitude das flutuações na energia podem depender da temperatura do sistema. Temperaturas mais altas tendem a resultar em maiores flutuações de energia devido à maior agitação térmica, enquanto temperaturas mais baixas podem produzir flutuações menores à medida que o sistema se aproxima do estado fundamental de menor energia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Magnetização:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Magnetização por passo de MCS 1D.png|thumb|upright=0.0|center|Magnetização do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
Inicialmente, a magnetização pode flutuar consideravelmente à medida que o sistema se ajusta para alcançar o equilíbrio termodinâmico. Essas flutuações representam o processo de relaxamento do sistema até que ele atinja um estado estável. Após um período inicial de equilibração, a magnetização tende a estabilizar-se em torno de um valor médio. Esse valor médio reflete a magnetização do sistema no estado de equilíbrio termodinâmico. &lt;br /&gt;
&lt;br /&gt;
No modelo de Ising unidimensional (1D), não ocorre uma verdadeira transição de fase ferromagnética com uma temperatura crítica finita, como acontece em dimensões mais altas, como no modelo de Ising bidimensional (2D) ou tridimensional (3D). Isso ocorre devido a uma propriedade matemática conhecida como a &amp;quot;desigualdade de Mermin-Wagner&amp;quot;. No entanto, isso não significa que não ocorram mudanças significativas no comportamento do sistema ao variar a temperatura. Por exemplo, a magnetização média pode diminuir à medida que a temperatura aumenta devido às flutuações térmicas, e o comportamento das flutuações magnéticas pode ser alterado de forma significativa.&lt;br /&gt;
&lt;br /&gt;
== Malha Bidimensional ==&lt;br /&gt;
&lt;br /&gt;
=== Interações de Primeiros Vizinhos ===&lt;br /&gt;
&lt;br /&gt;
Analogamente ao caso de uma dimensão, avaliamos os gráficos de energia e magnetização em função de dos passos da simulação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Energia ====&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Energia por passo de MCS 2D.png|thumb|upright=0.0|center|Energida do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Magnetização ====&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Magnetizaçãos por passo de MCS 2D.png|thumb|upright=0.0|center|Magnetização do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Evolução do Sistema Ferromagnético ====&lt;br /&gt;
&lt;br /&gt;
Agora podemos avaliar um aspecto qualitativo relacionado à forma como a rede evolui durante a simulação. Estamos considerando duas redes iniciadas aleatoriamente, porém com distribuições de spins &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; diferentes, sendo avaliadas em duas temperaturas arbitrárias com ordens de grandeza distintas.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T10eT1.gif|thumb|upright=0.0|center|Evolução da rede de spins com proporções iniciais iguais entre os estados dos spins. No gráfico à esquerda, observa-se a evolução da rede em alta temperatura, enquanto no gráfico à direita, acompanhamos a evolução da rede em baixa temperatura. |1000px]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede75x25T10eT1.gif|thumb|upright=0.0|center|Evolução da rede de spins onde 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;. No gráfico à esquerda, observa-se a evolução da rede em alta temperatura, enquanto no gráfico à direita, acompanhamos a evolução da rede em baixa temperatura.|1000px]]&lt;br /&gt;
&lt;br /&gt;
É possível observar que as características iniciais da rede pouco se mantiveram, sendo o fator predominante a ordem do sistema relativo à temperatura. Para temperaturas ainda mais baixas, chegamos em um estado de equilíbrio do sistema totalmente ordenado.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T10eT01.gif|thumb|upright=0.0|center|A evolução da rede de spins com proporções iniciais iguais entre os estados dos spins em baixa temperatura, com equilíbrio em fase totalmente ordenada.|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Energia e Magnetização em função da Temperatura ====&lt;br /&gt;
&lt;br /&gt;
Sob outra perspectiva, é possível avaliar o comportamento desses parâmetros em relação à temperatura. Ao fazê-lo, observamos o resultado característico de um sistema ferromagnético com ordem magnética em temperaturas baixas. Conforme a temperatura e a desordem do sistema aumentam, obtemos uma magnetização nula.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:Energia por temperatura 2D.png|thumb|upright=0.0|Relação entre energia e temperatura|350px]]&lt;br /&gt;
|[[Arquivo:Magnetização por temperatura 2D.png|thumb|upright=0.0|Relação entre magnetização e temperatura|350px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Domínio Magnético ====&lt;br /&gt;
&lt;br /&gt;
Quando a temperatura é abruptamente reduzida em um modelo de Ising bidimensional (2D), várias mudanças significativas podem ocorrer no sistema, incluindo o surgimento de domínios magnéticos.  &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:dominiomag.gif|thumb|upright=0.0|center|A evolução da rede de spins com proporções iniciais iguais entre os estados dos spins com uma mudança abrupta na temperatura e formação de domínios magnéticos.|1000px]]&lt;br /&gt;
&lt;br /&gt;
Antes da redução abrupta da temperatura, o sistema pode estar em um estado desordenado, com uma magnetização média próxima de zero devido à agitação térmica. Nesse estado, os spins da rede estão alinhados aleatoriamente, resultando em uma magnetização média próxima de zero. Quando a temperatura é repentinamente diminuída, a agitação térmica diminui, permitindo que os spins da rede se organizem em regiões ou domínios magnéticos onde os spins estão mais alinhados entre si. Isso ocorre porque a energia térmica disponível para aleatorizar os spins é reduzida, permitindo que a energia de interação magnética entre spins próximos seja mais dominante. Com o tempo, os domínios magnéticos podem crescer e se tornar mais pronunciados à medida que os spins se alinham mais fortemente com seus vizinhos. Com o tempo, o sistema alcançará um novo estado de equilíbrio termodinâmico, onde a energia magnética (associada à formação de domínios magnéticos) estará equilibrada pela energia térmica (associada à agitação térmica dos spins). Nesse estado, os domínios magnéticos podem se estabilizar, embora possam continuar a se mover e interagir devido à temperatura finita do sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Evolução do Sistema Atiferromagnético ====&lt;br /&gt;
&lt;br /&gt;
Em um modelo de Ising bidimensional com interação antiferromagnética entre primeiros vizinhos, não ocorre uma transição de fase de acordo com as definições usuais, como a existência de uma temperatura crítica finita característica de uma transição de fase de fase ferromagnética. No entanto, ainda pode haver mudanças significativas no comportamento do sistema para uma temperatura suficientemente baixa. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T01antiferro.gif|thumb|upright=0.0|center|A evolução da rede de spins com proporções iniciais iguais entre os estados dos spins com interação antiferromagnética.|1000px]]&lt;br /&gt;
&lt;br /&gt;
Inicialmente, os spins na rede serão aleatoriamente orientados para cima ou para baixo, refletindo um estado desordenado. Não haverá alinhamento preferencial entre os spins devido à natureza aleatória da configuração inicial. À medida que a simulação avança, os spins começarão a se alinhar antiparalelamente com seus vizinhos mais próximos devido à interação antiferromagnética. Isso levará à formação de domínios antiferromagnéticos, onde os spins adjacentes terão orientações opostas.&lt;br /&gt;
&lt;br /&gt;
Em vez de uma transição de fase clássica, o comportamento do sistema antiferromagnético pode ser caracterizado por mudanças contínuas na organização dos spins à medida que a temperatura é variada.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T10eT01antiferromag.gif|thumb|upright=0.0|center|A evolução da rede de spins com proporções iniciais iguais entre os estados dos spins em temperaturas diferentes.|1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Interações de Segundos Vizinhos ===&lt;br /&gt;
&lt;br /&gt;
Diversos casos foram estudados a fim de encontrar semelhanças e diferenças em seus comportamentos. O &#039;&#039;&#039;primeiro caso&#039;&#039;&#039; estudado apresenta correlação exata entre &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt;, ou seja, ambos iguais a 1. O &#039;&#039;&#039;segundo caso&#039;&#039;&#039; apresenta uma interação fraca e contrária para segundos vizinhos, ou seja &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;. O &#039;&#039;&#039;terceiro caso&#039;&#039;&#039; demonstra uma interação mais forte (mas ainda contrária) para segundos vizinhos, ou seja, &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-0.3&amp;lt;/math&amp;gt;. Por fim o &#039;&#039;&#039;quarto caso&#039;&#039;&#039; exemplifica uma situação instável, onde &amp;lt;math&amp;gt;J_1=-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-1&amp;lt;/math&amp;gt;. Todos os casos partem da mesma condição inicial, onde 75% da malha se encontra com spin positivo e 25% com spin negativo.&lt;br /&gt;
&lt;br /&gt;
==== Primeiro Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifiguais.gif|thumb|upright=0.0|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegiguais.png|thumb|upright=0.0|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magiguais.png|thumb|upright=0.0|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempiguais.png|thumb|upright=0.0|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
O primeiro caso apresenta as mesmas características que o modelo de primeiros vizinhos, sua única diferença está na intensidade da correlação local que é aumentada significativamente. Isso faz com que a malha atinja o equilíbrio de forma mais rápida, mas também faz com que a temperatura necessária para uma troca de fase aumente drasticamente. &lt;br /&gt;
&lt;br /&gt;
É importante relembrar pela equação &#039;&#039;&#039;(8)&#039;&#039;&#039; que o número de segundos vizinhos é bem maior do que primeiros vizinhos, o que faz com que &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt; tenha um papel muito mais importante na dinâmica do sistema do que &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Segundo Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifopostos1.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegopostos1.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magopostos1.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempopostos1.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
O segundo caso apresenta características bem distintas do modelo de primeiros vizinhos, mas a principal é que seu estado de equilíbrio depende muito da temperatura escolhida. O modelo de primeiros vizinhos apresenta uma troca de fase para altas temperaturas, onde o sistema é tomado por ruídos que tornam a malha paramagnética. Aqui isso também ocorre, mas existe uma segunda troca de fase para temperaturas muito baixas. Isso ocorre pois a falta de ruído permite que a fraca interação de segundos vizinhos se manifeste, criando falhas na malha que não permitem a malha se alinhar completamente. Já em temperaturas intermediárias, o ruído gerado é capaz de desfazer as falhas da malha, permitindo que ela atinja um alinhamento completo. Outra alteração importante pode ser vista na transição de fase para altas temperaturas: a temperatura crítica diminuiu ligeiramente. &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Terceiro Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifopostos3.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegopostos3.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magopostos3.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempopostos3.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
O terceiro caso apresenta características próximas do segundo, mas sua maior intensidade para interações de segundos vizinhos lhe dá características únicas. A principal característica se apresenta em baixas temperaturas que não mais possuem fase ferromagnética, as falhas na malha são muito numerosas e impedem seu alinhamento. No entanto é possível notar que ainda existe uma transição de fases, mesmo que em temperaturas muito mais baixas. Essa transição ocorre entre dois estados paramagnéticos, um causado por falhas naturais e estáveis da malha, e outro causado por ruído aleatório e inconstante gerado pela temperatura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Quarto Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifnegativo.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=-1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegnegativo.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magnegativo.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempnegativo.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Este caso demonstra um material com baixa interação magnética com campos externos, um material que naturalmente procura estados de magnetização nula. No entanto, a interação negativa de segundos vizinhos impossibilita que a malha atinja uma estado estático, pois vários estados de equilíbrio são apresentados para uma mesma energia. É importante ressaltar que o estado não possui mais uma mudança de fase já que naturalmente apresenta magnetização próxima de zero; mas o aumento de temperatura aumenta em muito seu ruído, alterando sua energia de equilíbrio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Referências =&lt;br /&gt;
&lt;br /&gt;
#Jonathan V. Selinger. 2016. &#039;&#039;&#039;Soft and Biological Matter.&#039;&#039;&#039;Springer International Publishing Switzerland. ISBN: 978-3-319-21053-7, DOI:  10.1007/978-3-319-21054-4.&lt;br /&gt;
#Maciel, Renan. 2017. &#039;&#039;&#039;Análise de frustração em sistemas antiferromagnéticos.&#039;&#039;&#039;Universidade Federal de Uberlândia Instituto de Física.&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=10035</id>
		<title>Modelo de Ising</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=10035"/>
		<updated>2024-02-22T13:13:34Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Autores: André Guimarães, Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo estudar o Modelo de Ising em uma e duas dimensões, com interações com primeiros e segundos vizinhos. Para essa finalidade, foram utilizado o algoritmo de Metropolis do método de Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O modelo de Ising surgiu na década de 1920 como uma simplificação do modelo de Heisenberg. Inicialmente desenvolvido para compreender o ferromagnetismo, passou, ao longo dos tempo, a ser aplicado em diversas áreas interdisciplinares, tais como biologia, neurociência, dinâmica social e economia, devido a sua simplicidade.&lt;br /&gt;
&lt;br /&gt;
Este é, provavelmente, o modelo mais comumente estudado na mecânica estatística. É possível dizer que o modelo de Ising é, para a mecânica estatística, o que a mosca-da-fruta é para a genética. O modelo possibilita ilustrar o conceito essencial de como o equilíbrio entre energia e entropia conduz a uma mudança de fase.&lt;br /&gt;
&lt;br /&gt;
= Problema com o modelo de Heisenberg =&lt;br /&gt;
&lt;br /&gt;
Em 1924, Wilhelm Lenz delegou a seu aluno de graduação Ernst Ising a tarefa de compreender e resolver o modelo de Heisenberg para o ferromagnetismo.&lt;br /&gt;
Heisenberg propõe um modelo de rede que busca explicar o ferromagnetismo em sólidos a partir da energia de interação entre os spins. Por exemplo, podemos considerar uma rede quadrada com contornos periódicos onde os elétrons do sólido são distribuídos uniformemente. Dessa forma, podemos descrever a energia resultante da interação entre quaisquer dois elétrons como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
E_{ij} = -J_{ij}(\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (1) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na equação acima, &amp;lt;math&amp;gt;J_{ij}&amp;lt;/math&amp;gt; representa uma constante de troca que denota a intensidade da interação &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; entre dois spins vizinhos. Caso os spins não sejam vizinhos, esse coeficiente de interação é nulo. Além disso, os vetores &amp;lt;math&amp;gt;\vec{S}_{i}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\vec{S}_{j}&amp;lt;/math&amp;gt; representam os momentos magnéticos. Portanto, através do produto escalar, a energia depende da projeção de um momento magnético em relação ao outro: será &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; se estiverem alinhados e &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; se estiverem em sentidos contrários.&lt;br /&gt;
&lt;br /&gt;
Vale ressaltar que o coeficiente J é positivo, o que implica em contribuições negativas na energia quando os vetores momento magnético são paralelos, devido ao sinal negativo da expressão. Por conseguinte, para spins antiparalelos, observa-se um aumento na energia. Como esperado, o sistema tende a permanecer no estado de menor energia. Assim, os spins do sistema tendem a se alinhar, como é característico de uma fase ferromagnética.&lt;br /&gt;
&lt;br /&gt;
Esse sistema tem um Hamiltoniano da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (2) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na expressão, os símbolos de bra-ket são usados para representar a soma sobre os primeiros vizinhos. Contudo, desse sistema, temos uma função de partição da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{Z} = \sum_{E_i} e^{\frac{E_i}{K_{B} T}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (3) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Essa expressão representa o somatório de todas as configurações da exponencial da energia de cada configuração dividida pela constante de Boltzmann e pela temperatura.&lt;br /&gt;
&lt;br /&gt;
Nesse momento, Ising se deparou com um problema, pois, além de possuir poucos recursos matemáticos na época, o número de configurações é infinito, uma vez que é possível observar qualquer direção entre os vetores momento magnético de forma contínua.&lt;br /&gt;
&lt;br /&gt;
= Modelo de Ising =&lt;br /&gt;
&lt;br /&gt;
Ising resolveu o problema das infinitas configurações assumindo que, ao invés de lidar com spins que rotacionam 360 graus nas três coordenadas espaciais, ele selecionaria uma coordenada e consideraria a projeção dos spins nela. Na prática, ele conseguiu reduzir o problema de infinitas configurações para apenas duas: ou o spin aponta para o sentido positivo do eixo, ou para o sentido negativo.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, avaliando uma rede linear, o uso do produto escalar para os vetores de momento magnético não é mais necessário, uma vez que esses agora assumem valores entre &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;. Assim, podemos escrever o Hamiltoniano como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (4) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essas considerações, torna-se possível descrever a transição de fase entre ferromagnetismo e paramagnetismo em sistemas ao menos bidimensionais.&lt;br /&gt;
&lt;br /&gt;
Além disso, podemos introduzir um termo no Hamiltoniano responsável por descrever o sistema na presença de um campo magnético externo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (5) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
onde H é um coeficiente relacionado ao campo magnético externo. O acréscimo desse termo faz com que o estado de menor energia seja aquele favorável à direção desse campo.&lt;br /&gt;
&lt;br /&gt;
Para o estudo da transição de fase magnética definimos uma grandeza chamada de magnetização. Essa grandeza é responsável para computar a média de todos os spins do sistema e, nesse caso, será o parâmetro de ordem. Seja &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; o número de spins do sistema, escrevemos a magnetização como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{1}{N} \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (6) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ou ainda, é possível expressarmos a magnetização em função do número de spins para cima &amp;lt;math&amp;gt;N_{\uparrow}&amp;lt;/math&amp;gt; ou para baixo &amp;lt;math&amp;gt;N_{\downarrow}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{N_{\uparrow} - N_{\downarrow}}{N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (7) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essa notação, é possível observar um comportamento característico da magnetização. A magnetização será próxima de zero quando os números de spins para cima e para baixo forem próximos, ou seja, quando o sistema está em um estado de alta desordem. Por outro lado, para valores do módulo da magnetização próximos da unidade, temos um sistema bem ordenado, com praticamente todos os spins paralelos entre si.&lt;br /&gt;
&lt;br /&gt;
Esse comportamento, conforme esperado do parâmetro de ordem, auxilia na distinção clara da transição de fase de um estado ordenado para um estado desordenado. Tal visualização pode ser realizada fixando alguns parâmetros físicos do sistema e analisando o comportamento da magnetização em relação à temperatura ou ao campo externo, por exemplo.&lt;br /&gt;
&lt;br /&gt;
= Implementação =&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Metrópolis==&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metrópolis em Monte Carlo é uma técnica fundamental em simulações computacionais, amplamente utilizada em física estatística, química computacional, ciência dos materiais e várias outras áreas. Ele é utilizado para amostragem de configurações de um sistema físico ou químico de acordo com a sua distribuição de probabilidade, mesmo quando essa distribuição é desconhecida ou difícil de calcular diretamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Algoritmo de Metrópolis para o modelo de Ising:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;1) Inicialização:&#039;&#039; Começamos com uma configuração inicial do sistema. Nesse caso, iniciamos uma rede de spins aleatoriamente desemparelhados;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;2) Proposição de uma Mudança:&#039;&#039; Uma nova configuração do sistema é proposta. Isso pode ser feito mudando a configuração de um spin aleatório da rede;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;3) Avaliação da Aceitação da Mudança:&#039;&#039; Avaliamos a probabilidade de aceitar a nova configuração proposta. Se a nova configuração for mais provável do que a configuração atual, ela será aceita automaticamente. Caso contrário, a aceitação será baseada em uma probabilidade determinada pela relação entre as probabilidades das duas configurações, de acordo com a condição de balanceamento detalhado: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{A(a \rightarrow b)}{A(b \rightarrow a)} = e^{-\frac{E_b - E_a}{k_BT}} = e^{-\frac{\Delta E}{k_BT}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039;(8)&#039;&#039;&#039;&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;4) Atualização do Sistema:&#039;&#039; Se a mudança for aceita, o sistema é atualizado com a nova configuração. Caso contrário, o sistema permanece no estado atual.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;5) Repetição:&#039;&#039; Repetimos os passos 2-4 por um grande número de iterações ou até que o sistema atinja o equilíbrio termodinâmico.&lt;br /&gt;
&lt;br /&gt;
O aspecto crucial do algoritmo de Metrópolis é a garantia de que, à medida que o número de iterações tende ao infinito, a distribuição de configurações amostradas converge para a distribuição de equilíbrio do sistema.&lt;br /&gt;
&lt;br /&gt;
É válido notar que, em nossa primeira análise, avaliamos as energias de cada estado conforme a equação &#039;&#039;&#039;(4)&#039;&#039;&#039;, na qual há interação apenas entre primeiros vizinhos.&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Metrópolis para Segundos Vizinhos ==&lt;br /&gt;
&lt;br /&gt;
Com o objetivo de implementar interações de segundos vizinhos ao modelo de Ising é necessário modificá-lo levemente, transformando a equação &#039;&#039;&#039;(5)&#039;&#039;&#039; na seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J_1 \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j}) - J_2 \sum_{\langle ik \rangle} (\vec{S}_{i} \cdot \vec{S}_{k}) - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (9) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Onde o índice &#039;&#039;j&#039;&#039; indica os primeiros vizinhos do índice &#039;&#039;i&#039;&#039;, enquanto os índices &#039;&#039;k&#039;&#039; indicam os segundos vizinhos do mesmo. A partir dessa simples alteração é possível gerar comportamentos distintos, de acordo com a relação entre os parâmetros &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis garante que o modelo de Ising leve em conta a temperatura mas ainda tenda ao seu estado de menor energia. Para tal um spin aleatório da malha sofre um &amp;quot;flip&amp;quot;, ou seja, seu valor é multiplicado por &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;. Com essa modificação na malha, a energia é calculada e comparada à energia antes da modificação. Caso a variação seja negativa a alteração é aceita; mas se for positiva só será aceita com uma probabilidade de &amp;lt;math&amp;gt; e^{-\beta \Delta E} &amp;lt;/math&amp;gt;. Isso garante que altas temperaturas permitam mais alterações positivas, gerando mais ruído.&lt;br /&gt;
&lt;br /&gt;
No entanto, a fim de simplificar computacionalmente a conta, o &amp;lt;math&amp;gt; \Delta E &amp;lt;/math&amp;gt; é calculado diretamente utilizando a seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta E = 2 J_1 \vec{S}_{i} \sum_{j} \vec{S}_{j} + 2 J_2 \vec{S}_{i} \sum_{k} \vec{S}_{k} + 2 H S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (10) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sendo &#039;&#039;i&#039;&#039; o índice do spin sorteado a ser invertido. Nota-se que é possível determinar o próximo passo para o sistema sem mesmo calcular sua energia ou modificá-lo, basta utilizar a equação &#039;&#039;&#039;(10)&#039;&#039;&#039; e os critérios do algoritmo de Metropolis.&lt;br /&gt;
&lt;br /&gt;
= Resultados =&lt;br /&gt;
&lt;br /&gt;
== Malha Unidimensional ==&lt;br /&gt;
&lt;br /&gt;
Inicialmente, aplicamos o algoritmo descrito na seção anterior a um sistema linear com &amp;lt;math&amp;gt;N = 10000&amp;lt;/math&amp;gt; spins. O sistema é inicializado aleatoriamente de acordo com as proporções descritas nos gráficos de energia por passo da simulação e magnetização por passo da simulação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Energia:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Energia por passo de MCS 1D.png|thumb|upright=0.0|center|Energida do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
A energia pode oscilar enquanto o sistema busca alcançar o equilíbrio térmico. Essas flutuações iniciais são esperadas à medida que os spins interagem e se reorganizam para alcançar uma configuração de menor energia. Após um período inicial de termalização, espera-se que a energia média do sistema se estabilize em torno de um valor constante. Isso indica que o sistema alcançou um estado estacionário ou de equilíbrio, onde as flutuações na energia são mínimas ao longo do tempo. Mesmo após a estabilização, pequenas flutuações na energia podem ocorrer devido a mudanças locais na configuração dos spins. A forma e a amplitude das flutuações na energia podem depender da temperatura do sistema. Temperaturas mais altas tendem a resultar em maiores flutuações de energia devido à maior agitação térmica, enquanto temperaturas mais baixas podem produzir flutuações menores à medida que o sistema se aproxima do estado fundamental de menor energia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Magnetização:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Magnetização por passo de MCS 1D.png|thumb|upright=0.0|center|Magnetização do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
Inicialmente, a magnetização pode flutuar consideravelmente à medida que o sistema se ajusta para alcançar o equilíbrio termodinâmico. Essas flutuações representam o processo de relaxamento do sistema até que ele atinja um estado estável. Após um período inicial de equilibração, a magnetização tende a estabilizar-se em torno de um valor médio. Esse valor médio reflete a magnetização do sistema no estado de equilíbrio termodinâmico. &lt;br /&gt;
&lt;br /&gt;
No modelo de Ising unidimensional (1D), não ocorre uma verdadeira transição de fase ferromagnética com uma temperatura crítica finita, como acontece em dimensões mais altas, como no modelo de Ising bidimensional (2D) ou tridimensional (3D). Isso ocorre devido a uma propriedade matemática conhecida como a &amp;quot;desigualdade de Mermin-Wagner&amp;quot;. No entanto, isso não significa que não ocorram mudanças significativas no comportamento do sistema ao variar a temperatura. Por exemplo, a magnetização média pode diminuir à medida que a temperatura aumenta devido às flutuações térmicas, e o comportamento das flutuações magnéticas pode ser alterado de forma significativa.&lt;br /&gt;
&lt;br /&gt;
== Malha Bidimensional ==&lt;br /&gt;
&lt;br /&gt;
=== Interações de Primeiros Vizinhos ===&lt;br /&gt;
&lt;br /&gt;
Analogamente ao caso de uma dimensão, avaliamos os gráficos de energia e magnetização em função de dos passos da simulação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Energia ====&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Energia por passo de MCS 2D.png|thumb|upright=0.0|center|Energida do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Magnetização ====&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Magnetizaçãos por passo de MCS 2D.png|thumb|upright=0.0|center|Magnetização do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Evolução do Sistema Ferromagnético ====&lt;br /&gt;
&lt;br /&gt;
Agora podemos avaliar um aspecto qualitativo relacionado à forma como a rede evolui durante a simulação. Estamos considerando duas redes iniciadas aleatoriamente, porém com distribuições de spins &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; diferentes, sendo avaliadas em duas temperaturas arbitrárias com ordens de grandeza distintas.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T10eT1.gif|thumb|upright=0.0|center|Evolução da rede de spins com proporções iniciais iguais entre os estados dos spins. No gráfico à esquerda, observa-se a evolução da rede em alta temperatura, enquanto no gráfico à direita, acompanhamos a evolução da rede em baixa temperatura. |1000px]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede75x25T10eT1.gif|thumb|upright=0.0|center|Evolução da rede de spins onde 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;. No gráfico à esquerda, observa-se a evolução da rede em alta temperatura, enquanto no gráfico à direita, acompanhamos a evolução da rede em baixa temperatura.|1000px]]&lt;br /&gt;
&lt;br /&gt;
É possível observar que as características iniciais da rede pouco se mantiveram, sendo o fator predominante a ordem do sistema relativo à temperatura. Para temperaturas ainda mais baixas, chegamos em um estado de equilíbrio do sistema totalmente ordenado.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T10eT01.gif|thumb|upright=0.0|center|A evolução da rede de spins com proporções iniciais iguais entre os estados dos spins em baixa temperatura, com equilíbrio em fase totalmente ordenada.|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Energia e Magnetização em função da Temperatura ====&lt;br /&gt;
&lt;br /&gt;
Sob outra perspectiva, é possível avaliar o comportamento desses parâmetros em relação à temperatura. Ao fazê-lo, observamos o resultado característico de um sistema ferromagnético com ordem magnética em temperaturas baixas. Conforme a temperatura e a desordem do sistema aumentam, obtemos uma magnetização nula.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:Energia por temperatura 2D.png|thumb|upright=0.0|Relação entre energia e temperatura|350px]]&lt;br /&gt;
|[[Arquivo:Magnetização por temperatura 2D.png|thumb|upright=0.0|Relação entre magnetização e temperatura|350px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Domínio Magnético ====&lt;br /&gt;
&lt;br /&gt;
Quando a temperatura é abruptamente reduzida em um modelo de Ising bidimensional (2D), várias mudanças significativas podem ocorrer no sistema, incluindo o surgimento de domínios magnéticos.  &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:dominiomag.gif|thumb|upright=0.0|center|A evolução da rede de spins com proporções iniciais iguais entre os estados dos spins com uma mudança abrupta na temperatura e formação de domínios magnéticos.|1000px]]&lt;br /&gt;
&lt;br /&gt;
Antes da redução abrupta da temperatura, o sistema pode estar em um estado desordenado, com uma magnetização média próxima de zero devido à agitação térmica. Nesse estado, os spins da rede estão alinhados aleatoriamente, resultando em uma magnetização média próxima de zero. Quando a temperatura é repentinamente diminuída, a agitação térmica diminui, permitindo que os spins da rede se organizem em regiões ou domínios magnéticos onde os spins estão mais alinhados entre si. Isso ocorre porque a energia térmica disponível para aleatorizar os spins é reduzida, permitindo que a energia de interação magnética entre spins próximos seja mais dominante. Com o tempo, os domínios magnéticos podem crescer e se tornar mais pronunciados à medida que os spins se alinham mais fortemente com seus vizinhos. Com o tempo, o sistema alcançará um novo estado de equilíbrio termodinâmico, onde a energia magnética (associada à formação de domínios magnéticos) estará equilibrada pela energia térmica (associada à agitação térmica dos spins). Nesse estado, os domínios magnéticos podem se estabilizar, embora possam continuar a se mover e interagir devido à temperatura finita do sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Evolução do Sistema Atiferromagnético ====&lt;br /&gt;
&lt;br /&gt;
Em um modelo de Ising bidimensional com interação antiferromagnética entre primeiros vizinhos, não ocorre uma transição de fase de acordo com as definições usuais, como a existência de uma temperatura crítica finita característica de uma transição de fase de fase ferromagnética. No entanto, ainda pode haver mudanças significativas no comportamento do sistema para uma temperatura suficientemente baixa. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T01antiferro.gif|thumb|upright=0.0|center|A evolução da rede de spins com proporções iniciais iguais entre os estados dos spins com interação antiferromagnética.|1000px]]&lt;br /&gt;
&lt;br /&gt;
Inicialmente, os spins na rede serão aleatoriamente orientados para cima ou para baixo, refletindo um estado desordenado. Não haverá alinhamento preferencial entre os spins devido à natureza aleatória da configuração inicial. À medida que a simulação avança, os spins começarão a se alinhar antiparalelamente com seus vizinhos mais próximos devido à interação antiferromagnética. Isso levará à formação de domínios antiferromagnéticos, onde os spins adjacentes terão orientações opostas.&lt;br /&gt;
&lt;br /&gt;
Em vez de uma transição de fase clássica, o comportamento do sistema antiferromagnético pode ser caracterizado por mudanças contínuas na organização dos spins à medida que a temperatura é variada.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T10eT01antiferromag.gif|thumb|upright=0.0|center|A evolução da rede de spins com proporções iniciais iguais entre os estados dos spins em temperaturas diferentes.|1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Interações de Segundos Vizinhos ===&lt;br /&gt;
&lt;br /&gt;
Diversos casos foram estudados a fim de encontrar semelhanças e diferenças em seus comportamentos. O &#039;&#039;&#039;primeiro caso&#039;&#039;&#039; estudado apresenta correlação exata entre &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt;, ou seja, ambos iguais a 1. O &#039;&#039;&#039;segundo caso&#039;&#039;&#039; apresenta uma interação fraca e contrária para segundos vizinhos, ou seja &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;. O &#039;&#039;&#039;terceiro caso&#039;&#039;&#039; demonstra uma interação mais forte (mas ainda contrária) para segundos vizinhos, ou seja, &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-0.3&amp;lt;/math&amp;gt;. Por fim o &#039;&#039;&#039;quarto caso&#039;&#039;&#039; exemplifica uma situação instável, onde &amp;lt;math&amp;gt;J_1=-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-1&amp;lt;/math&amp;gt;. Todos os casos partem da mesma condição inicial, onde 75% da malha se encontra com spin positivo e 25% com spin negativo.&lt;br /&gt;
&lt;br /&gt;
==== Primeiro Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifiguais.gif|thumb|upright=0.0|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegiguais.png|thumb|upright=0.0|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magiguais.png|thumb|upright=0.0|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempiguais.png|thumb|upright=0.0|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
O primeiro caso apresenta as mesmas características que o modelo de primeiros vizinhos, sua única diferença está na intensidade da correlação local que é aumentada significativamente. Isso faz com que a malha atinja o equilíbrio de forma mais rápida, mas também faz com que a temperatura necessária para uma troca de fase aumente drasticamente. &lt;br /&gt;
&lt;br /&gt;
É importante relembrar pela equação &#039;&#039;&#039;(8)&#039;&#039;&#039; que o número de segundos vizinhos é bem maior do que primeiros vizinhos, o que faz com que &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt; tenha um papel muito mais importante na dinâmica do sistema do que &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Segundo Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifopostos1.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegopostos1.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magopostos1.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempopostos1.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
O segundo caso apresenta características bem distintas do modelo de primeiros vizinhos, mas a principal é que seu estado de equilíbrio depende muito da temperatura escolhida. O modelo de primeiros vizinhos apresenta uma troca de fase para altas temperaturas, onde o sistema é tomado por ruídos que tornam a malha paramagnética. Aqui isso também ocorre, mas existe uma segunda troca de fase para temperaturas muito baixas. Isso ocorre pois a falta de ruído permite que a fraca interação de segundos vizinhos se manifeste, criando falhas na malha que não permitem a malha se alinhar completamente. Já em temperaturas intermediárias, o ruído gerado é capaz de desfazer as falhas da malha, permitindo que ela atinja um alinhamento completo. Outra alteração importante pode ser vista na transição de fase para altas temperaturas: a temperatura crítica diminuiu ligeiramente. &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Terceiro Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifopostos3.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegopostos3.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magopostos3.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempopostos3.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
O terceiro caso apresenta características próximas do segundo, mas sua maior intensidade para interações de segundos vizinhos lhe dá características únicas. A principal característica se apresenta em baixas temperaturas que não mais possuem fase ferromagnética, as falhas na malha são muito numerosas e impedem seu alinhamento. No entanto é possível notar que ainda existe uma transição de fases, mesmo que em temperaturas muito mais baixas. Essa transição ocorre entre dois estados paramagnéticos, um causado por falhas naturais e estáveis da malha, e outro causado por ruído aleatório e inconstante gerado pela temperatura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Quarto Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifnegativo.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=-1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegnegativo.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magnegativo.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempnegativo.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Este caso demonstra um material com baixa interação magnética com campos externos, um material que naturalmente procura estados de magnetização nula. No entanto, a interação negativa de segundos vizinhos impossibilita que a malha atinja uma estado estático, pois vários estados de equilíbrio são apresentados para uma mesma energia. É importante ressaltar que o estado não possui mais uma mudança de fase já que naturalmente apresenta magnetização próxima de zero; mas o aumento de temperatura aumenta em muito seu ruído, alterando sua energia de equilíbrio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Referências =&lt;br /&gt;
&lt;br /&gt;
#Jonathan V. Selinger. 2016. &#039;&#039;&#039;Soft and Biological Matter.&#039;&#039;&#039;Springer International Publishing Switzerland. ISBN: 978-3-319-21053-7, DOI:  10.1007/978-3-319-21054-4.&lt;br /&gt;
#Maciel, Renan. 2017. &#039;&#039;&#039;Análise de frustração em sistemas antiferromagnéticos.&#039;&#039;&#039;Universidade Federal de Uberlândia Instituto de Física.&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=10010</id>
		<title>Modelo de Ising</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=10010"/>
		<updated>2024-02-22T10:25:25Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Autores: André Guimarães, Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo estudar o Modelo de Ising em uma e duas dimensões, com interações com primeiros e segundos vizinhos. Para essa finalidade, foram utilizados conhecimentos dos métodos de Monte Carlo, principalmente o algoritmo de Metropolis.&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O modelo de Ising surgiu na década de 1920 como uma simplificação do modelo de Heisenberg. Inicialmente desenvolvido para compreender o ferromagnetismo, passou, ao longo dos tempo, a ser aplicado em diversas áreas interdisciplinares, tais como biologia, neurociência, dinâmica social e economia, devido a sua simplicidade.&lt;br /&gt;
&lt;br /&gt;
Este é, provavelmente, o modelo mais comumente estudado na mecânica estatística. É possível dizer que o modelo de Ising é, para a mecânica estatística, o que a mosca-da-fruta é para a genética. O modelo possibilita ilustrar o conceito essencial de como o equilíbrio entre energia e entropia conduz a uma mudança de fase. (falta a referência)&lt;br /&gt;
&lt;br /&gt;
Foram realizados diversos estudos sobre matemática, física e as potenciais aplicações desse modelo. Neste trabalho, pretendemos explorar alguns aspectos fundamentais e os resultados possíveis de serem obtidos por meio de simulações de Monte Carlo em sistemas magnéticos com diversas dimensionalidades.&lt;br /&gt;
&lt;br /&gt;
= Problema com o modelo de Heisenberg =&lt;br /&gt;
&lt;br /&gt;
Em 1924, Wilhelm Lenz delegou a seu aluno de graduação Ernst Ising a tarefa de compreender e resolver o modelo de Heisenberg para o ferromagnetismo.&lt;br /&gt;
Heisenberg propõe um modelo de rede que busca explicar o ferromagnetismo em sólidos a partir da energia de interação entre os spins. Por exemplo, podemos considerar uma rede quadrada com contornos periódicos onde os elétrons do sólido são distribuídos uniformemente. Dessa forma, podemos descrever a energia resultante da interação entre quaisquer dois elétrons como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
E_{ij} = -J_{ij}(\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (1) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na equação acima, &amp;lt;math&amp;gt;J_{ij}&amp;lt;/math&amp;gt; representa uma constante de troca que denota a intensidade da interação &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; entre dois spins vizinhos. Caso os spins não sejam vizinhos, esse coeficiente de interação é nulo. Além disso, os vetores &amp;lt;math&amp;gt;\vec{S}_{i}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\vec{S}_{j}&amp;lt;/math&amp;gt; representam os momentos magnéticos. Portanto, através do produto escalar, a energia depende da projeção de um momento magnético em relação ao outro: será &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; se estiverem alinhados e &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; se estiverem em sentidos contrários.&lt;br /&gt;
&lt;br /&gt;
Vale ressaltar que o coeficiente J é positivo, o que implica em contribuições negativas na energia quando os vetores momento magnético são paralelos, devido ao sinal negativo da expressão. Por conseguinte, para spins antiparalelos, observa-se um aumento na energia. Como esperado, o sistema tende a permanecer no estado de menor energia. Assim, os spins do sistema tendem a se alinhar, como é característico de uma fase ferromagnética.&lt;br /&gt;
&lt;br /&gt;
Esse sistema tem um Hamiltoniano da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (2) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na expressão, os símbolos de bra-ket são usados para representar a soma sobre os primeiros vizinhos. Contudo, desse sistema, temos uma função de partição da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{Z} = \sum_{E_i} e^{\frac{E_i}{K_{B} T}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (3) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Essa expressão representa o somatório de todas as configurações da exponencial da energia de cada configuração dividida pela constante de Boltzmann e pela temperatura.&lt;br /&gt;
&lt;br /&gt;
Nesse momento, Ising se deparou com um problema, pois, além de possuir poucos recursos matemáticos na época, o número de configurações é infinito, uma vez que é possível observar qualquer direção entre os vetores momento magnético de forma contínua.&lt;br /&gt;
&lt;br /&gt;
= Modelo de Ising =&lt;br /&gt;
&lt;br /&gt;
Ising resolveu o problema das infinitas configurações assumindo que, ao invés de lidar com spins que rotacionam 360 graus nas três coordenadas espaciais, ele selecionaria uma coordenada e consideraria a projeção dos spins nela. Na prática, ele conseguiu reduzir o problema de infinitas configurações para apenas duas: ou o spin aponta para o sentido positivo do eixo, ou para o sentido negativo.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, o uso do produto escalar para os vetores de momento magnético não é mais necessário, uma vez que esses agora assumem valores entre &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;. Assim, podemos escrever o Hamiltoniano como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (4) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essas considerações, torna-se possível descrever a transição de fase entre ferromagnetismo e paramagnetismo em sistemas ao menos bidimensionais.&lt;br /&gt;
&lt;br /&gt;
Além disso, podemos introduzir um termo no Hamiltoniano responsável por descrever o sistema na presença de um campo magnético externo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (5) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
onde H é um coeficiente relacionado ao campo magnético externo. O acréscimo desse termo faz com que o estado de menor energia seja aquele favorável à direção desse campo.&lt;br /&gt;
&lt;br /&gt;
Para o estudo da transição de fase magnética definimos uma grandeza chamada de magnetização. Essa grandeza é responsável para computar a média de todos os spins do sistema e, nesse caso, será o parâmetro de ordem. Seja &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; o número de spins do sistema, escrevemos a magnetização como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{1}{N} \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (6) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ou ainda, é possível expressarmos a magnetização em função do número de spins para cima &amp;lt;math&amp;gt;N_{\uparrow}&amp;lt;/math&amp;gt; ou para baixo &amp;lt;math&amp;gt;N_{\downarrow}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{N_{\uparrow} - N_{\downarrow}}{N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (7) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essa notação, é possível observar um comportamento característico da magnetização. A magnetização será próxima de zero quando os números de spins para cima e para baixo forem próximos, ou seja, quando o sistema está em um estado de alta desordem. Por outro lado, para valores do módulo da magnetização próximos da unidade, temos um sistema bem ordenado, com praticamente todos os spins paralelos entre si.&lt;br /&gt;
&lt;br /&gt;
Esse comportamento, conforme esperado do parâmetro de ordem, auxilia na distinção clara da transição de fase de um estado ordenado para um estado desordenado. Tal visualização pode ser realizada fixando alguns parâmetros físicos do sistema e analisando o comportamento da magnetização em relação à temperatura ou ao campo externo, por exemplo.&lt;br /&gt;
&lt;br /&gt;
= Implementação =&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Metrópolis==&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metrópolis em Monte Carlo é uma técnica fundamental em simulações computacionais, amplamente utilizada em física estatística, química computacional, ciência dos materiais e várias outras áreas. Ele é utilizado para amostragem de configurações de um sistema físico ou químico de acordo com a sua distribuição de probabilidade, mesmo quando essa distribuição é desconhecida ou difícil de calcular diretamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Algoritmo de Metrópolis para o modelo de Ising:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;1) Inicialização:&#039;&#039; Começamos com uma configuração inicial do sistema. Nesse caso, iniciamos uma rede de spins aleatoriamente desemparelhados;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;2) Proposição de uma Mudança:&#039;&#039; Uma nova configuração do sistema é proposta. Isso pode ser feito mudando a configuração de um spin aleatório da rede;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;3) Avaliação da Aceitação da Mudança:&#039;&#039; Avaliamos a probabilidade de aceitar a nova configuração proposta. Se a nova configuração for mais provável do que a configuração atual, ela será aceita automaticamente. Caso contrário, a aceitação será baseada em uma probabilidade determinada pela relação entre as probabilidades das duas configurações, de acordo com a condição de balanceamento detalhado: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{A(a \rightarrow b)}{A(b \rightarrow a)} = e^{-\frac{E_b - E_a}{k_BT}} = e^{-\frac{\Delta E}{k_BT}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039;(8)&#039;&#039;&#039;&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;4) Atualização do Sistema:&#039;&#039; Se a mudança for aceita, o sistema é atualizado com a nova configuração. Caso contrário, o sistema permanece no estado atual.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;5) Repetição:&#039;&#039; Repetimos os passos 2-4 por um grande número de iterações ou até que o sistema atinja o equilíbrio termodinâmico.&lt;br /&gt;
&lt;br /&gt;
O aspecto crucial do algoritmo de Metrópolis é a garantia de que, à medida que o número de iterações tende ao infinito, a distribuição de configurações amostradas converge para a distribuição de equilíbrio do sistema.&lt;br /&gt;
&lt;br /&gt;
É válido notar que, em nossa primeira análise, avaliamos as energias de cada estado conforme a equação &#039;&#039;&#039;(4)&#039;&#039;&#039;, na qual há interação apenas entre primeiros vizinhos.&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Metrópolis para Segundos Vizinhos ==&lt;br /&gt;
&lt;br /&gt;
Com o objetivo de implementar interações de segundos vizinhos ao modelo de Ising é necessário modificá-lo levemente, transformando a equação &#039;&#039;&#039;(5)&#039;&#039;&#039; na seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J_1 \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j}) - J_2 \sum_{\langle ik \rangle} (\vec{S}_{i} \cdot \vec{S}_{k}) - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (9) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Onde o índice &#039;&#039;j&#039;&#039; indica os primeiros vizinhos do índice &#039;&#039;i&#039;&#039;, enquanto os índices &#039;&#039;k&#039;&#039; indicam os segundos vizinhos do mesmo. A partir dessa simples alteração é possível gerar comportamentos distintos, de acordo com a relação entre os parâmetros &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis garante que o modelo de Ising leve em conta a temperatura mas ainda tenda ao seu estado de menor energia. Para tal um spin aleatório da malha sofre um &amp;quot;flip&amp;quot;, ou seja, seu valor é multiplicado por &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;. Com essa modificação na malha, a energia é calculada e comparada à energia antes da modificação. Caso a variação seja negativa a alteração é aceita; mas se for positiva só será aceita com uma probabilidade de &amp;lt;math&amp;gt; e^{-\beta \Delta E} &amp;lt;/math&amp;gt;. Isso garante que altas temperaturas permitam mais alterações positivas, gerando mais ruído.&lt;br /&gt;
&lt;br /&gt;
No entanto, a fim de simplificar computacionalmente a conta, o &amp;lt;math&amp;gt; \Delta E &amp;lt;/math&amp;gt; é calculado diretamente utilizando a seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta E = 2 J_1 \vec{S}_{i} \sum_{j} \vec{S}_{j} + 2 J_2 \vec{S}_{i} \sum_{k} \vec{S}_{k} + 2 H S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (10) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sendo &#039;&#039;i&#039;&#039; o índice do spin sorteado a ser invertido. Nota-se que é possível determinar o próximo passo para o sistema sem mesmo calcular sua energia ou modificá-lo, basta utilizar a equação &#039;&#039;&#039;(10)&#039;&#039;&#039; e os critérios do algoritmo de Metropolis.&lt;br /&gt;
&lt;br /&gt;
= Resultados =&lt;br /&gt;
&lt;br /&gt;
== Malha Unidimensional ==&lt;br /&gt;
&lt;br /&gt;
Inicialmente, aplicamos o algoritmo descrito na seção anterior a um sistema linear com &amp;lt;math&amp;gt;N = 10000&amp;lt;/math&amp;gt; spins. O sistema é inicializado aleatoriamente de acordo com as proporções descritas nos gráficos de energia por passo da simulação e magnetização por passo da simulação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Energia:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Energia por passo de MCS 1D.png|thumb|upright=0.0|center|Energida do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
A energia pode oscilar enquanto o sistema busca alcançar o equilíbrio térmico. Essas flutuações iniciais são esperadas à medida que os spins interagem e se reorganizam para alcançar uma configuração de menor energia. Após um período inicial de termalização, espera-se que a energia média do sistema se estabilize em torno de um valor constante. Isso indica que o sistema alcançou um estado estacionário ou de equilíbrio, onde as flutuações na energia são mínimas ao longo do tempo. Mesmo após a estabilização, pequenas flutuações na energia podem ocorrer devido a mudanças locais na configuração dos spins. A forma e a amplitude das flutuações na energia podem depender da temperatura do sistema. Temperaturas mais altas tendem a resultar em maiores flutuações de energia devido à maior agitação térmica, enquanto temperaturas mais baixas podem produzir flutuações menores à medida que o sistema se aproxima do estado fundamental de menor energia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Magnetização:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Magnetização por passo de MCS 1D.png|thumb|upright=0.0|center|Magnetização do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
Inicialmente, a magnetização pode flutuar consideravelmente à medida que o sistema se ajusta para alcançar o equilíbrio termodinâmico. Essas flutuações representam o processo de relaxamento do sistema até que ele atinja um estado estável. Após um período inicial de equilibração, a magnetização tende a estabilizar-se em torno de um valor médio. Esse valor médio reflete a magnetização do sistema no estado de equilíbrio termodinâmico. &lt;br /&gt;
&lt;br /&gt;
No modelo de Ising unidimensional (1D), não ocorre uma verdadeira transição de fase ferromagnética com uma temperatura crítica finita, como acontece em dimensões mais altas, como no modelo de Ising bidimensional (2D) ou tridimensional (3D). Isso ocorre devido a uma propriedade matemática conhecida como a &amp;quot;desigualdade de Mermin-Wagner&amp;quot;. No entanto, isso não significa que não ocorram mudanças significativas no comportamento do sistema ao variar a temperatura. Em um modelo de Ising 1D, você ainda pode observar uma mudança nas propriedades magnéticas do sistema à medida que a temperatura é variada. Por exemplo, a magnetização média pode diminuir à medida que a temperatura aumenta devido às flutuações térmicas, e o comportamento das flutuações magnéticas pode ser alterado de forma significativa.&lt;br /&gt;
&lt;br /&gt;
== Malha Bidimensional ==&lt;br /&gt;
&lt;br /&gt;
=== Interações de Primeiros Vizinhos ===&lt;br /&gt;
&lt;br /&gt;
Analogamente ao caso de uma dimensão, avaliamos os gráficos de energia e magnetização em função de dos passos da simulação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Energia:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Energia por passo de MCS 2D.png|thumb|upright=0.0|center|Energida do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Magnetização:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Magnetizaçãos por passo de MCS 2D.png|thumb|upright=0.0|center|Magnetização do sistema por passo de Monte Carlo para diferentes configurações iniciais: (75/25) 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (50/50) 50% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;; (25/75) 25% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;.|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evolução do Sistema:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Agora podemos avaliar um aspecto qualitativo relacionado à forma como a rede evolui durante a simulação. Estamos considerando duas redes iniciadas aleatoriamente, porém com distribuições de spins &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; diferentes, sendo avaliadas em duas temperaturas arbitrárias com ordens de grandeza distintas.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T10eT1.gif|thumb|upright=0.0|center|Evolução da rede de spins com proporções iniciais iguais entre os estados dos spins. No gráfico à esquerda, observa-se a evolução da rede em alta temperatura, enquanto no gráfico à direita, acompanhamos a evolução da rede em baixa temperatura. |1000px]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede75x25T10eT1.gif|thumb|upright=0.0|center|Evolução da rede de spins onde 75% da rede é aleatoriamente &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;. No gráfico à esquerda, observa-se a evolução da rede em alta temperatura, enquanto no gráfico à direita, acompanhamos a evolução da rede em baixa temperatura.|1000px]]&lt;br /&gt;
&lt;br /&gt;
É possível observar que as características iniciais da rede pouco se mantiveram, sendo o fator predominante a ordem do sistema relativo à temperatura. Para temperaturas ainda mais baixas, chegamos em um estado de equilíbrio do sistema totalmente ordenado.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:rede50x50T10eT01.gif|thumb|upright=0.0|center|A evolução da rede de spins com proporções iniciais iguais entre os estados dos spins em baixa temperatura, com equilíbrio em fase totalmente ordenada.|1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Interações de Segundos Vizinhos ===&lt;br /&gt;
&lt;br /&gt;
Diversos casos foram estudados a fim de encontrar semelhanças e diferenças em seus comportamentos. O &#039;&#039;&#039;primeiro caso&#039;&#039;&#039; estudado apresenta correlação exata entre &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt;, ou seja, ambos iguais a 1. O &#039;&#039;&#039;segundo caso&#039;&#039;&#039; apresenta uma interação fraca e contrária para segundos vizinhos, ou seja &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;. O &#039;&#039;&#039;terceiro caso&#039;&#039;&#039; demonstra uma interação mais forte (mas ainda contrária) para segundos vizinhos, ou seja, &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-0.3&amp;lt;/math&amp;gt;. Por fim o &#039;&#039;&#039;quarto caso&#039;&#039;&#039; exemplifica uma situação instável, onde &amp;lt;math&amp;gt;J_1=-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-1&amp;lt;/math&amp;gt;. Todos os casos partem da mesma condição inicial, onde 75% da malha se encontra com spin positivo e 25% com spin negativo.&lt;br /&gt;
&lt;br /&gt;
==== Primeiro Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifiguais.gif|thumb|upright=0.0|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegiguais.png|thumb|upright=0.0|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magiguais.png|thumb|upright=0.0|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempiguais.png|thumb|upright=0.0|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
O primeiro caso apresenta as mesmas características que o modelo de primeiros vizinhos, sua única diferença está na intensidade da correlação local que é aumentada significativamente. Isso faz com que a malha atinja o equilíbrio de forma mais rápida, mas também faz com que a temperatura necessária para uma troca de fase aumente drasticamente. &lt;br /&gt;
&lt;br /&gt;
É importante relembrar pela equação &#039;&#039;&#039;(8)&#039;&#039;&#039; que o número de segundos vizinhos é bem maior do que primeiros vizinhos, o que faz com que &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt; tenha um papel muito mais importante na dinâmica do sistema do que &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Segundo Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifopostos1.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegopostos1.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magopostos1.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempopostos1.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
O segundo caso apresenta características bem distintas do modelo de primeiros vizinhos, mas a principal é que seu estado de equilíbrio depende muito da temperatura escolhida. O modelo de primeiros vizinhos apresenta uma troca de fase para altas temperaturas, onde o sistema é tomado por ruídos que tornam a malha paramagnética. Aqui isso também ocorre, mas existe uma segunda troca de fase para temperaturas muito baixas. Isso ocorre pois a falta de ruído permite que a fraca interação de segundos vizinhos se manifeste, criando falhas na malha que não permitem a malha se alinhar completamente. Já em temperaturas intermediárias, o ruído gerado é capaz de desfazer as falhas da malha, permitindo que ela atinja um alinhamento completo. Outra alteração importante pode ser vista na transição de fase para altas temperaturas: a temperatura crítica diminuiu ligeiramente. &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Terceiro Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifopostos3.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegopostos3.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magopostos3.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempopostos3.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
O terceiro caso apresenta características próximas do segundo, mas sua maior intensidade para interações de segundos vizinhos lhe dá características únicas. A principal característica se apresenta em baixas temperaturas que não mais possuem fase ferromagnética, as falhas na malha são muito numerosas e impedem seu alinhamento. No entanto é possível notar que ainda existe uma transição de fases, mesmo que em temperaturas muito mais baixas. Essa transição ocorre entre dois estados paramagnéticos, um causado por falhas naturais e estáveis da malha, e outro causado por ruído aleatório e inconstante gerado pela temperatura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Quarto Caso ====&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:gifnegativo.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=-1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|350px]]&lt;br /&gt;
|[[Arquivo:enegnegativo.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot; style=&amp;quot;clear:right; margin: 0 0 1em 1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:magnegativo.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempnegativo.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|485px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Este caso demonstra um material com baixa interação magnética com campos externos, um material que naturalmente procura estados de magnetização nula. No entanto, a interação negativa de segundos vizinhos impossibilita que a malha atinja uma estado estático, pois vários estados de equilíbrio são apresentados para uma mesma energia. É importante ressaltar que o estado não possui mais uma mudança de fase já que naturalmente apresenta magnetização próxima de zero; mas o aumento de temperatura aumenta em muito seu ruído, alterando sua energia de equilíbrio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=9975</id>
		<title>Modelo de Ising</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=9975"/>
		<updated>2024-02-22T00:16:51Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Autores: André Guimarães, Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo estudar o Modelo de Ising...&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O modelo de Ising surgiu na década de 1920 como uma simplificação do modelo de Heisenberg. Inicialmente desenvolvido para compreender o ferromagnetismo, passou, ao longo dos tempo, a ser aplicado em diversas áreas interdisciplinares, tais como biologia, neurociência, dinâmica social e economia, devido a sua simplicidade.&lt;br /&gt;
&lt;br /&gt;
Este é, provavelmente, o modelo mais comumente estudado na mecânica estatística. É possível dizer que o modelo de Ising é, para a mecânica estatística, o que a mosca-da-fruta é para a genética. O modelo possibilita ilustrar o conceito essencial de como o equilíbrio entre energia e entropia conduz a uma mudança de fase. (falta a referência)&lt;br /&gt;
&lt;br /&gt;
Foram realizados diversos estudos sobre matemática, física e as potenciais aplicações desse modelo. Neste trabalho, pretendemos explorar alguns aspectos fundamentais e os resultados possíveis de serem obtidos por meio de simulações de Monte Carlo em sistemas magnéticos com diversas dimensionalidades.&lt;br /&gt;
&lt;br /&gt;
= Problema com o modelo de Heisenberg =&lt;br /&gt;
&lt;br /&gt;
Em 1924, Wilhelm Lenz delegou a seu aluno de graduação Ernst Ising a tarefa de compreender e resolver o modelo de Heisenberg para o ferromagnetismo.&lt;br /&gt;
Heisenberg propõe um modelo de rede que busca explicar o ferromagnetismo em sólidos a partir da energia de interação entre os spins. Por exemplo, podemos considerar uma rede quadrada com contornos periódicos onde os elétrons do sólido são distribuídos uniformemente. Dessa forma, podemos descrever a energia resultante da interação entre quaisquer dois elétrons como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
E_{ij} = -J_{ij}(\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (1) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na equação acima, &amp;lt;math&amp;gt;J_{ij}&amp;lt;/math&amp;gt; representa uma constante de troca que denota a intensidade da interação &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; entre dois spins vizinhos. Caso os spins não sejam vizinhos, esse coeficiente de interação é nulo. Além disso, os vetores &amp;lt;math&amp;gt;\vec{S}_{i}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\vec{S}_{j}&amp;lt;/math&amp;gt; representam os momentos magnéticos. Portanto, através do produto escalar, a energia depende da projeção de um momento magnético em relação ao outro: será &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; se estiverem alinhados e &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; se estiverem em sentidos contrários.&lt;br /&gt;
&lt;br /&gt;
Vale ressaltar que o coeficiente J é positivo, o que implica em contribuições negativas na energia quando os vetores momento magnético são paralelos, devido ao sinal negativo da expressão. Por conseguinte, para spins antiparalelos, observa-se um aumento na energia. Como esperado, o sistema tende a permanecer no estado de menor energia. Assim, os spins do sistema tendem a se alinhar, como é característico de uma fase ferromagnética.&lt;br /&gt;
&lt;br /&gt;
Esse sistema tem um Hamiltoniano da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (2) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na expressão, os símbolos de bra-ket são usados para representar a soma sobre os primeiros vizinhos. Contudo, desse sistema, temos uma função de partição da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{Z} = \sum_{E_i} e^{\frac{E_i}{K_{B} T}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (3) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Essa expressão representa o somatório de todas as configurações da exponencial da energia de cada configuração dividida pela constante de Boltzmann e pela temperatura.&lt;br /&gt;
&lt;br /&gt;
Nesse momento, Ising se deparou com um problema, pois, além de possuir poucos recursos matemáticos na época, o número de configurações é infinito, uma vez que é possível observar qualquer direção entre os vetores momento magnético de forma contínua.&lt;br /&gt;
&lt;br /&gt;
= Modelo de Ising =&lt;br /&gt;
&lt;br /&gt;
Ising resolveu o problema das infinitas configurações assumindo que, ao invés de lidar com spins que rotacionam 360 graus nas três coordenadas espaciais, ele selecionaria uma coordenada e consideraria a projeção dos spins nela. Na prática, ele conseguiu reduzir o problema de infinitas configurações para apenas duas: ou o spin aponta para o sentido positivo do eixo, ou para o sentido negativo.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, o uso do produto escalar para os vetores de momento magnético não é mais necessário, uma vez que esses agora assumem valores entre &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;. Assim, podemos escrever o Hamiltoniano como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (4) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essas considerações, torna-se possível descrever a transição de fase entre ferromagnetismo e paramagnetismo em sistemas ao menos bidimensionais.&lt;br /&gt;
&lt;br /&gt;
Além disso, podemos introduzir um termo no Hamiltoniano responsável por descrever o sistema na presença de um campo magnético externo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (5) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
onde H é um coeficiente relacionado ao campo magnético externo. O acréscimo desse termo faz com que o estado de menor energia seja aquele favorável à direção desse campo.&lt;br /&gt;
&lt;br /&gt;
Para o estudo da transição de fase magnética definimos uma grandeza chamada de magnetização. Essa grandeza é responsável para computar a média de todos os spins do sistema e, nesse caso, será o parâmetro de ordem. Seja &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; o número de spins do sistema, escrevemos a magnetização como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{1}{N} \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (6) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ou ainda, é possível expressarmos a magnetização em função do número de spins para cima &amp;lt;math&amp;gt;N_{\uparrow}&amp;lt;/math&amp;gt; ou para baixo &amp;lt;math&amp;gt;N_{\downarrow}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{N_{\uparrow} - N_{\downarrow}}{N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (7) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essa notação, é possível observar um comportamento característico da magnetização. A magnetização será próxima de zero quando os números de spins para cima e para baixo forem próximos, ou seja, quando o sistema está em um estado de alta desordem. Por outro lado, para valores do módulo da magnetização próximos da unidade, temos um sistema bem ordenado, com praticamente todos os spins paralelos entre si.&lt;br /&gt;
&lt;br /&gt;
Esse comportamento, conforme esperado do parâmetro de ordem, auxilia na distinção clara da transição de fase de um estado ordenado para um estado desordenado. Tal visualização pode ser realizada fixando alguns parâmetros físicos do sistema e analisando o comportamento da magnetização em relação à temperatura ou ao campo externo, por exemplo.&lt;br /&gt;
&lt;br /&gt;
= Implementação (protótipo) =&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Metropolis para primeiros vizinhos ==&lt;br /&gt;
&lt;br /&gt;
Com o objetivo de implementar interações de segundos vizinhos ao modelo de Ising é necessário modificá-lo levemente, transformando a equação &#039;&#039;&#039;(5)&#039;&#039;&#039; na seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J_1 \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j}) - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (8) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Onde o índice &#039;&#039;j&#039;&#039; indica os primeiros vizinhos do índice &#039;&#039;i&#039;&#039;, enquanto os índices &#039;&#039;k&#039;&#039; indicam os segundos vizinhos do mesmo. A partir dessa simples alteração é possível gerar comportamentos distintos, de acordo com a relação entre os parâmetros &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis garante que o modelo de Ising leve em conta a temperatura mas ainda tenda ao seu estado de menor energia. Para tal um spin aleatório da malha sofre um &amp;quot;flip&amp;quot;, ou seja, seu valor é multiplicado por &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;. Com essa modificação na malha, a energia é calculada e comparada à energia antes da modificação. Caso a variação seja negativa a alteração é aceita; mas se for positiva só será aceita com uma probabilidade de &amp;lt;math&amp;gt; e^{-\beta \Delta E} &amp;lt;/math&amp;gt;. Isso garante que altas temperaturas permitam mais alterações positivas, gerando mais ruído.&lt;br /&gt;
&lt;br /&gt;
No entanto, a fim de simplificar computacionalmente a conta, o &amp;lt;math&amp;gt; \Delta E &amp;lt;/math&amp;gt; é calculado diretamente utilizando a seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta E = 2 J_1 \vec{S}_{i} \sum_{j} \vec{S}_{j} + 2 H S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (9) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sendo &#039;&#039;i&#039;&#039; o índice do spin sorteado a ser invertido. Nota-se que é possível determinar o próximo passo para o sistema sem mesmo calcular sua energia ou modificá-lo, basta utilizar a equação &#039;&#039;&#039;(9)&#039;&#039;&#039; e os critérios do algoritmo de Metropolis.&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Metropolis para segundos vizinhos ==&lt;br /&gt;
&lt;br /&gt;
Com o objetivo de implementar interações de segundos vizinhos ao modelo de Ising é necessário modificá-lo levemente, transformando a equação &#039;&#039;&#039;(5)&#039;&#039;&#039; na seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J_1 \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j}) - J_2 \sum_{\langle ik \rangle} (\vec{S}_{i} \cdot \vec{S}_{k}) - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (10) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Onde o índice &#039;&#039;j&#039;&#039; indica os primeiros vizinhos do índice &#039;&#039;i&#039;&#039;, enquanto os índices &#039;&#039;k&#039;&#039; indicam os segundos vizinhos do mesmo. A partir dessa simples alteração é possível gerar comportamentos distintos, de acordo com a relação entre os parâmetros &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis garante que o modelo de Ising leve em conta a temperatura mas ainda tenda ao seu estado de menor energia. Para tal um spin aleatório da malha sofre um &amp;quot;flip&amp;quot;, ou seja, seu valor é multiplicado por &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;. Com essa modificação na malha, a energia é calculada e comparada à energia antes da modificação. Caso a variação seja negativa a alteração é aceita; mas se for positiva só será aceita com uma probabilidade de &amp;lt;math&amp;gt; e^{-\beta \Delta E} &amp;lt;/math&amp;gt;. Isso garante que altas temperaturas permitam mais alterações positivas, gerando mais ruído.&lt;br /&gt;
&lt;br /&gt;
No entanto, a fim de simplificar computacionalmente a conta, o &amp;lt;math&amp;gt; \Delta E &amp;lt;/math&amp;gt; é calculado diretamente utilizando a seguinte equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta E = 2 J_1 \vec{S}_{i} \sum_{j} \vec{S}_{j} + 2 J_2 \vec{S}_{i} \sum_{k} \vec{S}_{k} + 2 H S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (11) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sendo &#039;&#039;i&#039;&#039; o índice do spin sorteado a ser invertido. Nota-se que é possível determinar o próximo passo para o sistema sem mesmo calcular sua energia ou modificá-lo, basta utilizar a equação &#039;&#039;&#039;(11)&#039;&#039;&#039; e os critérios do algoritmo de Metropolis.&lt;br /&gt;
&lt;br /&gt;
= Resultados =&lt;br /&gt;
&lt;br /&gt;
== Malha Unidimensional ==&lt;br /&gt;
&lt;br /&gt;
== Malha Bidimensional ==&lt;br /&gt;
&lt;br /&gt;
=== Interações de Primeiros Vizinhos ===&lt;br /&gt;
&lt;br /&gt;
teste &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gifsteste.gif|thumb|upright=0.0|right|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Interações de Segundos Vizinhos ===&lt;br /&gt;
&lt;br /&gt;
Diversos casos foram estudados a fim de encontrar semelhanças e diferenças em seus comportamentos. O &#039;&#039;&#039;primeiro caso&#039;&#039;&#039; estudado apresenta correlação exata entre &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt;, ou seja, ambos iguais a 1. O &#039;&#039;&#039;segundo caso&#039;&#039;&#039; apresenta uma interação fraca e contrária para segundos vizinhos, ou seja &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;. O &#039;&#039;&#039;terceiro caso&#039;&#039;&#039; demonstra uma interação mais forte (mas ainda contrária) para segundos vizinhos, ou seja, &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-0.3&amp;lt;/math&amp;gt;. Por fim o &#039;&#039;&#039;quarto caso&#039;&#039;&#039; exemplifica uma situação instável, onde &amp;lt;math&amp;gt;J_1=-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;J_2=-1&amp;lt;/math&amp;gt;. Todos os casos partem da mesma condição inicial, onde 75% da malha se encontra com spin positivo e 25% com spin negativo.&lt;br /&gt;
&lt;br /&gt;
==== Primeiro Caso ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gifiguais.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|300px]]&lt;br /&gt;
&lt;br /&gt;
O primeiro caso apresenta as mesmas características que o modelo de primeiros vizinhos, sua única diferença está na intensidade da correlação local que é aumentada significativamente. Isso faz com que a malha atinja o equilíbrio de forma mais rápida, mas também faz com que a temperatura necessária para uma troca de fase aumente drasticamente. &lt;br /&gt;
&lt;br /&gt;
É importante relembrar pela equação &#039;&#039;&#039;(8)&#039;&#039;&#039; que o número de segundos vizinhos é bem maior do que primeiros vizinhos, o que faz com que &amp;lt;math&amp;gt;J_2&amp;lt;/math&amp;gt; tenha um papel muito mais importante na dinâmica do sistema do que &amp;lt;math&amp;gt;J_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:magiguais.png|thumb|upright=0.0|right|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|450px]]&lt;br /&gt;
|[[Arquivo:tempiguais.png|thumb|upright=0.0|right|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|[[Arquivo:enegiguais.png|thumb|upright=0.0|right|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Segundo Caso ====&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gifopostos1.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|300px]]&lt;br /&gt;
&lt;br /&gt;
O segundo caso apresenta características bem distintas do modelo de primeiros vizinhos, mas a principal é que seu estado de equilíbrio depende muito da temperatura escolhida. O modelo de primeiros vizinhos apresenta uma troca de fase para altas temperaturas, onde o sistema é tomado por ruídos que tornam a malha paramagnética. Aqui isso também ocorre, mas existe uma segunda troca de fase para temperaturas muito baixas. Isso ocorre pois a falta de ruído permite que a fraca interação de segundos vizinhos se manifeste, criando falhas na malha que não permitem a malha se alinhar completamente. Já em temperaturas intermediárias, o ruído gerado é capaz de desfazer as falhas da malha, permitindo que ela atinja um alinhamento completo. Outra alteração importante pode ser vista na transição de fase para altas temperaturas: a temperatura crítica diminuiu ligeiramente. &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:enegopostos1.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|[[Arquivo:magopostos1.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|[[Arquivo:tempopostos1.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Terceiro Caso ====&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gifopostos3.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.3&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|300px]]&lt;br /&gt;
&lt;br /&gt;
O segundo caso apresenta características próximas do segundo, mas sua maior intensidade para interações de segundos vizinhos lhe dá características únicas. A principal característica se apresenta em baixas temperaturas que não mais possuem fase ferromagnética, as falhas na malha são muito numerosas e impedem seu alinhamento. No entanto é possível notar que ainda existe uma transição de fases, mesmo que em temperaturas muito mais baixas. Essa transição ocorre entre dois estados paramagnéticos, um causado por falhas naturais e estáveis da malha, e outro causado por ruído aleatório e inconstante gerado pela temperatura.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:enegopostos3.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|[[Arquivo:magopostos3.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|[[Arquivo:tempopostos3.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Quarto Caso ====&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gifnegativo.gif|thumb|upright=0.0|right|Evolução temporal para &amp;lt;math&amp;gt;J_1=-1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;.|300px]]&lt;br /&gt;
&lt;br /&gt;
Este caso demonstra um material com baixa interação magnética com campos externos, um material que naturalmente procura estados de magnetização nula. No entanto, a interação negativa de segundos vizinhos impossibilita que a malha atinja uma estado estático, pois vários estados de equilíbrio são apresentados para uma mesma energia. É importante ressaltar que o estado não possui mais uma mudança de fase já que naturalmente apresenta magnetização próxima de zero; mas o aumento de temperatura aumenta em muito seu ruído, alterando sua energia de equilíbrio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:enegnegativo.png|thumb|upright=0.0|center|Evolução temporal da energia para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|[[Arquivo:magnegativo.png|thumb|upright=0.0|center|Evolução temporal da magnetização para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.1&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|[[Arquivo:tempnegativo.png|thumb|upright=0.0|center|Relação entre temperatura e magnetização de equilíbrio para &amp;lt;math&amp;gt;J_1=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;J_2=-0.1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;|400px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2023/2&amp;diff=9944</id>
		<title>Trabalhos 2023/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2023/2&amp;diff=9944"/>
		<updated>2024-02-21T20:00:07Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: /*  Modelo de Ising em 1D e 2D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== [[ Equação de Kuramoto–Sivashinsky ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Métodos Computacionais para Estudo de Fenômenos Ondulatórios ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Modelo de Ising ]] ===&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2023/2&amp;diff=9943</id>
		<title>Trabalhos 2023/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2023/2&amp;diff=9943"/>
		<updated>2024-02-21T19:59:30Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== [[ Equação de Kuramoto–Sivashinsky ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Métodos Computacionais para Estudo de Fenômenos Ondulatórios ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Modelo de Ising em 1D e 2D]] ===&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=9942</id>
		<title>Modelo de Ising</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=9942"/>
		<updated>2024-02-20T00:05:35Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Autores: André Guimarães, Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo estudar o Modelo de Ising...&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O modelo de Ising surgiu na década de 1920 como uma simplificação do modelo de Heisenberg. Inicialmente desenvolvido para compreender o ferromagnetismo, passou, ao longo dos tempo, a ser aplicado em diversas áreas interdisciplinares, tais como biologia, neurociência, dinâmica social e dinâmica, devido a sua simplicidade.&lt;br /&gt;
&lt;br /&gt;
Este é, provavelmente, o modelo mais comumente estudado na mecânica estatística. É possível dizer que o modelo de Ising é, para a mecânica estatística, o que a mosca-da-fruta é para a genética. O modelo possibilita ilustrar o conceito essencial de como o equilíbrio entre energia e entropia conduz a uma mudança de fase. (falta a referência)&lt;br /&gt;
&lt;br /&gt;
Foram realizados diversos estudos sobre matemática, física e as potenciais aplicações desse modelo. Neste trabalho, pretendemos explorar alguns aspectos fundamentais e os resultados possíveis de serem obtidos por meio de simulações de Monte Carlo em sistemas magnéticos com diversas dimensionalidades.&lt;br /&gt;
&lt;br /&gt;
= Problema com o modelo de Heisenberg =&lt;br /&gt;
&lt;br /&gt;
Em 1924, Wilhelm Lenz delegou a seu aluno de graduação Ernst Ising a tarefa de compreender e resolver o modelo de Heisenberg para o ferromagnetismo.&lt;br /&gt;
Heisenberg propõe um modelo de rede que busca explicar o ferromagnetismo em sólidos a partir da energia de interação entre os spins. Por exemplo, podemos considerar uma rede quadrada com contornos periódicos onde os elétrons do sólido são distribuídos uniformemente. Dessa forma, podemos descrever a energia resultante da interação entre quaisquer dois elétrons como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
E_{ij} = -J_{ij}(\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (1) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na equação acima, &amp;lt;math&amp;gt;J_{ij}&amp;lt;/math&amp;gt; representa uma constante de troca que denota a intensidade da interação &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; entre dois spins vizinhos. Caso os spins não sejam vizinhos, esse coeficiente de interação é nulo. Além disso, os vetores &amp;lt;math&amp;gt;\vec{S}_{i}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\vec{S}_{j}&amp;lt;/math&amp;gt; representam os momentos magnéticos. Portanto, através do produto escalar, a energia depende da projeção de um momento magnético em relação ao outro: será &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; se estiverem alinhados e &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; se estiverem em sentidos contrários.&lt;br /&gt;
&lt;br /&gt;
Vale ressaltar que o coeficiente J é positivo, o que implica em contribuições negativas na energia quando os vetores momento magnético são paralelos, devido ao sinal negativo da expressão. Por conseguinte, para spins antiparalelos, observa-se um aumento na energia. Como esperado, o sistema tende a permanecer no estado de menor energia. Assim, os spins do sistema tendem a se alinhar, como é característico de uma fase ferromagnética.&lt;br /&gt;
&lt;br /&gt;
Esse sistema tem um Hamiltoniano da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (2) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na expressão, os símbolos de bra-ket são usados para representar a soma sobre os primeiros vizinhos. Contudo, desse sistema, temos uma função de partição da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{Z} = \sum_{E_i} e^{\frac{E_i}{K_{B} T}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (3) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Essa expressão representa o somatório de todas as configurações da exponencial da energia de cada configuração dividida pela constante de Boltzmann e pela temperatura.&lt;br /&gt;
&lt;br /&gt;
Nesse momento, Ising se deparou com um problema, pois, além de possuir poucos recursos matemáticos na época, o número de configurações é infinito, uma vez que é possível observar qualquer direção entre os vetores momento magnético de forma contínua.&lt;br /&gt;
&lt;br /&gt;
= Modelo de Ising =&lt;br /&gt;
&lt;br /&gt;
Ising resolveu o problema das infinitas configurações assumindo que, ao invés de lidar com spins que rotacionam 360 graus nas três coordenadas espaciais, ele selecionaria uma coordenada e consideraria a projeção dos spins nela. Na prática, ele conseguiu reduzir o problema de infinitas configurações para apenas duas: ou o spin aponta para o sentido positivo do eixo, ou para o sentido negativo.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, o uso do produto escalar para os vetores de momento magnético não é mais necessário, uma vez que esses agora assumem valores entre &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;. Assim, podemos escrever o Hamiltoniano como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (4) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essas considerações, torna-se possível descrever a transição de fase entre ferromagnetismo e paramagnetismo em sistemas ao menos bidimensionais.&lt;br /&gt;
&lt;br /&gt;
Além disso, podemos introduzir um termo no Hamiltoniano responsável por descrever o sistema na presença de um campo magnético externo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (5) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
onde H é um coeficiente relacionado ao campo magnético externo. O acréscimo desse termo faz com que o estado de menor energia seja aquele favorável à direção desse campo.&lt;br /&gt;
&lt;br /&gt;
Para o estudo da transição de fase magnética definimos uma grandeza chamada de magnetização. Essa grandeza é responsável para computar a média de todos os spins do sistema e, nesse caso, será o parâmetro de ordem. Seja &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; o número de spins do sistema, escrevemos a magnetização como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{1}{N} \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (6) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ou ainda, é possível expressarmos a magnetização em função do número de spins para cima &amp;lt;math&amp;gt;N_{\uparrow}&amp;lt;/math&amp;gt; ou para baixo &amp;lt;math&amp;gt;N_{\downarrow}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{N_{\uparrow} - N_{\downarrow}}{N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (7) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essa notação, é possível observar um comportamento característico da magnetização. A magnetização será próxima de zero quando os números de spins para cima e para baixo forem próximos, ou seja, quando o sistema está em um estado de alta desordem. Por outro lado, para valores do módulo da magnetização próximos da unidade, temos um sistema bem ordenado, com praticamente todos os spins paralelos entre si.&lt;br /&gt;
&lt;br /&gt;
Esse comportamento, conforme esperado do parâmetro de ordem, auxilia na distinção clara da transição de fase de um estado ordenado para um estado desordenado. Tal visualização pode ser realizada fixando alguns parâmetros físicos do sistema e analisando o comportamento da magnetização em relação à temperatura ou ao campo externo, por exemplo.&lt;br /&gt;
&lt;br /&gt;
== Implementação (protótipo) ==&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=9941</id>
		<title>Modelo de Ising</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Ising&amp;diff=9941"/>
		<updated>2024-02-20T00:02:34Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: Criou página com &amp;#039;&amp;#039;&amp;#039;&amp;#039; Autores: André Guimarães, Filssen Schereiber, João Roth e Lucas Oliveira &amp;#039;&amp;#039;&amp;#039;  Este trabalho tem como objetivo estudar o Modelo de Ising...  = Introdução =  O modelo de Ising surgiu na década de 1920 como uma simplificação do modelo de Heisenberg. Inicialmente desenvolvido para compreender o ferromagnetismo, passou, ao longo dos tempo, a ser aplicado em diversas áreas interdisciplinares, tais como biologia, neurociência, dinâmica social e dinâmica, devido...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Autores: André Guimarães, Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo estudar o Modelo de Ising...&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O modelo de Ising surgiu na década de 1920 como uma simplificação do modelo de Heisenberg. Inicialmente desenvolvido para compreender o ferromagnetismo, passou, ao longo dos tempo, a ser aplicado em diversas áreas interdisciplinares, tais como biologia, neurociência, dinâmica social e dinâmica, devido a sua simplicidade.&lt;br /&gt;
&lt;br /&gt;
Este é, provavelmente, o modelo mais comumente estudado na mecânica estatística. É possível dizer que o modelo de Ising é, para a mecânica estatística, o que a mosca-da-fruta é para a genética. O modelo possibilita ilustrar o conceito essencial de como o equilíbrio entre energia e entropia conduz a uma mudança de fase. (falta a referência)&lt;br /&gt;
&lt;br /&gt;
Foram realizados diversos estudos sobre matemática, física e as potenciais aplicações desse modelo. Neste trabalho, pretendemos explorar alguns aspectos fundamentais e os resultados possíveis de serem obtidos por meio de simulações de Monte Carlo em sistemas magnéticos com diversas dimensionalidades.&lt;br /&gt;
&lt;br /&gt;
= Problema com o modelo de Heisenberg =&lt;br /&gt;
&lt;br /&gt;
Em 1924, Wilhelm Lenz delegou a seu aluno de graduação Ernst Ising a tarefa de compreender e resolver o modelo de Heisenberg para o ferromagnetismo.&lt;br /&gt;
Heisenberg propõe um modelo de rede que busca explicar o ferromagnetismo em sólidos a partir da energia de interação entre os spins. Por exemplo, podemos considerar uma rede quadrada com contornos periódicos onde os elétrons do sólido são distribuídos uniformemente. Dessa forma, podemos descrever a energia resultante da interação entre quaisquer dois elétrons como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
E_{ij} = -J_{ij}(\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (1) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na equação acima, &amp;lt;math&amp;gt;J_{ij}&amp;lt;/math&amp;gt; representa uma constante de troca que denota a intensidade da interação &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; entre dois spins vizinhos. Caso os spins não sejam vizinhos, esse coeficiente de interação é nulo. Além disso, os vetores &amp;lt;math&amp;gt;\vec{S}_{i}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\vec{S}_{j}&amp;lt;/math&amp;gt; representam os momentos magnéticos. Portanto, através do produto escalar, a energia depende da projeção de um momento magnético em relação ao outro: será &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; se estiverem alinhados e &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; se estiverem em sentidos contrários.&lt;br /&gt;
&lt;br /&gt;
Vale ressaltar que o coeficiente J é positivo, o que implica em contribuições negativas na energia quando os vetores momento magnético são paralelos, devido ao sinal negativo da expressão. Por conseguinte, para spins antiparalelos, observa-se um aumento na energia. Como esperado, o sistema tende a permanecer no estado de menor energia. Assim, os spins do sistema tendem a se alinhar, como é característico de uma fase ferromagnética.&lt;br /&gt;
&lt;br /&gt;
Esse sistema tem um Hamiltoniano da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} (\vec{S}_{i} \cdot \vec{S}_{j})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (2) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Na expressão, os símbolos de bra-ket são usados para representar a soma sobre os primeiros vizinhos. Contudo, desse sistema, temos uma função de partição da forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{Z} = \sum_{E_i} e^{\frac{E_i}{K_{B} T}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (3) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Essa expressão representa o somatório de todas as configurações da exponencial da energia de cada configuração dividida pela constante de Boltzmann e pela temperatura.&lt;br /&gt;
&lt;br /&gt;
Nesse momento, Ising se deparou com um problema, pois, além de possuir poucos recursos matemáticos na época, o número de configurações é infinito, uma vez que é possível observar qualquer direção entre os vetores momento magnético de forma contínua.&lt;br /&gt;
&lt;br /&gt;
= Modelo de Ising =&lt;br /&gt;
&lt;br /&gt;
Ising resolveu o problema das infinitas configurações assumindo que, ao invés de lidar com spins que rotacionam 360 graus nas três coordenadas espaciais, ele selecionaria uma coordenada e consideraria a projeção dos spins nela. Na prática, ele conseguiu reduzir o problema de infinitas configurações para apenas duas: ou o spin aponta para o sentido positivo do eixo, ou para o sentido negativo.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, o uso do produto escalar para os vetores de momento magnético não é mais necessário, uma vez que esses agora assumem valores entre &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt;. Assim, podemos escrever o Hamiltoniano como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (4) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essas considerações, torna-se possível descrever a transição de fase entre ferromagnetismo e paramagnetismo em sistemas ao menos bidimensionais.&lt;br /&gt;
&lt;br /&gt;
Além disso, podemos introduzir um termo no Hamiltoniano responsável por descrever o sistema na presença de um campo magnético externo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{H} = -J \sum_{\langle ij \rangle} S_i S_j - H \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (5) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
onde H é um coeficiente relacionado ao campo magnético externo. O acréscimo desse termo faz com que o estado de menor energia seja aquele favorável à direção desse campo.&lt;br /&gt;
&lt;br /&gt;
Para o estudo da transição de fase magnética definimos uma grandeza chamada de magnetização. Essa grandeza é responsável para computar a média de todos os spins do sistema e, nesse caso, será o parâmetro de ordem. Seja &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; o número de spins do sistema, escrevemos a magnetização como:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{1}{N} \sum_{i} S_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (6) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ou ainda, é possível expressarmos a magnetização em função do número de spins para cima &amp;lt;math&amp;gt;N_{\uparrow}&amp;lt;/math&amp;gt; ou para baixo &amp;lt;math&amp;gt;N_{\downarrow}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
M = \frac{N_{\uparrow} - N_{\downarrow}}{N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&#039;&#039;&#039; (7) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Com essa notação, é possível observar um comportamento característico da magnetização. A magnetização será próxima de zero quando os números de spins para cima e para baixo forem próximos, ou seja, quando o sistema está em um estado de alta desordem. Por outro lado, para valores do módulo da magnetização próximos da unidade, temos um sistema bem ordenado, com praticamente todos os spins paralelos entre si.&lt;br /&gt;
&lt;br /&gt;
Esse comportamento, conforme esperado do parâmetro de ordem, auxilia na distinção clara da transição de fase de um estado ordenado para um estado desordenado. Tal visualização pode ser realizada fixando alguns parâmetros físicos do sistema e analisando o comportamento da magnetização em relação à temperatura ou ao campo externo, por exemplo.&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2023/2&amp;diff=9940</id>
		<title>Trabalhos 2023/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2023/2&amp;diff=9940"/>
		<updated>2024-02-19T22:39:35Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== [[ Equação de Kuramoto–Sivashinsky ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Métodos Computacionais para Estudo de Fenômenos Ondulatórios ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Modelo de Ising ]] ===&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9893</id>
		<title>Métodos Computacionais para Estudo de Fenômenos Ondulatórios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9893"/>
		<updated>2024-02-05T22:50:43Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: /* Solução Analítica */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo realizar um estudo introdutório da equação da onda, adotando uma abordagem computacional que proporciona uma base teórica sólida e intuitiva. Inicialmente, é realizada a implementação de uma solução numérica (FTCS) para a equação da advecção, visando o estudo da propagação de uma perturbação e explorando aspectos computacionais fundamentais. Em seguida, a equação da onda é aplicada em uma dimensão, permitindo uma investigação detalhada de fenômenos ondulatórios, tais como reflexão, interferência e refração. A abordagem é estendida para duas dimensões, incluindo a análise dos efeitos de contorno nesse contexto. Por fim, o trabalho aprofunda-se no estudo do fenômeno de difração, contribuindo para uma compreensão mais enriquecedora dos aspectos complexos dos fenômenos ondulatórios em múltiplas dimensões.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O que é uma onda exatamente? De acordo com &#039;A Student’s Guide to Waves&#039;, a literatura apresenta diversas definições. Contudo, a característica mais comum que define uma onda é sua natureza como uma perturbação, uma alteração no estado de equilíbrio que, inicialmente, permanece inalterado. Quando uma fonte externa, como um objeto vibrante ou uma força inicial, perturba a condição de equilíbrio de um meio, essa perturbação é transmitida de partícula para partícula ao longo do meio. Esse processo de transmissão de energia ocorre sem que as partículas individuais do meio se desloquem significativamente de suas posições de equilíbrio. Em outras palavras, a energia da perturbação é transferida, mas as partículas do meio não se movem em conjunto com a onda.&lt;br /&gt;
&lt;br /&gt;
O estudo da física das ondas desempenha um papel crucial, permeando inúmeras áreas da ciência e da tecnologia ao proporcionar uma compreensão profunda dos fenômenos ondulatórios e suas aplicações práticas. A física das ondas desempenha um papel essencial em nossa vida cotidiana. Seu impacto é evidente na tecnologia de comunicação, onde as ondas de rádio e micro-ondas são a espinha dorsal de redes globais de telefonia móvel e internet sem fio.&lt;br /&gt;
&lt;br /&gt;
Com base no exposto, propõe-se a realização de um estudo abrangente sobre a modelagem de fenômenos ondulatórios. Inicialmente, serão apresentados pontos importantes acerca da equação da onda. Em seguida, dedicaremos atenção ao estudo da propagação de uma perturbação a partir da equação de advecção. Nesse contexto, abriremos a discussão sobre a abordagem computacional, e, tangencialmente, comentaremos sobre outros métodos numéricos para resolver a advecção. Posteriormente, faremos um estudo sobre a solução numérica da equação da onda, permitindo a modelagem de fenômenos ondulatórios, como reflexão, interferência, refração e difração.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Equação da Onda =&lt;br /&gt;
&lt;br /&gt;
A função de uma onda é aquela que especifica o valor da perturbação em cada ponto e instante ao longo de seu percurso. Para iniciar nossa análise, abordaremos o exemplo mais simples, em que a propagação ocorre unicamente em uma direção, como é o caso das ondas transversais em uma corda.&lt;br /&gt;
&lt;br /&gt;
== Dedução ==&lt;br /&gt;
&lt;br /&gt;
O perfil da onda em uma corda em um determinado instante é equivalente à forma que a corda apresenta nesse momento, que é dada pela função &amp;lt;math&amp;gt;y(x, t)&amp;lt;/math&amp;gt;. A perturbação assume a forma de uma onda progressiva, movendo-se como uma entidade coesa para a direita, mantendo sua configuração inalterada, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Dessa forma, ao acompanhar a onda em um referencial inercial diferente, em que &amp;lt;math&amp;gt;y(x,t)=y(x&#039;,t)&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;x&#039;&amp;lt;/math&amp;gt; representa o antigo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; deslocado por &amp;lt;math&amp;gt;vt&amp;lt;/math&amp;gt;, a relação entre os dois referenciais é estabelecida por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
x&#039; = x - vt&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y&#039; = y&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
de modo que, no referencial original,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = f(x - vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
descreve uma onda progressiva, que se propaga para a direita, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para associar uma equação de movimento com a propagação da onda, vamos calcular a aceleração num dado ponto &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;. A velocidade e a aceleração em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; se obtêm fixando &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e derivando em relação ao tempo, o que corresponde a tomar derivadas parciais.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        V = \frac{\partial}{\partial t} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        A = \frac{\partial ^2}{\partial t^2} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pela regra da cadeia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial y}{\partial t} = \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t} = -v \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
Analogamente,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2}{\partial t^2} = -v \frac{\partial}{\partial t} \frac{\partial f}{\partial x&#039;} = -v \frac{\partial}{\partial x&#039;} \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou seja,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} = v^2 \frac{\partial ^2 f }{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; em relação a &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; obtemos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial y}{\partial x} = \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial ^2 y}{\partial x^2} = \frac{\partial ^2 f}{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} - v^2 \frac{\partial^2 y }{\partial x^2} = 0  &lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denominada equação da onda unidimensional, esta é uma das equações fundamentais da física.&lt;br /&gt;
&lt;br /&gt;
== Solução Analítica ==&lt;br /&gt;
&lt;br /&gt;
Agora, procederemos à análise do movimento de uma corda de comprimento &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; que vibra com extremidades fixas. Como essas extremidades são fixas, temos, nos pontos &amp;lt;math&amp;gt;x = 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x = L&amp;lt;/math&amp;gt;, os valores &amp;lt;math&amp;gt;y(0,t) = y(L,t) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso, supomos que a função &amp;lt;math&amp;gt;y(x,0) = f(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\frac{\partial y}{\partial t} = 0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;t = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com base nas observações realizadas, torna-se possível identificar um conjunto fundamental de soluções por meio da aplicação do método de separação de variáveis.&lt;br /&gt;
&lt;br /&gt;
Suponhamos que existam duas soluções, uma dependendo exclusivamente de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e outra exclusivamente de &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, de modo que possamos expressar a função &amp;lt;math&amp;gt;y(x,t)&amp;lt;/math&amp;gt; como o produto dessas duas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = X(x)T(t)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos escrever as derivadas parciais como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\frac{\partial^2 y}{\partial x^2} = \frac{X&#039;&#039;}{X} \\&lt;br /&gt;
\frac{\partial^2 y}{\partial t^2} = \frac{T&#039;&#039;}{T} \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
substituindo na equação da onda,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} - v^2 \frac{X&#039;&#039;}{X} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, torna-se evidente que a razão entre as funções de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; consiste em uma constante, assim como &amp;lt;math&amp;gt;v^2 \frac{X&#039;&#039;}{X}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
v^2 \frac{X&#039;&#039;}{X} = \lambda ^2 \to X&#039;&#039; = \bigg(\frac{\lambda}{v}\bigg)^2 X&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &#039;&#039;&#039;(I)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} = \lambda ^2  \to T&#039;&#039;= \lambda^2 T&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &#039;&#039;&#039;(II)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Observa-se que as equações (I) e (II) são equações diferenciais ordinárias (EDOs) lineares de segunda ordem, cujos coeficientes podem depender da variável independente e, potencialmente, serem funções não constantes. Assim, é possível usarmos da teoria de Sturm-Liouville para resolver essas equações.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resolvendo a Equação (I)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se avaliarmos as condições de contorno para os possíveis valores de lambda, que devem ser maiores ou iguais a zero, obtemos apenas a solução trivial. Contudo, se lambda for negativo, surge uma solução para &amp;lt;math&amp;gt;X(x)&amp;lt;/math&amp;gt; na forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(x) = a \cos \bigg( \frac{\lambda x}{v} \bigg) + b \sin \bigg( \frac{\lambda x}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições de contorno, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(0) = a \cos (0) + b \sin (0) = a  \therefore a=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(L) = b \sin \bigg( \frac{\lambda L}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Certamente, observa-se que, para alcançarmos uma solução não trivial, é necessário que &amp;lt;math&amp;gt;\lambda = \bigg( \frac{nv\pi}{L} \bigg) &amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;n \in \mathbb{N}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X_n (x) = \sum_{n=1}^{\infty} b_n \sin \bigg( \frac{n\pi x}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resolvendo a Equação (II)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Analogamente, temos uma solução não trivial para lambda menor que zero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
T(t) = c \cos(\lambda t) + d \sin(\lambda t) \to T_n (t) = \sum_{n=1}^{\infty} c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voltando para a solução geral:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty}  b_n \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juntando as constantes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty} \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(A_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + B_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt;, temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,0) =  \sum_{n=1}^{\infty} A_n \sin \bigg( \frac{n\pi x}{L} \bigg) = f(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; representa uma série de Fourier de senos, na qual os coeficientes &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; são determinados por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_n = \frac{2}{L}\int_0^L f(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando &amp;lt;math&amp;gt;y&#039;(x,0)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial }{\partial t} y(x,0) = \sum_{n=1}^{\infty} B_n \bigg( \frac{nv\pi}{L} \bigg) \sin \bigg( \frac{n\pi x}{L} \bigg) = g(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analogamente a &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(x)&amp;lt;/math&amp;gt; é uma série de Fourier de senos. Portanto, podemos determinar &amp;lt;math&amp;gt;B_n&amp;lt;/math&amp;gt; da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
B_n = \frac{2}{nv \pi}\int_0^L g(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementação da Solução Analítica ===&lt;br /&gt;
[[Arquivo:eq onda analitica.png|thumb|upright=0.0|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Se considerarmos 10 como o número máximo de termos na série de Fourier de uma corda com comprimento &amp;lt;math&amp;gt;L=1&amp;lt;/math&amp;gt; e velocidade &amp;lt;math&amp;gt;v=1&amp;lt;/math&amp;gt;, é possível criar um mapa da amplitude em função das posições de cada ponto da corda e do tempo. Esse tipo de gráfico será recorrente em nossa análise em diferentes casos.&lt;br /&gt;
&lt;br /&gt;
Neste caso, é possível observar que inicialmente a corda possui um máximo localizado no centro do eixo de posição, com mínimos iguais a zero nas extremidades do eixo. À medida que a função evolui no tempo, a amplitude diminui, passando por um instante onde em todos os pontos da corda a amplitude é zero, e prossegue para completar um meio período, onde apresenta um mínimo menor que zero centrado no eixo x e máximos iguais a zero nas extremidades da corda.&lt;br /&gt;
&lt;br /&gt;
= A equação de advecção unidimensional =&lt;br /&gt;
&lt;br /&gt;
Partimos da equação de advecção para estudarmos a propagação de uma perturbação.&lt;br /&gt;
&lt;br /&gt;
A equação de onda está intimamente relacionada à chamada equação de advecção, que, em uma dimensão, assume a seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial  u}{\partial t} + v\frac{\partial u}{\partial x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação a seguir descreve a advecção passiva de um campo escalar &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; transportado por um fluxo de velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Como a equação de advecção é um tanto mais simples do que a equação da onda, discutiremos aquela em primeiro lugar. A equação de advecção possui a solução formal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = F(x-vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa solução descreve um pulso de forma arbitrária que é arrastado pelo fluxo a uma velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;, sem alterar sua forma.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS para equação da advecção == &lt;br /&gt;
&lt;br /&gt;
Para a abordagem numérica computacional do nosso estudo, utilizamos o esquema FTCS (Forward Time-Centered Space).&lt;br /&gt;
&lt;br /&gt;
O método FTCS é amplamente empregado na resolução de equações diferenciais parciais. Trata-se de um método de diferenças finitas que adota uma abordagem explícita no tempo e central no espaço. Esse esquema apresenta uma acurácia de primeira ordem no tempo e de segunda ordem no espaço.&lt;br /&gt;
&lt;br /&gt;
A discretização no tempo (Forward Time) pode ser feita utilizando a diferença finita para a derivada temporal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial t} \approx \frac{u_i^{n+1} - u_i^n}{\Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; representa a amplitude da perturbação no ponto &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; do espaço e no instante &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, e &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; é o passo de tempo.&lt;br /&gt;
&lt;br /&gt;
A discretização no espaço (Central Space) pode ser feita utilizando a diferença finita para a derivada espacial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial x} \approx \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; é o espaçamento entre os pontos discretizados no espaço.&lt;br /&gt;
&lt;br /&gt;
As equações acima podem ser reescritas como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_i^n + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;r = v\frac{\Delta t}{\Delta x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann == &lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann é uma abordagem teórica utilizada para avaliar a estabilidade numérica de esquemas de diferenças finitas, incluindo o esquema FTCS. Usando o método de von Neumann, supõe-se a seguinte solução tentativa para a EDP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x, t) = A(t)e^{jkx}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;j = \sqrt{-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é o número de onda, e &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; é a amplitude da onda, uma função do tempo.&lt;br /&gt;
&lt;br /&gt;
Assim, a solução no passo de tempo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; e em &amp;lt;math&amp;gt;x = x_i = i\Delta x&amp;lt;/math&amp;gt; é escrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_ne^{jki\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo esta solução tentativa na expressão da advecção discretizada temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_{n+1}e^{jki\Delta x} = A_ne^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(A_ne^{jk(i+1)\Delta x} - A_ne^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(III)&lt;br /&gt;
&lt;br /&gt;
Seja &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; a razão da amplitude da onda no passo de tempo &amp;lt;math&amp;gt;n + 1&amp;lt;/math&amp;gt; em relação ao passo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. Portanto,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = \frac{A_{n+1}}{A_n}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dividir (III) por &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; resulta em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi e^{jki\Delta x} = e^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(e^{jk(i+1)\Delta x} - e^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se dividirmos esse resultado por &amp;lt;math&amp;gt;e^{jki\Delta x}&amp;lt;/math&amp;gt; temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = 1 - \frac{u\Delta t}{2\Delta x}\left(e^{jk\Delta x} - e^{-jk\Delta x}\right) = 1 - \frac{u\Delta t}{\Delta xj}\sin(k\Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|\xi| = \sqrt{1 + \left(\frac{u\Delta t}{\Delta x}\sin(k\Delta x)\right)^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isso implica que &amp;lt;math&amp;gt;|\xi| \geq 1&amp;lt;/math&amp;gt; independentemente do passo de tempo &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; selecionado ou do passo espacial &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, portanto, FTCS é incondicionalmente instável.&lt;br /&gt;
&lt;br /&gt;
Apesar de ser incondicionalmente instável, o esquema funcionará bem em nossa modelagem, uma vez que o método apresenta também suas vantagens. O esquema FTCS é relativamente simples de implementar, o que facilita sua aplicação, principalmente para problemas bidimensionais ou tridimensionais, como pretendemos abordar posteriormente.&lt;br /&gt;
&lt;br /&gt;
Em alguns casos específicos, o FTCS pode ser computacionalmente eficiente. Se a equação diferencial parcial for relativamente simples e o domínio de interesse for bem comportado, o FTCS pode oferecer uma solução razoável com custo computacional relativamente baixo.&lt;br /&gt;
&lt;br /&gt;
É feita uma comparação entre outros métodos numéricos de diferenças finitas para solução da equação da advecção e comparado o erro relativo à solução analítica no Apêndice A.&lt;br /&gt;
&lt;br /&gt;
== Implementação do esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ftcs eq advec.png|thumb|upright=0.0|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Vamos agora examinar a implementação do esquema FTCS na equação da advecção para visualizarmos a propagação de uma perturbação na forma de &amp;lt;math&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; em um eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; infinito. Em outras palavras:&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno periódicas.&lt;br /&gt;
&lt;br /&gt;
Neste caso, podemos observar uma perturbação se propagando no sentido negativo do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; sem perda de amplitude ou mudança de forma. Isso acontece porque, com a equação da advecção, podemos analisar apenas a cinemática de uma perturbação, a qual, por sua vez, apenas relaciona os atributos como amplitude, comprimento de onda, frequência e velocidade.&lt;br /&gt;
&lt;br /&gt;
Podemos observar, ainda, que a amplitude está relacionada à condição inicial em que o máximo de &amp;lt;matH&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; é atingido quando &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt;. Nesse contexto, considerando &amp;lt;math&amp;gt;0 &amp;lt; x &amp;lt; 2\pi&amp;lt;/math&amp;gt;, percebemos que &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt; ocorre exatamente no meio do eixo. Em consequência, a amplitude máxima, que é 2, é inicialmente alcançada no ponto central do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em uma dimensão =&lt;br /&gt;
&lt;br /&gt;
A equação da onda, que em uma dimensão assume a forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 \frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2  u}{\partial x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; geralmente é algum tipo de deslocamento ou perturbação, enquanto &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; é a velocidade da onda. A equação de onda possui a solução formal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 u(x,t) = F(x+vt) + G(x+vt),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; são funções arbitrárias. A solução acima representa pulsos de onda de formato arbitrário que se propagam com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; nas direções &amp;lt;math&amp;gt;+x&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;-x&amp;lt;/math&amp;gt;, respectivamente, sem alterar a forma.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS para equação da onda unidimensional== &lt;br /&gt;
&lt;br /&gt;
Iniciamos o estudo da solução numérica da equação da onda a partir da implementação do esquema FTCS, pois, como comentado antes, este é o método de implementação mais prático para generalizarmos para mais dimensões espaciais.&lt;br /&gt;
&lt;br /&gt;
As derivadas de segunda ordem podem ser substituídas por diferenças centrais. A aproximação de diferença mais amplamente utilizada para a derivada de segunda ordem é&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial t^2}u(x_i,t_n)\approx \frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uma aproximação semelhante para a derivada de segunda ordem na direção &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; é dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial x^2}u(x_i,t_n)\approx \frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora podemos substituir as derivadas e obter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2} = v^2\frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assumimos que &amp;lt;math&amp;gt;u^n_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u^{n-1}_i&amp;lt;/math&amp;gt; já foram calculados para &amp;lt;math&amp;gt;i=0,\ldots,N_x&amp;lt;/math&amp;gt;. A única quantidade desconhecida é, portanto, &amp;lt;math&amp;gt;u^{n+1}_i&amp;lt;/math&amp;gt;, que podemos resolver da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_i = -u^{n-1}_i + 2u^n_i + r^2 \left(u^{n}_{i+1}-2u^{n}_{i} + u^{n}_{i-1}\right),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde introduzimos o parâmetro&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r = v\frac{\Delta t}{\Delta x},&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
conhecido como número de Courant.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann ==&lt;br /&gt;
&lt;br /&gt;
Pela análise de Von Neumann, substituímos &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; por &amp;lt;math&amp;gt;g_n e^{i\theta}&amp;lt;/math&amp;gt; na equação da onda. Após manipulações, a expressão resultante é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = 2 - g^{-1} + \frac{C}{2}(e^{i\theta} - 2 + e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usando a identidade de Euler &amp;lt;math&amp;gt;e^{i\theta} + e^{-i\theta} = 2 \cos \theta&amp;lt;/math&amp;gt;, chegamos a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 - 2[1 - \frac{C}{2}(1 - \cos \theta)]g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reescrevendo &amp;lt;math&amp;gt;\cos \theta = \cos^2\left(\frac{\theta}{2}\right) - \sin^2\left(\frac{\theta}{2}\right)&amp;lt;/math&amp;gt;, a equação torna-se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 + 2(2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1)g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expressamos isso como &amp;lt;math&amp;gt;g^2 + 2bg + 1 = 0&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;b = 2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1&amp;lt;/math&amp;gt;. As raízes são:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = \begin{cases} -b \pm \sqrt{b^2 - 1}, &amp;amp; \text{se } |b| &amp;gt; 1 \\ -b \pm i\sqrt{1 - b^2}, &amp;amp; \text{se } |b| \leq 1 \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se &amp;lt;math&amp;gt;|b| &amp;gt; 1&amp;lt;/math&amp;gt;, implica &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt;. Se &amp;lt;math&amp;gt;|b| \leq 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt; pela condição de Von Neumann, tornando o método condicionalmente estável pela condição CFL.&lt;br /&gt;
&lt;br /&gt;
== Reflexão de onda em uma corda ==&lt;br /&gt;
&lt;br /&gt;
Quando uma onda se propaga ao longo de uma corda e incide em uma de suas extremidades, ocorre a sua reflexão. Ao atingir um extremo fixo, que não pode oscilar, é possível observar que o pulso refletido apresenta uma orientação oposta à do pulso incidente. Podemos afirmar que o pulso reflete com inversão de fase, pois isso ocorre devido à reação do ponto fixo sobre a corda com uma força de mesmo módulo. Uma situação distinta ocorre quando a extremidade da corda é móvel, ou seja, não há troca de forças entre ela e a corda, resultando em uma reflexão sem inversão de fase.&lt;br /&gt;
&lt;br /&gt;
Além disso, em um sistema fechado e sem dissipação de energia, podemos observar que as ondas refletidas, independentemente da fase, sofrem interferência construtiva e produzem picos de máximo ou mínimo, dependendo do contexto.&lt;br /&gt;
&lt;br /&gt;
Podemos observar esse fenômeno ao implementar a solução da equação da onda unidimensional com condições de contorno fixas e periódicas, respectivamente, para uma corda com extremidades fixas e extremidades móveis.&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades fixas ===&lt;br /&gt;
&lt;br /&gt;
Neste caso, é possível observar que a corda iniciará a partir do seu ponto mais alto no centro do eixo. A perturbação se propagará igualmente para ambos os sentidos do eixo. Ao atingir as extremidades fixas, as duas perturbações, invertidas, deslocam-se em direção ao centro da corda, onde interferem de forma construtiva e produzem um mínimo de amplitude.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:corda_ponta_fixa.gif|thumb|upright=0.0|center|Evolução temporal da amplitude pela posição no eixo x em uma corda com extremidades fixas|350px]]&lt;br /&gt;
|[[Arquivo:MA corda com pontas fixas.png|thumb|upright=0.0|center|310px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades móveis ===&lt;br /&gt;
&lt;br /&gt;
Com extremidades móveis, não se observa uma mudança de fase da perturbação inicial ao atingir os extremos da corda. No entanto, ao implementarmos condições de contorno periódicas, implicamos que, ao alcançar uma das extremidades da corda, o pulso retorna à outra extremidade, continuando a se propagar na mesma direção e com a mesma velocidade. Como a perturbação inicial gera dois pulsos se propagando em direções opostas a partir do centro do eixo, com velocidades iguais, percebemos a interação construtiva dos pulsos que alcançam os limites do eixo simultaneamente. Isso faz com que retornem a se propagar em direção ao centro, gerando máximos de amplitude em cada interação.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:corda_ponta_solta.gif|thumb|upright=0.0|center|Evolução temporal da amplitude pela posição no eixo x em uma corda com extremidades interligadas por condições de contorno periódicas.|350px]]&lt;br /&gt;
|[[Arquivo:MA corda com pontas soltas.png|thumb|upright=0.0|center|310px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Alteração no meio de propagação ===&lt;br /&gt;
&lt;br /&gt;
A refração é um fenômeno que ocorre quando uma onda passa de um meio para outro com uma velocidade de propagação diferente. Esse fenômeno é mais comumente associado a ondas de luz, mas também pode ocorrer com ondas sonoras, ondas de rádio, ondas sísmicas e outras formas de ondas.&lt;br /&gt;
&lt;br /&gt;
Se uma onda se propaga em uma corda e encontra uma mudança abrupta nas propriedades da corda, como a densidade ou a tensão, isso pode resultar em uma mudança na velocidade da onda. O grau de refração dependerá das diferenças nas propriedades do meio antes e depois da mudança.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:muda_meio_de_propag.gif|thumb|upright=0.0|center|Evolução temporal da amplitude pela posição no eixo x em uma corda com extremidades fixas e diferentes densidades.|350px]]&lt;br /&gt;
|[[Arquivo:MA corda muda meio.png|thumb|upright=0.0|center|340px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Em um modelo que considera a reflexão e a refração na junção das duas ondas [Elmore e Head], é demonstrado que a razão entre as amplitudes da onda refratada (&amp;lt;math&amp;gt;A_2&amp;lt;/math&amp;gt;) e a amplitude da onda incidente (&amp;lt;math&amp;gt;A_1&amp;lt;/math&amp;gt;) é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{A_2}{A_1} = \frac{2\sqrt{\mu_1}}{\sqrt{\mu_1} +\sqrt{\mu_2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usando a relação da velocidade de propagação com as variáveis de tensão e densidade podemos chegar em expressões para as amplitudes do pulso que irá voltar (&amp;lt;math&amp;gt;A_v&amp;lt;/math&amp;gt;) e do pulso que irá passar para a outra corda (&amp;lt;math&amp;gt;A_p&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_p = \frac{2v_2}{v_1 + v_2}A_i &lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_v = \frac{|v_1 - v_2|}{v_1 + v_2}A_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(IV)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; é a amplitude do pulso incidente.&lt;br /&gt;
&lt;br /&gt;
No nosso caso, a perturbação inicial tem amplitude de 1, porém propaga-se isotopicamente nos dois sentidos do eixo x. O pulso que se desloca no sentido negativo do eixo interage imediatamente com o ponto fixo da corda e torna a propagar-se no sentido positivo, mas agora com uma fase. Assim, temos dois pulsos, um positivo e um negativo, ambos com amplitude igual a &amp;lt;math&amp;gt;0.5&amp;lt;/math&amp;gt;, propagando-se em direção a outra corda de densidade diferente.&lt;br /&gt;
&lt;br /&gt;
Com as velocidades de propagação nos dois meios, utilizando as fórmulas em (IV), podemos determinar que a amplitude do pulso que irá voltar é &amp;lt;math&amp;gt;0,167&amp;lt;/math&amp;gt;, enquanto a do pulso que será refratado é &amp;lt;math&amp;gt;0,333&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:muda_meio_de_propag_analise.gif|thumb|upright=0.0|center|450px]]&lt;br /&gt;
&lt;br /&gt;
=== Oscilador em uma corda ===&lt;br /&gt;
&lt;br /&gt;
Agora, em vez de variarmos as condições de contorno para um pulso senoidal em uma corda, estamos avaliando um oscilador senoidal acoplado a corda com parâmetros físicos bem definidos: amplitude (A), frequência (f) e comprimento de onda ( λ ). Assim, ao invés de termos uma condição inicial que aplicada em um pequena porção da corda se propaga, iremos avaliar um oscilador da forma &amp;lt;math&amp;gt;A\sin(kx)&amp;lt;/math&amp;gt; que define a amplitude inicial para cada ponto da corda, onde &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é o número de onda definido como duas vezes &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt; sobre o comprimento de onda. Vale notar ainda que λ é uma função da velocidade de propagação (propriedade da corda) e da frequência (propriedade do oscilado).&lt;br /&gt;
&lt;br /&gt;
Seja &amp;lt;math&amp;gt;A = 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;v = 1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f =  0.13&amp;lt;/math&amp;gt;, que resulta em um comprimento de onda igual a 7.7. Implementando um oscilador com esses parâmetros para uma corda com extremidades fixas, obtemos&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:oscilador com pontas fixas.png|thumb|upright=0.0|center|450px]]&lt;br /&gt;
&lt;br /&gt;
Observamos que, ao ajustar arbitrariamente os parâmetros do oscilador, obtemos regiões mais escuras e mais claras, pouco organizadas. Nessas regiões, ocorrem interferências destrutivas e construtivas, respectivamente. As interferências ocorrem de forma pouco definida, uma vez que não há, nesse caso, um padrão bem definido para as interações que a onda sofrerá. No entanto, veremos que isso pode ser modificado.&lt;br /&gt;
&lt;br /&gt;
=== Ondas estacionárias ===&lt;br /&gt;
&lt;br /&gt;
A relação entre o comprimento de onda da onda incidente ( λ) e a distância disponível para a onda se refletir (&amp;lt;math&amp;gt;2L&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; é o comprimento da região confinada, da corda) deve permitir a formação de nós e ventres estacionários. Para ondas estacionárias em uma corda com extremidades fixas, os comprimentos de onda permitidos são dados por &amp;lt;math&amp;gt;\lambda_n = \frac{2L}{n}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; é um número inteiro positivo.&lt;br /&gt;
&lt;br /&gt;
Essa fórmula mostra que à medida que &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; aumenta, o comprimento de onda diminui. Cada valor de &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; corresponde a uma harmônica específica, que representa o número de meios comprimentos de onda que cabem na corda. A primeira harmônica (&amp;lt;math&amp;gt;n = 1&amp;lt;/math&amp;gt;) tem um nó em cada extremidade da corda, a segunda harmônica (&amp;lt;math&amp;gt;n = 2&amp;lt;/math&amp;gt;) tem dois nós, e assim por diante.&lt;br /&gt;
&lt;br /&gt;
Dado que &amp;lt;math&amp;gt;\lambda = \frac{v}{f} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\lambda_n = \frac{2L}{n}&amp;lt;/math&amp;gt;, é possível expressar um conjunto discreto de frequências para o nosso oscilador, as quais resultam em ondas estacionárias.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_n = \frac{nv}{2L}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, podemos aplicar valores de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; condicionados a gerar as condições necessárias para a formação de ondas estacionárias.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ondas_estacionarias.png|thumb|upright=0.0|center|650px]]&lt;br /&gt;
&lt;br /&gt;
= A Equação da Onda em Duas Dimensões =&lt;br /&gt;
&lt;br /&gt;
Agora, procederemos à avaliação da modelagem de ondas em duas dimensões. Nesse contexto, além dos fenômenos já observados, é possível perceber também a difração.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS para Equação da Onda Bidimensional== &lt;br /&gt;
&lt;br /&gt;
Em duas dimensões, a equação da onda é dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 f}{\partial t^2} = v^2 \left( \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} \right).&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando todas as derivadas parciais por uma diferença finita centrada, segue que&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 f}{\partial t^2} \approx \frac{f^{n+1}_{i,j} - 2f^{n}_{i,j} + f^{n-1}_{i,j}}{\Delta t^2},\qquad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\frac{\partial^2 f}{\partial x^2} \approx \frac{f^{n}_{i+1,j} - 2f^{n}_{i,j} + f^{n}_{i-1,j}}{\Delta x^2},\qquad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\frac{\partial^2 f}{\partial y^2} \approx \frac{f^{n}_{i,j+1} - 2f^{n}_{i,j} + f^{n}_{i,j-1}}{\Delta y^2}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto, em forma discreta, a equação da onda pode ser escrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^{n+1}_{i,j} = 2f^{n}_{i,j} - f^{n-1}_{i,j} + v^2 \left[ \frac{\Delta t^2}{\Delta x^2} \left(f^{n}_{i+1,j} - 2f^{n}_{i,j} + f^{n}_{i-1,j}\right) + \frac{\Delta t^2}{\Delta y^2} \left(f^{n}_{i,j+1} - 2f^{n}_{i,j} + f^{n}_{i,j-1}\right) \right].&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;\Delta x = \Delta y&amp;lt;/math&amp;gt;, segue que&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^{n+1}_{i,j} = \left(2-4a\right)f^{n}_{i,j} - f^{n-1}_{i,j} + a\left(f^n_{i-1,j}+f^n_{i+1,j}+f^n_{i,j-1}+f^n_{i,j+1}\right), \qquad a\equiv \left(v\frac{\Delta t}{\Delta x}\right)^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, ainda,&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^{n}_{i,j} = \left(2-4a\right)f^{n-1}_{i,j} - f^{n-2}_{i,j} + a\left(f^{n-1}_{i-1,j}+f^{n-1}_{i+1,j}+f^{n-1}_{i,j-1}+f^{n-1}_{i,j+1}\right), \qquad a\equiv \left(v\frac{\Delta t}{\Delta x}\right)^2.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Condições Iniciais ===&lt;br /&gt;
Para implementar o esquema acima, são necessários valores de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; nos dois primeiros passos temporais. As condições iniciais para a equação da onda, no entanto, têm a forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f(x,y,t=0) =\phi(x,y)=\phi_{i,j},\qquad f_t(x, y, t=0)=\psi(x,y)=\psi_{i,j}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, os valores da intensidade da onda no primeiro passo temporal, &amp;lt;math&amp;gt;f^0_{i,j}&amp;lt;/math&amp;gt;, podem ser obtidos da primeira condição inicial: &amp;lt;math&amp;gt;f^0_{i,j}=\phi_{i, j}&amp;lt;/math&amp;gt;. Os valores da intensidade da onda no segundo passo temporal podem ser aproximados como se segue: visto que&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_t(x,y,t=0)\approx&lt;br /&gt;
\frac{f(x, y, t=0)}{\Delta t},&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
então, em notação discreta,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\psi_{i,j}\approx&lt;br /&gt;
\frac{f^{0}_{i,j}}{\Delta t}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A diferença central desse quociente é&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{f^{0}_{i,j}}{\Delta t}\approx\frac{f^{1}_{i,j}-f^{-1}_{i,j}}{2\Delta t}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\psi_{i,j}\approx\frac{f^{1}_{i,j}-f^{-1}_{i,j}}{2\Delta t}&lt;br /&gt;
\implies&lt;br /&gt;
f^{1}_{i,j}-f^{-1}_{i,j}=2\Delta t\psi_{i,j}&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Além disso, para &amp;lt;math&amp;gt;n=1&amp;lt;/math&amp;gt;, a última equação do esquema FTCS resulta em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^1_{i,j} = \left(2-4a\right)f^0_{i,j} + a\left(f^{0}_{i-1,j}+f^{0}_{i+1,j}+f^{0}_{i,j-1}+f^{0}_{i,j+1}\right) - f^{-1}_{i,j}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto, tem-se o sistema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
f^1_{i,j} - f^{-1}_{i,j} = 2\Delta t\psi_{i,j}\\&lt;br /&gt;
f^1_{i,j} + f^{-1}_{i,j} = \left(2-4a\right)f^0_{i,j} + a\left(f^{0}_{i-1,j}+f^{0}_{i+1,j}+f^{0}_{i,j-1}+f^{0}_{i,j+1}\right) \end{cases}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somando as duas equações, obtém-se uma expressão para &amp;lt;math&amp;gt;f^1_{i,j}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^1_{i,j} = \Delta t\psi_{i,j} + \left(1-2a\right)f^0_{i,j} + \frac{a}{2}\left(f^{0}_{i-1,j}+f^{0}_{i+1,j}+f^{0}_{i,j-1}+f^{0}_{i,j+1}\right).&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementações em Python ==&lt;br /&gt;
&lt;br /&gt;
= Apêndice A: Métodos numéricos para solução da equação de advecção =&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Friedrich]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff]]&lt;br /&gt;
&lt;br /&gt;
[[Upwind Differencing]]&lt;br /&gt;
&lt;br /&gt;
[[Método Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff de dois passos]]&lt;br /&gt;
&lt;br /&gt;
[[Comparação dos métodos numéricos]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Referências =&lt;br /&gt;
&lt;br /&gt;
#Elmore, C. W. e Head, M. A. 1969. &#039;&#039;&#039;Physics of Waves.&#039;&#039;&#039;. Dover, New York. doi:&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff_de_dois_passos&amp;diff=9892</id>
		<title>Método Lax-Wendroff de dois passos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff_de_dois_passos&amp;diff=9892"/>
		<updated>2024-02-05T22:47:20Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Neste método é usando diferenças adiantadas no espaço e no tempo, tomando médias aritméticas na posição. Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^{n}}{\Delta t} = -v \frac{u_{i+\frac{1}{2}}^{n+\frac{1}{2}} - u_{i-\frac{1}{2}}^{n+\frac{1}{2}}}{\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(4)&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{i+\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}(u_{i+1}^n + u_{i}^n) - 2r(u_{i+1}^n - u_{i}^n) \\&lt;br /&gt;
u_{i-\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}(u_{i}^n - u_{i-1}^n) - 2r(u_{i}^n - u_{i-1}^n)&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(5)&lt;br /&gt;
&lt;br /&gt;
Substituindo os valores de (5) em (4):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} =  u_i^{n} - \frac{r}{2}(u_{i+1}^{n} - u_{i-1}^{n}) + \frac{r^2}{2}(u_{i+1}^{n} - 2u_{i}^{n} + u_{i-1}^{n})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(6)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Wendroff dois passos para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxW2Pad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = u[n,i] + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])]) + (r/2)**2 * (u[n, int(xpos[i])] - 2*u[n,i] + u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv6 = LaxW2Pad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv6, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax - Wendroff (2P) da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-w2.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff de dois passos|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv6[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude lax-w2.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff de dois passos|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Leapfrog&amp;diff=9891</id>
		<title>Método Leapfrog</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Leapfrog&amp;diff=9891"/>
		<updated>2024-02-05T22:45:49Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;O termo &amp;quot;leapfrog&amp;quot; é utilizado devido aos níveis de tempo presentes na sua derivação, que superam os níveis de tempo no termo derivado do espaço. O método requer que &amp;lt;math&amp;gt;u_{n-1}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; sejam armazenados para calcular &amp;lt;math&amp;gt;u_{n+1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, em relação à equação de advecção, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} = u_i^{n-1} +  r (u_{i+1}^{n} - u_{i-1}^{n})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Esquema de Matsuno =&lt;br /&gt;
&lt;br /&gt;
Primeiramente, os valores aproximados de &amp;lt;math&amp;gt;u_j^{n+1}&amp;lt;/math&amp;gt; serão calculados utilizando o esquema avançado, representado pela equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{(n+1)^*} - u_i^{n}}{\Delta t} = -v \frac{u_{i+1}^{n} - u_{i-1}^{n}}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, esses valores aproximados são empregados em um esquema atrasado, o qual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^{n}}{\Delta t} = -v \frac{u_{i+1}^{(n+1)^*} - u_{i-1}^{(n+1)^*}}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
substituindo valores dados pelo esquema avançado, com o subscrito &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; substituído por &amp;lt;math&amp;gt;i+1&amp;lt;/math&amp;gt;, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} =  u_i^{n} - \frac{r}{2}(u_{i+1}^{n} - u_{i-1}^{n}) + \frac{r^2}{2}(u_{i+2}^{n} - u_{i}^{n} + u_{i-2}^{n})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&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;
# Solução pelo método Leapfrog para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def Leapfrogad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / Nx&lt;br /&gt;
    dt = tf / Nt&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0, :] = 1 - np.cos(x)  # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            # Condições de contorno&lt;br /&gt;
            ip = i + 1 if i &amp;lt; Nx else 0  # índice i+1 (volta para 0 na borda)&lt;br /&gt;
            ia = i - 1 if i &amp;gt; 0 else Nx  # índice i-1 (volta para Nx na borda)&lt;br /&gt;
&lt;br /&gt;
            u[n+1, i] = u[n, i] + (r/2) * (u[n, ip] - u[n, ia]) - (r/2)**2 * (u[n, (ip+1) % (Nx + 1)] - u[n, i] + u[n, (ia-1) % (Nx + 1)])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ideia ==&lt;br /&gt;
&lt;br /&gt;
* Se i é igual a Nx, então ip = Nx+1 e (ip+1) % (Nx + 1) se torna (Nx + 2) % (Nx + 1), que é equivalente a 0. Da mesma forma, se i é igual a 0, então ia = -1 e (ia-1) % (Nx + 1) se torna Nx;&lt;br /&gt;
&lt;br /&gt;
* Quando i atinge o valor máximo Nx ou o valor mínimo 0, as expressões (ip+1) % (Nx + 1) e (ia-1) % (Nx + 1) garantem que os índices não ultrapassem os limites da matriz. O operador % (módulo) faz com que o índice retorne ao início (quando excede o limite superior) ou ao final (quando é menor que o limite inferior) da matriz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv5 = Leapfrogad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv5, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Leapfrog da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: leapfrog.png|thumb|upright=0.0|center|Solução pelo método Leapfrog|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv5[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude leapfrog.png|thumb|upright=0.0|center|Solução pelo método Leapfrog|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como é possível observar ele tem um efeito do amortecimento. Deste modo, o esquema do Matsuno não parece conveniente para resolver a equação da advecção, pois impõe um amortecimento na solução numérica, que não é observada na solução analítica. [Projeto PAE – Bolsista Simone E. Teleginski Ferraz. pg 5]&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Upwind_Differencing&amp;diff=9890</id>
		<title>Upwind Differencing</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Upwind_Differencing&amp;diff=9890"/>
		<updated>2024-02-05T22:44:36Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Foram apresentados métodos numéricos eficientes com propósitos gerais para resolver a equação de advecção. Entretanto, é necessário restringir nossa abordagem a formas de onda suficientemente suaves para evitar oscilações espúrias tanto nas bordas de ataque quanto nas bordas de queda da forma de onda. Uma abordagem reconhecida para suprimir desvios nas extremidades inicial e final de uma forma de onda afiada é a adoção de um esquema conhecido como &amp;quot;esquema de diferenças upwind&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nesse esquema, as diferenças espaciais são inclinadas na direção &amp;quot;upwind&amp;quot;, ou seja, na direção de onde o fluxo advectivo se origina.&lt;br /&gt;
&lt;br /&gt;
Portanto, a versão upwind do simples esquema de diferenças explícitas é escrita da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;v &amp;gt; 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^n}{\Delta t} + v\frac{\Delta u_i^{n} - u_{i-1}^{n}}{\Delta x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(1)&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;v &amp;lt; 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^n}{\Delta t} + v\frac{u_{i+1}^{n} - u_{i}^{n}}{\Delta x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(2)&lt;br /&gt;
&lt;br /&gt;
Combinando (1) e (2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} = u_i^{n} - \Delta t (v^{+}u_x^{-} + v^{-}u_x^{+})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(3)&lt;br /&gt;
&lt;br /&gt;
Onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
  v^{+} &amp;amp;= max(v,0) \\&lt;br /&gt;
  v^{-} &amp;amp;= min(v,0) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
  u_x^{-} &amp;amp;= \frac{u_i^{n} - u_{i-1}^{n}}{\Delta x} \\&lt;br /&gt;
  u_x^{+} &amp;amp;= \frac{u_{i+1}^{n} - u_{i}^{n}}{\Delta x}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O esquema upwind é estável quando a seguinte condição Courant-Friedrichs-Lewy (CFL) é atendida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|v\frac{\Delta t}{\Delta x}| \leq 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Upwind para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def Upwindad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1 - np.cos(x)  # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0, Nx+1):&lt;br /&gt;
        xpos[i] = i+1&lt;br /&gt;
        xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] = Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            v_mais = np.maximum(v, 0)&lt;br /&gt;
            v_menos = np.minimum(v, 0)&lt;br /&gt;
            u_x_mais = 1/dx * (u[n, int(xpos[i])] - u[n, i])&lt;br /&gt;
            u_x_menos = 1/dx * (u[n, i] - u[n, int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
            u[n+1, i] = u[n, i] - dt * (v_mais * u_x_menos + v_menos * u_x_mais)&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = -1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv4 = Upwindad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv4, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Upwind da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: up-w.png|thumb|upright=0.0|center|Solução pelo método upwind differencing|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as cuvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv4[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude up-w.png|thumb|upright=0.0|center|Solução pelo método upwind differencing|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff&amp;diff=9889</id>
		<title>Método Lax-Wendroff</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff&amp;diff=9889"/>
		<updated>2024-02-05T22:42:20Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trata-se de um método de segunda ordem tanto no tempo quanto no espaço. Lax e Wendroﬀ propuseram um método de discretização de segunda ordem para resolver equações hiperbólicas, o qual substituiu o método de Lax-Friedrichs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_{i}^n - \frac{r}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r^2}{2} (u_{i+1}^n - 2u_{i}^n + u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Wendroff para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxWad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = u[n,i] + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])]) + (r**2/2) * (u[n, int(xpos[i])] - 2*u[n,i] + u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv3 = LaxWad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv3, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Wendroff da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-w.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv3[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude lax-w.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9888</id>
		<title>Método Lax-Friedrich</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9888"/>
		<updated>2024-02-05T22:41:00Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A instabilidade no esquema FTCS pode ser corrigida substituindo &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; no lado direito pela média espacial de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; calculada nos pontos da grade vizinhos. Dessa forma, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= \frac{1}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann do esquema de Lax resulta na seguinte expressão para o fator de amplificação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A = \cos(k \Delta x) - ir\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|A|^2 = 1 -  (1-r^2)\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou seja, o método é incondicionalmente estável para os valores de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; menor do que 1. Pela definição de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, temos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta t &amp;lt; \frac{\Delta x}{v}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Friedrichs para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxFad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = (1/2) * (u[n, int(xpos[i])] + u[n,int(xneg[i])]) + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv2 = LaxFad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv2, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Friedrichs da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-friedrich.png|thumb|upright=0.0|center|Solução pelo método Lax-Friedrich|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv2[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude lax-f.png|thumb|upright=0.0|center|Solução pelo método Lax-Friedrich|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9886</id>
		<title>Métodos Computacionais para Estudo de Fenômenos Ondulatórios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9886"/>
		<updated>2024-02-05T22:35:46Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: /* A equação da onda em uma dimensão */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo realizar um estudo introdutório da equação da onda, adotando uma abordagem computacional que proporciona uma base teórica sólida e intuitiva. Inicialmente, é realizada a implementação de uma solução numérica (FTCS) para a equação da advecção, visando o estudo da propagação de uma perturbação e explorando aspectos computacionais fundamentais. Em seguida, a equação da onda é aplicada em uma dimensão, permitindo uma investigação detalhada de fenômenos ondulatórios, tais como reflexão, interferência e refração. A abordagem é estendida para duas dimensões, incluindo a análise dos efeitos de contorno nesse contexto. Por fim, o trabalho aprofunda-se no estudo do fenômeno de difração, contribuindo para uma compreensão mais enriquecedora dos aspectos complexos dos fenômenos ondulatórios em múltiplas dimensões.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O que é uma onda exatamente? De acordo com &#039;A Student’s Guide to Waves&#039;, a literatura apresenta diversas definições. Contudo, a característica mais comum que define uma onda é sua natureza como uma perturbação, uma alteração no estado de equilíbrio que, inicialmente, permanece inalterado. Quando uma fonte externa, como um objeto vibrante ou uma força inicial, perturba a condição de equilíbrio de um meio, essa perturbação é transmitida de partícula para partícula ao longo do meio. Esse processo de transmissão de energia ocorre sem que as partículas individuais do meio se desloquem significativamente de suas posições de equilíbrio. Em outras palavras, a energia da perturbação é transferida, mas as partículas do meio não se movem em conjunto com a onda.&lt;br /&gt;
&lt;br /&gt;
O estudo da física das ondas desempenha um papel crucial, permeando inúmeras áreas da ciência e da tecnologia ao proporcionar uma compreensão profunda dos fenômenos ondulatórios e suas aplicações práticas. A física das ondas desempenha um papel essencial em nossa vida cotidiana. Seu impacto é evidente na tecnologia de comunicação, onde as ondas de rádio e micro-ondas são a espinha dorsal de redes globais de telefonia móvel e internet sem fio.&lt;br /&gt;
&lt;br /&gt;
Com base no exposto, propõe-se a realização de um estudo abrangente sobre a modelagem de fenômenos ondulatórios. Inicialmente, serão apresentados pontos importantes acerca da equação da onda. Em seguida, dedicaremos atenção ao estudo da propagação de uma perturbação a partir da equação de advecção. Nesse contexto, abriremos a discussão sobre a abordagem computacional, e, tangencialmente, comentaremos sobre outros métodos numéricos para resolver a advecção. Posteriormente, faremos um estudo sobre a solução numérica da equação da onda, permitindo a modelagem de fenômenos ondulatórios, como reflexão, interferência, refração e difração.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Equação da Onda =&lt;br /&gt;
&lt;br /&gt;
A função de uma onda é aquela que especifica o valor da perturbação em cada ponto e instante ao longo de seu percurso. Para iniciar nossa análise, abordaremos o exemplo mais simples, em que a propagação ocorre unicamente em uma direção, como é o caso das ondas transversais em uma corda.&lt;br /&gt;
&lt;br /&gt;
== Dedução ==&lt;br /&gt;
&lt;br /&gt;
O perfil da onda em uma corda em um determinado instante é equivalente à forma que a corda apresenta nesse momento, que é dada pela função &amp;lt;math&amp;gt;y(x, t)&amp;lt;/math&amp;gt;. A perturbação assume a forma de uma onda progressiva, movendo-se como uma entidade coesa para a direita, mantendo sua configuração inalterada, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Dessa forma, ao acompanhar a onda em um referencial inercial diferente, em que &amp;lt;math&amp;gt;y(x,t)=y(x&#039;,t)&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;x&#039;&amp;lt;/math&amp;gt; representa o antigo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; deslocado por &amp;lt;math&amp;gt;vt&amp;lt;/math&amp;gt;, a relação entre os dois referenciais é estabelecida por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
x&#039; = x - vt&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y&#039; = y&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
de modo que, no referencial original,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = f(x - vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
descreve uma onda progressiva, que se propaga para a direita, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para associar uma equação de movimento com a propagação da onda, vamos calcular a aceleração num dado ponto &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;. A velocidade e a aceleração em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; se obtêm fixando &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e derivando em relação ao tempo, o que corresponde a tomar derivadas parciais.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        V = \frac{\partial}{\partial t} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        A = \frac{\partial ^2}{\partial t^2} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pela regra da cadeia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial y}{\partial t} = \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t} = -v \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
Analogamente,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2}{\partial t^2} = -v \frac{\partial}{\partial t} \frac{\partial f}{\partial x&#039;} = -v \frac{\partial}{\partial x&#039;} \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou seja,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} = v^2 \frac{\partial ^2 f }{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; em relação a &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; obtemos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial y}{\partial x} = \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial ^2 y}{\partial x^2} = \frac{\partial ^2 f}{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} - v^2 \frac{\partial^2 y }{\partial x^2} = 0  &lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denominada equação da onda unidimensional, esta é uma das equações fundamentais da física.&lt;br /&gt;
&lt;br /&gt;
== Solução Analítica ==&lt;br /&gt;
&lt;br /&gt;
Agora, procederemos à análise do movimento de uma corda de comprimento &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; que vibra com extremidades fixas. Como essas extremidades são fixas, temos, nos pontos &amp;lt;math&amp;gt;x = 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x = L&amp;lt;/math&amp;gt;, os valores &amp;lt;math&amp;gt;y(0,t) = y(L,t) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso, supomos que a função &amp;lt;math&amp;gt;y(x,0) = f(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\frac{\partial y}{\partial t} = 0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;t = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com base nas observações realizadas, torna-se possível identificar um conjunto fundamental de soluções por meio da aplicação do método de separação de variáveis.&lt;br /&gt;
&lt;br /&gt;
Suponhamos que existam duas soluções, uma dependendo exclusivamente de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e outra exclusivamente de &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, de modo que possamos expressar a função &amp;lt;math&amp;gt;y(x,t)&amp;lt;/math&amp;gt; como o produto dessas duas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = X(x)T(t)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos escrever as derivadas parciais como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\frac{\partial^2 y}{\partial x^2} = \frac{X&#039;&#039;}{X} \\&lt;br /&gt;
\frac{\partial^2 y}{\partial t^2} = \frac{T&#039;&#039;}{T} \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
substituindo na equação da onda,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} - v^2 \frac{X&#039;&#039;}{X} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, torna-se evidente que a razão entre as funções de &amp;lt;mathT&amp;lt;/math&amp;gt; consiste em uma constante, assim como &amp;lt;math&amp;gt;v^2 \frac{X&#039;&#039;}{X}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
v^2 \frac{X&#039;&#039;}{X} = \lambda ^2 \to X&#039;&#039; = \bigg(\frac{\lambda}{v}\bigg)^2 X&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &#039;&#039;&#039;(I)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} = \lambda ^2  \to T&#039;&#039;= \lambda^2 T&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt; &#039;&#039;&#039;(II)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Observa-se que as equações (I) e (II) são equações diferenciais ordinárias (EDOs) lineares de segunda ordem, cujos coeficientes podem depender da variável independente e, potencialmente, serem funções não constantes. Assim, é possível usarmos da teoria de Sturm-Liouville para resolver essas equações.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resolvendo a Equação (I)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se avaliarmos as condições de contorno para os possíveis valores de lambda, que devem ser maiores ou iguais a zero, obtemos apenas a solução trivial. Contudo, se lambda for negativo, surge uma solução para &amp;lt;math&amp;gt;X(x)&amp;lt;/math&amp;gt; na forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(x) = a \cos \bigg( \frac{\lambda x}{v} \bigg) + b \sin \bigg( \frac{\lambda x}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições de contorno, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(0) = a \cos (0) + b \sin (0) = a  \therefore a=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(L) = b \sin \bigg( \frac{\lambda L}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Certamente, observa-se que, para alcançarmos uma solução não trivial, é necessário que &amp;lt;math&amp;gt;\lambda = \bigg( \frac{nv\pi}{L} \bigg) &amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;n \in \mathbb{N}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X_n (x) = \sum_{n=1}^{\infty} b_n \sin \bigg( \frac{n\pi x}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resolvendo a Equação (II)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Analogamente, temos uma solução não trivial para lambda menor que zero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
T(t) = c \cos(\lambda t) + d \sin(\lambda t) \to T_n (t) = \sum_{n=1}^{\infty} c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voltando para a solução geral:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty}  b_n \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juntando as constantes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty} \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(A_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + B_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt;, temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,0) =  \sum_{n=1}^{\infty} A_n \sin \bigg( \frac{n\pi x}{L} \bigg) = f(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; representa uma série de Fourier de senos, na qual os coeficientes &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; são determinados por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_n = \frac{2}{L}\int_0^L f(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando &amp;lt;math&amp;gt;y&#039;(x,0)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial }{\partial t} y(x,0) = \sum_{n=1}^{\infty} B_n \bigg( \frac{nv\pi}{L} \bigg) \sin \bigg( \frac{n\pi x}{L} \bigg) = g(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analogamente a &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(x)&amp;lt;/math&amp;gt; é uma série de Fourier de senos. Portanto, podemos determinar &amp;lt;math&amp;gt;B_n&amp;lt;/math&amp;gt; da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
B_n = \frac{2}{nv \pi}\int_0^L g(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementação da Solução Analítica ===&lt;br /&gt;
[[Arquivo:eq onda analitica.png|thumb|upright=0.0|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Se considerarmos 10 como o número máximo de termos na série de Fourier de uma corda com comprimento &amp;lt;math&amp;gt;L=1&amp;lt;/math&amp;gt; e velocidade &amp;lt;math&amp;gt;v=1&amp;lt;/math&amp;gt;, é possível criar um mapa da amplitude em função das posições de cada ponto da corda e do tempo. Esse tipo de gráfico será recorrente em nossa análise em diferentes casos.&lt;br /&gt;
&lt;br /&gt;
Neste caso, é possível observar que inicialmente a corda possui um máximo localizado no centro do eixo de posição, com mínimos iguais a zero nas extremidades do eixo. À medida que a função evolui no tempo, a amplitude diminui, passando por um instante onde em todos os pontos da corda a amplitude é zero, e prossegue para completar um meio período, onde apresenta um mínimo menor que zero centrado no eixo x e máximos iguais a zero nas extremidades da corda.&lt;br /&gt;
&lt;br /&gt;
= A equação de advecção unidimensional =&lt;br /&gt;
&lt;br /&gt;
Partimos da equação de advecção para estudarmos a propagação de uma perturbação.&lt;br /&gt;
&lt;br /&gt;
A equação de onda está intimamente relacionada à chamada equação de advecção, que, em uma dimensão, assume a seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial  u}{\partial t} + v\frac{\partial u}{\partial x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A equação a seguir descreve a advecção passiva de um campo escalar &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; transportado por um fluxo de velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Como a equação de advecção é um tanto mais simples do que a equação da onda, discutiremos aquela em primeiro lugar. A equação de advecção possui a solução formal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = F(x-vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa solução descreve um pulso de forma arbitrária que é arrastado pelo fluxo a uma velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;, sem alterar sua forma.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS para equação da advecção == &lt;br /&gt;
&lt;br /&gt;
Para a abordagem numérica computacional do nosso estudo, utilizamos o esquema FTCS (Forward Time-Centered Space).&lt;br /&gt;
&lt;br /&gt;
O método FTCS é amplamente empregado na resolução de equações diferenciais parciais. Trata-se de um método de diferenças finitas que adota uma abordagem explícita no tempo e central no espaço. Esse esquema apresenta uma acurácia de primeira ordem no tempo e de segunda ordem no espaço.&lt;br /&gt;
&lt;br /&gt;
A discretização no tempo (Forward Time) pode ser feita utilizando a diferença finita para a derivada temporal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial t} \approx \frac{u_i^{n+1} - u_i^n}{\Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; representa a amplitude da perturbação no ponto &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; do espaço e no instante &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, e &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; é o passo de tempo.&lt;br /&gt;
&lt;br /&gt;
A discretização no espaço (Central Space) pode ser feita utilizando a diferença finita para a derivada espacial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial x} \approx \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; é o espaçamento entre os pontos discretizados no espaço.&lt;br /&gt;
&lt;br /&gt;
As equações acima podem ser reescritas como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_i^n + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;r = v\frac{\Delta t}{\Delta x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann == &lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann é uma abordagem teórica utilizada para avaliar a estabilidade numérica de esquemas de diferenças finitas, incluindo o esquema FTCS. Usando o método de von Neumann, supõe-se a seguinte solução tentativa para a EDP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x, t) = A(t)e^{jkx}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;j = \sqrt{-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é o número de onda, e &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; é a amplitude da onda, uma função do tempo.&lt;br /&gt;
&lt;br /&gt;
Assim, a solução no passo de tempo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; e em &amp;lt;math&amp;gt;x = x_i = i\Delta x&amp;lt;/math&amp;gt; é escrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_ne^{jki\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo esta solução tentativa na expressão da advecção discretizada temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_{n+1}e^{jki\Delta x} = A_ne^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(A_ne^{jk(i+1)\Delta x} - A_ne^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(III)&lt;br /&gt;
&lt;br /&gt;
Seja &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; a razão da amplitude da onda no passo de tempo &amp;lt;math&amp;gt;n + 1&amp;lt;/math&amp;gt; em relação ao passo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. Portanto,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = \frac{A_{n+1}}{A_n}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dividir (III) por &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; resulta em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi e^{jki\Delta x} = e^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(e^{jk(i+1)\Delta x} - e^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se dividirmos esse resultado por &amp;lt;math&amp;gt;e^{jki\Delta x}&amp;lt;/math&amp;gt; temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = 1 - \frac{u\Delta t}{2\Delta x}\left(e^{jk\Delta x} - e^{-jk\Delta x}\right) = 1 - \frac{u\Delta t}{\Delta xj}\sin(k\Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|\xi| = \sqrt{1 + \left(\frac{u\Delta t}{\Delta x}\sin(k\Delta x)\right)^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isso implica que &amp;lt;math&amp;gt;|\xi| \geq 1&amp;lt;/math&amp;gt; independentemente do passo de tempo &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; selecionado ou do passo espacial &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, portanto, FTCS é incondicionalmente instável.&lt;br /&gt;
&lt;br /&gt;
Apesar de ser incondicionalmente instável, o esquema funcionará bem em nossa modelagem, uma vez que o método apresenta também suas vantagens. O esquema FTCS é relativamente simples de implementar, o que facilita sua aplicação, principalmente para problemas bidimensionais ou tridimensionais, como pretendemos abordar posteriormente.&lt;br /&gt;
&lt;br /&gt;
Em alguns casos específicos, o FTCS pode ser computacionalmente eficiente. Se a equação diferencial parcial for relativamente simples e o domínio de interesse for bem comportado, o FTCS pode oferecer uma solução razoável com custo computacional relativamente baixo.&lt;br /&gt;
&lt;br /&gt;
É feita uma comparação entre outros métodos numéricos de diferenças finitas para solução da equação da advecção e comparado o erro relativo à solução analítica no Apêndice A.&lt;br /&gt;
&lt;br /&gt;
== Implementação do esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ftcs eq advec.png|thumb|upright=0.0|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Vamos agora examinar a implementação do esquema FTCS na equação da advecção para visualizarmos a propagação de uma perturbação na forma de &amp;lt;math&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; em um eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; infinito. Em outras palavras:&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno periódicas.&lt;br /&gt;
&lt;br /&gt;
Neste caso, podemos observar uma perturbação se propagando no sentido negativo do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; sem perda de amplitude ou mudança de forma. Isso acontece porque, com a equação da advecção, podemos analisar apenas a cinemática de uma perturbação, a qual, por sua vez, apenas relaciona os atributos como amplitude, comprimento de onda, frequência e velocidade.&lt;br /&gt;
&lt;br /&gt;
Podemos observar, ainda, que a amplitude está relacionada à condição inicial em que o máximo de &amp;lt;matH&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; é atingido quando &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt;. Nesse contexto, considerando &amp;lt;math&amp;gt;0 &amp;lt; x &amp;lt; 2\pi&amp;lt;/math&amp;gt;, percebemos que &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt; ocorre exatamente no meio do eixo. Em consequência, a amplitude máxima, que é 2, é inicialmente alcançada no ponto central do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em uma dimensão =&lt;br /&gt;
&lt;br /&gt;
A equação da onda, que em uma dimensão assume a forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 \frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2  u}{\partial x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; geralmente é algum tipo de deslocamento ou perturbação, enquanto &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; é a velocidade da onda. A equação de onda possui a solução formal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 u(x,t) = F(x+vt) + G(x+vt),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; são funções arbitrárias. A solução acima representa pulsos de onda de formato arbitrário que se propagam com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; nas direções &amp;lt;math&amp;gt;+x&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;-x&amp;lt;/math&amp;gt;, respectivamente, sem alterar a forma.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS para equação da onda unidimensional== &lt;br /&gt;
&lt;br /&gt;
Iniciamos o estudo da solução numérica da equação da onda a partir da implementação do esquema FTCS, pois, como comentado antes, este é o método de implementação mais prático para generalizarmos para mais dimensões espaciais.&lt;br /&gt;
&lt;br /&gt;
As derivadas de segunda ordem podem ser substituídas por diferenças centrais. A aproximação de diferença mais amplamente utilizada para a derivada de segunda ordem é&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial t^2}u(x_i,t_n)\approx \frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uma aproximação semelhante para a derivada de segunda ordem na direção &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; é dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial x^2}u(x_i,t_n)\approx \frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora podemos substituir as derivadas e obter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2} = v^2\frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assumimos que &amp;lt;math&amp;gt;u^n_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u^{n-1}_i&amp;lt;/math&amp;gt; já foram calculados para &amp;lt;math&amp;gt;i=0,\ldots,N_x&amp;lt;/math&amp;gt;. A única quantidade desconhecida é, portanto, &amp;lt;math&amp;gt;u^{n+1}_i&amp;lt;/math&amp;gt;, que podemos resolver da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_i = -u^{n-1}_i + 2u^n_i + r^2 \left(u^{n}_{i+1}-2u^{n}_{i} + u^{n}_{i-1}\right),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde introduzimos o parâmetro&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r = v\frac{\Delta t}{\Delta x},&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
conhecido como número de Courant.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann ==&lt;br /&gt;
&lt;br /&gt;
Pela análise de Von Neumann, substituímos &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; por &amp;lt;math&amp;gt;g_n e^{i\theta}&amp;lt;/math&amp;gt; na equação da onda. Após manipulações, a expressão resultante é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = 2 - g^{-1} + \frac{C}{2}(e^{i\theta} - 2 + e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usando a identidade de Euler &amp;lt;math&amp;gt;e^{i\theta} + e^{-i\theta} = 2 \cos \theta&amp;lt;/math&amp;gt;, chegamos a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 - 2[1 - \frac{C}{2}(1 - \cos \theta)]g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reescrevendo &amp;lt;math&amp;gt;\cos \theta = \cos^2\left(\frac{\theta}{2}\right) - \sin^2\left(\frac{\theta}{2}\right)&amp;lt;/math&amp;gt;, a equação torna-se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 + 2(2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1)g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expressamos isso como &amp;lt;math&amp;gt;g^2 + 2bg + 1 = 0&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;b = 2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1&amp;lt;/math&amp;gt;. As raízes são:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = \begin{cases} -b \pm \sqrt{b^2 - 1}, &amp;amp; \text{se } |b| &amp;gt; 1 \\ -b \pm i\sqrt{1 - b^2}, &amp;amp; \text{se } |b| \leq 1 \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se &amp;lt;math&amp;gt;|b| &amp;gt; 1&amp;lt;/math&amp;gt;, implica &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt;. Se &amp;lt;math&amp;gt;|b| \leq 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt; pela condição de Von Neumann, tornando o método condicionalmente estável pela condição CFL.&lt;br /&gt;
&lt;br /&gt;
== Reflexão de onda em uma corda ==&lt;br /&gt;
&lt;br /&gt;
Quando uma onda se propaga ao longo de uma corda e incide em uma de suas extremidades, ocorre a sua reflexão. Ao atingir um extremo fixo, que não pode oscilar, é possível observar que o pulso refletido apresenta uma orientação oposta à do pulso incidente. Podemos afirmar que o pulso reflete com inversão de fase, pois isso ocorre devido à reação do ponto fixo sobre a corda com uma força de mesmo módulo. Uma situação distinta ocorre quando a extremidade da corda é móvel, ou seja, não há troca de forças entre ela e a corda, resultando em uma reflexão sem inversão de fase.&lt;br /&gt;
&lt;br /&gt;
Além disso, em um sistema fechado e sem dissipação de energia, podemos observar que as ondas refletidas, independentemente da fase, sofrem interferência construtiva e produzem picos de máximo ou mínimo, dependendo do contexto.&lt;br /&gt;
&lt;br /&gt;
Podemos observar esse fenômeno ao implementar a solução da equação da onda unidimensional com condições de contorno fixas e periódicas, respectivamente, para uma corda com extremidades fixas e extremidades móveis.&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades fixas ===&lt;br /&gt;
&lt;br /&gt;
Neste caso, é possível observar que a corda iniciará a partir do seu ponto mais alto no centro do eixo. A perturbação se propagará igualmente para ambos os sentidos do eixo. Ao atingir as extremidades fixas, as duas perturbações, invertidas, deslocam-se em direção ao centro da corda, onde interferem de forma construtiva e produzem um mínimo de amplitude.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:corda_ponta_fixa.gif|thumb|upright=0.0|center|Evolução temporal da amplitude pela posição no eixo x em uma corda com extremidades fixas|350px]]&lt;br /&gt;
|[[Arquivo:MA corda com pontas fixas.png|thumb|upright=0.0|center|310px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades móveis ===&lt;br /&gt;
&lt;br /&gt;
Com extremidades móveis, não se observa uma mudança de fase da perturbação inicial ao atingir os extremos da corda. No entanto, ao implementarmos condições de contorno periódicas, implicamos que, ao alcançar uma das extremidades da corda, o pulso retorna à outra extremidade, continuando a se propagar na mesma direção e com a mesma velocidade. Como a perturbação inicial gera dois pulsos se propagando em direções opostas a partir do centro do eixo, com velocidades iguais, percebemos a interação construtiva dos pulsos que alcançam os limites do eixo simultaneamente. Isso faz com que retornem a se propagar em direção ao centro, gerando máximos de amplitude em cada interação.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:corda_ponta_solta.gif|thumb|upright=0.0|center|Evolução temporal da amplitude pela posição no eixo x em uma corda com extremidades interligadas por condições de contorno periódicas.|350px]]&lt;br /&gt;
|[[Arquivo:MA corda com pontas soltas.png|thumb|upright=0.0|center|310px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Alteração no meio de propagação ===&lt;br /&gt;
&lt;br /&gt;
A refração é um fenômeno que ocorre quando uma onda passa de um meio para outro com uma velocidade de propagação diferente. Esse fenômeno é mais comumente associado a ondas de luz, mas também pode ocorrer com ondas sonoras, ondas de rádio, ondas sísmicas e outras formas de ondas.&lt;br /&gt;
&lt;br /&gt;
Se uma onda se propaga em uma corda e encontra uma mudança abrupta nas propriedades da corda, como a densidade ou a tensão, isso pode resultar em uma mudança na velocidade da onda. O grau de refração dependerá das diferenças nas propriedades do meio antes e depois da mudança.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:muda_meio_de_propag.gif|thumb|upright=0.0|center|Evolução temporal da amplitude pela posição no eixo x em uma corda com extremidades fixas e diferentes densidades.|350px]]&lt;br /&gt;
|[[Arquivo:MA corda muda meio.png|thumb|upright=0.0|center|340px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Em um modelo que considera a reflexão e a refração na junção das duas ondas [Elmore e Head], é demonstrado que a razão entre as amplitudes da onda refratada (&amp;lt;math&amp;gt;A_2&amp;lt;/math&amp;gt;) e a amplitude da onda incidente (&amp;lt;math&amp;gt;A_1&amp;lt;/math&amp;gt;) é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{A_2}{A_1} = \frac{2\sqrt{\mu_1}}{\sqrt{\mu_1} +\sqrt{\mu_2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usando a relação da velocidade de propagação com as variáveis de tensão e densidade podemos chegar em expressões para as amplitudes do pulso que irá voltar (&amp;lt;math&amp;gt;A_v&amp;lt;/math&amp;gt;) e do pulso que irá passar para a outra corda (&amp;lt;math&amp;gt;A_p&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_p = \frac{2v_2}{v_1 + v_2}A_i &lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_v = \frac{|v_1 - v_2|}{v_1 + v_2}A_i&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(IV)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; é a amplitude do pulso incidente.&lt;br /&gt;
&lt;br /&gt;
No nosso caso, a perturbação inicial tem amplitude de 1, porém propaga-se isotopicamente nos dois sentidos do eixo x. O pulso que se desloca no sentido negativo do eixo interage imediatamente com o ponto fixo da corda e torna a propagar-se no sentido positivo, mas agora com uma fase. Assim, temos dois pulsos, um positivo e um negativo, ambos com amplitude igual a &amp;lt;math&amp;gt;0.5&amp;lt;/math&amp;gt;, propagando-se em direção a outra corda de densidade diferente.&lt;br /&gt;
&lt;br /&gt;
Com as velocidades de propagação nos dois meios, utilizando as fórmulas em (IV), podemos determinar que a amplitude do pulso que irá voltar é &amp;lt;math&amp;gt;0,167&amp;lt;/math&amp;gt;, enquanto a do pulso que será refratado é &amp;lt;math&amp;gt;0,333&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:muda_meio_de_propag_analise.gif|thumb|upright=0.0|center|450px]]&lt;br /&gt;
&lt;br /&gt;
=== Oscilador em uma corda ===&lt;br /&gt;
&lt;br /&gt;
Agora, em vez de variarmos as condições de contorno para um pulso senoidal em uma corda, estamos avaliando um oscilador senoidal acoplado a corda com parâmetros físicos bem definidos: amplitude (A), frequência (f) e comprimento de onda ( λ ). Assim, ao invés de termos uma condição inicial que aplicada em um pequena porção da corda se propaga, iremos avaliar um oscilador da forma &amp;lt;math&amp;gt;A\sin(kx)&amp;lt;/math&amp;gt; que define a amplitude inicial para cada ponto da corda, onde &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é o número de onda definido como duas vezes &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt; sobre o comprimento de onda. Vale notar ainda que λ é uma função da velocidade de propagação (propriedade da corda) e da frequência (propriedade do oscilado).&lt;br /&gt;
&lt;br /&gt;
Seja &amp;lt;math&amp;gt;A = 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;v = 1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f =  0.13&amp;lt;/math&amp;gt;, que resulta em um comprimento de onda igual a 7.7. Implementando um oscilador com esses parâmetros para uma corda com extremidades fixas, obtemos&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:oscilador com pontas fixas.png|thumb|upright=0.0|center|450px]]&lt;br /&gt;
&lt;br /&gt;
Observamos que, ao ajustar arbitrariamente os parâmetros do oscilador, obtemos regiões mais escuras e mais claras, pouco organizadas. Nessas regiões, ocorrem interferências destrutivas e construtivas, respectivamente. As interferências ocorrem de forma pouco definida, uma vez que não há, nesse caso, um padrão bem definido para as interações que a onda sofrerá. No entanto, veremos que isso pode ser modificado.&lt;br /&gt;
&lt;br /&gt;
=== Ondas estacionárias ===&lt;br /&gt;
&lt;br /&gt;
A relação entre o comprimento de onda da onda incidente ( λ) e a distância disponível para a onda se refletir (&amp;lt;math&amp;gt;2L&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; é o comprimento da região confinada, da corda) deve permitir a formação de nós e ventres estacionários. Para ondas estacionárias em uma corda com extremidades fixas, os comprimentos de onda permitidos são dados por &amp;lt;math&amp;gt;\lambda_n = \frac{2L}{n}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; é um número inteiro positivo.&lt;br /&gt;
&lt;br /&gt;
Essa fórmula mostra que à medida que &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; aumenta, o comprimento de onda diminui. Cada valor de &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; corresponde a uma harmônica específica, que representa o número de meios comprimentos de onda que cabem na corda. A primeira harmônica (&amp;lt;math&amp;gt;n = 1&amp;lt;/math&amp;gt;) tem um nó em cada extremidade da corda, a segunda harmônica (&amp;lt;math&amp;gt;n = 2&amp;lt;/math&amp;gt;) tem dois nós, e assim por diante.&lt;br /&gt;
&lt;br /&gt;
Dado que &amp;lt;math&amp;gt;\lambda = \frac{v}{f} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\lambda_n = \frac{2L}{n}&amp;lt;/math&amp;gt;, é possível expressar um conjunto discreto de frequências para o nosso oscilador, as quais resultam em ondas estacionárias.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_n = \frac{nv}{2L}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, podemos aplicar valores de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; condicionados a gerar as condições necessárias para a formação de ondas estacionárias.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ondas_estacionarias.png|thumb|upright=0.0|center|650px]]&lt;br /&gt;
&lt;br /&gt;
= A Equação da Onda em Duas Dimensões =&lt;br /&gt;
&lt;br /&gt;
Agora, procederemos à avaliação da modelagem de ondas em duas dimensões. Nesse contexto, além dos fenômenos já observados, é possível perceber também a difração.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS para Equação da Onda Bidimensional== &lt;br /&gt;
&lt;br /&gt;
Em duas dimensões, a equação da onda é dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 f}{\partial t^2} = v^2 \left( \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} \right).&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aproximando todas as derivadas parciais por uma diferença finita centrada, segue que&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 f}{\partial t^2} \approx \frac{f^{n+1}_{i,j} - 2f^{n}_{i,j} + f^{n-1}_{i,j}}{\Delta t^2},\qquad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\frac{\partial^2 f}{\partial x^2} \approx \frac{f^{n}_{i+1,j} - 2f^{n}_{i,j} + f^{n}_{i-1,j}}{\Delta x^2},\qquad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\frac{\partial^2 f}{\partial y^2} \approx \frac{f^{n}_{i,j+1} - 2f^{n}_{i,j} + f^{n}_{i,j-1}}{\Delta y^2}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto, em forma discreta, a equação da onda pode ser escrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^{n+1}_{i,j} = 2f^{n}_{i,j} - f^{n-1}_{i,j} + v^2 \left[ \frac{\Delta t^2}{\Delta x^2} \left(f^{n}_{i+1,j} - 2f^{n}_{i,j} + f^{n}_{i-1,j}\right) + \frac{\Delta t^2}{\Delta y^2} \left(f^{n}_{i,j+1} - 2f^{n}_{i,j} + f^{n}_{i,j-1}\right) \right].&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;\Delta x = \Delta y&amp;lt;/math&amp;gt;, segue que&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^{n+1}_{i,j} = \left(2-4a\right)f^{n}_{i,j} - f^{n-1}_{i,j} + a\left(f^n_{i-1,j}+f^n_{i+1,j}+f^n_{i,j-1}+f^n_{i,j+1}\right), \qquad a\equiv \left(v\frac{\Delta t}{\Delta x}\right)^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou, ainda,&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^{n}_{i,j} = \left(2-4a\right)f^{n-1}_{i,j} - f^{n-2}_{i,j} + a\left(f^{n-1}_{i-1,j}+f^{n-1}_{i+1,j}+f^{n-1}_{i,j-1}+f^{n-1}_{i,j+1}\right), \qquad a\equiv \left(v\frac{\Delta t}{\Delta x}\right)^2.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Condições Iniciais ===&lt;br /&gt;
Para implementar o esquema acima, são necessários valores de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; nos dois primeiros passos temporais. As condições iniciais para a equação da onda, no entanto, têm a forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f(x,y,t=0) =\phi(x,y)=\phi_{i,j},\qquad f_t(x, y, t=0)=\psi(x,y)=\psi_{i,j}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desse modo, os valores da intensidade da onda no primeiro passo temporal, &amp;lt;math&amp;gt;f^0_{i,j}&amp;lt;/math&amp;gt;, podem ser obtidos da primeira condição inicial: &amp;lt;math&amp;gt;f^0_{i,j}=\phi_{i, j}&amp;lt;/math&amp;gt;. Os valores da intensidade da onda no segundo passo temporal podem ser aproximados como se segue: visto que&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f_t(x,y,t=0)\approx&lt;br /&gt;
\frac{f(x, y, t=0)}{\Delta t},&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
então, em notação discreta,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\psi_{i,j}\approx&lt;br /&gt;
\frac{f^{0}_{i,j}}{\Delta t}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A diferença central desse quociente é&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{f^{0}_{i,j}}{\Delta t}\approx\frac{f^{1}_{i,j}-f^{-1}_{i,j}}{2\Delta t}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\psi_{i,j}\approx\frac{f^{1}_{i,j}-f^{-1}_{i,j}}{2\Delta t}&lt;br /&gt;
\implies&lt;br /&gt;
f^{1}_{i,j}-f^{-1}_{i,j}=2\Delta t\psi_{i,j}&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Além disso, para &amp;lt;math&amp;gt;n=1&amp;lt;/math&amp;gt;, a última equação do esquema FTCS resulta em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^1_{i,j} = \left(2-4a\right)f^0_{i,j} + a\left(f^{0}_{i-1,j}+f^{0}_{i+1,j}+f^{0}_{i,j-1}+f^{0}_{i,j+1}\right) - f^{-1}_{i,j}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portanto, tem-se o sistema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
f^1_{i,j} - f^{-1}_{i,j} = 2\Delta t\psi_{i,j}\\&lt;br /&gt;
f^1_{i,j} + f^{-1}_{i,j} = \left(2-4a\right)f^0_{i,j} + a\left(f^{0}_{i-1,j}+f^{0}_{i+1,j}+f^{0}_{i,j-1}+f^{0}_{i,j+1}\right) \end{cases}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somando as duas equações, obtém-se uma expressão para &amp;lt;math&amp;gt;f^1_{i,j}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
f^1_{i,j} = \Delta t\psi_{i,j} + \left(1-2a\right)f^0_{i,j} + \frac{a}{2}\left(f^{0}_{i-1,j}+f^{0}_{i+1,j}+f^{0}_{i,j-1}+f^{0}_{i,j+1}\right).&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementações em Python ==&lt;br /&gt;
&lt;br /&gt;
= Apêndice A: Métodos numéricos para solução da equação de advecção =&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Friedrich]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff]]&lt;br /&gt;
&lt;br /&gt;
[[Upwind Differencing]]&lt;br /&gt;
&lt;br /&gt;
[[Método Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff de dois passos]]&lt;br /&gt;
&lt;br /&gt;
[[Comparação dos métodos numéricos]]&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Leapfrog&amp;diff=9825</id>
		<title>Método Leapfrog</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Leapfrog&amp;diff=9825"/>
		<updated>2024-02-04T22:19:17Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;O termo &amp;quot;leapfrog&amp;quot; é utilizado devido aos níveis de tempo presentes na sua derivação, que superam os níveis de tempo no termo derivado do espaço. O método requer que &amp;lt;math&amp;gt;u_{n-1}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; sejam armazenados para calcular &amp;lt;math&amp;gt;u_{n+1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, em relação à equação de advecção, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} = u_i^{n-1} +  r (u_{i+1}^{n} - u_{i-1}^{n})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(18)&lt;br /&gt;
&lt;br /&gt;
= Esquema de Matsuno =&lt;br /&gt;
&lt;br /&gt;
Primeiramente, os valores aproximados de &amp;lt;math&amp;gt;u_j^{n+1}&amp;lt;/math&amp;gt; serão calculados utilizando o esquema avançado, representado pela equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{(n+1)^*} - u_i^{n}}{\Delta t} = -v \frac{u_{i+1}^{n} - u_{i-1}^{n}}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(19)&lt;br /&gt;
&lt;br /&gt;
Assim, esses valores aproximados são empregados em um esquema atrasado, o qual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^{n}}{\Delta t} = -v \frac{u_{i+1}^{(n+1)^*} - u_{i-1}^{(n+1)^*}}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(20)&lt;br /&gt;
&lt;br /&gt;
substituindo valores dados pelo esquema avançado, com o subscrito &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; substituído por &amp;lt;math&amp;gt;i+1&amp;lt;/math&amp;gt;, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} =  u_i^{n} - \frac{r}{2}(u_{i+1}^{n} - u_{i-1}^{n}) + \frac{r^2}{2}(u_{i+2}^{n} - u_{i}^{n} + u_{i-2}^{n})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Leapfrog para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def Leapfrogad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / Nx&lt;br /&gt;
    dt = tf / Nt&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0, :] = 1 - np.cos(x)  # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            # Condições de contorno&lt;br /&gt;
            ip = i + 1 if i &amp;lt; Nx else 0  # índice i+1 (volta para 0 na borda)&lt;br /&gt;
            ia = i - 1 if i &amp;gt; 0 else Nx  # índice i-1 (volta para Nx na borda)&lt;br /&gt;
&lt;br /&gt;
            u[n+1, i] = u[n, i] + (r/2) * (u[n, ip] - u[n, ia]) - (r/2)**2 * (u[n, (ip+1) % (Nx + 1)] - u[n, i] + u[n, (ia-1) % (Nx + 1)])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ideia ==&lt;br /&gt;
&lt;br /&gt;
* Se i é igual a Nx, então ip = Nx+1 e (ip+1) % (Nx + 1) se torna (Nx + 2) % (Nx + 1), que é equivalente a 0. Da mesma forma, se i é igual a 0, então ia = -1 e (ia-1) % (Nx + 1) se torna Nx;&lt;br /&gt;
&lt;br /&gt;
* Quando i atinge o valor máximo Nx ou o valor mínimo 0, as expressões (ip+1) % (Nx + 1) e (ia-1) % (Nx + 1) garantem que os índices não ultrapassem os limites da matriz. O operador % (módulo) faz com que o índice retorne ao início (quando excede o limite superior) ou ao final (quando é menor que o limite inferior) da matriz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv5 = Leapfrogad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv5, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Leapfrog da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: leapfrog.png|thumb|upright=0.0|center|Solução pelo método Leapfrog|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv5[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude leapfrog.png|thumb|upright=0.0|center|Solução pelo método Leapfrog|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como é possível observar ele tem um efeito do amortecimento. Deste modo, o esquema do Matsuno não parece conveniente para resolver a equação da advecção, pois impõe um amortecimento na solução numérica, que não é observada na solução analítica. [Projeto PAE – Bolsista Simone E. Teleginski Ferraz. pg 5]&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9824</id>
		<title>Métodos Computacionais para Estudo de Fenômenos Ondulatórios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9824"/>
		<updated>2024-02-04T22:17:52Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo realizar um estudo introdutório da equação da onda, adotando uma abordagem computacional que proporciona uma base teórica sólida e intuitiva. Inicialmente, é realizada a implementação de uma solução numérica (FTCS) para a equação da advecção, visando o estudo da propagação de uma perturbação e explorando aspectos computacionais fundamentais. Em seguida, a equação da onda é aplicada em uma dimensão, permitindo uma investigação detalhada de fenômenos ondulatórios, tais como reflexão, interferência e refração. A abordagem é estendida para duas dimensões, incluindo a análise dos efeitos de contorno nesse contexto. Por fim, o trabalho aprofunda-se no estudo do fenômeno de difração, contribuindo para uma compreensão mais enriquecedora dos aspectos complexos dos fenômenos ondulatórios em múltiplas dimensões.&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O que é uma onda exatamente? De acordo com &#039;A Student’s Guide to Waves&#039;, a literatura apresenta diversas definições. Contudo, a característica mais comum que define uma onda é sua natureza como uma perturbação, uma alteração no estado de equilíbrio que, inicialmente, permanece inalterado. Quando uma fonte externa, como um objeto vibrante ou uma força inicial, perturba a condição de equilíbrio de um meio, essa perturbação é transmitida de partícula para partícula ao longo do meio. Esse processo de transmissão de energia ocorre sem que as partículas individuais do meio se desloquem significativamente de suas posições de equilíbrio. Em outras palavras, a energia da perturbação é transferida, mas as partículas do meio não se movem em conjunto com a onda.&lt;br /&gt;
&lt;br /&gt;
O estudo da física das ondas desempenha um papel crucial, permeando inúmeras áreas da ciência e da tecnologia ao proporcionar uma compreensão profunda dos fenômenos ondulatórios e suas aplicações práticas. A física das ondas desempenha um papel essencial em nossa vida cotidiana. Seu impacto é evidente na tecnologia de comunicação, onde as ondas de rádio e micro-ondas são a espinha dorsal de redes globais de telefonia móvel e internet sem fio.&lt;br /&gt;
&lt;br /&gt;
Com base no exposto, propõe-se a realização de um estudo abrangente sobre a modelagem de fenômenos ondulatórios. Inicialmente, serão apresentados pontos importantes acerca da equação da onda. Em seguida, dedicaremos atenção ao estudo da propagação de uma perturbação a partir da equação de advecção. Nesse contexto, abriremos a discussão sobre a abordagem computacional, e, tangencialmente, comentaremos sobre outros métodos numéricos para resolver a advecção. Posteriormente, faremos um estudo sobre a solução numérica da equação da onda, permitindo a modelagem de fenômenos ondulatórios, como reflexão, interferência, refração e difração.&lt;br /&gt;
&lt;br /&gt;
= Equação da Onda =&lt;br /&gt;
&lt;br /&gt;
A função de uma onda é aquela que especifica o valor da perturbação em cada ponto e instante ao longo de seu percurso. Para iniciar nossa análise, abordaremos o exemplo mais simples, em que a propagação ocorre unicamente em uma direção, como é o caso das ondas transversais em uma corda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dedução ==&lt;br /&gt;
&lt;br /&gt;
O perfil da onda em uma corda em um determinado instante é equivalente à forma que a corda apresenta nesse momento, que é dada pela função &amp;lt;math&amp;gt;y(x, t)&amp;lt;/math&amp;gt;. A perturbação assume a forma de uma onda progressiva, movendo-se como uma entidade coesa para a direita, mantendo sua configuração inalterada, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Dessa forma, ao acompanhar a onda em um referencial inercial diferente, em que &amp;lt;math&amp;gt;y(x,t)=y(x&#039;,t)&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;x&#039;&amp;lt;/math&amp;gt; representa o antigo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; deslocado por &amp;lt;math&amp;gt;vt&amp;lt;/math&amp;gt;, a relação entre os dois referenciais é estabelecida por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
x&#039; = x - vt&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y&#039; = y&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
de modo que, no referencial original,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = f(x - vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
descreve uma onda progressiva, que se propaga para a direita, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para associar uma equação de movimento com a propagação da onda, vamos calcular a aceleração num dado ponto &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;. A velocidade e a aceleração em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; se obtêm fixando &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e derivando em relação ao tempo, o que corresponde a tomar derivadas parciais.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        V = \frac{\partial}{\partial t} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        A = \frac{\partial ^2}{\partial t^2} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pela regra da cadeia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial y}{\partial t} = \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t} = -v \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
Analogamente,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2}{\partial t^2} = -v \frac{\partial}{\partial t} \frac{\partial f}{\partial x&#039;} = -v \frac{\partial}{\partial x&#039;} \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou seja,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} = v^2 \frac{\partial ^2 f }{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; em relação a &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; obtemos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial y}{\partial x} = \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial ^2 y}{\partial x^2} = \frac{\partial ^2 f}{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} - v^2 \frac{\partial^2 y }{\partial x^2} = 0  &lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denominada equação da onda unidimensional, esta é uma das equações fundamentais da física.&lt;br /&gt;
&lt;br /&gt;
== Solução Analítica ==&lt;br /&gt;
&lt;br /&gt;
Agora, procederemos à análise do movimento de uma corda de comprimento &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; que vibra com extremidades fixas. Como essas extremidades são fixas, temos, nos pontos &amp;lt;math&amp;gt;x = 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x = L&amp;lt;/math&amp;gt;, os valores &amp;lt;math&amp;gt;y(0,t) = y(L,t) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso, supomos que a função &amp;lt;math&amp;gt;y(x,0) = f(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\frac{\partial y}{\partial t} = 0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;t = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com base nas observações realizadas, torna-se possível identificar um conjunto fundamental de soluções por meio da aplicação do método de separação de variáveis.&lt;br /&gt;
&lt;br /&gt;
Suponhamos que existam duas soluções, uma dependendo exclusivamente de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e outra exclusivamente de &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, de modo que possamos expressar a função &amp;lt;math&amp;gt;y(x,t)&amp;lt;/math&amp;gt; como o produto dessas duas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = X(x)T(t)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos escrever as derivadas parciais como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\frac{\partial^2 y}{\partial x^2} = \frac{X&#039;&#039;}{X} \\&lt;br /&gt;
\frac{\partial^2 y}{\partial t^2} = \frac{T&#039;&#039;}{T} \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
substituindo na equação da onda,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} - v^2 \frac{X&#039;&#039;}{X} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, torna-se evidente que a razão entre as funções de &amp;lt;mathT&amp;lt;/math&amp;gt; consiste em uma constante, assim como &amp;lt;math&amp;gt;v^2 \frac{X&#039;&#039;}{X}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[*Equação (12)*]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
v^2 \frac{X&#039;&#039;}{X} = \lambda ^2 \to X&#039;&#039; = \bigg(\frac{\lambda}{v}\bigg)^2 X&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[*Equação (13)*]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} = \lambda ^2  \to T&#039;&#039;= \lambda^2 T&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observa-se que as equações (12) e (13) são equações diferenciais ordinárias (EDOs) lineares de segunda ordem, cujos coeficientes podem depender da variável independente e, potencialmente, serem funções não constantes. Assim, é possível usarmos da teoria de Sturm-Liouville para resolver essas equações.&lt;br /&gt;
&lt;br /&gt;
=== Resolvendo a Equação (12) ===&lt;br /&gt;
&lt;br /&gt;
Se avaliarmos as condições de contorno para os possíveis valores de lambda, que devem ser maiores ou iguais a zero, obtemos apenas a solução trivial. Contudo, se lambda for negativo, surge uma solução para &amp;lt;math&amp;gt;X(x)&amp;lt;/math&amp;gt; na forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(x) = a \cos \bigg( \frac{\lambda x}{v} \bigg) + b \sin \bigg( \frac{\lambda x}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições de contorno, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(0) = a \cos (0) + b \sin (0) = a  \therefore a=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(L) = b \sin \bigg( \frac{\lambda L}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Certamente, observa-se que, para alcançarmos uma solução não trivial, é necessário que &amp;lt;math&amp;gt;\lambda = \bigg( \frac{nv\pi}{L} \bigg) &amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;n \in \mathbb{N}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X_n (x) = \sum_{n=1}^{\infty} b_n \sin \bigg( \frac{n\pi x}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resolvendo a Equação (13) ===&lt;br /&gt;
&lt;br /&gt;
Analogamente, temos uma solução não trivial para lambda menor que zero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
T(t) = c \cos(\lambda t) + d \sin(\lambda t) \to T_n (t) = \sum_{n=1}^{\infty} c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voltando para a solução geral:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty}  b_n \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juntando as constantes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty} \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(A_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + B_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt;, temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,0) =  \sum_{n=1}^{\infty} A_n \sin \bigg( \frac{n\pi x}{L} \bigg) = f(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; representa uma série de Fourier de senos, na qual os coeficientes &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; são determinados por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_n = \frac{2}{L}\int_0^L f(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando &amp;lt;math&amp;gt;y&#039;(x,0)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial }{\partial t} y(x,0) = \sum_{n=1}^{\infty} B_n \bigg( \frac{nv\pi}{L} \bigg) \sin \bigg( \frac{n\pi x}{L} \bigg) = g(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analogamente a &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(x)&amp;lt;/math&amp;gt; é uma série de Fourier de senos. Portanto, podemos determinar &amp;lt;math&amp;gt;B_n&amp;lt;/math&amp;gt; da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
B_n = \frac{2}{nv \pi}\int_0^L g(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= A equação de advecção unidimensional =&lt;br /&gt;
&lt;br /&gt;
Partimos da equação de advecção para estudarmos a propagação de uma perturbação.&lt;br /&gt;
&lt;br /&gt;
A equação de onda está intimamente relacionada à chamada equação de advecção, que, em uma dimensão, assume a seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial  u}{\partial t} + v\frac{\partial u}{\partial x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(4)&lt;br /&gt;
&lt;br /&gt;
A equação a seguir descreve a advecção passiva de um campo escalar &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; transportado por um fluxo de velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Como a equação de advecção é um tanto mais simples do que a equação da onda, discutiremos aquela em primeiro lugar. A equação de advecção possui a solução formal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = F(x-vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(5)&lt;br /&gt;
&lt;br /&gt;
Essa solução descreve um pulso de forma arbitrária que é arrastado pelo fluxo a uma velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;, sem alterar sua forma.&lt;br /&gt;
&lt;br /&gt;
== Solução analítica da equação da advecção ==&lt;br /&gt;
&lt;br /&gt;
== Esquema Forward Time-Centered Space (FTCS) == &lt;br /&gt;
&lt;br /&gt;
Para a abordagem numérica computacional do nosso estudo, utilizamos o esquema FTCS.&lt;br /&gt;
&lt;br /&gt;
O método FTCS é amplamente empregado na resolução de equações diferenciais parciais. Trata-se de um método de diferenças finitas que adota uma abordagem explícita no tempo e central no espaço. Esse esquema apresenta uma acurácia de primeira ordem no tempo e de segunda ordem no espaço.&lt;br /&gt;
&lt;br /&gt;
A discretização no tempo (Forward Time) pode ser feita utilizando a diferença finita para a derivada temporal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial t} \approx \frac{u_i^{n+1} - u_i^n}{\Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(6)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; representa a amplitude da perturbação no ponto &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; do espaço e no instante &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, e &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; é o passo de tempo.&lt;br /&gt;
&lt;br /&gt;
A discretização no espaço (Central Space) pode ser feita utilizando a diferença finita para a derivada espacial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial x} \approx \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(7)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; é o espaçamento entre os pontos discretizados no espaço.&lt;br /&gt;
&lt;br /&gt;
As equações acima podem ser reescritas como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_i^n + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(8)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;r = v\frac{\Delta t}{\Delta x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann == &lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann é uma abordagem teórica utilizada para avaliar a estabilidade numérica de esquemas de diferenças finitas, incluindo o esquema FTCS. Usando o método de von Neumann, supõe-se a seguinte solução tentativa para a EDP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x, t) = A(t)e^{jkx}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(8)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;j = \sqrt{-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é o número de onda, e &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; é a amplitude da onda, uma função do tempo.&lt;br /&gt;
&lt;br /&gt;
Assim, a solução no passo de tempo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; e em &amp;lt;math&amp;gt;x = x_i = i\Delta x&amp;lt;/math&amp;gt; é escrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_ne^{jki\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(9)&lt;br /&gt;
&lt;br /&gt;
Substituindo esta solução tentativa na expressão da advecção discretizada temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_{n+1}e^{jki\Delta x} = A_ne^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(A_ne^{jk(i+1)\Delta x} - A_ne^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(10)&lt;br /&gt;
&lt;br /&gt;
Seja &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; a razão da amplitude da onda no passo de tempo &amp;lt;math&amp;gt;n + 1&amp;lt;/math&amp;gt; em relação ao passo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. Portanto,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = \frac{A_{n+1}}{A_n}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
Dividir (10) por &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; resulta em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi e^{jki\Delta x} = e^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(e^{jk(i+1)\Delta x} - e^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Se dividirmos esse resultado por &amp;lt;math&amp;gt;e^{jki\Delta x}&amp;lt;/math&amp;gt; temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = 1 - \frac{u\Delta t}{2\Delta x}\left(e^{jk\Delta x} - e^{-jk\Delta x}\right) = 1 - \frac{u\Delta t}{\Delta xj}\sin(k\Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|\xi| = \sqrt{1 + \left(\frac{u\Delta t}{\Delta x}\sin(k\Delta x)\right)^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(14)&lt;br /&gt;
&lt;br /&gt;
Isso implica que &amp;lt;math&amp;gt;|\xi| \geq 1&amp;lt;/math&amp;gt; independentemente do passo de tempo &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; selecionado ou do passo espacial &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, portanto, FTCS é incondicionalmente instável.&lt;br /&gt;
&lt;br /&gt;
Apesar de ser incondicionalmente instável, o esquema funcionará bem em nossa modelagem, uma vez que o método apresenta também suas vantagens. O esquema FTCS é relativamente simples de implementar, o que facilita sua aplicação, principalmente para problemas bidimensionais ou tridimensionais, como pretendemos abordar posteriormente.&lt;br /&gt;
&lt;br /&gt;
Em alguns casos específicos, o FTCS pode ser computacionalmente eficiente. Se a equação diferencial parcial for relativamente simples e o domínio de interesse for bem comportado, o FTCS pode oferecer uma solução razoável com custo computacional relativamente baixo.&lt;br /&gt;
&lt;br /&gt;
É feita uma comparação entre outros métodos numéricos de diferenças finitas para solução da equação da advecção e comparado o erro relativo à solução analítica no Apêndice A.&lt;br /&gt;
&lt;br /&gt;
== Implementação do esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
Vamos agora examinar a implementação do esquema FTCS na equação da advecção para visualizarmos a propagação de uma perturbação na forma de &amp;lt;math&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; em um eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; infinito. Em outras palavras:&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno periódicas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neste caso, podemos observar uma perturbação se propagando no sentido negativo do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; sem perda de amplitude ou mudança de forma. Isso acontece porque, com a equação da advecção, podemos analisar apenas a cinemática de uma perturbação, a qual, por sua vez, apenas relaciona os atributos como amplitude, comprimento de onda, frequência e velocidade.&lt;br /&gt;
&lt;br /&gt;
Podemos observar, ainda, que a amplitude está relacionada à condição inicial em que o máximo de &amp;lt;matH&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; é atingido quando &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt;. Nesse contexto, considerando &amp;lt;math&amp;gt;0 &amp;lt; x &amp;lt; 2\pi&amp;lt;/math&amp;gt;, percebemos que &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt; ocorre exatamente no meio do eixo. Em consequência, a amplitude máxima, que é 2, é inicialmente alcançada no ponto central do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em uma dimensão =&lt;br /&gt;
&lt;br /&gt;
A equação da onda, que em uma dimensão assume a forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 \frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2  u}{\partial x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(15)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; geralmente é algum tipo de deslocamento ou perturbação, enquanto &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; é a velocidade da onda. A equação de onda possui a solução formal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 u(x,t) = F(x+vt) + G(x+vt),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(16)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; são funções arbitrárias. A solução acima representa pulsos de onda de formato arbitrário que se propagam com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; nas direções &amp;lt;math&amp;gt;+x&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;-x&amp;lt;/math&amp;gt;, respectivamente, sem alterar a forma.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
Iniciamos o estudo da solução numérica da equação da onda a partir da implementação do esquema FTCS, pois, como comentado antes, este é o método de implementação mais prático para generalizarmos para mais dimensões espaciais.&lt;br /&gt;
&lt;br /&gt;
As derivadas de segunda ordem podem ser substituídas por diferenças centrais. A aproximação de diferença mais amplamente utilizada para a derivada de segunda ordem é&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial t^2}u(x_i,t_n)\approx \frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(17)&lt;br /&gt;
&lt;br /&gt;
Uma aproximação semelhante para a derivada de segunda ordem na direção &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; é dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial x^2}u(x_i,t_n)\approx \frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(18)&lt;br /&gt;
&lt;br /&gt;
Agora podemos substituir as derivadas e obter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2} = v^2\frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(19)&lt;br /&gt;
&lt;br /&gt;
Assumimos que &amp;lt;math&amp;gt;u^n_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u^{n-1}_i&amp;lt;/math&amp;gt; já foram calculados para &amp;lt;math&amp;gt;i=0,\ldots,N_x&amp;lt;/math&amp;gt;. A única quantidade desconhecida é, portanto, &amp;lt;math&amp;gt;u^{n+1}_i&amp;lt;/math&amp;gt;, que podemos resolver da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_i = -u^{n-1}_i + 2u^n_i + r^2 \left(u^{n}_{i+1}-2u^{n}_{i} + u^{n}_{i-1}\right),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(20)&lt;br /&gt;
&lt;br /&gt;
onde introduzimos o parâmetro&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r = v\frac{\Delta t}{\Delta x},&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
conhecido como número de Courant.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann ==&lt;br /&gt;
&lt;br /&gt;
(ALCINEY DAS NEVES MORAES)&lt;br /&gt;
&lt;br /&gt;
Pela análise de Von Neumann, substituímos &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; por &amp;lt;math&amp;gt;g_n e^{i\theta}&amp;lt;/math&amp;gt; na equação da onda. Após manipulações, a expressão resultante é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = 2 - g^{-1} + \frac{C}{2}(e^{i\theta} - 2 + e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
Usando a identidade de Euler &amp;lt;math&amp;gt;e^{i\theta} + e^{-i\theta} = 2 \cos \theta&amp;lt;/math&amp;gt;, chegamos a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 - 2[1 - \frac{C}{2}(1 - \cos \theta)]g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
Reescrevendo &amp;lt;math&amp;gt;\cos \theta = \cos^2\left(\frac{\theta}{2}\right) - \sin^2\left(\frac{\theta}{2}\right)&amp;lt;/math&amp;gt;, a equação torna-se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 + 2(2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1)g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(22)&lt;br /&gt;
&lt;br /&gt;
Expressamos isso como &amp;lt;math&amp;gt;g^2 + 2bg + 1 = 0&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;b = 2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1&amp;lt;/math&amp;gt;. As raízes são:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = \begin{cases} -b \pm \sqrt{b^2 - 1}, &amp;amp; \text{se } |b| &amp;gt; 1 \\ -b \pm i\sqrt{1 - b^2}, &amp;amp; \text{se } |b| \leq 1 \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(23)&lt;br /&gt;
&lt;br /&gt;
Se &amp;lt;math&amp;gt;|b| &amp;gt; 1&amp;lt;/math&amp;gt;, implica &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt;. Se &amp;lt;math&amp;gt;|b| \leq 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt; pela condição de Von Neumann, tornando o método condicionalmente estável pela condição CFL.&lt;br /&gt;
&lt;br /&gt;
== Reflexão de onda em uma corda ==&lt;br /&gt;
&lt;br /&gt;
Quando uma onda se propaga ao longo de uma corda e incide em uma de suas extremidades, ocorre a sua reflexão. Ao atingir um extremo fixo, que não pode oscilar, é possível observar que o pulso refletido apresenta uma orientação oposta à do pulso incidente. Podemos afirmar que o pulso reflete com inversão de fase, pois isso ocorre devido à reação do ponto fixo sobre a corda com uma força de mesmo módulo. Uma situação distinta ocorre quando a extremidade da corda é móvel, ou seja, não há troca de forças entre ela e a corda, resultando em uma reflexão sem inversão de fase.&lt;br /&gt;
&lt;br /&gt;
Além disso, em um sistema fechado e sem dissipação de energia, podemos observar que as ondas refletidas, independentemente da fase, sofrem interferência construtiva e produzem picos de máximo ou mínimo, dependendo do contexto.&lt;br /&gt;
&lt;br /&gt;
Podemos observar esse fenômeno ao implementar a solução da equação da onda unidimensional com condições de contorno fixas e periódicas, respectivamente, para uma corda com extremidades fixas e extremidades móveis.&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades fixas ===&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades móveis ===&lt;br /&gt;
&lt;br /&gt;
=== Alteração no meio de propagação ===&lt;br /&gt;
&lt;br /&gt;
=== Oscilador em uma corda ===&lt;br /&gt;
&lt;br /&gt;
=== Ondas estacionárias ===&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em duas dimensões =&lt;br /&gt;
&lt;br /&gt;
== FTCS == &lt;br /&gt;
&lt;br /&gt;
Seja a equação da onda em duas dimensões dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A discretização desta equação utilizando o esquema FTCS envolve as seguintes aproximações:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial t^2} \approx \frac{u^{n+1}_{i,j} - 2u^{n}_{i,j} + u^{n-1}_{i,j}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial x^2} \approx \frac{u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial y^2} \approx \frac{u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1}}{\Delta y^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, a equação da onda discretizada usando FTCS é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_{i,j} = 2u^{n}_{i,j} - u^{n-1}_{i,j} + v^2 \left( \frac{\Delta t^2}{\Delta x^2} \cdot (u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}) + \frac{\Delta t^2}{\Delta y^2} \cdot (u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1}) \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para simplificar a notação, fazemos &amp;lt;math&amp;gt;R1 = v^2 \frac{\Delta t^2}{\Delta x^2}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;R2 = v^2 \frac{\Delta t^2}{\Delta y^2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_{i,j} = 2u^{n}_{i,j} - u^{n-1}_{i,j} + R1 \cdot (u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}) + R2 \cdot (u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reflexão de ondas em duas dimensões ==&lt;br /&gt;
&lt;br /&gt;
Analogamente ao que analisamos para uma perturbação em uma corda, podemos agora avaliar como uma perturbação evolui ao se propagar em um plano em direção às suas extremidades, e como interage com os contornos, que podem ser fixos ou periódicos. Neste caso, temos uma perturbação senoidal centrada em &amp;lt;math&amp;gt;x=0,5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y=0,5&amp;lt;/math&amp;gt;, propagando-se isotropicamente em direção aos limites &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; dos dois eixos.&lt;br /&gt;
&lt;br /&gt;
=== Contorno fixo ===&lt;br /&gt;
&lt;br /&gt;
=== Contorno periódico ===&lt;br /&gt;
&lt;br /&gt;
= Apêndice A: Métodos numéricos para solução da equação de advecção =&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Friedrich]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff]]&lt;br /&gt;
&lt;br /&gt;
[[Upwind Differencing]]&lt;br /&gt;
&lt;br /&gt;
[[Método Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff de dois passos]]&lt;br /&gt;
&lt;br /&gt;
[[Comparação dos métodos numéricos]]&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9823</id>
		<title>Métodos Computacionais para Estudo de Fenômenos Ondulatórios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9823"/>
		<updated>2024-02-04T22:16:49Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo realizar um estudo introdutório da equação da onda, adotando uma abordagem computacional que proporciona uma base teórica sólida e intuitiva. Inicialmente, é realizada a implementação de uma solução numérica (FTCS) para a equação da advecção, visando o estudo da propagação de uma perturbação e explorando aspectos computacionais fundamentais. Em seguida, a equação da onda é aplicada em uma dimensão, permitindo uma investigação detalhada de fenômenos ondulatórios, tais como reflexão, interferência e refração. A abordagem é estendida para duas dimensões, incluindo a análise dos efeitos de contorno nesse contexto. Por fim, o trabalho aprofunda-se no estudo do fenômeno de difração, contribuindo para uma compreensão mais enriquecedora dos aspectos complexos dos fenômenos ondulatórios em múltiplas dimensões.&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O que é uma onda exatamente? De acordo com &#039;A Student’s Guide to Waves&#039;, a literatura apresenta diversas definições. Contudo, a característica mais comum que define uma onda é sua natureza como uma perturbação, uma alteração no estado de equilíbrio que, inicialmente, permanece inalterado. Quando uma fonte externa, como um objeto vibrante ou uma força inicial, perturba a condição de equilíbrio de um meio, essa perturbação é transmitida de partícula para partícula ao longo do meio. Esse processo de transmissão de energia ocorre sem que as partículas individuais do meio se desloquem significativamente de suas posições de equilíbrio. Em outras palavras, a energia da perturbação é transferida, mas as partículas do meio não se movem em conjunto com a onda.&lt;br /&gt;
&lt;br /&gt;
O estudo da física das ondas desempenha um papel crucial, permeando inúmeras áreas da ciência e da tecnologia ao proporcionar uma compreensão profunda dos fenômenos ondulatórios e suas aplicações práticas. A física das ondas desempenha um papel essencial em nossa vida cotidiana. Seu impacto é evidente na tecnologia de comunicação, onde as ondas de rádio e micro-ondas são a espinha dorsal de redes globais de telefonia móvel e internet sem fio.&lt;br /&gt;
&lt;br /&gt;
Com base no exposto, propõe-se a realização de um estudo abrangente sobre a modelagem de fenômenos ondulatórios. Inicialmente, serão apresentados pontos importantes acerca da equação da onda. Em seguida, dedicaremos atenção ao estudo da propagação de uma perturbação a partir da equação de advecção. Nesse contexto, abriremos a discussão sobre a abordagem computacional, e, tangencialmente, comentaremos sobre outros métodos numéricos para resolver a advecção. Posteriormente, faremos um estudo sobre a solução numérica da equação da onda, permitindo a modelagem de fenômenos ondulatórios, como reflexão, interferência, refração e difração.&lt;br /&gt;
&lt;br /&gt;
= Equação da Onda =&lt;br /&gt;
&lt;br /&gt;
A função de uma onda é aquela que especifica o valor da perturbação em cada ponto e instante ao longo de seu percurso. Para iniciar nossa análise, abordaremos o exemplo mais simples, em que a propagação ocorre unicamente em uma direção, como é o caso das ondas transversais em uma corda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dedução ==&lt;br /&gt;
&lt;br /&gt;
O perfil da onda em uma corda em um determinado instante é equivalente à forma que a corda apresenta nesse momento, que é dada pela função &amp;lt;math&amp;gt;y(x, t)&amp;lt;/math&amp;gt;. A perturbação assume a forma de uma onda progressiva, movendo-se como uma entidade coesa para a direita, mantendo sua configuração inalterada, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Dessa forma, ao acompanhar a onda em um referencial inercial diferente, em que &amp;lt;math&amp;gt;y(x,t)=y(x&#039;,t)&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;x&#039;&amp;lt;/math&amp;gt; representa o antigo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; deslocado por &amp;lt;math&amp;gt;vt&amp;lt;/math&amp;gt;, a relação entre os dois referenciais é estabelecida por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
x&#039; = x - vt&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y&#039; = y&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
de modo que, no referencial original,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = f(x - vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
descreve uma onda progressiva, que se propaga para a direita, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para associar uma equação de movimento com a propagação da onda, vamos calcular a aceleração num dado ponto &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;. A velocidade e a aceleração em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; se obtêm fixando &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e derivando em relação ao tempo, o que corresponde a tomar derivadas parciais.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        V = \frac{\partial}{\partial t} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        A = \frac{\partial ^2}{\partial t^2} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pela regra da cadeia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial y}{\partial t} = \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t} = -v \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
Analogamente,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2}{\partial t^2} = -v \frac{\partial}{\partial t} \frac{\partial f}{\partial x&#039;} = -v \frac{\partial}{\partial x&#039;} \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou seja,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} = v^2 \frac{\partial ^2 f }{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando $y$ em relação a $x$ obtemos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial y}{\partial x} = \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial ^2 y}{\partial x^2} = \frac{\partial ^2 f}{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} - v^2 \frac{\partial^2 y }{\partial x^2} = 0  &lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denominada equação da onda unidimensional, esta é uma das equações fundamentais da física.&lt;br /&gt;
&lt;br /&gt;
== Solução Analítica ==&lt;br /&gt;
&lt;br /&gt;
Agora, procederemos à análise do movimento de uma corda de comprimento &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; que vibra com extremidades fixas. Como essas extremidades são fixas, temos, nos pontos &amp;lt;math&amp;gt;x = 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x = L&amp;lt;/math&amp;gt;, os valores &amp;lt;math&amp;gt;y(0,t) = y(L,t) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso, supomos que a função &amp;lt;math&amp;gt;y(x,0) = f(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\frac{\partial y}{\partial t} = 0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;t = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com base nas observações realizadas, torna-se possível identificar um conjunto fundamental de soluções por meio da aplicação do método de separação de variáveis.&lt;br /&gt;
&lt;br /&gt;
Suponhamos que existam duas soluções, uma dependendo exclusivamente de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e outra exclusivamente de &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, de modo que possamos expressar a função &amp;lt;math&amp;gt;y(x,t)&amp;lt;/math&amp;gt; como o produto dessas duas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = X(x)T(t)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos escrever as derivadas parciais como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\frac{\partial^2 y}{\partial x^2} = \frac{X&#039;&#039;}{X} \\&lt;br /&gt;
\frac{\partial^2 y}{\partial t^2} = \frac{T&#039;&#039;}{T} \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
substituindo na equação da onda,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} - v^2 \frac{X&#039;&#039;}{X} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, torna-se evidente que a razão entre as funções de &amp;lt;mathT&amp;lt;/math&amp;gt; consiste em uma constante, assim como &amp;lt;math&amp;gt;v^2 \frac{X&#039;&#039;}{X}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[*Equação (12)*]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
v^2 \frac{X&#039;&#039;}{X} = \lambda ^2 \to X&#039;&#039; = \bigg(\frac{\lambda}{v}\bigg)^2 X&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[*Equação (13)*]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} = \lambda ^2  \to T&#039;&#039;= \lambda^2 T&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observa-se que as equações (12) e (13) são equações diferenciais ordinárias (EDOs) lineares de segunda ordem, cujos coeficientes podem depender da variável independente e, potencialmente, serem funções não constantes. Assim, é possível usarmos da teoria de Sturm-Liouville para resolver essas equações.&lt;br /&gt;
&lt;br /&gt;
=== Resolvendo a Equação (12) ===&lt;br /&gt;
&lt;br /&gt;
Se avaliarmos as condições de contorno para os possíveis valores de lambda, que devem ser maiores ou iguais a zero, obtemos apenas a solução trivial. Contudo, se lambda for negativo, surge uma solução para &amp;lt;math&amp;gt;X(x)&amp;lt;/math&amp;gt; na forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(x) = a \cos \bigg( \frac{\lambda x}{v} \bigg) + b \sin \bigg( \frac{\lambda x}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições de contorno, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(0) = a \cos (0) + b \sin (0) = a  \therefore a=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(L) = b \sin \bigg( \frac{\lambda L}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Certamente, observa-se que, para alcançarmos uma solução não trivial, é necessário que &amp;lt;math&amp;gt;\lambda = \bigg( \frac{nv\pi}{L} \bigg) &amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;n \in \mathbb{N}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X_n (x) = \sum_{n=1}^{\infty} b_n \sin \bigg( \frac{n\pi x}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resolvendo a Equação (13) ===&lt;br /&gt;
&lt;br /&gt;
Analogamente, temos uma solução não trivial para lambda menor que zero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
T(t) = c \cos(\lambda t) + d \sin(\lambda t) \to T_n (t) = \sum_{n=1}^{\infty} c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voltando para a solução geral:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty}  b_n \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juntando as constantes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty} \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(A_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + B_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt;, temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,0) =  \sum_{n=1}^{\infty} A_n \sin \bigg( \frac{n\pi x}{L} \bigg) = f(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; representa uma série de Fourier de senos, na qual os coeficientes &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; são determinados por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_n = \frac{2}{L}\int_0^L f(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando &amp;lt;math&amp;gt;y&#039;(x,0)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial }{\partial t} y(x,0) = \sum_{n=1}^{\infty} B_n \bigg( \frac{nv\pi}{L} \bigg) \sin \bigg( \frac{n\pi x}{L} \bigg) = g(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analogamente a &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(x)&amp;lt;/math&amp;gt; é uma série de Fourier de senos. Portanto, podemos determinar &amp;lt;math&amp;gt;B_n&amp;lt;/math&amp;gt; da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
B_n = \frac{2}{nv \pi}\int_0^L g(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= A equação de advecção unidimensional =&lt;br /&gt;
&lt;br /&gt;
Partimos da equação de advecção para estudarmos a propagação de uma perturbação.&lt;br /&gt;
&lt;br /&gt;
A equação de onda está intimamente relacionada à chamada equação de advecção, que, em uma dimensão, assume a seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial  u}{\partial t} + v\frac{\partial u}{\partial x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(4)&lt;br /&gt;
&lt;br /&gt;
A equação a seguir descreve a advecção passiva de um campo escalar &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; transportado por um fluxo de velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Como a equação de advecção é um tanto mais simples do que a equação da onda, discutiremos aquela em primeiro lugar. A equação de advecção possui a solução formal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = F(x-vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(5)&lt;br /&gt;
&lt;br /&gt;
Essa solução descreve um pulso de forma arbitrária que é arrastado pelo fluxo a uma velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;, sem alterar sua forma.&lt;br /&gt;
&lt;br /&gt;
== Solução analítica da equação da advecção ==&lt;br /&gt;
&lt;br /&gt;
== Esquema Forward Time-Centered Space (FTCS) == &lt;br /&gt;
&lt;br /&gt;
Para a abordagem numérica computacional do nosso estudo, utilizamos o esquema FTCS.&lt;br /&gt;
&lt;br /&gt;
O método FTCS é amplamente empregado na resolução de equações diferenciais parciais. Trata-se de um método de diferenças finitas que adota uma abordagem explícita no tempo e central no espaço. Esse esquema apresenta uma acurácia de primeira ordem no tempo e de segunda ordem no espaço.&lt;br /&gt;
&lt;br /&gt;
A discretização no tempo (Forward Time) pode ser feita utilizando a diferença finita para a derivada temporal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial t} \approx \frac{u_i^{n+1} - u_i^n}{\Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(6)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; representa a amplitude da perturbação no ponto &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; do espaço e no instante &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, e &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; é o passo de tempo.&lt;br /&gt;
&lt;br /&gt;
A discretização no espaço (Central Space) pode ser feita utilizando a diferença finita para a derivada espacial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial x} \approx \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(7)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; é o espaçamento entre os pontos discretizados no espaço.&lt;br /&gt;
&lt;br /&gt;
As equações acima podem ser reescritas como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_i^n + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(8)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;r = v\frac{\Delta t}{\Delta x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann == &lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann é uma abordagem teórica utilizada para avaliar a estabilidade numérica de esquemas de diferenças finitas, incluindo o esquema FTCS. Usando o método de von Neumann, supõe-se a seguinte solução tentativa para a EDP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x, t) = A(t)e^{jkx}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(8)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;j = \sqrt{-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é o número de onda, e &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; é a amplitude da onda, uma função do tempo.&lt;br /&gt;
&lt;br /&gt;
Assim, a solução no passo de tempo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; e em &amp;lt;math&amp;gt;x = x_i = i\Delta x&amp;lt;/math&amp;gt; é escrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_ne^{jki\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(9)&lt;br /&gt;
&lt;br /&gt;
Substituindo esta solução tentativa na expressão da advecção discretizada temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_{n+1}e^{jki\Delta x} = A_ne^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(A_ne^{jk(i+1)\Delta x} - A_ne^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(10)&lt;br /&gt;
&lt;br /&gt;
Seja &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; a razão da amplitude da onda no passo de tempo &amp;lt;math&amp;gt;n + 1&amp;lt;/math&amp;gt; em relação ao passo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. Portanto,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = \frac{A_{n+1}}{A_n}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
Dividir (10) por &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; resulta em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi e^{jki\Delta x} = e^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(e^{jk(i+1)\Delta x} - e^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Se dividirmos esse resultado por &amp;lt;math&amp;gt;e^{jki\Delta x}&amp;lt;/math&amp;gt; temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = 1 - \frac{u\Delta t}{2\Delta x}\left(e^{jk\Delta x} - e^{-jk\Delta x}\right) = 1 - \frac{u\Delta t}{\Delta xj}\sin(k\Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|\xi| = \sqrt{1 + \left(\frac{u\Delta t}{\Delta x}\sin(k\Delta x)\right)^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(14)&lt;br /&gt;
&lt;br /&gt;
Isso implica que &amp;lt;math&amp;gt;|\xi| \geq 1&amp;lt;/math&amp;gt; independentemente do passo de tempo &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; selecionado ou do passo espacial &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, portanto, FTCS é incondicionalmente instável.&lt;br /&gt;
&lt;br /&gt;
Apesar de ser incondicionalmente instável, o esquema funcionará bem em nossa modelagem, uma vez que o método apresenta também suas vantagens. O esquema FTCS é relativamente simples de implementar, o que facilita sua aplicação, principalmente para problemas bidimensionais ou tridimensionais, como pretendemos abordar posteriormente.&lt;br /&gt;
&lt;br /&gt;
Em alguns casos específicos, o FTCS pode ser computacionalmente eficiente. Se a equação diferencial parcial for relativamente simples e o domínio de interesse for bem comportado, o FTCS pode oferecer uma solução razoável com custo computacional relativamente baixo.&lt;br /&gt;
&lt;br /&gt;
É feita uma comparação entre outros métodos numéricos de diferenças finitas para solução da equação da advecção e comparado o erro relativo à solução analítica no Apêndice A.&lt;br /&gt;
&lt;br /&gt;
== Implementação do esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
Vamos agora examinar a implementação do esquema FTCS na equação da advecção para visualizarmos a propagação de uma perturbação na forma de &amp;lt;math&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; em um eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; infinito. Em outras palavras:&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno periódicas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neste caso, podemos observar uma perturbação se propagando no sentido negativo do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; sem perda de amplitude ou mudança de forma. Isso acontece porque, com a equação da advecção, podemos analisar apenas a cinemática de uma perturbação, a qual, por sua vez, apenas relaciona os atributos como amplitude, comprimento de onda, frequência e velocidade.&lt;br /&gt;
&lt;br /&gt;
Podemos observar, ainda, que a amplitude está relacionada à condição inicial em que o máximo de &amp;lt;matH&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; é atingido quando &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt;. Nesse contexto, considerando &amp;lt;math&amp;gt;0 &amp;lt; x &amp;lt; 2\pi&amp;lt;/math&amp;gt;, percebemos que &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt; ocorre exatamente no meio do eixo. Em consequência, a amplitude máxima, que é 2, é inicialmente alcançada no ponto central do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em uma dimensão =&lt;br /&gt;
&lt;br /&gt;
A equação da onda, que em uma dimensão assume a forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 \frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2  u}{\partial x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(15)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; geralmente é algum tipo de deslocamento ou perturbação, enquanto &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; é a velocidade da onda. A equação de onda possui a solução formal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 u(x,t) = F(x+vt) + G(x+vt),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(16)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; são funções arbitrárias. A solução acima representa pulsos de onda de formato arbitrário que se propagam com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; nas direções &amp;lt;math&amp;gt;+x&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;-x&amp;lt;/math&amp;gt;, respectivamente, sem alterar a forma.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
Iniciamos o estudo da solução numérica da equação da onda a partir da implementação do esquema FTCS, pois, como comentado antes, este é o método de implementação mais prático para generalizarmos para mais dimensões espaciais.&lt;br /&gt;
&lt;br /&gt;
As derivadas de segunda ordem podem ser substituídas por diferenças centrais. A aproximação de diferença mais amplamente utilizada para a derivada de segunda ordem é&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial t^2}u(x_i,t_n)\approx \frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(17)&lt;br /&gt;
&lt;br /&gt;
Uma aproximação semelhante para a derivada de segunda ordem na direção &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; é dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial x^2}u(x_i,t_n)\approx \frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(18)&lt;br /&gt;
&lt;br /&gt;
Agora podemos substituir as derivadas e obter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2} = v^2\frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(19)&lt;br /&gt;
&lt;br /&gt;
Assumimos que &amp;lt;math&amp;gt;u^n_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u^{n-1}_i&amp;lt;/math&amp;gt; já foram calculados para &amp;lt;math&amp;gt;i=0,\ldots,N_x&amp;lt;/math&amp;gt;. A única quantidade desconhecida é, portanto, &amp;lt;math&amp;gt;u^{n+1}_i&amp;lt;/math&amp;gt;, que podemos resolver da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_i = -u^{n-1}_i + 2u^n_i + r^2 \left(u^{n}_{i+1}-2u^{n}_{i} + u^{n}_{i-1}\right),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(20)&lt;br /&gt;
&lt;br /&gt;
onde introduzimos o parâmetro&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r = v\frac{\Delta t}{\Delta x},&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
conhecido como número de Courant.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann ==&lt;br /&gt;
&lt;br /&gt;
(ALCINEY DAS NEVES MORAES)&lt;br /&gt;
&lt;br /&gt;
Pela análise de Von Neumann, substituímos &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; por &amp;lt;math&amp;gt;g_n e^{i\theta}&amp;lt;/math&amp;gt; na equação da onda. Após manipulações, a expressão resultante é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = 2 - g^{-1} + \frac{C}{2}(e^{i\theta} - 2 + e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
Usando a identidade de Euler &amp;lt;math&amp;gt;e^{i\theta} + e^{-i\theta} = 2 \cos \theta&amp;lt;/math&amp;gt;, chegamos a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 - 2[1 - \frac{C}{2}(1 - \cos \theta)]g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
Reescrevendo &amp;lt;math&amp;gt;\cos \theta = \cos^2\left(\frac{\theta}{2}\right) - \sin^2\left(\frac{\theta}{2}\right)&amp;lt;/math&amp;gt;, a equação torna-se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 + 2(2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1)g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(22)&lt;br /&gt;
&lt;br /&gt;
Expressamos isso como &amp;lt;math&amp;gt;g^2 + 2bg + 1 = 0&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;b = 2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1&amp;lt;/math&amp;gt;. As raízes são:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = \begin{cases} -b \pm \sqrt{b^2 - 1}, &amp;amp; \text{se } |b| &amp;gt; 1 \\ -b \pm i\sqrt{1 - b^2}, &amp;amp; \text{se } |b| \leq 1 \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(23)&lt;br /&gt;
&lt;br /&gt;
Se &amp;lt;math&amp;gt;|b| &amp;gt; 1&amp;lt;/math&amp;gt;, implica &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt;. Se &amp;lt;math&amp;gt;|b| \leq 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt; pela condição de Von Neumann, tornando o método condicionalmente estável pela condição CFL.&lt;br /&gt;
&lt;br /&gt;
== Reflexão de onda em uma corda ==&lt;br /&gt;
&lt;br /&gt;
Quando uma onda se propaga ao longo de uma corda e incide em uma de suas extremidades, ocorre a sua reflexão. Ao atingir um extremo fixo, que não pode oscilar, é possível observar que o pulso refletido apresenta uma orientação oposta à do pulso incidente. Podemos afirmar que o pulso reflete com inversão de fase, pois isso ocorre devido à reação do ponto fixo sobre a corda com uma força de mesmo módulo. Uma situação distinta ocorre quando a extremidade da corda é móvel, ou seja, não há troca de forças entre ela e a corda, resultando em uma reflexão sem inversão de fase.&lt;br /&gt;
&lt;br /&gt;
Além disso, em um sistema fechado e sem dissipação de energia, podemos observar que as ondas refletidas, independentemente da fase, sofrem interferência construtiva e produzem picos de máximo ou mínimo, dependendo do contexto.&lt;br /&gt;
&lt;br /&gt;
Podemos observar esse fenômeno ao implementar a solução da equação da onda unidimensional com condições de contorno fixas e periódicas, respectivamente, para uma corda com extremidades fixas e extremidades móveis.&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades fixas ===&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades móveis ===&lt;br /&gt;
&lt;br /&gt;
=== Alteração no meio de propagação ===&lt;br /&gt;
&lt;br /&gt;
=== Oscilador em uma corda ===&lt;br /&gt;
&lt;br /&gt;
=== Ondas estacionárias ===&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em duas dimensões =&lt;br /&gt;
&lt;br /&gt;
== FTCS == &lt;br /&gt;
&lt;br /&gt;
Seja a equação da onda em duas dimensões dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A discretização desta equação utilizando o esquema FTCS envolve as seguintes aproximações:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial t^2} \approx \frac{u^{n+1}_{i,j} - 2u^{n}_{i,j} + u^{n-1}_{i,j}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial x^2} \approx \frac{u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial y^2} \approx \frac{u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1}}{\Delta y^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, a equação da onda discretizada usando FTCS é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_{i,j} = 2u^{n}_{i,j} - u^{n-1}_{i,j} + v^2 \left( \frac{\Delta t^2}{\Delta x^2} \cdot (u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}) + \frac{\Delta t^2}{\Delta y^2} \cdot (u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1}) \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para simplificar a notação, fazemos &amp;lt;math&amp;gt;R1 = v^2 \frac{\Delta t^2}{\Delta x^2}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;R2 = v^2 \frac{\Delta t^2}{\Delta y^2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_{i,j} = 2u^{n}_{i,j} - u^{n-1}_{i,j} + R1 \cdot (u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}) + R2 \cdot (u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reflexão de ondas em duas dimensões ==&lt;br /&gt;
&lt;br /&gt;
Analogamente ao que analisamos para uma perturbação em uma corda, podemos agora avaliar como uma perturbação evolui ao se propagar em um plano em direção às suas extremidades, e como interage com os contornos, que podem ser fixos ou periódicos. Neste caso, temos uma perturbação senoidal centrada em &amp;lt;math&amp;gt;x=0,5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y=0,5&amp;lt;/math&amp;gt;, propagando-se isotropicamente em direção aos limites &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; dos dois eixos.&lt;br /&gt;
&lt;br /&gt;
=== Contorno fixo ===&lt;br /&gt;
&lt;br /&gt;
=== Contorno periódico ===&lt;br /&gt;
&lt;br /&gt;
= Apêndice A: Métodos numéricos para solução da equação de advecção =&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Friedrich]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff]]&lt;br /&gt;
&lt;br /&gt;
[[Upwind Differencing]]&lt;br /&gt;
&lt;br /&gt;
[[Método Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff de dois passos]]&lt;br /&gt;
&lt;br /&gt;
[[Comparação dos métodos numéricos]]&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Upwind_Differencing&amp;diff=9822</id>
		<title>Upwind Differencing</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Upwind_Differencing&amp;diff=9822"/>
		<updated>2024-02-04T22:14:52Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Foram apresentados métodos numéricos eficientes com propósitos gerais para resolver a equação de advecção. Entretanto, é necessário restringir nossa abordagem a formas de onda suficientemente suaves para evitar oscilações espúrias tanto nas bordas de ataque quanto nas bordas de queda da forma de onda. Uma abordagem reconhecida para suprimir desvios nas extremidades inicial e final de uma forma de onda afiada é a adoção de um esquema conhecido como &amp;quot;esquema de diferenças upwind&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nesse esquema, as diferenças espaciais são inclinadas na direção &amp;quot;upwind&amp;quot;, ou seja, na direção de onde o fluxo advectivo se origina.&lt;br /&gt;
&lt;br /&gt;
Portanto, a versão upwind do simples esquema de diferenças explícitas é escrita da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;v &amp;gt; 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^n}{\Delta t} + v\frac{\Delta u_i^{n} - u_{i-1}^{n}}{\Delta x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(15)&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;v &amp;lt; 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^n}{\Delta t} + v\frac{u_{i+1}^{n} - u_{i}^{n}}{\Delta x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(16)&lt;br /&gt;
&lt;br /&gt;
Combinando (15) e (16):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} = u_i^{n} - \Delta t (v^{+}u_x^{-} + v^{-}u_x^{+})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(17)&lt;br /&gt;
&lt;br /&gt;
Onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
  v^{+} &amp;amp;= max(v,0) \\&lt;br /&gt;
  v^{-} &amp;amp;= min(v,0) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
  u_x^{-} &amp;amp;= \frac{u_i^{n} - u_{i-1}^{n}}{\Delta x} \\&lt;br /&gt;
  u_x^{+} &amp;amp;= \frac{u_{i+1}^{n} - u_{i}^{n}}{\Delta x}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O esquema upwind é estável quando a seguinte condição Courant-Friedrichs-Lewy (CFL) é atendida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|v\frac{\Delta t}{\Delta x}| \leq 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Upwind para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def Upwindad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1 - np.cos(x)  # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0, Nx+1):&lt;br /&gt;
        xpos[i] = i+1&lt;br /&gt;
        xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] = Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            v_mais = np.maximum(v, 0)&lt;br /&gt;
            v_menos = np.minimum(v, 0)&lt;br /&gt;
            u_x_mais = 1/dx * (u[n, int(xpos[i])] - u[n, i])&lt;br /&gt;
            u_x_menos = 1/dx * (u[n, i] - u[n, int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
            u[n+1, i] = u[n, i] - dt * (v_mais * u_x_menos + v_menos * u_x_mais)&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = -1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv4 = Upwindad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv4, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Upwind da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: up-w.png|thumb|upright=0.0|center|Solução pelo método upwind differencing|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as cuvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv4[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude up-w.png|thumb|upright=0.0|center|Solução pelo método upwind differencing|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:ErroL.png&amp;diff=9821</id>
		<title>Arquivo:ErroL.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:ErroL.png&amp;diff=9821"/>
		<updated>2024-02-04T22:10:23Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Erro3L4.png&amp;diff=9820</id>
		<title>Arquivo:Erro3L4.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Erro3L4.png&amp;diff=9820"/>
		<updated>2024-02-04T22:10:06Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:ErroL2.png&amp;diff=9819</id>
		<title>Arquivo:ErroL2.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:ErroL2.png&amp;diff=9819"/>
		<updated>2024-02-04T22:09:50Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:ErroL4.png&amp;diff=9818</id>
		<title>Arquivo:ErroL4.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:ErroL4.png&amp;diff=9818"/>
		<updated>2024-02-04T22:09:32Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Erro0.png&amp;diff=9817</id>
		<title>Arquivo:Erro0.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Erro0.png&amp;diff=9817"/>
		<updated>2024-02-04T22:09:04Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Compara%C3%A7%C3%A3o_dos_m%C3%A9todos_num%C3%A9ricos&amp;diff=9816</id>
		<title>Comparação dos métodos numéricos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Compara%C3%A7%C3%A3o_dos_m%C3%A9todos_num%C3%A9ricos&amp;diff=9816"/>
		<updated>2024-02-04T22:08:49Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: Criou página com &amp;#039;= Gráfico do erro relativo =  Como se evidencia nos gráficos que seguem, os métodos implícitos demonstram uma superioridade considerável, apresentando um menor erro relativo em comparação com a solução analítica. Nesse contexto, observamos que o método Crank-Nicholson exibe o menor erro relativo, seguido pelo esquema BTCS e pelo método Lax-Wendroff.  &amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;  def dif(solv0, solv1):     erro = np.zeros_like(solv0)      for n in range(solv0.sha...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gráfico do erro relativo =&lt;br /&gt;
&lt;br /&gt;
Como se evidencia nos gráficos que seguem, os métodos implícitos demonstram uma superioridade considerável, apresentando um menor erro relativo em comparação com a solução analítica. Nesse contexto, observamos que o método Crank-Nicholson exibe o menor erro relativo, seguido pelo esquema BTCS e pelo método Lax-Wendroff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def dif(solv0, solv1):&lt;br /&gt;
    erro = np.zeros_like(solv0)&lt;br /&gt;
&lt;br /&gt;
    for n in range(solv0.shape[0]):&lt;br /&gt;
        erro[n, :] = np.abs(solv0[n, :] - solv1[n, :])&lt;br /&gt;
&lt;br /&gt;
    return erro&lt;br /&gt;
&lt;br /&gt;
# Calcular a diferença absoluta&lt;br /&gt;
erro1 = dif(solv0, solv1)&lt;br /&gt;
erro2 = dif(solv0, solv2)&lt;br /&gt;
erro3 = dif(solv0, solv3)&lt;br /&gt;
erro4 = dif(solv0, solv4)&lt;br /&gt;
erro5 = dif(solv0, solv5)&lt;br /&gt;
erro6 = dif(solv0, solv6)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
plt.figure(figsize=(10, 6))&lt;br /&gt;
&lt;br /&gt;
plt.plot(listT, erro1[:, 0], label=&#039;FTCS&#039;, color=&#039;red&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro2[:, 0], label=&#039;Lax-Friedrich&#039;, color=&#039;blue&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro3[:, 0], label=&#039;Lax-Wendroff&#039;, color=&#039;green&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro4[:, 0], label=&#039;Upwind&#039;, color=&#039;orange&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro5[:, 0], label=&#039;Leapfrog&#039;, color=&#039;purple&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro6[:, 0], label=&#039;Lax-Wendroff (2P)&#039;, color=&#039;brown&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.grid()&lt;br /&gt;
plt.ylim(0,0.01)&lt;br /&gt;
&lt;br /&gt;
plt.xlabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Diferença Absoluta&#039;)&lt;br /&gt;
plt.title(&#039;Diferença Absoluta em x=0&#039;, fontsize=16)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: erro0.png|thumb|upright=0.0|center|Diferença entre os métodos estudados|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
plt.figure(figsize=(10, 6))&lt;br /&gt;
&lt;br /&gt;
x = int(3* Nx / 4)&lt;br /&gt;
&lt;br /&gt;
plt.plot(listT, erro1[:, x], label=&#039;FTCS&#039;, color=&#039;red&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro2[:, x], label=&#039;Lax-Friedrich&#039;, color=&#039;blue&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro3[:, x], label=&#039;Lax-Wendroff&#039;, color=&#039;green&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro4[:, x], label=&#039;Upwind&#039;, color=&#039;orange&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro5[:, x], label=&#039;Leapfrog&#039;, color=&#039;purple&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro6[:, x], label=&#039;Lax-Wendroff (2P)&#039;, color=&#039;brown&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.grid()&lt;br /&gt;
plt.ylim(0,0.001)&lt;br /&gt;
&lt;br /&gt;
plt.xlabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Diferença Absoluta&#039;)&lt;br /&gt;
plt.title(&#039;Diferença Absoluta em x=L/4&#039;, fontsize=16)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: erroL4.png|thumb|upright=0.0|center|Diferença entre os métodos estudados|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
plt.figure(figsize=(10, 6))&lt;br /&gt;
&lt;br /&gt;
x = int(Nx / 2)&lt;br /&gt;
&lt;br /&gt;
plt.plot(listT, erro1[:, x], label=&#039;FTCS&#039;, color=&#039;red&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro2[:, x], label=&#039;Lax-Friedrich&#039;, color=&#039;blue&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro3[:, x], label=&#039;Lax-Wendroff&#039;, color=&#039;green&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro4[:, x], label=&#039;Upwind&#039;, color=&#039;orange&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro5[:, x], label=&#039;Leapfrog&#039;, color=&#039;purple&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro6[:, x], label=&#039;Lax-Wendroff (2P)&#039;, color=&#039;brown&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.grid()&lt;br /&gt;
plt.ylim(0,0.01)&lt;br /&gt;
&lt;br /&gt;
plt.xlabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Diferença Absoluta&#039;)&lt;br /&gt;
plt.title(&#039;Diferença Absoluta em x=L/2&#039;, fontsize=16)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: erroL2.png|thumb|upright=0.0|center|Diferença entre os métodos estudados|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
plt.figure(figsize=(10, 6))&lt;br /&gt;
&lt;br /&gt;
x = int(3* Nx / 4)&lt;br /&gt;
&lt;br /&gt;
plt.plot(listT, erro1[:, x], label=&#039;FTCS&#039;, color=&#039;red&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro2[:, x], label=&#039;Lax-Friedrich&#039;, color=&#039;blue&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro3[:, x], label=&#039;Lax-Wendroff&#039;, color=&#039;green&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro4[:, x], label=&#039;Upwind&#039;, color=&#039;orange&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro5[:, x], label=&#039;Leapfrog&#039;, color=&#039;purple&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro6[:, x], label=&#039;Lax-Wendroff (2P)&#039;, color=&#039;brown&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.grid()&lt;br /&gt;
plt.ylim(0,0.01)&lt;br /&gt;
&lt;br /&gt;
plt.xlabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Diferença Absoluta&#039;)&lt;br /&gt;
plt.title(&#039;Diferença Absoluta em x=3L/4&#039;, fontsize=16)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: erro3L4.png|thumb|upright=0.0|center|Diferença entre os métodos estudados|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
plt.figure(figsize=(10, 6))&lt;br /&gt;
&lt;br /&gt;
x = int(Nx)&lt;br /&gt;
&lt;br /&gt;
plt.plot(listT, erro1[:, x], label=&#039;FTCS&#039;, color=&#039;red&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro2[:, x], label=&#039;Lax-Friedrich&#039;, color=&#039;blue&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro3[:, x], label=&#039;Lax-Wendroff&#039;, color=&#039;green&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro4[:, x], label=&#039;Upwind&#039;, color=&#039;orange&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro5[:, x], label=&#039;Leapfrog&#039;, color=&#039;purple&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
plt.plot(listT, erro6[:, x], label=&#039;Lax-Wendroff (2P)&#039;, color=&#039;brown&#039;, linestyle=&#039;--&#039;)&lt;br /&gt;
&lt;br /&gt;
plt.grid()&lt;br /&gt;
plt.ylim(0,0.1)&lt;br /&gt;
&lt;br /&gt;
plt.xlabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Diferença Absoluta&#039;)&lt;br /&gt;
plt.title(&#039;Diferença Absoluta em x=L&#039;, fontsize=16)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: erroL.png|thumb|upright=0.0|center|Diferença entre os métodos estudados|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_lax-w2.png&amp;diff=9815</id>
		<title>Arquivo:Amplitude lax-w2.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_lax-w2.png&amp;diff=9815"/>
		<updated>2024-02-04T21:58:16Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lax-w2.png&amp;diff=9814</id>
		<title>Arquivo:Lax-w2.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lax-w2.png&amp;diff=9814"/>
		<updated>2024-02-04T21:58:02Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff_de_dois_passos&amp;diff=9813</id>
		<title>Método Lax-Wendroff de dois passos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff_de_dois_passos&amp;diff=9813"/>
		<updated>2024-02-04T21:57:41Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: Criou página com &amp;#039;Neste método é usando diferenças adiantadas no espaço e no tempo, tomando médias aritméticas na posição. Assim,  &amp;lt;center&amp;gt;&amp;lt;math&amp;gt; \frac{u_i^{n+1} - u_i^{n}}{\Delta t} = -v \frac{u_{i+\frac{1}{2}}^{n+\frac{1}{2}} - u_{i-\frac{1}{2}}^{n+\frac{1}{2}}}{\Delta x} &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(22)  onde  &amp;lt;center&amp;gt;&amp;lt;math&amp;gt; \begin{cases} u_{i+\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}(u_{i+1}^n + u_{i}^n) - 2r(u_{i+1}^n - u_{i}^n) \\ u_{i-\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}(u_{i}^n...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Neste método é usando diferenças adiantadas no espaço e no tempo, tomando médias aritméticas na posição. Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^{n}}{\Delta t} = -v \frac{u_{i+\frac{1}{2}}^{n+\frac{1}{2}} - u_{i-\frac{1}{2}}^{n+\frac{1}{2}}}{\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(22)&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{i+\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}(u_{i+1}^n + u_{i}^n) - 2r(u_{i+1}^n - u_{i}^n) \\&lt;br /&gt;
u_{i-\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}(u_{i}^n - u_{i-1}^n) - 2r(u_{i}^n - u_{i-1}^n)&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(23)&lt;br /&gt;
&lt;br /&gt;
Substituindo os valores de (23) em (22):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} =  u_i^{n} - \frac{r}{2}(u_{i+1}^{n} - u_{i-1}^{n}) + \frac{r^2}{2}(u_{i+1}^{n} - 2u_{i}^{n} + u_{i-1}^{n})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(24)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Wendroff dois passos para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxW2Pad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = u[n,i] + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])]) + (r/2)**2 * (u[n, int(xpos[i])] - 2*u[n,i] + u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv6 = LaxW2Pad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv6, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax - Wendroff (2P) da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-w2.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff de dois passos|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv6[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude lax-w2.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff de dois passos|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_leapfrog.png&amp;diff=9812</id>
		<title>Arquivo:Amplitude leapfrog.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_leapfrog.png&amp;diff=9812"/>
		<updated>2024-02-04T21:51:37Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Leapfrog.png&amp;diff=9811</id>
		<title>Arquivo:Leapfrog.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Leapfrog.png&amp;diff=9811"/>
		<updated>2024-02-04T21:51:21Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Leapfrog&amp;diff=9810</id>
		<title>Método Leapfrog</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Leapfrog&amp;diff=9810"/>
		<updated>2024-02-04T21:51:08Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: Criou página com &amp;#039;O termo &amp;quot;leapfrog&amp;quot; é utilizado devido aos níveis de tempo presentes na sua derivação, que superam os níveis de tempo no termo derivado do espaço. O método requer que &amp;lt;math&amp;gt;u_{n-1}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; sejam armazenados para calcular &amp;lt;math&amp;gt;u_{n+1}&amp;lt;/math&amp;gt;.  Dessa forma, em relação à equação de advecção, temos:  &amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u_i^{n+1} = u_i^{n-1} +  r (u_{i+1}^{n} - u_{i-1}^{n}) &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(18)  = Esquema de Matsuno =  Primeiramente, os valores apr...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;O termo &amp;quot;leapfrog&amp;quot; é utilizado devido aos níveis de tempo presentes na sua derivação, que superam os níveis de tempo no termo derivado do espaço. O método requer que &amp;lt;math&amp;gt;u_{n-1}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; sejam armazenados para calcular &amp;lt;math&amp;gt;u_{n+1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, em relação à equação de advecção, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} = u_i^{n-1} +  r (u_{i+1}^{n} - u_{i-1}^{n})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(18)&lt;br /&gt;
&lt;br /&gt;
= Esquema de Matsuno =&lt;br /&gt;
&lt;br /&gt;
Primeiramente, os valores aproximados de &amp;lt;math&amp;gt;u_j^{n+1}&amp;lt;/math&amp;gt; serão calculados utilizando o esquema avançado, representado pela equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{(n+1)^*} - u_i^{n}}{\Delta t} = -v \frac{u_{i+1}^{n} - u_{i-1}^{n}}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(19)&lt;br /&gt;
&lt;br /&gt;
Assim, esses valores aproximados são empregados em um esquema atrasado, o qual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^{n}}{\Delta t} = -v \frac{u_{i+1}^{(n+1)^*} - u_{i-1}^{(n+1)^*}}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(20)&lt;br /&gt;
&lt;br /&gt;
substituindo valores dados pelo esquema avançado, com o subscrito &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; substituído por &amp;lt;math&amp;gt;i+1&amp;lt;/math&amp;gt;, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} =  u_i^{n} - \frac{r}{2}(u_{i+1}^{n} - u_{i-1}^{n}) + \frac{r^2}{2}(u_{i+2}^{n} - u_{i}^{n} + u_{i-2}^{n})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Leapfrog para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def Leapfrogad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / Nx&lt;br /&gt;
    dt = tf / Nt&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0, :] = 1 - np.cos(x)  # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            # Condições de contorno&lt;br /&gt;
            ip = i + 1 if i &amp;lt; Nx else 0  # índice i+1 (volta para 0 na borda)&lt;br /&gt;
            ia = i - 1 if i &amp;gt; 0 else Nx  # índice i-1 (volta para Nx na borda)&lt;br /&gt;
&lt;br /&gt;
            u[n+1, i] = u[n, i] + (r/2) * (u[n, ip] - u[n, ia]) - (r/2)**2 * (u[n, (ip+1) % (Nx + 1)] - u[n, i] + u[n, (ia-1) % (Nx + 1)])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ideia ==&lt;br /&gt;
&lt;br /&gt;
* Se i é igual a Nx, então ip = Nx+1 e (ip+1) % (Nx + 1) se torna (Nx + 2) % (Nx + 1), que é equivalente a 0. Da mesma forma, se i é igual a 0, então ia = -1 e (ia-1) % (Nx + 1) se torna Nx;&lt;br /&gt;
&lt;br /&gt;
* Quando i atinge o valor máximo Nx ou o valor mínimo 0, as expressões (ip+1) % (Nx + 1) e (ia-1) % (Nx + 1) garantem que os índices não ultrapassem os limites da matriz. O operador % (módulo) faz com que o índice retorne ao início (quando excede o limite superior) ou ao final (quando é menor que o limite inferior) da matriz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv5 = Leapfrogad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv5, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Leapfrog da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: leapfrog.png|thumb|upright=0.0|center|Solução pelo método Leapfrog|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv5[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude leapfrog.png|thumb|upright=0.0|center|Solução pelo método Leapfrog|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_up-w.png&amp;diff=9809</id>
		<title>Arquivo:Amplitude up-w.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_up-w.png&amp;diff=9809"/>
		<updated>2024-02-04T21:41:52Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Up-w.png&amp;diff=9808</id>
		<title>Arquivo:Up-w.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Up-w.png&amp;diff=9808"/>
		<updated>2024-02-04T21:41:37Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Upwind_Differencing&amp;diff=9807</id>
		<title>Upwind Differencing</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Upwind_Differencing&amp;diff=9807"/>
		<updated>2024-02-04T21:41:15Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: Criou página com &amp;#039;Foram apresentados métodos numéricos eficientes com propósitos gerais para resolver a equação de advecção. Entretanto, é necessário restringir nossa abordagem a formas de onda suficientemente suaves para evitar oscilações espúrias tanto nas bordas de ataque quanto nas bordas de queda da forma de onda. Uma abordagem reconhecida para suprimir desvios nas extremidades inicial e final de uma forma de onda afiada é a adoção de um esquema conhecido como &amp;quot;esquema...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Foram apresentados métodos numéricos eficientes com propósitos gerais para resolver a equação de advecção. Entretanto, é necessário restringir nossa abordagem a formas de onda suficientemente suaves para evitar oscilações espúrias tanto nas bordas de ataque quanto nas bordas de queda da forma de onda. Uma abordagem reconhecida para suprimir desvios nas extremidades inicial e final de uma forma de onda afiada é a adoção de um esquema conhecido como &amp;quot;esquema de diferenças upwind&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nesse esquema, as diferenças espaciais são inclinadas na direção &amp;quot;upwind&amp;quot;, ou seja, na direção de onde o fluxo advectivo se origina.&lt;br /&gt;
&lt;br /&gt;
Portanto, a versão upwind do simples esquema de diferenças explícitas é escrita da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;v &amp;gt; 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^n}{\Delta t} + v\frac{\Delta u_i^{n} - u_{i-1}^{n}}{\Delta x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(15)&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;v &amp;lt; 0&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - u_i^n}{\Delta t} + v\frac{u_{i+1}^{n} - u_{i}^{n}}{\Delta x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(16)&lt;br /&gt;
&lt;br /&gt;
Combinando (15) e (16):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1} = u_i^{n} - \Delta t (v^{+}u_x^{-} + v^{-}u_x^{+})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(17)&lt;br /&gt;
&lt;br /&gt;
Onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
  v^{+} &amp;amp;= max(v,0) \\&lt;br /&gt;
  v^{-} &amp;amp;= min(v,0) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
  u_x^{-} &amp;amp;= \frac{u_i^{n} - u_{i-1}^{n}}{\Delta x} \\&lt;br /&gt;
  u_x^{+} &amp;amp;= \frac{u_{i+1}^{n} - u_{i}^{n}}{\Delta x}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O esquema upwind é estável quando a seguinte condição Courant-Friedrichs-Lewy (CFL) é atendida:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|v\frac{\Delta t}{\Delta x}| \leq 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Upwind para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def Upwindad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1 - np.cos(x)  # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0, Nx+1):&lt;br /&gt;
        xpos[i] = i+1&lt;br /&gt;
        xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] = Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            v_mais = np.maximum(v, 0)&lt;br /&gt;
            v_menos = np.minimum(v, 0)&lt;br /&gt;
            u_x_mais = 1/dx * (u[n, int(xpos[i])] - u[n, i])&lt;br /&gt;
            u_x_menos = 1/dx * (u[n, i] - u[n, int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
            u[n+1, i] = u[n, i] - dt * (v_mais * u_x_menos + v_menos * u_x_mais)&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = -1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv4 = Upwindad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv4, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Upwind da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: up-w.png|thumb|upright=0.0|center|Solução pelo método upwind differencing|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as cuvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv4[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude up-w.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff&amp;diff=9806</id>
		<title>Método Lax-Wendroff</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff&amp;diff=9806"/>
		<updated>2024-02-04T21:11:33Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trata-se de um método de segunda ordem tanto no tempo quanto no espaço. Lax e Wendroﬀ propuseram um método de discretização de segunda ordem para resolver equações hiperbólicas, o qual substituiu o método de Lax-Friedrichs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_{i}^n - \frac{r}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r^2}{2} (u_{i+1}^n - 2u_{i}^n + u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(14)&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Wendroff para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxWad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = u[n,i] + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])]) + (r**2/2) * (u[n, int(xpos[i])] - 2*u[n,i] + u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv3 = LaxWad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv3, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Wendroff da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-w.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv3[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude lax-w.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff&amp;diff=9805</id>
		<title>Método Lax-Wendroff</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff&amp;diff=9805"/>
		<updated>2024-02-04T21:10:53Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trata-se de um método de segunda ordem tanto no tempo quanto no espaço. Lax e Wendroﬀ propuseram um método de discretização de segunda ordem para resolver equações hiperbólicas, o qual substituiu o método de Lax-Friedrichs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_{i}^n - \frac{r}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r^2}{2} (u_{i+1}^n - 2u_{i}^n + u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(14)&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Wendroff para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxWad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = u[n,i] + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])]) + (r**2/2) * (u[n, int(xpos[i])] - 2*u[n,i] + u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv3 = LaxWad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv3, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Wendroff da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-w.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv3[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude lax-w.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_lax-w.png&amp;diff=9804</id>
		<title>Arquivo:Amplitude lax-w.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_lax-w.png&amp;diff=9804"/>
		<updated>2024-02-04T21:10:04Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lax-w.png&amp;diff=9803</id>
		<title>Arquivo:Lax-w.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lax-w.png&amp;diff=9803"/>
		<updated>2024-02-04T21:09:48Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff&amp;diff=9802</id>
		<title>Método Lax-Wendroff</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Wendroff&amp;diff=9802"/>
		<updated>2024-02-04T21:09:35Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: Criou página com &amp;#039;Trata-se de um método de segunda ordem tanto no tempo quanto no espaço. Lax e Wendroﬀ propuseram um método de discretização de segunda ordem para resolver equações hiperbólicas, o qual substituiu o método de Lax-Friedrichs.  &amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u_i^{n+1}= u_{i}^n - \frac{r}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r^2}{2} (u_{i+1}^n - 2u_{i}^n + u_{i-1}^n) &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(14)  = Implementação do método =  * Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;  * Condi...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trata-se de um método de segunda ordem tanto no tempo quanto no espaço. Lax e Wendroﬀ propuseram um método de discretização de segunda ordem para resolver equações hiperbólicas, o qual substituiu o método de Lax-Friedrichs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_{i}^n - \frac{r}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r^2}{2} (u_{i+1}^n - 2u_{i}^n + u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(14)&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Wendroff para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxWad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = u[n,i] + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])]) + (r**2/2) * (u[n, int(xpos[i])] - 2*u[n,i] + u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv3 = LaxWad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv3, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Wendroff da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-w.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang =- &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv3[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude lax-w.png|thumb|upright=0.0|center|Solução pelo método Lax-Wendroff|600px]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9801</id>
		<title>Método Lax-Friedrich</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9801"/>
		<updated>2024-02-04T20:00:59Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A instabilidade no esquema FTCS pode ser corrigida substituindo &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; no lado direito pela média espacial de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; calculada nos pontos da grade vizinhos. Dessa forma, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= \frac{1}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann do esquema de Lax resulta na seguinte expressão para o fator de amplificação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A = \cos(k \Delta x) - ir\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Portanto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|A|^2 = 1 -  (1-r^2)\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Ou seja, o método é incondicionalmente estável para os valores de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; menor do que 1. Pela definição de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, temos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta t &amp;lt; \frac{\Delta x}{v}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Friedrichs para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxFad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = (1/2) * (u[n, int(xpos[i])] + u[n,int(xneg[i])]) + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv2 = LaxFad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv2, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Friedrichs da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-friedrich.png|thumb|upright=0.0|center|Solução pelo método Lax-Friedrich|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as curvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv2[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude lax-f.png|thumb|upright=0.0|center|Solução pelo método Lax-Friedrich|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_lax-f.png&amp;diff=9800</id>
		<title>Arquivo:Amplitude lax-f.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Amplitude_lax-f.png&amp;diff=9800"/>
		<updated>2024-02-04T19:59:32Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9799</id>
		<title>Método Lax-Friedrich</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9799"/>
		<updated>2024-02-04T19:59:05Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A instabilidade no esquema FTCS pode ser corrigida substituindo &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; no lado direito pela média espacial de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; calculada nos pontos da grade vizinhos. Dessa forma, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= \frac{1}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann do esquema de Lax resulta na seguinte expressão para o fator de amplificação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A = \cos(k \Delta x) - ir\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Portanto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|A|^2 = 1 -  (1-r^2)\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Ou seja, o método é incondicionalmente estável para os valores de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; menor do que 1. Pela definição de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, temos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta t &amp;lt; \frac{\Delta x}{v}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Friedrichs para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxFad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = (1/2) * (u[n, int(xpos[i])] + u[n,int(xneg[i])]) + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv2 = LaxFad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv2, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Friedrichs da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-friedrich.png|thumb|upright=0.0|center|Solução pelo método Lax-Friedrich|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&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;
# Teste: Plota todas as cuvas amplitude por posição de todos os tempos:&lt;br /&gt;
&lt;br /&gt;
for tt in range(len(listT-1)):&lt;br /&gt;
  amplitudes_tt = solv2[ tt,:]&lt;br /&gt;
  plt.plot(listX, amplitudes_tt)&lt;br /&gt;
&lt;br /&gt;
plt.title(&#039;Amplitude em Função da Posição&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Amplitude (u)&#039;)&lt;br /&gt;
plt.legend()&lt;br /&gt;
plt.grid(True)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: amplitude lax-f.png|thumb|upright=0.0|center|Solução pelo método Lax-Friedrich|600px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9798</id>
		<title>Método Lax-Friedrich</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9798"/>
		<updated>2024-02-04T19:55:55Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A instabilidade no esquema FTCS pode ser corrigida substituindo &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; no lado direito pela média espacial de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; calculada nos pontos da grade vizinhos. Dessa forma, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= \frac{1}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann do esquema de Lax resulta na seguinte expressão para o fator de amplificação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A = \cos(k \Delta x) - ir\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Portanto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|A|^2 = 1 -  (1-r^2)\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Ou seja, o método é incondicionalmente estável para os valores de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; menor do que 1. Pela definição de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, temos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta t &amp;lt; \frac{\Delta x}{v}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Friedrichs para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxFad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = (1/2) * (u[n, int(xpos[i])] + u[n,int(xneg[i])]) + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv2 = LaxFad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv2, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Friedrichs da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo: lax-friedrich.png|thumb|upright=0.0|center|Solução pelo método Lax-Friedrich|300px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lax-friedrich.png&amp;diff=9797</id>
		<title>Arquivo:Lax-friedrich.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lax-friedrich.png&amp;diff=9797"/>
		<updated>2024-02-04T19:55:06Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9796</id>
		<title>Método Lax-Friedrich</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9796"/>
		<updated>2024-02-04T19:54:34Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A instabilidade no esquema FTCS pode ser corrigida substituindo &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; no lado direito pela média espacial de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; calculada nos pontos da grade vizinhos. Dessa forma, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= \frac{1}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann do esquema de Lax resulta na seguinte expressão para o fator de amplificação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A = \cos(k \Delta x) - ir\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Portanto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|A|^2 = 1 -  (1-r^2)\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Ou seja, o método é incondicionalmente estável para os valores de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; menor do que 1. Pela definição de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, temos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta t &amp;lt; \frac{\Delta x}{v}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Friedrichs para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxFad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = (1/2) * (u[n, int(xpos[i])] + u[n,int(xneg[i])]) + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv2 = LaxFad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv2, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Friedrichs da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Arquivo:lax-friedrich.png|thumb|upright=0.0|center|Solução pelo método Lax-Friedrich|300px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9795</id>
		<title>Método Lax-Friedrich</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9795"/>
		<updated>2024-02-04T19:50:33Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A instabilidade no esquema FTCS pode ser corrigida substituindo &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; no lado direito pela média espacial de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; calculada nos pontos da grade vizinhos. Dessa forma, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= \frac{1}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann do esquema de Lax resulta na seguinte expressão para o fator de amplificação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A = \cos(k \Delta x) - ir\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Portanto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|A|^2 = 1 -  (1-r^2)\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Ou seja, o método é incondicionalmente estável para os valores de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; menor do que 1. Pela definição de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, temos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta t &amp;lt; \frac{\Delta x}{v}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Solução pelo método Lax-Friedrichs para equação de advecção&lt;br /&gt;
&lt;br /&gt;
def LaxFad(L, tf, v, Nx, Nt):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Parâmetros:&lt;br /&gt;
    - L: comprimento&lt;br /&gt;
    - tf: tempo final&lt;br /&gt;
    - v: velocidade de propagação&lt;br /&gt;
    - Nx: número de pontos na direção espacial&lt;br /&gt;
    - Nt: número de pontos na direção temporal&lt;br /&gt;
&lt;br /&gt;
    Retorna:&lt;br /&gt;
    - Matriz com a solução da equação da onda&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    dx = L / (Nx - 1)&lt;br /&gt;
    dt = tf / (Nt - 1)&lt;br /&gt;
    r = v * dt / dx&lt;br /&gt;
&lt;br /&gt;
    u = np.zeros((Nt, Nx+1))&lt;br /&gt;
&lt;br /&gt;
    # Condição inicial: u(x,0) = f(x)&lt;br /&gt;
    x = np.linspace(0, L, Nx+1)&lt;br /&gt;
    u[0,:] = 1-np.cos(x) # Função que descreve a perturbação da onda&lt;br /&gt;
&lt;br /&gt;
    # Condições de contorno borda infinita:&lt;br /&gt;
    xpos = np.zeros(Nx+1)&lt;br /&gt;
    xneg = np.zeros(Nx+1)&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,Nx+1):&lt;br /&gt;
      xpos[i] = i+1&lt;br /&gt;
      xneg[i] = i-1&lt;br /&gt;
    xpos[Nx] = 0&lt;br /&gt;
    xneg[0] =  Nx&lt;br /&gt;
&lt;br /&gt;
    # Iteração no tempo&lt;br /&gt;
    for n in range(0, Nt - 1):&lt;br /&gt;
        for i in range(0, Nx+1):&lt;br /&gt;
            u[n+1,i] = (1/2) * (u[n, int(xpos[i])] + u[n,int(xneg[i])]) + (r/2) * (u[n, int(xpos[i])] - u[n,int(xneg[i])])&lt;br /&gt;
&lt;br /&gt;
    return u&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&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;
# Parâmetros&lt;br /&gt;
L = 2*np.pi&lt;br /&gt;
tf =1&lt;br /&gt;
v = 1 # -1. muda direção de propagação&lt;br /&gt;
Nx = 100&lt;br /&gt;
Nt = 500&lt;br /&gt;
&lt;br /&gt;
solv2 = LaxFad(L, tf, v, Nx, Nt)&lt;br /&gt;
&lt;br /&gt;
listX = np.linspace(0, L, Nx+1)&lt;br /&gt;
listT = np.linspace(0, tf, Nt)&lt;br /&gt;
&lt;br /&gt;
X, T = np.meshgrid(listX, listT)&lt;br /&gt;
&lt;br /&gt;
plt.figure(figsize=(10, 6))&lt;br /&gt;
plt.pcolormesh(X, T, solv2, cmap=&#039;viridis&#039;, shading=&#039;auto&#039;)&lt;br /&gt;
plt.colorbar(label=&#039;Amplitude(u)&#039;)&lt;br /&gt;
plt.xlabel(&#039;Posição (x)&#039;)&lt;br /&gt;
plt.ylabel(&#039;Tempo (t)&#039;)&lt;br /&gt;
plt.title(&#039;Solução Lax-Friedrichs da Equação da advecção (1D)&#039;, fontsize=16)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9794</id>
		<title>Método Lax-Friedrich</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_Lax-Friedrich&amp;diff=9794"/>
		<updated>2024-02-04T19:44:30Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: Criou página com &amp;#039;A instabilidade no esquema FTCS pode ser corrigida substituindo &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; no lado direito pela média espacial de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; calculada nos pontos da grade vizinhos. Dessa forma, obtemos:  &amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u_i^{n+1}= \frac{1}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n) &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)  A análise de estabilidade de von Neumann do esquema de Lax resulta na seguinte expressão para o fator de amplificação:  &amp;lt;center&amp;gt;&amp;lt;math&amp;gt; A = \cos(k \De...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A instabilidade no esquema FTCS pode ser corrigida substituindo &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; no lado direito pela média espacial de &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; calculada nos pontos da grade vizinhos. Dessa forma, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= \frac{1}{2}(u_{i+1}^n + u_{i-1}^n) + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann do esquema de Lax resulta na seguinte expressão para o fator de amplificação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A = \cos(k \Delta x) - ir\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Portanto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|A|^2 = 1 -  (1-r^2)\sin^2(k \Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Ou seja, o método é incondicionalmente estável para os valores de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; menor do que 1. Pela definição de &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, temos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\Delta t &amp;lt; \frac{\Delta x}{v}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
= Implementação do método =&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno para bordas cíclicas.&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9793</id>
		<title>Métodos Computacionais para Estudo de Fenômenos Ondulatórios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9793"/>
		<updated>2024-02-04T19:39:46Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo realizar um estudo introdutório da equação da onda, adotando uma abordagem computacional que proporciona uma base teórica sólida e intuitiva. Inicialmente, é realizada a implementação de uma solução numérica (FTCS) para a equação da advecção, visando o estudo da propagação de uma perturbação e explorando aspectos computacionais fundamentais. Em seguida, a equação da onda é aplicada em uma dimensão, permitindo uma investigação detalhada de fenômenos ondulatórios, tais como reflexão, interferência e refração. A abordagem é estendida para duas dimensões, incluindo a análise dos efeitos de contorno nesse contexto. Por fim, o trabalho aprofunda-se no estudo do fenômeno de difração, contribuindo para uma compreensão mais enriquecedora dos aspectos complexos dos fenômenos ondulatórios em múltiplas dimensões.&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O que é uma onda exatamente? De acordo com &#039;A Student’s Guide to Waves&#039;, a literatura apresenta diversas definições. Contudo, a característica mais comum que define uma onda é sua natureza como uma perturbação, uma alteração no estado de equilíbrio que, inicialmente, permanece inalterado. Quando uma fonte externa, como um objeto vibrante ou uma força inicial, perturba a condição de equilíbrio de um meio, essa perturbação é transmitida de partícula para partícula ao longo do meio. Esse processo de transmissão de energia ocorre sem que as partículas individuais do meio se desloquem significativamente de suas posições de equilíbrio. Em outras palavras, a energia da perturbação é transferida, mas as partículas do meio não se movem em conjunto com a onda.&lt;br /&gt;
&lt;br /&gt;
O estudo da física das ondas desempenha um papel crucial, permeando inúmeras áreas da ciência e da tecnologia ao proporcionar uma compreensão profunda dos fenômenos ondulatórios e suas aplicações práticas. A física das ondas desempenha um papel essencial em nossa vida cotidiana. Seu impacto é evidente na tecnologia de comunicação, onde as ondas de rádio e micro-ondas são a espinha dorsal de redes globais de telefonia móvel e internet sem fio.&lt;br /&gt;
&lt;br /&gt;
Com base no exposto, propõe-se a realização de um estudo abrangente sobre a modelagem de fenômenos ondulatórios. Inicialmente, serão apresentados pontos importantes acerca da equação da onda. Em seguida, dedicaremos atenção ao estudo da propagação de uma perturbação a partir da equação de advecção. Nesse contexto, abriremos a discussão sobre a abordagem computacional, e, tangencialmente, comentaremos sobre outros métodos numéricos para resolver a advecção. Posteriormente, faremos um estudo sobre a solução numérica da equação da onda, permitindo a modelagem de fenômenos ondulatórios, como reflexão, interferência, refração e difração.&lt;br /&gt;
&lt;br /&gt;
= Equação da Onda =&lt;br /&gt;
&lt;br /&gt;
A função de uma onda é aquela que especifica o valor da perturbação em cada ponto e instante ao longo de seu percurso. Para iniciar nossa análise, abordaremos o exemplo mais simples, em que a propagação ocorre unicamente em uma direção, como é o caso das ondas transversais em uma corda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dedução ==&lt;br /&gt;
&lt;br /&gt;
O perfil da onda em uma corda em um determinado instante é equivalente à forma que a corda apresenta nesse momento, que é dada pela função &amp;lt;math&amp;gt;y(x, t)&amp;lt;/math&amp;gt;. A perturbação assume a forma de uma onda progressiva, movendo-se como uma entidade coesa para a direita, mantendo sua configuração inalterada, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Dessa forma, ao acompanhar a onda em um referencial inercial diferente, em que &amp;lt;math&amp;gt;y(x,t)=y(x&#039;,t)&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;x&#039;&amp;lt;/math&amp;gt; representa o antigo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; deslocado por &amp;lt;math&amp;gt;vt&amp;lt;/math&amp;gt;, a relação entre os dois referenciais é estabelecida por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
x&#039; = x - vt&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y&#039; = y&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
de modo que, no referencial original,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = f(x - vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
descreve uma onda progressiva, que se propaga para a direita, com velocidade $v$.&lt;br /&gt;
&lt;br /&gt;
Para associar uma equação de movimento com a propagação da onda, vamos calcular a aceleração num dado ponto $x$. A velocidade e a aceleração em $x$ se obtêm fixando $x$ e derivando em relação ao tempo, o que corresponde a tomar derivadas parciais.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        V = \frac{\partial}{\partial t} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        A = \frac{\partial ^2}{\partial t^2} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pela regra da cadeia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial y}{\partial t} = \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t} = -v \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
Analogamente,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2}{\partial t^2} = -v \frac{\partial}{\partial t} \frac{\partial f}{\partial x&#039;} = -v \frac{\partial}{\partial x&#039;} \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou seja,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} = v^2 \frac{\partial ^2 f }{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando $y$ em relação a $x$ obtemos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial y}{\partial x} = \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial ^2 y}{\partial x^2} = \frac{\partial ^2 f}{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} - v^2 \frac{\partial^2 y }{\partial x^2} = 0  &lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denominada equação da onda unidimensional, esta é uma das equações fundamentais da física.&lt;br /&gt;
&lt;br /&gt;
== Solução Analítica ==&lt;br /&gt;
&lt;br /&gt;
Agora, procederemos à análise do movimento de uma corda de comprimento &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; que vibra com extremidades fixas. Como essas extremidades são fixas, temos, nos pontos &amp;lt;math&amp;gt;x = 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x = L&amp;lt;/math&amp;gt;, os valores &amp;lt;math&amp;gt;y(0,t) = y(L,t) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso, supomos que a função &amp;lt;math&amp;gt;y(x,0) = f(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\frac{\partial y}{\partial t} = 0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;t = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com base nas observações realizadas, torna-se possível identificar um conjunto fundamental de soluções por meio da aplicação do método de separação de variáveis.&lt;br /&gt;
&lt;br /&gt;
Suponhamos que existam duas soluções, uma dependendo exclusivamente de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e outra exclusivamente de &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, de modo que possamos expressar a função &amp;lt;math&amp;gt;y(x,t)&amp;lt;/math&amp;gt; como o produto dessas duas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = X(x)T(t)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos escrever as derivadas parciais como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\frac{\partial^2 y}{\partial x^2} = \frac{X&#039;&#039;}{X} \\&lt;br /&gt;
\frac{\partial^2 y}{\partial t^2} = \frac{T&#039;&#039;}{T} \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
substituindo na equação da onda,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} - v^2 \frac{X&#039;&#039;}{X} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, torna-se evidente que a razão entre as funções de &amp;lt;mathT&amp;lt;/math&amp;gt; consiste em uma constante, assim como &amp;lt;math&amp;gt;v^2 \frac{X&#039;&#039;}{X}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[*Equação (12)*]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
v^2 \frac{X&#039;&#039;}{X} = \lambda ^2 \to X&#039;&#039; = \bigg(\frac{\lambda}{v}\bigg)^2 X&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[*Equação (13)*]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} = \lambda ^2  \to T&#039;&#039;= \lambda^2 T&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observa-se que as equações (12) e (13) são equações diferenciais ordinárias (EDOs) lineares de segunda ordem, cujos coeficientes podem depender da variável independente e, potencialmente, serem funções não constantes. Assim, é possível usarmos da teoria de Sturm-Liouville para resolver essas equações.&lt;br /&gt;
&lt;br /&gt;
=== Resolvendo a Equação (12) ===&lt;br /&gt;
&lt;br /&gt;
Se avaliarmos as condições de contorno para os possíveis valores de lambda, que devem ser maiores ou iguais a zero, obtemos apenas a solução trivial. Contudo, se lambda for negativo, surge uma solução para &amp;lt;math&amp;gt;X(x)&amp;lt;/math&amp;gt; na forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(x) = a \cos \bigg( \frac{\lambda x}{v} \bigg) + b \sin \bigg( \frac{\lambda x}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições de contorno, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(0) = a \cos (0) + b \sin (0) = a  \therefore a=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(L) = b \sin \bigg( \frac{\lambda L}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Certamente, observa-se que, para alcançarmos uma solução não trivial, é necessário que &amp;lt;math&amp;gt;\lambda = \bigg( \frac{nv\pi}{L} \bigg) &amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;n \in \mathbb{N}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X_n (x) = \sum_{n=1}^{\infty} b_n \sin \bigg( \frac{n\pi x}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resolvendo a Equação (13) ===&lt;br /&gt;
&lt;br /&gt;
Analogamente, temos uma solução não trivial para lambda menor que zero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
T(t) = c \cos(\lambda t) + d \sin(\lambda t) \to T_n (t) = \sum_{n=1}^{\infty} c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voltando para a solução geral:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty}  b_n \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juntando as constantes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty} \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(A_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + B_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt;, temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,0) =  \sum_{n=1}^{\infty} A_n \sin \bigg( \frac{n\pi x}{L} \bigg) = f(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; representa uma série de Fourier de senos, na qual os coeficientes &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; são determinados por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_n = \frac{2}{L}\int_0^L f(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando &amp;lt;math&amp;gt;y&#039;(x,0)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial }{\partial t} y(x,0) = \sum_{n=1}^{\infty} B_n \bigg( \frac{nv\pi}{L} \bigg) \sin \bigg( \frac{n\pi x}{L} \bigg) = g(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analogamente a &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(x)&amp;lt;/math&amp;gt; é uma série de Fourier de senos. Portanto, podemos determinar &amp;lt;math&amp;gt;B_n&amp;lt;/math&amp;gt; da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
B_n = \frac{2}{nv \pi}\int_0^L g(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= A equação de advecção unidimensional =&lt;br /&gt;
&lt;br /&gt;
Partimos da equação de advecção para estudarmos a propagação de uma perturbação.&lt;br /&gt;
&lt;br /&gt;
A equação de onda está intimamente relacionada à chamada equação de advecção, que, em uma dimensão, assume a seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial  u}{\partial t} + v\frac{\partial u}{\partial x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(4)&lt;br /&gt;
&lt;br /&gt;
A equação a seguir descreve a advecção passiva de um campo escalar &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; transportado por um fluxo de velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Como a equação de advecção é um tanto mais simples do que a equação da onda, discutiremos aquela em primeiro lugar. A equação de advecção possui a solução formal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = F(x-vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(5)&lt;br /&gt;
&lt;br /&gt;
Essa solução descreve um pulso de forma arbitrária que é arrastado pelo fluxo a uma velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;, sem alterar sua forma.&lt;br /&gt;
&lt;br /&gt;
== Solução analítica da equação da advecção ==&lt;br /&gt;
&lt;br /&gt;
== Esquema Forward Time-Centered Space (FTCS) == &lt;br /&gt;
&lt;br /&gt;
Para a abordagem numérica computacional do nosso estudo, utilizamos o esquema FTCS.&lt;br /&gt;
&lt;br /&gt;
O método FTCS é amplamente empregado na resolução de equações diferenciais parciais. Trata-se de um método de diferenças finitas que adota uma abordagem explícita no tempo e central no espaço. Esse esquema apresenta uma acurácia de primeira ordem no tempo e de segunda ordem no espaço.&lt;br /&gt;
&lt;br /&gt;
A discretização no tempo (Forward Time) pode ser feita utilizando a diferença finita para a derivada temporal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial t} \approx \frac{u_i^{n+1} - u_i^n}{\Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(6)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; representa a amplitude da perturbação no ponto &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; do espaço e no instante &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, e &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; é o passo de tempo.&lt;br /&gt;
&lt;br /&gt;
A discretização no espaço (Central Space) pode ser feita utilizando a diferença finita para a derivada espacial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial x} \approx \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(7)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; é o espaçamento entre os pontos discretizados no espaço.&lt;br /&gt;
&lt;br /&gt;
As equações acima podem ser reescritas como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_i^n + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(8)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;r = v\frac{\Delta t}{\Delta x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann == &lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann é uma abordagem teórica utilizada para avaliar a estabilidade numérica de esquemas de diferenças finitas, incluindo o esquema FTCS. Usando o método de von Neumann, supõe-se a seguinte solução tentativa para a EDP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x, t) = A(t)e^{jkx}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(8)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;j = \sqrt{-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é o número de onda, e &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; é a amplitude da onda, uma função do tempo.&lt;br /&gt;
&lt;br /&gt;
Assim, a solução no passo de tempo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; e em &amp;lt;math&amp;gt;x = x_i = i\Delta x&amp;lt;/math&amp;gt; é escrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_ne^{jki\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(9)&lt;br /&gt;
&lt;br /&gt;
Substituindo esta solução tentativa na expressão da advecção discretizada temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_{n+1}e^{jki\Delta x} = A_ne^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(A_ne^{jk(i+1)\Delta x} - A_ne^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(10)&lt;br /&gt;
&lt;br /&gt;
Seja &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; a razão da amplitude da onda no passo de tempo &amp;lt;math&amp;gt;n + 1&amp;lt;/math&amp;gt; em relação ao passo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. Portanto,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = \frac{A_{n+1}}{A_n}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
Dividir (10) por &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; resulta em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi e^{jki\Delta x} = e^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(e^{jk(i+1)\Delta x} - e^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Se dividirmos esse resultado por &amp;lt;math&amp;gt;e^{jki\Delta x}&amp;lt;/math&amp;gt; temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = 1 - \frac{u\Delta t}{2\Delta x}\left(e^{jk\Delta x} - e^{-jk\Delta x}\right) = 1 - \frac{u\Delta t}{\Delta xj}\sin(k\Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|\xi| = \sqrt{1 + \left(\frac{u\Delta t}{\Delta x}\sin(k\Delta x)\right)^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(14)&lt;br /&gt;
&lt;br /&gt;
Isso implica que &amp;lt;math&amp;gt;|\xi| \geq 1&amp;lt;/math&amp;gt; independentemente do passo de tempo &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; selecionado ou do passo espacial &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, portanto, FTCS é incondicionalmente instável.&lt;br /&gt;
&lt;br /&gt;
Apesar de ser incondicionalmente instável, o esquema funcionará bem em nossa modelagem, uma vez que o método apresenta também suas vantagens. O esquema FTCS é relativamente simples de implementar, o que facilita sua aplicação, principalmente para problemas bidimensionais ou tridimensionais, como pretendemos abordar posteriormente.&lt;br /&gt;
&lt;br /&gt;
Em alguns casos específicos, o FTCS pode ser computacionalmente eficiente. Se a equação diferencial parcial for relativamente simples e o domínio de interesse for bem comportado, o FTCS pode oferecer uma solução razoável com custo computacional relativamente baixo.&lt;br /&gt;
&lt;br /&gt;
É feita uma comparação entre outros métodos numéricos de diferenças finitas para solução da equação da advecção e comparado o erro relativo à solução analítica no Apêndice A.&lt;br /&gt;
&lt;br /&gt;
== Implementação do esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
Vamos agora examinar a implementação do esquema FTCS na equação da advecção para visualizarmos a propagação de uma perturbação na forma de &amp;lt;math&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; em um eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; infinito. Em outras palavras:&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno periódicas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neste caso, podemos observar uma perturbação se propagando no sentido negativo do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; sem perda de amplitude ou mudança de forma. Isso acontece porque, com a equação da advecção, podemos analisar apenas a cinemática de uma perturbação, a qual, por sua vez, apenas relaciona os atributos como amplitude, comprimento de onda, frequência e velocidade.&lt;br /&gt;
&lt;br /&gt;
Podemos observar, ainda, que a amplitude está relacionada à condição inicial em que o máximo de &amp;lt;matH&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; é atingido quando &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt;. Nesse contexto, considerando &amp;lt;math&amp;gt;0 &amp;lt; x &amp;lt; 2\pi&amp;lt;/math&amp;gt;, percebemos que &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt; ocorre exatamente no meio do eixo. Em consequência, a amplitude máxima, que é 2, é inicialmente alcançada no ponto central do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em uma dimensão =&lt;br /&gt;
&lt;br /&gt;
A equação da onda, que em uma dimensão assume a forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 \frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2  u}{\partial x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(15)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; geralmente é algum tipo de deslocamento ou perturbação, enquanto &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; é a velocidade da onda. A equação de onda possui a solução formal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 u(x,t) = F(x+vt) + G(x+vt),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(16)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; são funções arbitrárias. A solução acima representa pulsos de onda de formato arbitrário que se propagam com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; nas direções &amp;lt;math&amp;gt;+x&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;-x&amp;lt;/math&amp;gt;, respectivamente, sem alterar a forma.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
Iniciamos o estudo da solução numérica da equação da onda a partir da implementação do esquema FTCS, pois, como comentado antes, este é o método de implementação mais prático para generalizarmos para mais dimensões espaciais.&lt;br /&gt;
&lt;br /&gt;
As derivadas de segunda ordem podem ser substituídas por diferenças centrais. A aproximação de diferença mais amplamente utilizada para a derivada de segunda ordem é&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial t^2}u(x_i,t_n)\approx \frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(17)&lt;br /&gt;
&lt;br /&gt;
Uma aproximação semelhante para a derivada de segunda ordem na direção &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; é dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial x^2}u(x_i,t_n)\approx \frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(18)&lt;br /&gt;
&lt;br /&gt;
Agora podemos substituir as derivadas e obter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2} = v^2\frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(19)&lt;br /&gt;
&lt;br /&gt;
Assumimos que &amp;lt;math&amp;gt;u^n_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u^{n-1}_i&amp;lt;/math&amp;gt; já foram calculados para &amp;lt;math&amp;gt;i=0,\ldots,N_x&amp;lt;/math&amp;gt;. A única quantidade desconhecida é, portanto, &amp;lt;math&amp;gt;u^{n+1}_i&amp;lt;/math&amp;gt;, que podemos resolver da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_i = -u^{n-1}_i + 2u^n_i + r^2 \left(u^{n}_{i+1}-2u^{n}_{i} + u^{n}_{i-1}\right),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(20)&lt;br /&gt;
&lt;br /&gt;
onde introduzimos o parâmetro&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r = v\frac{\Delta t}{\Delta x},&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
conhecido como número de Courant.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann ==&lt;br /&gt;
&lt;br /&gt;
(ALCINEY DAS NEVES MORAES)&lt;br /&gt;
&lt;br /&gt;
Pela análise de Von Neumann, substituímos &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; por &amp;lt;math&amp;gt;g_n e^{i\theta}&amp;lt;/math&amp;gt; na equação da onda. Após manipulações, a expressão resultante é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = 2 - g^{-1} + \frac{C}{2}(e^{i\theta} - 2 + e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
Usando a identidade de Euler &amp;lt;math&amp;gt;e^{i\theta} + e^{-i\theta} = 2 \cos \theta&amp;lt;/math&amp;gt;, chegamos a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 - 2[1 - \frac{C}{2}(1 - \cos \theta)]g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
Reescrevendo &amp;lt;math&amp;gt;\cos \theta = \cos^2\left(\frac{\theta}{2}\right) - \sin^2\left(\frac{\theta}{2}\right)&amp;lt;/math&amp;gt;, a equação torna-se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 + 2(2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1)g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(22)&lt;br /&gt;
&lt;br /&gt;
Expressamos isso como &amp;lt;math&amp;gt;g^2 + 2bg + 1 = 0&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;b = 2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1&amp;lt;/math&amp;gt;. As raízes são:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = \begin{cases} -b \pm \sqrt{b^2 - 1}, &amp;amp; \text{se } |b| &amp;gt; 1 \\ -b \pm i\sqrt{1 - b^2}, &amp;amp; \text{se } |b| \leq 1 \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(23)&lt;br /&gt;
&lt;br /&gt;
Se &amp;lt;math&amp;gt;|b| &amp;gt; 1&amp;lt;/math&amp;gt;, implica &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt;. Se &amp;lt;math&amp;gt;|b| \leq 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt; pela condição de Von Neumann, tornando o método condicionalmente estável pela condição CFL.&lt;br /&gt;
&lt;br /&gt;
== Reflexão de onda em uma corda ==&lt;br /&gt;
&lt;br /&gt;
Quando uma onda se propaga ao longo de uma corda e incide em uma de suas extremidades, ocorre a sua reflexão. Ao atingir um extremo fixo, que não pode oscilar, é possível observar que o pulso refletido apresenta uma orientação oposta à do pulso incidente. Podemos afirmar que o pulso reflete com inversão de fase, pois isso ocorre devido à reação do ponto fixo sobre a corda com uma força de mesmo módulo. Uma situação distinta ocorre quando a extremidade da corda é móvel, ou seja, não há troca de forças entre ela e a corda, resultando em uma reflexão sem inversão de fase.&lt;br /&gt;
&lt;br /&gt;
Além disso, em um sistema fechado e sem dissipação de energia, podemos observar que as ondas refletidas, independentemente da fase, sofrem interferência construtiva e produzem picos de máximo ou mínimo, dependendo do contexto.&lt;br /&gt;
&lt;br /&gt;
Podemos observar esse fenômeno ao implementar a solução da equação da onda unidimensional com condições de contorno fixas e periódicas, respectivamente, para uma corda com extremidades fixas e extremidades móveis.&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades fixas ===&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades móveis ===&lt;br /&gt;
&lt;br /&gt;
=== Alteração no meio de propagação ===&lt;br /&gt;
&lt;br /&gt;
=== Oscilador em uma corda ===&lt;br /&gt;
&lt;br /&gt;
=== Ondas estacionárias ===&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em duas dimensões =&lt;br /&gt;
&lt;br /&gt;
== FTCS == &lt;br /&gt;
&lt;br /&gt;
Seja a equação da onda em duas dimensões dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A discretização desta equação utilizando o esquema FTCS envolve as seguintes aproximações:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial t^2} \approx \frac{u^{n+1}_{i,j} - 2u^{n}_{i,j} + u^{n-1}_{i,j}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial x^2} \approx \frac{u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial y^2} \approx \frac{u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1}}{\Delta y^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, a equação da onda discretizada usando FTCS é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_{i,j} = 2u^{n}_{i,j} - u^{n-1}_{i,j} + v^2 \left( \frac{\Delta t^2}{\Delta x^2} \cdot (u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}) + \frac{\Delta t^2}{\Delta y^2} \cdot (u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1}) \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para simplificar a notação, fazemos &amp;lt;math&amp;gt;R1 = v^2 \frac{\Delta t^2}{\Delta x^2}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;R2 = v^2 \frac{\Delta t^2}{\Delta y^2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_{i,j} = 2u^{n}_{i,j} - u^{n-1}_{i,j} + R1 \cdot (u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}) + R2 \cdot (u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reflexão de ondas em duas dimensões ==&lt;br /&gt;
&lt;br /&gt;
Analogamente ao que analisamos para uma perturbação em uma corda, podemos agora avaliar como uma perturbação evolui ao se propagar em um plano em direção às suas extremidades, e como interage com os contornos, que podem ser fixos ou periódicos. Neste caso, temos uma perturbação senoidal centrada em &amp;lt;math&amp;gt;x=0,5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y=0,5&amp;lt;/math&amp;gt;, propagando-se isotropicamente em direção aos limites &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; dos dois eixos.&lt;br /&gt;
&lt;br /&gt;
=== Contorno fixo ===&lt;br /&gt;
&lt;br /&gt;
=== Contorno periódico ===&lt;br /&gt;
&lt;br /&gt;
= Apêndice A: Métodos numéricos para solução da equação de advecção =&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Friedrich]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff]]&lt;br /&gt;
&lt;br /&gt;
[[Upwind Differencing]]&lt;br /&gt;
&lt;br /&gt;
[[Método Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
[[Método Lax-Wendroff de dois passos]]&lt;br /&gt;
&lt;br /&gt;
[[Comparação dos métodos numéricos]]&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9792</id>
		<title>Métodos Computacionais para Estudo de Fenômenos Ondulatórios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_Computacionais_para_Estudo_de_Fen%C3%B4menos_Ondulat%C3%B3rios&amp;diff=9792"/>
		<updated>2024-02-04T19:32:06Z</updated>

		<summary type="html">&lt;p&gt;Lucaso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039; Filssen Schereiber, João Roth e Lucas Oliveira &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Este trabalho tem como objetivo realizar um estudo introdutório da equação da onda, adotando uma abordagem computacional que proporciona uma base teórica sólida e intuitiva. Inicialmente, é realizada a implementação de uma solução numérica (FTCS) para a equação da advecção, visando o estudo da propagação de uma perturbação e explorando aspectos computacionais fundamentais. Em seguida, a equação da onda é aplicada em uma dimensão, permitindo uma investigação detalhada de fenômenos ondulatórios, tais como reflexão, interferência e refração. A abordagem é estendida para duas dimensões, incluindo a análise dos efeitos de contorno nesse contexto. Por fim, o trabalho aprofunda-se no estudo do fenômeno de difração, contribuindo para uma compreensão mais enriquecedora dos aspectos complexos dos fenômenos ondulatórios em múltiplas dimensões.&lt;br /&gt;
&lt;br /&gt;
= Introdução =&lt;br /&gt;
&lt;br /&gt;
O que é uma onda exatamente? De acordo com &#039;A Student’s Guide to Waves&#039;, a literatura apresenta diversas definições. Contudo, a característica mais comum que define uma onda é sua natureza como uma perturbação, uma alteração no estado de equilíbrio que, inicialmente, permanece inalterado. Quando uma fonte externa, como um objeto vibrante ou uma força inicial, perturba a condição de equilíbrio de um meio, essa perturbação é transmitida de partícula para partícula ao longo do meio. Esse processo de transmissão de energia ocorre sem que as partículas individuais do meio se desloquem significativamente de suas posições de equilíbrio. Em outras palavras, a energia da perturbação é transferida, mas as partículas do meio não se movem em conjunto com a onda.&lt;br /&gt;
&lt;br /&gt;
O estudo da física das ondas desempenha um papel crucial, permeando inúmeras áreas da ciência e da tecnologia ao proporcionar uma compreensão profunda dos fenômenos ondulatórios e suas aplicações práticas. A física das ondas desempenha um papel essencial em nossa vida cotidiana. Seu impacto é evidente na tecnologia de comunicação, onde as ondas de rádio e micro-ondas são a espinha dorsal de redes globais de telefonia móvel e internet sem fio.&lt;br /&gt;
&lt;br /&gt;
Com base no exposto, propõe-se a realização de um estudo abrangente sobre a modelagem de fenômenos ondulatórios. Inicialmente, serão apresentados pontos importantes acerca da equação da onda. Em seguida, dedicaremos atenção ao estudo da propagação de uma perturbação a partir da equação de advecção. Nesse contexto, abriremos a discussão sobre a abordagem computacional, e, tangencialmente, comentaremos sobre outros métodos numéricos para resolver a advecção. Posteriormente, faremos um estudo sobre a solução numérica da equação da onda, permitindo a modelagem de fenômenos ondulatórios, como reflexão, interferência, refração e difração.&lt;br /&gt;
&lt;br /&gt;
= Equação da Onda =&lt;br /&gt;
&lt;br /&gt;
A função de uma onda é aquela que especifica o valor da perturbação em cada ponto e instante ao longo de seu percurso. Para iniciar nossa análise, abordaremos o exemplo mais simples, em que a propagação ocorre unicamente em uma direção, como é o caso das ondas transversais em uma corda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dedução ==&lt;br /&gt;
&lt;br /&gt;
O perfil da onda em uma corda em um determinado instante é equivalente à forma que a corda apresenta nesse momento, que é dada pela função &amp;lt;math&amp;gt;y(x, t)&amp;lt;/math&amp;gt;. A perturbação assume a forma de uma onda progressiva, movendo-se como uma entidade coesa para a direita, mantendo sua configuração inalterada, com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Dessa forma, ao acompanhar a onda em um referencial inercial diferente, em que &amp;lt;math&amp;gt;y(x,t)=y(x&#039;,t)&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;x&#039;&amp;lt;/math&amp;gt; representa o antigo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; deslocado por &amp;lt;math&amp;gt;vt&amp;lt;/math&amp;gt;, a relação entre os dois referenciais é estabelecida por&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
x&#039; = x - vt&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y&#039; = y&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
de modo que, no referencial original,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = f(x - vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
descreve uma onda progressiva, que se propaga para a direita, com velocidade $v$.&lt;br /&gt;
&lt;br /&gt;
Para associar uma equação de movimento com a propagação da onda, vamos calcular a aceleração num dado ponto $x$. A velocidade e a aceleração em $x$ se obtêm fixando $x$ e derivando em relação ao tempo, o que corresponde a tomar derivadas parciais.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        V = \frac{\partial}{\partial t} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        A = \frac{\partial ^2}{\partial t^2} y(x,t)&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pela regra da cadeia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial y}{\partial t} = \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t} = -v \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
Analogamente,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2}{\partial t^2} = -v \frac{\partial}{\partial t} \frac{\partial f}{\partial x&#039;} = -v \frac{\partial}{\partial x&#039;} \frac{\partial f}{\partial x&#039;} \frac{\partial x&#039;}{\partial t}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou seja,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} = v^2 \frac{\partial ^2 f }{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derivando $y$ em relação a $x$ obtemos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial y}{\partial x} = \frac{\partial f}{\partial x&#039;}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
        \frac{\partial ^2 y}{\partial x^2} = \frac{\partial ^2 f}{\partial {x&#039;}^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial ^2 y}{\partial t^2} - v^2 \frac{\partial^2 y }{\partial x^2} = 0  &lt;br /&gt;
&amp;lt;/math&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denominada equação da onda unidimensional, esta é uma das equações fundamentais da física.&lt;br /&gt;
&lt;br /&gt;
== Solução Analítica ==&lt;br /&gt;
&lt;br /&gt;
Agora, procederemos à análise do movimento de uma corda de comprimento &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; que vibra com extremidades fixas. Como essas extremidades são fixas, temos, nos pontos &amp;lt;math&amp;gt;x = 0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x = L&amp;lt;/math&amp;gt;, os valores &amp;lt;math&amp;gt;y(0,t) = y(L,t) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso, supomos que a função &amp;lt;math&amp;gt;y(x,0) = f(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\frac{\partial y}{\partial t} = 0&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;t = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com base nas observações realizadas, torna-se possível identificar um conjunto fundamental de soluções por meio da aplicação do método de separação de variáveis.&lt;br /&gt;
&lt;br /&gt;
Suponhamos que existam duas soluções, uma dependendo exclusivamente de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e outra exclusivamente de &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, de modo que possamos expressar a função &amp;lt;math&amp;gt;y(x,t)&amp;lt;/math&amp;gt; como o produto dessas duas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = X(x)T(t)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos escrever as derivadas parciais como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\frac{\partial^2 y}{\partial x^2} = \frac{X&#039;&#039;}{X} \\&lt;br /&gt;
\frac{\partial^2 y}{\partial t^2} = \frac{T&#039;&#039;}{T} \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
substituindo na equação da onda,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} - v^2 \frac{X&#039;&#039;}{X} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, torna-se evidente que a razão entre as funções de &amp;lt;mathT&amp;lt;/math&amp;gt; consiste em uma constante, assim como &amp;lt;math&amp;gt;v^2 \frac{X&#039;&#039;}{X}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[*Equação (12)*]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
v^2 \frac{X&#039;&#039;}{X} = \lambda ^2 \to X&#039;&#039; = \bigg(\frac{\lambda}{v}\bigg)^2 X&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[*Equação (13)*]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{T&#039;&#039;}{T} = \lambda ^2  \to T&#039;&#039;= \lambda^2 T&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observa-se que as equações (12) e (13) são equações diferenciais ordinárias (EDOs) lineares de segunda ordem, cujos coeficientes podem depender da variável independente e, potencialmente, serem funções não constantes. Assim, é possível usarmos da teoria de Sturm-Liouville para resolver essas equações.&lt;br /&gt;
&lt;br /&gt;
=== Resolvendo a Equação (12) ===&lt;br /&gt;
&lt;br /&gt;
Se avaliarmos as condições de contorno para os possíveis valores de lambda, que devem ser maiores ou iguais a zero, obtemos apenas a solução trivial. Contudo, se lambda for negativo, surge uma solução para &amp;lt;math&amp;gt;X(x)&amp;lt;/math&amp;gt; na forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(x) = a \cos \bigg( \frac{\lambda x}{v} \bigg) + b \sin \bigg( \frac{\lambda x}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições de contorno, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(0) = a \cos (0) + b \sin (0) = a  \therefore a=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(L) = b \sin \bigg( \frac{\lambda L}{v} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Certamente, observa-se que, para alcançarmos uma solução não trivial, é necessário que &amp;lt;math&amp;gt;\lambda = \bigg( \frac{nv\pi}{L} \bigg) &amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;n \in \mathbb{N}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X_n (x) = \sum_{n=1}^{\infty} b_n \sin \bigg( \frac{n\pi x}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resolvendo a Equação (13) ===&lt;br /&gt;
&lt;br /&gt;
Analogamente, temos uma solução não trivial para lambda menor que zero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
T(t) = c \cos(\lambda t) + d \sin(\lambda t) \to T_n (t) = \sum_{n=1}^{\infty} c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voltando para a solução geral:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty}  b_n \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(c_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + d_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juntando as constantes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,t) = \sum_{n=1}^{\infty} \sin \bigg( \frac{n\pi x}{L} \bigg) \bigg(A_n \cos \bigg(\frac{nv\pi t}{L} \bigg) + B_n \sin \bigg(\frac{nv\pi t}{L} \bigg) \bigg)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando as condições iniciais:&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt;, temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
y(x,0) =  \sum_{n=1}^{\infty} A_n \sin \bigg( \frac{n\pi x}{L} \bigg) = f(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível observar que &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; representa uma série de Fourier de senos, na qual os coeficientes &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; são determinados por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_n = \frac{2}{L}\int_0^L f(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avaliando &amp;lt;math&amp;gt;y&#039;(x,0)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial }{\partial t} y(x,0) = \sum_{n=1}^{\infty} B_n \bigg( \frac{nv\pi}{L} \bigg) \sin \bigg( \frac{n\pi x}{L} \bigg) = g(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analogamente a &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;g(x)&amp;lt;/math&amp;gt; é uma série de Fourier de senos. Portanto, podemos determinar &amp;lt;math&amp;gt;B_n&amp;lt;/math&amp;gt; da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
B_n = \frac{2}{nv \pi}\int_0^L g(x) \sin \bigg( \frac{n\pi x}{L} \bigg) dx&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= A equação de advecção unidimensional =&lt;br /&gt;
&lt;br /&gt;
Partimos da equação de advecção para estudarmos a propagação de uma perturbação.&lt;br /&gt;
&lt;br /&gt;
A equação de onda está intimamente relacionada à chamada equação de advecção, que, em uma dimensão, assume a seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial  u}{\partial t} + v\frac{\partial u}{\partial x} = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(4)&lt;br /&gt;
&lt;br /&gt;
A equação a seguir descreve a advecção passiva de um campo escalar &amp;lt;math&amp;gt;u(x,t)&amp;lt;/math&amp;gt; transportado por um fluxo de velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;. Como a equação de advecção é um tanto mais simples do que a equação da onda, discutiremos aquela em primeiro lugar. A equação de advecção possui a solução formal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t) = F(x-vt)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(5)&lt;br /&gt;
&lt;br /&gt;
Essa solução descreve um pulso de forma arbitrária que é arrastado pelo fluxo a uma velocidade constante &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;, sem alterar sua forma.&lt;br /&gt;
&lt;br /&gt;
== Solução analítica da equação da advecção ==&lt;br /&gt;
&lt;br /&gt;
== Esquema Forward Time-Centered Space (FTCS) == &lt;br /&gt;
&lt;br /&gt;
Para a abordagem numérica computacional do nosso estudo, utilizamos o esquema FTCS.&lt;br /&gt;
&lt;br /&gt;
O método FTCS é amplamente empregado na resolução de equações diferenciais parciais. Trata-se de um método de diferenças finitas que adota uma abordagem explícita no tempo e central no espaço. Esse esquema apresenta uma acurácia de primeira ordem no tempo e de segunda ordem no espaço.&lt;br /&gt;
&lt;br /&gt;
A discretização no tempo (Forward Time) pode ser feita utilizando a diferença finita para a derivada temporal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial t} \approx \frac{u_i^{n+1} - u_i^n}{\Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(6)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u_i^n&amp;lt;/math&amp;gt; representa a amplitude da perturbação no ponto &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; do espaço e no instante &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, e &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; é o passo de tempo.&lt;br /&gt;
&lt;br /&gt;
A discretização no espaço (Central Space) pode ser feita utilizando a diferença finita para a derivada espacial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial u}{\partial x} \approx \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(7)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; é o espaçamento entre os pontos discretizados no espaço.&lt;br /&gt;
&lt;br /&gt;
As equações acima podem ser reescritas como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u_i^{n+1}= u_i^n + \frac{r}{2} (u_{i+1}^n - u_{i-1}^n)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(8)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;r = v\frac{\Delta t}{\Delta x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann == &lt;br /&gt;
&lt;br /&gt;
A análise de estabilidade de von Neumann é uma abordagem teórica utilizada para avaliar a estabilidade numérica de esquemas de diferenças finitas, incluindo o esquema FTCS. Usando o método de von Neumann, supõe-se a seguinte solução tentativa para a EDP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u(x, t) = A(t)e^{jkx}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(8)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;j = \sqrt{-1}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é o número de onda, e &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; é a amplitude da onda, uma função do tempo.&lt;br /&gt;
&lt;br /&gt;
Assim, a solução no passo de tempo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; e em &amp;lt;math&amp;gt;x = x_i = i\Delta x&amp;lt;/math&amp;gt; é escrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_ne^{jki\Delta x}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(9)&lt;br /&gt;
&lt;br /&gt;
Substituindo esta solução tentativa na expressão da advecção discretizada temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A_{n+1}e^{jki\Delta x} = A_ne^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(A_ne^{jk(i+1)\Delta x} - A_ne^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(10)&lt;br /&gt;
&lt;br /&gt;
Seja &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; a razão da amplitude da onda no passo de tempo &amp;lt;math&amp;gt;n + 1&amp;lt;/math&amp;gt; em relação ao passo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. Portanto,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = \frac{A_{n+1}}{A_n}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(11)&lt;br /&gt;
&lt;br /&gt;
Dividir (10) por &amp;lt;math&amp;gt;A_n&amp;lt;/math&amp;gt; resulta em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi e^{jki\Delta x} = e^{jki\Delta x} - \frac{u\Delta t}{2\Delta x}\left(e^{jk(i+1)\Delta x} - e^{jk(i-1)\Delta x}\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(12)&lt;br /&gt;
&lt;br /&gt;
Se dividirmos esse resultado por &amp;lt;math&amp;gt;e^{jki\Delta x}&amp;lt;/math&amp;gt; temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\xi = 1 - \frac{u\Delta t}{2\Delta x}\left(e^{jk\Delta x} - e^{-jk\Delta x}\right) = 1 - \frac{u\Delta t}{\Delta xj}\sin(k\Delta x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(13)&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
|\xi| = \sqrt{1 + \left(\frac{u\Delta t}{\Delta x}\sin(k\Delta x)\right)^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(14)&lt;br /&gt;
&lt;br /&gt;
Isso implica que &amp;lt;math&amp;gt;|\xi| \geq 1&amp;lt;/math&amp;gt; independentemente do passo de tempo &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; selecionado ou do passo espacial &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, portanto, FTCS é incondicionalmente instável.&lt;br /&gt;
&lt;br /&gt;
Apesar de ser incondicionalmente instável, o esquema funcionará bem em nossa modelagem, uma vez que o método apresenta também suas vantagens. O esquema FTCS é relativamente simples de implementar, o que facilita sua aplicação, principalmente para problemas bidimensionais ou tridimensionais, como pretendemos abordar posteriormente.&lt;br /&gt;
&lt;br /&gt;
Em alguns casos específicos, o FTCS pode ser computacionalmente eficiente. Se a equação diferencial parcial for relativamente simples e o domínio de interesse for bem comportado, o FTCS pode oferecer uma solução razoável com custo computacional relativamente baixo.&lt;br /&gt;
&lt;br /&gt;
É feita uma comparação entre outros métodos numéricos de diferenças finitas para solução da equação da advecção e comparado o erro relativo à solução analítica no Apêndice A.&lt;br /&gt;
&lt;br /&gt;
== Implementação do esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
Vamos agora examinar a implementação do esquema FTCS na equação da advecção para visualizarmos a propagação de uma perturbação na forma de &amp;lt;math&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; em um eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; infinito. Em outras palavras:&lt;br /&gt;
&lt;br /&gt;
* Condição inicial: &amp;lt;math&amp;gt;u(x,0) = 1-\cos(x)&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
* Condições de contorno periódicas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neste caso, podemos observar uma perturbação se propagando no sentido negativo do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; sem perda de amplitude ou mudança de forma. Isso acontece porque, com a equação da advecção, podemos analisar apenas a cinemática de uma perturbação, a qual, por sua vez, apenas relaciona os atributos como amplitude, comprimento de onda, frequência e velocidade.&lt;br /&gt;
&lt;br /&gt;
Podemos observar, ainda, que a amplitude está relacionada à condição inicial em que o máximo de &amp;lt;matH&amp;gt;1-\cos(x)&amp;lt;/math&amp;gt; é atingido quando &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt;. Nesse contexto, considerando &amp;lt;math&amp;gt;0 &amp;lt; x &amp;lt; 2\pi&amp;lt;/math&amp;gt;, percebemos que &amp;lt;math&amp;gt;\cos(x) = -1&amp;lt;/math&amp;gt; ocorre exatamente no meio do eixo. Em consequência, a amplitude máxima, que é 2, é inicialmente alcançada no ponto central do eixo &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em uma dimensão =&lt;br /&gt;
&lt;br /&gt;
A equação da onda, que em uma dimensão assume a forma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 \frac{\partial^2 u}{\partial t^2} = v^2 \frac{\partial^2  u}{\partial x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(15)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; geralmente é algum tipo de deslocamento ou perturbação, enquanto &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; é a velocidade da onda. A equação de onda possui a solução formal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
 u(x,t) = F(x+vt) + G(x+vt),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(16)&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; são funções arbitrárias. A solução acima representa pulsos de onda de formato arbitrário que se propagam com velocidade &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; nas direções &amp;lt;math&amp;gt;+x&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;-x&amp;lt;/math&amp;gt;, respectivamente, sem alterar a forma.&lt;br /&gt;
&lt;br /&gt;
== Esquema FTCS == &lt;br /&gt;
&lt;br /&gt;
Iniciamos o estudo da solução numérica da equação da onda a partir da implementação do esquema FTCS, pois, como comentado antes, este é o método de implementação mais prático para generalizarmos para mais dimensões espaciais.&lt;br /&gt;
&lt;br /&gt;
As derivadas de segunda ordem podem ser substituídas por diferenças centrais. A aproximação de diferença mais amplamente utilizada para a derivada de segunda ordem é&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial t^2}u(x_i,t_n)\approx \frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(17)&lt;br /&gt;
&lt;br /&gt;
Uma aproximação semelhante para a derivada de segunda ordem na direção &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; é dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2}{\partial x^2}u(x_i,t_n)\approx \frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(18)&lt;br /&gt;
&lt;br /&gt;
Agora podemos substituir as derivadas e obter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{u_i^{n+1} - 2u_i^n + u_i^{n-1}}{\Delta t^2} = v^2\frac{u_{i+1}^{n} - 2u_i^n + u_{i-1}^{n}}{\Delta x^2}.&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(19)&lt;br /&gt;
&lt;br /&gt;
Assumimos que &amp;lt;math&amp;gt;u^n_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u^{n-1}_i&amp;lt;/math&amp;gt; já foram calculados para &amp;lt;math&amp;gt;i=0,\ldots,N_x&amp;lt;/math&amp;gt;. A única quantidade desconhecida é, portanto, &amp;lt;math&amp;gt;u^{n+1}_i&amp;lt;/math&amp;gt;, que podemos resolver da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_i = -u^{n-1}_i + 2u^n_i + r^2 \left(u^{n}_{i+1}-2u^{n}_{i} + u^{n}_{i-1}\right),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(20)&lt;br /&gt;
&lt;br /&gt;
onde introduzimos o parâmetro&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
r = v\frac{\Delta t}{\Delta x},&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
conhecido como número de Courant.&lt;br /&gt;
&lt;br /&gt;
== Análise de estabilidade de von Neumann ==&lt;br /&gt;
&lt;br /&gt;
(ALCINEY DAS NEVES MORAES)&lt;br /&gt;
&lt;br /&gt;
Pela análise de Von Neumann, substituímos &amp;lt;math&amp;gt;u_n&amp;lt;/math&amp;gt; por &amp;lt;math&amp;gt;g_n e^{i\theta}&amp;lt;/math&amp;gt; na equação da onda. Após manipulações, a expressão resultante é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = 2 - g^{-1} + \frac{C}{2}(e^{i\theta} - 2 + e^{-i\theta})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
Usando a identidade de Euler &amp;lt;math&amp;gt;e^{i\theta} + e^{-i\theta} = 2 \cos \theta&amp;lt;/math&amp;gt;, chegamos a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 - 2[1 - \frac{C}{2}(1 - \cos \theta)]g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(21)&lt;br /&gt;
&lt;br /&gt;
Reescrevendo &amp;lt;math&amp;gt;\cos \theta = \cos^2\left(\frac{\theta}{2}\right) - \sin^2\left(\frac{\theta}{2}\right)&amp;lt;/math&amp;gt;, a equação torna-se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g^2 + 2(2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1)g + 1 = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(22)&lt;br /&gt;
&lt;br /&gt;
Expressamos isso como &amp;lt;math&amp;gt;g^2 + 2bg + 1 = 0&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;b = 2C^2 \sin^2\left(\frac{\theta}{2}\right) - 1&amp;lt;/math&amp;gt;. As raízes são:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
g = \begin{cases} -b \pm \sqrt{b^2 - 1}, &amp;amp; \text{se } |b| &amp;gt; 1 \\ -b \pm i\sqrt{1 - b^2}, &amp;amp; \text{se } |b| \leq 1 \end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;(23)&lt;br /&gt;
&lt;br /&gt;
Se &amp;lt;math&amp;gt;|b| &amp;gt; 1&amp;lt;/math&amp;gt;, implica &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt;. Se &amp;lt;math&amp;gt;|b| \leq 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;C \leq 1&amp;lt;/math&amp;gt; pela condição de Von Neumann, tornando o método condicionalmente estável pela condição CFL.&lt;br /&gt;
&lt;br /&gt;
== Reflexão de onda em uma corda ==&lt;br /&gt;
&lt;br /&gt;
Quando uma onda se propaga ao longo de uma corda e incide em uma de suas extremidades, ocorre a sua reflexão. Ao atingir um extremo fixo, que não pode oscilar, é possível observar que o pulso refletido apresenta uma orientação oposta à do pulso incidente. Podemos afirmar que o pulso reflete com inversão de fase, pois isso ocorre devido à reação do ponto fixo sobre a corda com uma força de mesmo módulo. Uma situação distinta ocorre quando a extremidade da corda é móvel, ou seja, não há troca de forças entre ela e a corda, resultando em uma reflexão sem inversão de fase.&lt;br /&gt;
&lt;br /&gt;
Além disso, em um sistema fechado e sem dissipação de energia, podemos observar que as ondas refletidas, independentemente da fase, sofrem interferência construtiva e produzem picos de máximo ou mínimo, dependendo do contexto.&lt;br /&gt;
&lt;br /&gt;
Podemos observar esse fenômeno ao implementar a solução da equação da onda unidimensional com condições de contorno fixas e periódicas, respectivamente, para uma corda com extremidades fixas e extremidades móveis.&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades fixas ===&lt;br /&gt;
&lt;br /&gt;
=== Perturbação em uma corda com extremidades móveis ===&lt;br /&gt;
&lt;br /&gt;
=== Alteração no meio de propagação ===&lt;br /&gt;
&lt;br /&gt;
=== Oscilador em uma corda ===&lt;br /&gt;
&lt;br /&gt;
=== Ondas estacionárias ===&lt;br /&gt;
&lt;br /&gt;
= A equação da onda em duas dimensões =&lt;br /&gt;
&lt;br /&gt;
== FTCS == &lt;br /&gt;
&lt;br /&gt;
Seja a equação da onda em duas dimensões dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A discretização desta equação utilizando o esquema FTCS envolve as seguintes aproximações:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial t^2} \approx \frac{u^{n+1}_{i,j} - 2u^{n}_{i,j} + u^{n-1}_{i,j}}{\Delta t^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial x^2} \approx \frac{u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}}{\Delta x^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{\partial^2 u}{\partial y^2} \approx \frac{u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1}}{\Delta y^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, a equação da onda discretizada usando FTCS é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_{i,j} = 2u^{n}_{i,j} - u^{n-1}_{i,j} + v^2 \left( \frac{\Delta t^2}{\Delta x^2} \cdot (u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}) + \frac{\Delta t^2}{\Delta y^2} \cdot (u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1}) \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para simplificar a notação, fazemos &amp;lt;math&amp;gt;R1 = v^2 \frac{\Delta t^2}{\Delta x^2}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;R2 = v^2 \frac{\Delta t^2}{\Delta y^2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
u^{n+1}_{i,j} = 2u^{n}_{i,j} - u^{n-1}_{i,j} + R1 \cdot (u^{n}_{i+1,j} - 2u^{n}_{i,j} + u^{n}_{i-1,j}) + R2 \cdot (u^{n}_{i,j+1} - 2u^{n}_{i,j} + u^{n}_{i,j-1})&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reflexão de ondas em duas dimensões ==&lt;br /&gt;
&lt;br /&gt;
Analogamente ao que analisamos para uma perturbação em uma corda, podemos agora avaliar como uma perturbação evolui ao se propagar em um plano em direção às suas extremidades, e como interage com os contornos, que podem ser fixos ou periódicos. Neste caso, temos uma perturbação senoidal centrada em &amp;lt;math&amp;gt;x=0,5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y=0,5&amp;lt;/math&amp;gt;, propagando-se isotropicamente em direção aos limites &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; dos dois eixos.&lt;br /&gt;
&lt;br /&gt;
=== Contorno fixo ===&lt;br /&gt;
&lt;br /&gt;
=== Contorno periódico ===&lt;/div&gt;</summary>
		<author><name>Lucaso</name></author>
	</entry>
</feed>