<?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=Heitor</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=Heitor"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Especial:Contribui%C3%A7%C3%B5es/Heitor"/>
	<updated>2026-04-28T04:34:00Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Monte_Carlo&amp;diff=11404</id>
		<title>Monte Carlo</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Monte_Carlo&amp;diff=11404"/>
		<updated>2026-04-27T17:40:15Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===[[Trabalhos 2020-2]]===&lt;br /&gt;
&lt;br /&gt;
===[[Trabalhos 2021-1]]===&lt;br /&gt;
&lt;br /&gt;
===[[Trabalhos 2022-1]]===&lt;br /&gt;
&lt;br /&gt;
===[[Trabalhos 2026-1]]===&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2024/2&amp;diff=10971</id>
		<title>Trabalhos 2024/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2024/2&amp;diff=10971"/>
		<updated>2024-12-04T19:15:54Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;===  Teste_link_2024-2  ===&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== [[ Teste_link_2024-2 ]] ===&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=10970</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=10970"/>
		<updated>2024-12-04T19:15:14Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Métodos Computacionais C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
===== [[Julia]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
* [[Método de Euler | Método de Euler explícito e implícito]]&lt;br /&gt;
* [[Método de Euler-Cromer]]&lt;br /&gt;
* [[Método de Verlet |Método de Verlet e Velocidade Verlet]]&lt;br /&gt;
* [[Método de Leapfrog]]&lt;br /&gt;
* [[Método de Runge-Kutta 2ª e 4ª ordem]]&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo e transformações]]=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais C ==&lt;br /&gt;
&lt;br /&gt;
=== [[Equações Diferenciais Parciais]] ===&lt;br /&gt;
&lt;br /&gt;
===[[ Movimento Coletivo ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2017/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2019 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2021/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2021/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2022/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2022/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2023/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2024/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2024/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NAO APAGAR OS LINKS ABAIXOS!! SAO OS TRABALHOS ORIGINAIS !! HEITOR - 19Jan20 --&amp;gt; &lt;br /&gt;
&amp;lt;!-- =====[[Grupo1 - Dif em 2D]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo2 - Ondas1]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo3 - Ondas2]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo4 - FFT]]=====  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo5 - Eq. Schroedinger]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Ising 2D]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Monte Carlo]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Lennard Jones]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - BOIDS]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Tráfego]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste_conv]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste2]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Dilema Do Prisioneiro]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Modelo Sznajd]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Potts]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Conservação do Parâmetro de Ordem]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[ Movimento Coletivo ]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Szabó]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[ Ressonância Estocástica ]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=6715</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=6715"/>
		<updated>2022-02-10T14:13:43Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Métodos Computacionais C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
===== [[Julia]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integração numérica)]]=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais C ==&lt;br /&gt;
&lt;br /&gt;
=== [[Equações Diferenciais Parciais]] ===&lt;br /&gt;
&lt;br /&gt;
===[[ Movimento Coletivo ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2017/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2019 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2021/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2021/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NAO APAGAR OS LINKS ABAIXOS!! SAO OS TRABALHOS ORIGINAIS !! HEITOR - 19Jan20 --&amp;gt; &lt;br /&gt;
&amp;lt;!-- =====[[Grupo1 - Dif em 2D]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo2 - Ondas1]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo3 - Ondas2]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo4 - FFT]]=====  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo5 - Eq. Schroedinger]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Ising 2D]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Monte Carlo]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Lennard Jones]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - BOIDS]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Tráfego]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste_conv]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste2]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Dilema Do Prisioneiro]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Modelo Sznajd]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Potts]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Conservação do Parâmetro de Ordem]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[ Movimento Coletivo ]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Szabó]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[ Ressonância Estocástica ]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Monte_Carlo&amp;diff=4308</id>
		<title>Monte Carlo</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Monte_Carlo&amp;diff=4308"/>
		<updated>2021-04-27T17:42:06Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;===Trabalhos 2020-2===&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===[[Trabalhos 2020-2]]===&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=P%C3%A1gina_principal&amp;diff=4307</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=P%C3%A1gina_principal&amp;diff=4307"/>
		<updated>2021-04-27T17:41:42Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Ensino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;A Wiki is a collaboratively edited Web site designed to promote the accumulation and refining of data with the least possible hassle. Any user viewing a Wiki can edit anything they see quickly and easily&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bem vindos a &#039;&#039;&#039;ComplexWiki&#039;&#039;&#039;, ambiente de trabalho cooperativo para [[#Pesquisa]], [[#Ensino]] e dicas sobre [[#Linux]].&lt;br /&gt;
É preciso se cadastrar para fazer contribuições.&lt;br /&gt;
ComplexWiki está dentro do [http://www.if.ufrgs.br Instituto de Física].&lt;br /&gt;
-- &#039;&#039;Sebastián Gonçalves&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Visite também o [http://www.if.ufrgs.br/wiki wiki oficial] do Instituto de Física--&amp;gt;&lt;br /&gt;
Consulte [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] para informações de como usar o software wiki (em inglês) e [[ComplexWiki:Sobre]] sobre o estilo local.&lt;br /&gt;
&lt;br /&gt;
== Pesquisa ==&lt;br /&gt;
&lt;br /&gt;
* [[Atrito]]&lt;br /&gt;
&lt;br /&gt;
* [[Ecologia]]&lt;br /&gt;
&lt;br /&gt;
* [[Econofísica]]&lt;br /&gt;
&lt;br /&gt;
* [[Epidemias]]&lt;br /&gt;
&lt;br /&gt;
* [[Laboratório de Estruturas Celulares]]&lt;br /&gt;
&lt;br /&gt;
* [[Teoria de Redes e Crime]]&lt;br /&gt;
&lt;br /&gt;
[[Instituições de pesquisa]] sobre complexidade no mundo&lt;br /&gt;
&lt;br /&gt;
[[Conferencias]]&lt;br /&gt;
&lt;br /&gt;
== Ensino ==&lt;br /&gt;
&lt;br /&gt;
===[[Métodos computacionais]]===&lt;br /&gt;
&lt;br /&gt;
===[[FIP20706 Tópicos em Física Estatística: redes e dinâmica de epidemias]]=== &lt;br /&gt;
&lt;br /&gt;
===[[Introdução a Sistemas Dinâmicos]]===&lt;br /&gt;
&lt;br /&gt;
===[[Dinâmica Molecular]]===&lt;br /&gt;
&lt;br /&gt;
===[[Monte Carlo]]===&lt;br /&gt;
&lt;br /&gt;
===[[FIS01183 - Física III-C]]===&lt;br /&gt;
&lt;br /&gt;
===Texto de Apoio ao Ensino de Física===&lt;br /&gt;
&lt;br /&gt;
* [[Ondas]]&lt;br /&gt;
 &lt;br /&gt;
* [[Raio X]]&lt;br /&gt;
&lt;br /&gt;
===[[Applets]]===&lt;br /&gt;
&lt;br /&gt;
===[[Dicas para apresentações]]===&lt;br /&gt;
&lt;br /&gt;
==Linux Forum==&lt;br /&gt;
&lt;br /&gt;
====Hardware====&lt;br /&gt;
&lt;br /&gt;
* [[Touchpad (Synaptic/ALPS)]]&lt;br /&gt;
&lt;br /&gt;
* [[Impressoras multifuncionais]]: instalando o scanner&lt;br /&gt;
&lt;br /&gt;
* [[linux &amp;amp; vaio sz]]&lt;br /&gt;
&lt;br /&gt;
====Software====&lt;br /&gt;
&lt;br /&gt;
* [[instalação de linux basica pela rede]]: procedimento&lt;br /&gt;
&lt;br /&gt;
* [[Reinstalando todos os pacotes de instalação antiga]]&lt;br /&gt;
&lt;br /&gt;
* [[sources.list]]: configurando automaticamente&lt;br /&gt;
&lt;br /&gt;
* [[kubuntu]]: como configurar senha de root&lt;br /&gt;
&lt;br /&gt;
* f90 da Intel: [[upgrade para Edgy]]&lt;br /&gt;
&lt;br /&gt;
* [[32 bits rodando em 64]]: como configurar&lt;br /&gt;
&lt;br /&gt;
* [[thunderbird &amp;amp; firefox]]: como escolher o navegador que abre os links do thunderbird&lt;br /&gt;
&lt;br /&gt;
* [[thunderbird]]: instalando dicionários &lt;br /&gt;
&lt;br /&gt;
* [[XFig]]: truques&lt;br /&gt;
&lt;br /&gt;
* [[pdf]]&lt;br /&gt;
&lt;br /&gt;
* [[latex, emacs, UTF-8 e acentos]]&lt;br /&gt;
&lt;br /&gt;
* [[c cedilha no Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
* [[sincronizar estação]]&lt;br /&gt;
&lt;br /&gt;
* [[colocar legendas num video]]&lt;br /&gt;
&lt;br /&gt;
== Mix ==&lt;br /&gt;
&lt;br /&gt;
[[Distribuição Docente 2007]]&lt;br /&gt;
&lt;br /&gt;
== Consulta (wiki) ==&lt;br /&gt;
* [[mysql]]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Setting_user_rights_in_MediaWiki Dando privilégio de Administrador (sysop ou OpSys) para um usuário]&lt;br /&gt;
* [[Mudando o titulo da página principal (mainpage)]]&lt;br /&gt;
* [[Modificando a barra de navegação (navigation bar)]]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Page_access_restriction_with_MediaWiki#Get_the_patch Restringindo páginas]&lt;br /&gt;
* [[Fórmulas]] e [http://meta.wikimedia.org/wiki/Help:Table tabelas]&lt;br /&gt;
* [http://isaacnewton.princeton.edu/index.php/MediaWiki:Color_Names As cores do mediawiki]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Wikipedia:Extended_image_syntax#Location Imágens (avanzado)]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Layout_customization Customization]&lt;br /&gt;
* [[Backup de servidor wiki]]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Upgrading_MediaWiki Upgrade do mediawiki]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
* [http://mail.wikipedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gnuplot Extensão para Gnuplot]&lt;br /&gt;
* [[Moodle]]&lt;br /&gt;
* [[mediawiki: dicas]]&lt;br /&gt;
&lt;br /&gt;
== Novidades ==&lt;br /&gt;
&lt;br /&gt;
Adicionado suporte para Gnuplot (veja [[Espaço dos alunos]] )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Não mexer o que segue, do not touch below --&amp;gt;&lt;br /&gt;
&amp;lt;!-- linha para Google analytics, ponerla en cada pagina que quiero monitorar --&amp;gt;&lt;br /&gt;
&amp;lt;analytics uacct=&amp;quot;UA-379257-2&amp;quot;&amp;gt;&amp;lt;/analytics&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;--&#039;&#039;&#039;MediaWiki instalado com sucesso.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Consulte o [http://meta.wikimedia.org/wiki/Help:Contents Manual de Usuário] para informações de como usar o software wiki.&lt;br /&gt;
&lt;br /&gt;
== Começando ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Lista de opções de configuração]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ FAQ do MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussão com avisos de novas versões do MediaWiki]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2019&amp;diff=3984</id>
		<title>Trabalhos 2019</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2019&amp;diff=3984"/>
		<updated>2021-04-05T14:00:11Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=====[[Grupo - Modelo de Szabó]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Ressonância Estocástica ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] =====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=3983</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=3983"/>
		<updated>2021-04-05T13:59:54Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Métodos Computacionais C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
===== [[Julia]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integração numérica)]]=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais C ==&lt;br /&gt;
&lt;br /&gt;
=== [[Equações Diferenciais Parciais]] ===&lt;br /&gt;
&lt;br /&gt;
===[[ Movimento Coletivo ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2017/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2019 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NAO APAGAR OS LINKS ABAIXOS!! SAO OS TRABALHOS ORIGINAIS !! HEITOR - 19Jan20 --&amp;gt; &lt;br /&gt;
&amp;lt;!-- =====[[Grupo1 - Dif em 2D]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo2 - Ondas1]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo3 - Ondas2]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo4 - FFT]]=====  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo5 - Eq. Schroedinger]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Ising 2D]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Monte Carlo]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Lennard Jones]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - BOIDS]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Tráfego]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste_conv]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste2]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Dilema Do Prisioneiro]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Modelo Sznajd]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Potts]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Conservação do Parâmetro de Ordem]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[ Movimento Coletivo ]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Szabó]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[ Ressonância Estocástica ]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2019&amp;diff=3982</id>
		<title>Trabalhos 2019</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2019&amp;diff=3982"/>
		<updated>2021-04-05T13:58:02Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039; ===Modelo de  Keller-Segel para relação população-economia ===  ===== Movimento Coletivo  =====  =====Grupo - Modelo de Szabó=====  ===== Ressonância Esto...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===[[Modelo de  Keller-Segel para relação população-economia]] ===&lt;br /&gt;
&lt;br /&gt;
=====[[ Movimento Coletivo ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Modelo de Szabó]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Ressonância Estocástica ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] =====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=3981</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=3981"/>
		<updated>2021-04-05T13:56:54Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Métodos Computacionais C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
===== [[Julia]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integração numérica)]]=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais C ==&lt;br /&gt;
&lt;br /&gt;
=== [[Equações Diferenciais Parciais]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2017/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2019 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NAO APAGAR OS LINKS ABAIXOS!! SAO OS TRABALHOS ORIGINAIS !! HEITOR - 19Jan20 --&amp;gt; &lt;br /&gt;
&amp;lt;!-- =====[[Grupo1 - Dif em 2D]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo2 - Ondas1]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo3 - Ondas2]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo4 - FFT]]=====  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo5 - Eq. Schroedinger]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Ising 2D]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Monte Carlo]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Lennard Jones]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - BOIDS]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Tráfego]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste_conv]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste2]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Dilema Do Prisioneiro]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Modelo Sznajd]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Potts]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Conservação do Parâmetro de Ordem]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====[[ Movimento Coletivo ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Modelo de Szabó]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Ressonância Estocástica ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] =====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2020/2&amp;diff=3980</id>
		<title>Trabalhos 2020/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2020/2&amp;diff=3980"/>
		<updated>2021-04-05T13:53:09Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== [[Exemplo_link]] ===&lt;br /&gt;
&lt;br /&gt;
===[[Modelo de  Keller-Segel para relação população-economia]] ===&lt;br /&gt;
&lt;br /&gt;
===[[Equações de Laplace e Poisson]] ===&lt;br /&gt;
&lt;br /&gt;
===[[Difusão ambipolar em plasmas]] ===&lt;br /&gt;
&lt;br /&gt;
===[[ Equação de Cahn-Hilliard ]]===&lt;br /&gt;
&lt;br /&gt;
===[[ Modelo de Fitzhugh-Nagumo para o potencial de ação em neurônios ]]===&lt;br /&gt;
&lt;br /&gt;
===[[ Belousov-Zhabotinsky ]]===&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2020/2&amp;diff=3289</id>
		<title>Trabalhos 2020/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2020/2&amp;diff=3289"/>
		<updated>2021-03-29T12:59:42Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== [[Exemplo_link]] ===&lt;br /&gt;
&lt;br /&gt;
===[[Modelo de  Keller-Segel para relação população-economia]] ===&lt;br /&gt;
&lt;br /&gt;
===[[Equações de Laplace e Poisson]] ===&lt;br /&gt;
&lt;br /&gt;
===[[Difusão ambipolar em plasmas]] ===&lt;br /&gt;
&lt;br /&gt;
===[[ Equação de Cahn-Hilliard ]]===&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Exemplo_link&amp;diff=3288</id>
		<title>Exemplo link</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Exemplo_link&amp;diff=3288"/>
		<updated>2021-03-29T12:59:11Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Limpou toda a página&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2020/2&amp;diff=3150</id>
		<title>Trabalhos 2020/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2020/2&amp;diff=3150"/>
		<updated>2021-03-25T19:01:00Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;=== Exemplo_link ===&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== [[Exemplo_link]] ===&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=3149</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=3149"/>
		<updated>2021-03-25T12:12:43Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Métodos Computacionais C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
===== [[Julia]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integração numérica)]]=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais C ==&lt;br /&gt;
&lt;br /&gt;
=== [[Equações Diferenciais Parciais]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2017/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NAO APAGAR OS LINKS ABAIXOS!! SAO OS TRABALHOS ORIGINAIS !! HEITOR - 19Jan20 --&amp;gt; &lt;br /&gt;
&amp;lt;!-- =====[[Grupo1 - Dif em 2D]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo2 - Ondas1]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo3 - Ondas2]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo4 - FFT]]=====  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo5 - Eq. Schroedinger]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Ising 2D]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Monte Carlo]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Lennard Jones]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - BOIDS]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Tráfego]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste_conv]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste2]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Dilema Do Prisioneiro]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Modelo Sznajd]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Potts]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Conservação do Parâmetro de Ordem]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====[[ Movimento Coletivo ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Modelo de Szabó]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Ressonância Estocástica ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] =====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=2753</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=2753"/>
		<updated>2020-04-01T11:24:18Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Métodos Computacionais C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
===== [[Julia]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integração numérica)]]=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais C ==&lt;br /&gt;
&lt;br /&gt;
=== [[Equações Diferenciais Parciais]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2017/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2020/1 ]] ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NAO APAGAR OS LINKS ABAIXOS!! SAO OS TRABALHOS ORIGINAIS !! HEITOR - 19Jan20 --&amp;gt; &lt;br /&gt;
&amp;lt;!-- =====[[Grupo1 - Dif em 2D]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo2 - Ondas1]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo3 - Ondas2]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo4 - FFT]]=====  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo5 - Eq. Schroedinger]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Ising 2D]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Monte Carlo]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Lennard Jones]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - BOIDS]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Tráfego]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste_conv]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste2]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Dilema Do Prisioneiro]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Modelo Sznajd]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Potts]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Conservação do Parâmetro de Ordem]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====[[ Movimento Coletivo ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Modelo de Szabó]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Ressonância Estocástica ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] =====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Conserva%C3%A7%C3%A3o_do_Par%C3%A2metro_de_Ordem&amp;diff=2752</id>
		<title>Conservação do Parâmetro de Ordem</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Conserva%C3%A7%C3%A3o_do_Par%C3%A2metro_de_Ordem&amp;diff=2752"/>
		<updated>2020-01-19T13:59:04Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;==Introdução==  O modelo de Ising possui características universais que permitem aplicá-lo a situações diversas sendo tão versátil a ponto de descrever desde ferromagn...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introdução==&lt;br /&gt;
&lt;br /&gt;
O modelo de Ising possui características universais que permitem aplicá-lo a situações diversas sendo tão versátil a ponto de descrever desde ferromagnetos até interações sociais. Dentro dessa gama de possibilidades existe o modelo de Conservação do Parâmetro de Ordem (CPO) em que, como o nome indica, mantém-se o parâmetro de ordem constante. No caso de um ferromagneto o parâmetro de ordem é a magnetização, portanto, um modelo de Ising sujeito CPO a grandeza análoga à magnetização se manteria constante a cada passo da simulação. &lt;br /&gt;
&lt;br /&gt;
Apesar da estrutura matemática muito similar ao modelo de Ising, o modelo de CPO com sua simples condição de conservação do parâmetro de ordem aliado a condições de contorno permite que se modele sistemas marcadamente diferentes do tradicional sistema de ferromagneto tais como o gás de rede onde é possível estudar o comportamento de interfaces vapor-sólido ou vapor-líquido em condições de equilíbrio como por exemplo o equilíbrio entre água líquida e seu vapor ou entre gelo e vapor d&#039;água.&lt;br /&gt;
&lt;br /&gt;
O gás de rede é um modelo simplificado de um gás real onde se associa a cada ponto da rede uma partícula (átomo) ou sua ausência (vacância). Ao contrário do gás real a coordenada do movimento não é contínua, pois as partículas se movem de maneira discreta somente pelos vértices da rede. &lt;br /&gt;
Pode-se refinar o modelo de diversas formas:&lt;br /&gt;
* Atribuindo inércia às partículas&lt;br /&gt;
* Alterando a forma da rede (quadrada, hexagonal, fcc, bcc, cúbica) &lt;br /&gt;
* Incluindo partículas de tipos diferentes com interações comum a seu respectivo tipo&lt;br /&gt;
* Presença e/ou tipos de colisões&lt;br /&gt;
&lt;br /&gt;
No entanto, uma versão simplificada (e simples de simular) desse modelo é suficiente para reproduzir qualitativamente o comportamento de interfaces.&lt;br /&gt;
&lt;br /&gt;
==Teoria&amp;lt;ref name=newman&amp;gt;Newman, M. E. J.; Barkema, G. T. (1999). &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot; New York: Oxford University Press. ISBN 019-851796-3.&amp;lt;/ref&amp;gt;&amp;lt;ref name=krauth&amp;gt;Krauth, Werner (2006). &amp;quot;Statiscal Mechanics: Algorithms and Computations&amp;quot; New York: Oxford University Press. ISBN 978-0-19-851535-7.&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
No modelo simplificado do gás de rede as partículas (sem inércia), movem-se de forma aleatória sob excitação térmica e satisfazem as seguintes condições:&lt;br /&gt;
&lt;br /&gt;
#O número total de partículas é fixo: nenhuma partícula deixa ou entra no sistema, portanto, caso desapareça a partícula deve reaparecer em outro ponto da rede no mesmo passo de simulação.&lt;br /&gt;
#Um ponto da rede pode ser ocupado por uma única partícula ou permanecer vazio (não ocupado). Essa é uma maneira grosseira de assimilar o caráter físico de repulsão do gás real onde partículas não podem interpenetrar-se devido a exclusão de Pauli.&lt;br /&gt;
#Se duas partículas são primeiras vizinhas uma da outra elas sentem uma atração &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; que é a mesma para qualquer par de partículas. Essa condição modela o efeito de atração entre partículas de um gás real.&lt;br /&gt;
&lt;br /&gt;
As forças de atração e repulsão num gás real não possuem alcance de mesma ordem. A repulsão é de curto alcance enquanto a atração é de longo-alcance. Embora o presente modelo trate as partículas como se o alcance de repulsão e atração fossem da mesma ordem, ainda é possível extrair propriedades físicas que tem paralelo com o gás real tais como transições de fase e formato de interfaces. &lt;br /&gt;
&lt;br /&gt;
A cada ponto da rede associamos o valor &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; se houver uma partícula nesse ponto ou &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; caso contrário. Representamos essa variável por &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt;, ou seja, no iésimo ponto da rede a variável &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; pode assumir apenas os valores &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;, ou resumidamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
0, \text{ponto da rede vazio} \\&lt;br /&gt;
1, \text{ponto da rede ocupado} \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A conservação do número de partículas exige que se tenha: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\sum_i\sigma_i = \rho N&amp;lt;/math&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; é a densidade de partículas e &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; é o número total de partículas, sendo, portanto, &amp;lt;math&amp;gt;\rho N&amp;lt;/math&amp;gt; o número de pontos ocupados da rede.&lt;br /&gt;
&lt;br /&gt;
O hamiltoniano do sistema é modelado a partir da condição 2 exposta acima em que é especificado que um par de primeiros vizinhos na rede contribui para a diminuição da energia do sistema por uma quantidade &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;H = -\epsilon\sum_{&amp;lt;ij&amp;gt;}\sigma_i\sigma_j&amp;lt;/math&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math&amp;gt;\sum_{&amp;lt;ij&amp;gt;}&amp;lt;/math&amp;gt; denota soma sobre todos os pares de primeiros vizinhos da rede.&lt;br /&gt;
&lt;br /&gt;
===Equivalência ao modelo de Ising===&lt;br /&gt;
&lt;br /&gt;
Para mostrar a equivalência com o modelo de Ising definimos a seguinte variável:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;s_i = 2\sigma_i-1&amp;lt;/math&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa nova variável é nada mais do que o spin no modelo de Ising para um ferromagneto assumindo os valores:&lt;br /&gt;
* &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; quando &amp;lt;math&amp;gt;\sigma_i = +1&amp;lt;/math&amp;gt;, ou seja, posição ocupada por partícula; ou&lt;br /&gt;
* &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; quando &amp;lt;math&amp;gt;\sigma_i = 0&amp;lt;/math&amp;gt;, ou seja, posição não ocupada&lt;br /&gt;
&lt;br /&gt;
Em termos da variável de spin &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt; é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\sigma_i = \frac{1}{2}(s_i+1)&amp;lt;/math&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo no Hamiltoniano tem-se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;H = -\frac{1}{4}\epsilon\sum_{&amp;lt;ij&amp;gt;}(s_i+1)(s_j+1)&amp;lt;/math&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;H = -\frac{1}{4}\epsilon\sum_{&amp;lt;ij&amp;gt;}s_is_j-\frac{1}{4}\epsilon\sum_{&amp;lt;ij&amp;gt;}s_i-\frac{1}{4}\epsilon\sum_{&amp;lt;ij&amp;gt;}s_j-\frac{1}{4}\epsilon\sum_{&amp;lt;ij&amp;gt;}1&amp;lt;/math&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seja &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; o número de coordenação da rede, ou seja, o número de primeiros vizinhos (&amp;lt;math&amp;gt;z=4&amp;lt;/math&amp;gt; para rede quadrada e &amp;lt;math&amp;gt;z=6&amp;lt;/math&amp;gt; para rede cúbica simples). Para uma dada rede existem &amp;lt;math\frac{1}{2}z N&amp;lt;/math&amp;gt; possíveis pares distintos de primeiros vizinhos&lt;br /&gt;
&lt;br /&gt;
Pode-se simplificar esssa expressão com base nas seguintes observações:&lt;br /&gt;
&lt;br /&gt;
* Os somatórios em &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; são idênticos exceto pelo índice.&lt;br /&gt;
* A soma &amp;lt;math&amp;gt;\sum_{&amp;lt;ij&amp;gt;}s_i&amp;lt;/math&amp;gt;sobre pares de vizinhos é equivalente a somar &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; vezes sobre o número de pontos da rede: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\sum_{&amp;lt;ij&amp;gt;}s_i = 2z\sum_{i}s_i&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\sum_i s_i&amp;lt;/math&amp;gt; pode ser escrito em termos das constantes &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; assim como ocorre com &amp;lt;math&amp;gt;\sigma_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\sum_i\sigma_i = \rho N&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\frac{1}{2}\sum_i(s_i+1) = \rho N&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\frac{1}{2}\sum_i s_i = \rho N - \frac{1}{2}\sum_i 1&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\frac{1}{2}\sum_i s_i = \rho N - \frac{1}{2}N&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\sum_i s_i = N(2\rho - 1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma o Hamiltoniano se reduz a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;H = -\frac{1}{4}\epsilon\sum_{&amp;lt;ij&amp;gt;}s_is_j-\frac{1}{2}z\epsilon\sum_{i}s_i-\frac{1}{4}\epsilon(2zN)&amp;lt;/math&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;H = -\frac{1}{4}\epsilon\sum_{&amp;lt;ij&amp;gt;}s_is_j-\frac{1}{2}z\epsilon(N(2\rho-1))-\frac{1}{4}\epsilon(2zN)&amp;lt;/math&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;H = -\frac{1}{4}\epsilon\sum_{&amp;lt;ij&amp;gt;}s_is_j-z\epsilon N\rho +\frac{1}{2}\epsilon z N-\frac{1}{2}\epsilon z N &amp;lt;/math&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;H = -\frac{1}{4}\epsilon\sum_{&amp;lt;ij&amp;gt;}s_is_j-z\epsilon N\rho&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seja J = &amp;lt;math&amp;gt;\frac{1}{4}\epsilon&amp;lt;/math&amp;gt; e observando que &amp;lt;math&amp;gt;-z\epsilon N\rho&amp;lt;/math&amp;gt; é uma constante pois todos seus termos são constantes, chegamos na equivalência com o Hamiltoniano do modelo de Ising na ausência de campo magnético:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;H = -J\sum_{&amp;lt;ij&amp;gt;}s_is_j + ctc = H^{Ising}_{B=0} + ctc&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O valor esperado &amp;lt;math&amp;gt;&amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt; de qualquer quantidade física &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; não é alterado pela adição de uma constante ao hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&amp;lt;Q&amp;gt; = \sum_\mu Q_\mu p_\mu = \frac{\sum_\mu{Q_\mu}e^{-\beta(E_\mu + ctc)}}{\sum_\mu e^{-\beta(E_\mu + ctc)}}= \frac{e^{-\beta ctc}\sum_\mu{Q_\mu}e^{-\beta E_\mu}}{e^{-\beta ctc}\sum_\mu e^{-\beta E_\mu}} = \frac{1}{Z}\sum_\mu{Q_\mu}e^{-\beta E_\mu} = &amp;lt;Q&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conservação do parâmetro de ordem===&lt;br /&gt;
&lt;br /&gt;
A magnetização do sistema é nada mais do que a soma de spins que já calculamos acima:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;M = \sum_i s_i = N(2\rho - 1)&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No entanto, &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; devem permanecer constantes durante toda a simução, isso implica que a magnetização também é sempre constante, ou seja, a magnetização é o &#039;&#039;&#039;parâmetro de ordem conservado&#039;&#039;&#039; nesse sistema fato que dá nome ao método.&lt;br /&gt;
&lt;br /&gt;
É vantajoso tratar o modelo de gás de rede sob a perspectiva de um modelo de Ising pois todo o arcabouço de técnicas amplamente conhecidas e extensivamente estudadas para o modelo de Ising podem ser aplicadas.&lt;br /&gt;
&lt;br /&gt;
Apesar das similaridades, o gás de rede, como definido, possui muito menos estados válidos (&amp;lt;math&amp;gt;\frac{1}{2}z N&amp;lt;/math&amp;gt;) pois não é permitido alterar a magnetização do sistema enquanto no modelo de Ising qualquer spin individual pode ser invertido sem restrições pois a magnetização não precisa se manter constante (&amp;lt;math&amp;gt;2^N&amp;lt;/math&amp;gt; estados possíveis).&lt;br /&gt;
&lt;br /&gt;
==Transição de fase==&lt;br /&gt;
&lt;br /&gt;
Aproveitando a equivalência estabelecida entre gás de rede e o modelo de Ising sabe-se que o sistema possui uma transição de fase que ocorre a uma temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. Rearranjando a densidade de pontos (equivalente agora à densidade de spins up) tem-se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;2\rho - 1 = \frac{M}{N}&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\rho = \frac{1}{2}(1+m)&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No modelo de Ising sabe-se também que abaixo da temperatura crítica existem dois valores de equilíbrio para a magnetização que são &amp;lt;math&amp;gt;+|m|&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;-|m|&amp;lt;/math&amp;gt;, portanto, para favorecer a coexistência de fases tem-se que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\frac{1}{2}(1-|m|) = \rho_- \le \rho \le \rho_+ = \frac{1}{2}(1+|m|)&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para valores de &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; fora do intervalo &amp;lt;math&amp;gt;\rho_- \le \rho \le \rho_+&amp;lt;/math&amp;gt; ainda é possível que uma região do sistema favoreça uma das duas densidades preferenciais. Suponha que se tenha &amp;lt;math&amp;gt;\rho &amp;lt; \rho_-&amp;lt;/math&amp;gt;. Nesse caso o sistema possui menos partículas do que precisa pra atingir o a densidade &amp;lt;math&amp;gt;\rho_+&amp;lt;/math&amp;gt;. Ainda que localmente seja possível o sistema atingir a densidade &amp;lt;math&amp;gt;\rho_+&amp;lt;/math&amp;gt; isso leva a uma falta ainda maior de partículas em outras regiões do sistema sendo, portanto, energeticamente custoso. A opção energeticamente mais favorável adotada pelo sistema é distribuir as poucas partículas homegeneamente pela rede. Esse comportamento é observado na simulação.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, no caso de &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt; o sistema possui duas fases:&lt;br /&gt;
* Uma em que &amp;lt;math&amp;gt;\rho\in[\rho_-,\rho_+]&amp;lt;/math&amp;gt; se dividindo em dois domínios cada qual favorecendo uma das duas densidades &amp;lt;math&amp;gt;\pm\rho&amp;lt;/math&amp;gt;&lt;br /&gt;
* E outra em que &amp;lt;math&amp;gt;\rho\not\in[\rho_-,\rho_+]&amp;lt;/math&amp;gt; tendo densidade homogênea &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Com &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; sujeito ao intervalo &amp;lt;math&amp;gt;\frac{1}{2}(1-|m|) \le \rho \le \frac{1}{2}(1+|m|)&amp;lt;/math&amp;gt; conclui-se que &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; pode assumir um intervalo menor de valores a medida que &amp;lt;math&amp;gt;|m|&amp;lt;/math&amp;gt; diminui. A magnetização diminui sob o aumento da temperatura. Acima da temperatura crítica a &amp;lt;math&amp;gt;|m|=0&amp;lt;/math&amp;gt; e portanto o intervalo &amp;lt;math&amp;gt;\frac{1}{2}(1-|m|) \le \rho \le \frac{1}{2}(1+|m|)&amp;lt;/math&amp;gt; reduz-se a zero evidenciando que não existe mais um valor de &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; que evite a homogeinização da rede.&lt;br /&gt;
&lt;br /&gt;
A discussão acima pode ser apresentada resumidamente pelo diagrama de fases:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Ferromagnet phases.gif|frame|center|Diagrama de fases do modelo CPO. Fase homogênea para temperaturas além da temperatura crítica e fase coexistente abaixo com densidades preferenciais &amp;lt;math&amp;gt;\rho_+&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\rho_-&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Esse comportamento é observado quando se diminui a temperatura de vapor d&#039;agua que passa a formar gotas líquidas que coexistem com o vapor para um intervalo de temperaturas. A fase condensada do gás de rede, no entanto, é mais adequadamente interpretada como um sólido devido a posição fixa das partículas (análogas a moléculas ou átomos) na rede, dessa forma, falamos de interface vapor/sólido ao invés de vapor/líquido.&lt;br /&gt;
&lt;br /&gt;
==Teoria&amp;lt;ref name=newman&amp;gt;Newman, M. E. J.; Barkema, G. T. (1999). &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot; New York: Oxford University Press. ISBN 019-851796-3.&amp;lt;/ref&amp;gt;&amp;lt;ref name=krauth&amp;gt;Krauth, Werner (2006). &amp;quot;Statiscal Mechanics: Algorithms and Computations&amp;quot; New York: Oxford University Press. ISBN 978-0-19-851535-7.&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Sistemas físicos em equilíbrio com muitos graus de liberdade e no limite termodinâmico comportam-se de tal forma que ao flutuarem de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; tem-se que &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; difere pouco de &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;. Outra maneira de dizer isso é que as flutuações dessa tipo de sistema físico são muito pequenas em relação ao número de configurações possíveis e que portanto o sistema passa a maior parte do tempo alternando entre um pequeno conjunto de configurações. A consequência disso é que pode-se escolher uma estratégia de visitar com maior probabilidade apenas a fração de estados do sistema, as quais mais contribuem para atingir o equilíbrio ao invés de se visitar todos os estados indistintamente. No modelo de ferromagneto, por exemplo, com uma rede &amp;lt;math&amp;gt;10\times 10\times 10&amp;lt;/math&amp;gt;, há &amp;lt;math&amp;gt;2^{1000} \simeq 10^{300}&amp;lt;/math&amp;gt; configurações possíveis sendo que mesmo com um supercomputador seria impraticável realizar essa simulação. O método de Monte Carlo consiste em visitar eficientemente uma pequena fração desses estados e atingir rapidamente o equilíbrio em poucos passos e o peso que define como visitar o estado seguinte é dado pela distribuição de Boltzmann &amp;lt;math&amp;gt;e^{\beta(E_\nu-E_\mu)}&amp;lt;/math&amp;gt; onde fica claro que quanto mais diferente &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; for de &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; menor a change de fazer a transição &amp;lt;math&amp;gt;\mu\to\mu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma impõe-se que no equilíbrio o sistema obedeça a distribuição de Boltzmann, portanto a condição de balanço detalhado dá liberdade na escolha de &amp;lt;math&amp;gt;P(\mu\to\nu)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;P(\nu\to\mu)&amp;lt;/math&amp;gt; desde que seja satisfeita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\frac{g(\mu)}{g(\nu)}\frac{A(\mu\to\nu)}{A(\nu\to\mu)} = e^{\beta(E_\nu-E_\mu)}&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uma possível escolha para &amp;lt;math&amp;gt;A(\mu\to\nu)&amp;lt;/math&amp;gt; seria:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;A(\mu\to\nu)=A_0e^{-\frac{1}{2}\beta(E_\nu-E_\mu)}&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando &amp;lt;math&amp;gt;g(\mu) = g(\nu)&amp;lt;/math&amp;gt; e como &amp;lt;math&amp;gt;A_0&amp;lt;/math&amp;gt; é cancelada na razão entre probabilidades de aceitação temos a liberdade na sua escolha desde que mantenha a probabilidade menor ou igual a um. No modelo de ferromagneto, por exemplo, a maior diferença de energia que se pode obter entre estados é &amp;lt;math&amp;gt;\Delta E = E_\nu-E_\mu = \pm 2zJ&amp;lt;/math&amp;gt; o que significa que o maior valor de &amp;lt;math&amp;gt;e^{-\frac{1}{2}\beta(E_\nu-E_\mu)}&amp;lt;/math&amp;gt; é justamente &amp;lt;math&amp;gt;e^{\beta zJ}&amp;lt;/math&amp;gt;. Assim, para garantir que a probabilidade seja menor ou igual a 1 deve-se escolher &amp;lt;math&amp;gt;A_0 \le e^{-\beta zJ}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para que o algoritmo seja eficiente deseja-se que a probabilidade de aceitação seja a maior possível, pois do contrário estaríamos utilizando tempo computacional apenas para rejeitar trocas de estado. Portanto queremos que &amp;lt;math&amp;gt;A_0&amp;lt;/math&amp;gt; assuma o maior valor possível &amp;lt;math&amp;gt;A_0 = e^{-\beta zJ}&amp;lt;/math&amp;gt;, maximizando &amp;lt;math&amp;gt;A(\mu\to\nu)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;A(\mu\to\nu)=e^{-\frac{1}{2}\beta(E_\nu-E_\mu+2\beta z J)}&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido a condição de balanço detalhado, essa escolha implica:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;A(\nu\to\mu)=e^{-\beta z J}&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metropolis percebeu que desde que a condição de balanço detalhado seja satisfeita tem-se liberdade na escolha das probabilidades de aceitação. Então ele decidiu atribuir o maior valor possível para a probabilidade de aceitação que tem o maior valor entre as duas, no caso &amp;lt;math&amp;gt;A(\nu\to\mu)&amp;lt;/math&amp;gt;, ou seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;A(\nu\to\mu)=1&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O que implica:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;A(\mu\to\nu)=e^{-\beta(E_\nu-E_\mu)}&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma a transição de estados sempre ocorre se &amp;lt;math&amp;gt;E_\nu &amp;lt; E_\mu&amp;lt;/math&amp;gt; ou seja &amp;lt;math&amp;gt;\Delta E &amp;lt; 0&amp;lt;/math&amp;gt; mas pode ou não ocorrer caso seja &amp;lt;math&amp;gt;\Delta E &amp;gt; 0&amp;lt;/math&amp;gt; com uma probabilidade dada por &amp;lt;math&amp;gt;e^{-\beta(E_\nu-E_\mu)}&amp;lt;/math&amp;gt;. Em suma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
A(\mu\to\nu) = \begin{cases}&lt;br /&gt;
e^{-\beta(E_\nu-E_\mu)} \ \mbox{ se } \ E_\nu - E_\mu &amp;gt; 0\\&lt;br /&gt;
1 \  \mbox{ caso contrario}\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementação&amp;lt;ref name=newman/&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Para obedecer a condição de conservação da magnetização não é permitido alterar um spin individualmente (ou um número ímpar de spins). Uma maneira de tratar a dinâmica desse sistema foi proposta por Kawasaki &amp;lt;ref name=kawasaki&amp;gt;[https://link.aps.org/doi/10.1103/PhysRevLett.49.1223 T. Ohta, D. Jasnow and K. Kawasaki, Phys. Rev. Lett. 49 1223 (1982). &amp;quot;Universal Scaling in the Motion of Random Interfaces&amp;quot;. American Physical Society]&amp;lt;/ref&amp;gt; e consiste em simplesmente alternar o estado de spin de um par de &lt;br /&gt;
partículas que tenham estados de spin oposto, ou seja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\uparrow \uparrow ou \downarrow \downarrow \quad\to\quad \text{nada a fazer} \\&lt;br /&gt;
\uparrow \downarrow \quad\to\quad \downarrow \uparrow\\&lt;br /&gt;
\downarrow \uparrow \quad\to\quad \uparrow \downarrow\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É evidente que nesse caso a mudança conserva a magnetização, pois a troca de spins resulta em variação de magnetização nula.&lt;br /&gt;
&lt;br /&gt;
Cada ponto da rede possui &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; vizinhos e portanto a cada passo de iteração deve-se sortear com qual dos vizinhos será feita uma tentativa de troca de spins. Essa escolha é feita aleatoriamente (uniforme). Uma vez escolhido um vizinho deve-se decidir se a troca deve ser feita ou não. Essa decisão é tomada com base no método de Monte Carlo, em particular, com a probabilidade de aceitação de Metropolis exatamente como exposto na seção acima.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;ergodicidade&#039;&#039;&#039; é satisfeita pelo sistema pois um passo de Monte Carlo corresponde a uma troca entre vizinhos que numa rede finita pode ser efetuada a partir de outro estado qualquer em número finito de passos&lt;br /&gt;
&lt;br /&gt;
Como já foi mencionado a rede possui &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; pontos e número de coordenação &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; o que resulta em &amp;lt;math&amp;gt;\frac{1}{2}zN&amp;lt;/math&amp;gt; pares de primeiros vizinhos, portanto, a probabilidade de selecionar um par qualquer é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;g(\mu\to\nu) = \frac{1}{\frac{1}{2}zN} = \frac{2}{zN}&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A probabilidade de seleção &amp;lt;math&amp;gt;g(\nu\to\mu)&amp;lt;/math&amp;gt; é a mesma fazendo com que esses termos se cortem na condição de balanço detalhado e permitindo que se aplique a escolha de Metropolis discutida acima sem alterações.&lt;br /&gt;
&lt;br /&gt;
Para efetivamente tomar a decisão sobre a troca entre vizinhos onde &amp;lt;math&amp;gt;\Delta E&amp;lt;/math&amp;gt; é necessário especificar como é feito seu cálculo. &amp;lt;math&amp;gt;\Delta E&amp;lt;/math&amp;gt; é dado pela seguinte expressão:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\Delta E = E_\nu-E_\mu = 2J\left[s_k^\mu\sum_{i\not\in\{k&#039;,k\}}s_i^\mu+s_{k&#039;}^\mu\sum_{j\not\in\{k,k&#039;\}}s_j^\mu\right]&amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seja um ponto da rede &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;k&#039;&amp;lt;/math&amp;gt; primeiro vizinho de &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. Deseja-se calcular a energia de interação entre esse par. A expressão acima apenas diz que deve-somar os produtos do spin de &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(s_k)&amp;lt;/math&amp;gt;, com seus primeiros vizinhos &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; excluindo-se da soma tanto &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; quanto &amp;lt;math&amp;gt;k&#039;&amp;lt;/math&amp;gt;. Faz-se o mesmo procedimento para &amp;lt;math&amp;gt;k&#039;&amp;lt;/math&amp;gt;, ou seja, soma-se os produtos do spin &amp;lt;math&amp;gt;k&#039;&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(s_{k&#039;})&amp;lt;/math&amp;gt;, com todos os seus primeiros vizinhos &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; exceto ele mesmo e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. A soma dessas duas quantidades multiplicadas por &amp;lt;math&amp;gt;2J&amp;lt;/math&amp;gt; é igual a diferença de energia entre a configuração &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e a &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A simulação é extremamente simplificada pelo fato de o estado final não figurar na expressão para o cálculo da diferença de energia da transição, pois pode-se verificar de antemão se a transição deve ser feita sem que seja necessário efetivamente colocar o sistema no estado final &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Simulação==&lt;br /&gt;
&lt;br /&gt;
Foram simulados três sistemas diferentes os quais são discutidos a seguir. O objetivo das simulações em determinar a tendência do formato de cada interface após vários passos de monte carlo sem verificar rigorosamente se o equilíbrio foi atingido. Uma análise das condições de equilíbrio é discutida na última seção.&lt;br /&gt;
Todas as simulações demandam a geração de muitos números aleatórios por isso optou-se por usar Mersenne Twister - um algoritmo veloz para geração de números aleatórios.&lt;br /&gt;
&lt;br /&gt;
===Interface linear===&lt;br /&gt;
&lt;br /&gt;
Esse sistema consiste de uma rede quadrada de aresta &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;. A rede tem inicialmente sua metade inferior completamente populada por partículas (spins up) e o restante da rede possui vacâncias (spins down). &lt;br /&gt;
&lt;br /&gt;
Cada ponto da rede é visitado sequencialmente e um dos seus 4 vizinhos é sorteado para que se faça uma tentativa de troca de posição entre o par. Caso a energia do sistema diminua, a troca é feita com probabilidade 1. Caso contrário a troca ocorre com probabilidade dada pelo peso de Boltzmann (algoritmo de Metropolis). &lt;br /&gt;
&lt;br /&gt;
A primeira condição de contorno refere-se às paredes superior e inferior. A ultima linha de pontos da rede possui spins apontando pra baixo permanentemente assim como a primeira linha de pontos da rede tem-se spins apontando pra cima. Para que essa configuração seja mantida ao longo da simulação, evita-se qualquer tentativa de troca entre pares envolvendo esses pontos. Essa condição de contorno garante que a interface se mantenha fixa, do contrário, ela poderia transitar pela rede. &lt;br /&gt;
Nas paredes laterais aplica-se condição de contorno periódica onde por exemplo um ponto da rede na coluna &amp;lt;math&amp;gt;l-1&amp;lt;/math&amp;gt; pode trocar de lugar com um primeiro vizinho da coluna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; e vice-versa. &lt;br /&gt;
&lt;br /&gt;
Ao iterar pela rede é comum deparar-se com pares de vizinhos que possuem mesma orientação de spin e portanto são ignorados imediatamente pois em nada contribuem para a dinâmica do sistema.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cop500iterinstepsof10.gif|frame|center|Interface linear entre sólido e vapor. Cada frame corresponde a 10 passos de Monte Carlo de um total de 500 passos. Primeira simulação com alta temperatura &amp;lt;math&amp;gt;T &amp;gt; T_C&amp;lt;/math&amp;gt;. Segunda simulação com temperatura intermediária &amp;lt;math&amp;gt;T &amp;lt; T_C&amp;lt;/math&amp;gt;. Terceira simulação com baixa temperatura &amp;lt;math&amp;gt;T \ll T_C&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Como observado, a alta temperatura recai-se no regime homogêneo em que a alternativa mais adequada para que o sistema minize sua energia é distribuir os spins up (partículas) uniformemente pela rede.&lt;br /&gt;
A uma temperatura abaixo da crítica percebe-se a formação de uma interface persistente entre a região inferior com densidade preferencial &amp;lt;math&amp;gt;\rho_+&amp;lt;/math&amp;gt; e a superior com densidade preferencial &amp;lt;math&amp;gt;\rho_-&amp;lt;/math&amp;gt; em coexistência.&lt;br /&gt;
Ao diminuir ainda mais a temperatura o efeito fica mais acentuado, ou seja, a interface é menos deformada em relação ao caso anterior.&lt;br /&gt;
&lt;br /&gt;
É possível escrever um algoritmo mais eficiente. Ao invés de percorrer toda a rede e testar ponto a ponto pela possibilidade de uma transição, armazena-se em memória duas listas, uma de spins up e outra de spins down e sorteia-se dois elementos de cada lista para que se faça a transição. Dessa forma, não se perde tempo com rejeições. No entanto, para sistemas pequenos com alguns milhares de passos de Monte Carlo e relativamente poucos pontos como o sistema estudado não foi necessário esse ganho de performance.&lt;br /&gt;
&lt;br /&gt;
===Interface circular===&lt;br /&gt;
&lt;br /&gt;
Nesse sistema exclui-se a condição de contorno que fixa os spins das paredes superior e inferior e atribui-se a elas as mesmas condições das paredes laterais, ou seja, condições de contorno periódicas onde, por exemplo, uma partícula na linha &amp;lt;math&amp;gt;l-1&amp;lt;/math&amp;gt; pode trocar de lugar com sua primeira vizinha da linha &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;&lt;br /&gt;
Como condição inicial posiciona-se as partículas num formato quadrado no centro da rede e observa-se como o formato da interface varia ao longo da simulação. A densidade de partículas é menor que no exemplo anterior da interface linear.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:copSquare500iterinstepsof10.gif|frame|center|Interface circular entre sólido e vapor. Cada frame corresponde a 10 passos de Monte Carlo de um total de 500 passos. Primeira simulação com alta temperatura &amp;lt;math&amp;gt;T &amp;gt; T_C&amp;lt;/math&amp;gt;. Segunda simução com temperatura intermediária &amp;lt;math&amp;gt;T &amp;lt; T_C&amp;lt;/math&amp;gt;. Terceira simulação com baixa temperatura &amp;lt;math&amp;gt;T \ll T_C&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
A interface é energeticamente custosa pois para cada par de spins antialinhados o sistema aumenta de energia por um fator 2J e como na rede quadrada um spin da interface possui 3 vizinhos antialinhados, sistema aumenta de energia por um fator 6J. Portanto fisicamente espera-se que o sistema evolua de tal forma a minimizar a extensão da sua interface, minimizando sua tensão superficial. No caso simulado espera-se que um domínio circular seja gerado pois o círculo é a forma geométrica que possui menor perímetro. No entanto, como a simulação demonstra, mesmo pra baixas temperaturas a forma nunca é perfeitamente circular e isso se deve ao tamanho finito da rede o faz com que seu formato (da rede) influencie o formato da interface.&lt;br /&gt;
&lt;br /&gt;
A animação abaixo ilustra o mesmo processo mas com menos frames por segundo permitindo acompanhar detalhes da dinâmica do sistema.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:copSquare100-iloveimg-compressed.gif|frame|center|Animação com 100 passos de Monte Carlo. Primeira simulação com alta temperatura &amp;lt;math&amp;gt;T &amp;gt; T_C&amp;lt;/math&amp;gt;. Segunda simução com temperatura intermediária &amp;lt;math&amp;gt;T &amp;lt; T_C&amp;lt;/math&amp;gt;. Terceira simulação com baixa temperatura &amp;lt;math&amp;gt;T \ll T_C&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
===Interface esférica===&lt;br /&gt;
&lt;br /&gt;
A simulação da interface esférica é uma extensão direita da simulação da interface circular apenas adicionando mais uma dimensão. Observa-se os mesmos efeitos de redução de tensão superficial pela deformação do cubo em uma região aproximadamente esférica quando a temperatura é menor que a temperatura crítica. Acima da a temperatura crítica a densidade fica homogênea como esperado.&lt;br /&gt;
&lt;br /&gt;
Cada ponto da rede agora possui 6 vizinhos ao invés de 4 e isso faz com que as haja valores adicionais de diferenças de energia entre estados (na rede quadrada era possível obter &amp;lt;math&amp;gt;\Delta E \in \{0, \pm 4, \pm 8, \pm 12\}&amp;lt;/math&amp;gt; e agora na rede cúbica &amp;lt;math&amp;gt;\Delta E \in \{0, \pm 4, \pm 8, \pm 12, \pm 16, \pm 20\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Arquivo:Cubeneighbours.png|frame|Visualização da vizinhança de um ponto de uma rede cúbica. Download for free at http://cnx.org/contents/85abf193-2bd2-4908-8563-90b8a7ac8df6@9.311]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cop3D500instepsof10.gif|frame|center|Interface esférica entre sólido e vapor. Cada frame corresponde a 10 passos de Monte Carlo de um total de 500 passos. Primeira simulação com alta temperatura &amp;lt;math&amp;gt;T &amp;gt; T_C&amp;lt;/math&amp;gt;. Segunda simução com temperatura intermediária &amp;lt;math&amp;gt;T &amp;lt; T_C&amp;lt;/math&amp;gt;. Terceira simulação com baixa temperatura &amp;lt;math&amp;gt;T \ll T_C&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A mesma simulação com menos partículas, vista mais distante e com uma pequena diferença na quantidade de passos.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cop3D250instepsof5round.gif|frame|center|Interface esférica entre sólido e vapor. Cada frame corresponde a 5 passos de Monte Carlo de um total de 250 passos. Primeira simulação com alta temperatura &amp;lt;math&amp;gt;T &amp;gt; T_C&amp;lt;/math&amp;gt;. Segunda simução com temperatura intermediária &amp;lt;math&amp;gt;T &amp;lt; T_C&amp;lt;/math&amp;gt;. Terceira simulação com baixa temperatura &amp;lt;math&amp;gt;T \ll T_C&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Introduzindo interações entre segundos vizinhos é possível reproduzir formatos de cristais cúbicos como por exemplo o cristal de face centrada ou de corpo centrado.&amp;lt;ref name=newman/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Equilíbrio==&lt;br /&gt;
&lt;br /&gt;
Para medir qualquer grandeza de um sistema simulado pelo método de Carlo é necessária que a medida seja feita sob regime de equilíbrio. Torna-se então importante saber quando o sistema atinge o equilíbrio. No caso de um ferromagneto no modelo de Ising pode-se monitorar a magnetização ou calor específico até que a grandeza atinja um valor estacionário. No caso do gás de rede podemos monitorar o formato da interface, ou mais simplesmente, a densidade média de spins up (partículas) em cada coluna da rede quadrada. Acompanhando a mudança percentual nessa densidade ao passar de um passo de Monte Carlo para o passo seguinte é possível ter uma idéia de quanto passos são necessários para atingir o equilíbrio.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:equilibrium20000.png|frame|center|Densidade percentual média em função de número de passos de Monte Carlo (até 20000 passos)]]&lt;br /&gt;
&lt;br /&gt;
Olhando mais de perto o início da curva percebe-se que em torno de 1500 passos o equilíbrio ja foi seguramente atingido. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:equilibrium2000.png|frame|center|Densidade percentual média em função de número de passos de Monte Carlo (até 2000 passos)]]&lt;br /&gt;
&lt;br /&gt;
As simulações exibidas acima estão, portanto, na região fora do equilíbrio mas como observado acima o objetivo das simulações era determinar a tendência do formato das interfaces e não o seu formato no equilíbrio.&lt;br /&gt;
&lt;br /&gt;
==Códigos==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/diogofriggo/metcompc/blob/master/Trabalho2/COP/COP/main.c Conservação de parâmetro de ordem - Interface linear]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/diogofriggo/metcompc/blob/master/Trabalho2/COPSquare/COPSquare/main.c Conservação de parâmetro de ordem - Interface circular]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/diogofriggo/metcompc/blob/master/Trabalho2/COP3D/COP3D/main.c Conservação de parâmetro de ordem - Interface esférica]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/diogofriggo/metcompc/blob/master/Trabalho2/COPEquilibrium/COPEquilibrium/main.c Conservação de parâmetro de ordem - Equilíbrio]&lt;br /&gt;
&lt;br /&gt;
==Bibliografia==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2751</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2751"/>
		<updated>2020-01-19T13:58:45Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ising 2D]]====&lt;br /&gt;
&lt;br /&gt;
====[[Lennard Jones - Monte Carlo]]====&lt;br /&gt;
&lt;br /&gt;
====[[BOIDS]]====&lt;br /&gt;
&lt;br /&gt;
====[[Tráfego]]====&lt;br /&gt;
&lt;br /&gt;
====[[Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Conservação do Parâmetro de Ordem]]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Potts&amp;diff=2750</id>
		<title>Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Potts&amp;diff=2750"/>
		<updated>2020-01-19T13:58:08Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cri...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T0.5.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para uma rede retangular &amp;lt;math&amp;gt;256\times 256&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.5\text{J}&amp;lt;/math&amp;gt; utilizando uma temperatura inicial infinita: podemos notar a formação de clusters de spins em baixa temperatura.]]&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T1.0.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para uma rede retangular &amp;lt;math&amp;gt;256\times 256&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=1.0\text{J}&amp;lt;/math&amp;gt;: em alta temperatura, a formação de clusters não é observada.]]&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt;q=10 &amp;gt; z&amp;lt;/math&amp;gt; podemos notar a diferença entre os algoritmos com banho térmico termalizando em &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; enquanto Metropolis leva pouco menos de &amp;lt;math&amp;gt;200\text{ MCSweeps}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2749</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2749"/>
		<updated>2020-01-19T13:57:50Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ising 2D]]====&lt;br /&gt;
&lt;br /&gt;
====[[Lennard Jones - Monte Carlo]]====&lt;br /&gt;
&lt;br /&gt;
====[[BOIDS]]====&lt;br /&gt;
&lt;br /&gt;
====[[Tráfego]]====&lt;br /&gt;
&lt;br /&gt;
====[[Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Conservação do Parâmetro de Ordem]]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Sznajd&amp;diff=2748</id>
		<title>Modelo Sznajd</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_Sznajd&amp;diff=2748"/>
		<updated>2020-01-19T13:57:05Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;== Introdução == O Modelo de Sznajd ou &amp;#039;&amp;#039;&amp;#039;United we stand, divided we fall (USDF)&amp;#039;&amp;#039;&amp;#039; é um modelo recente, proposto em 2000 para entender a dinâmica de opiniões através d...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
O Modelo de Sznajd ou &#039;&#039;&#039;United we stand, divided we fall (USDF)&#039;&#039;&#039; é um modelo recente, proposto em 2000 para entender a dinâmica de opiniões através da física estatística. No ponto de vista de um físico, o comportamento de indivíduos a as interações entre eles constituem um nível microscópico de um sistema social. O modelo introduz o fenômeno chamado validação social:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validação Social:&#039;&#039;&#039; Se duas pessoas compartilham da mesma opinião, os seus vizinhos começarão a concordar com elas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discordância Destrutiva:&#039;&#039;&#039; Se as pessoas discordam, os vizinhos começarão a argumentar com elas.&lt;br /&gt;
&lt;br /&gt;
== O método e Formulação Matemática == &lt;br /&gt;
Opinião social é vinda de opiniões individuais, representadas neste modelo por spins de Ising de forma &#039;&#039;&amp;quot;yes&amp;quot;&#039;&#039; e &#039;&#039;&amp;quot;no&amp;quot;&#039;&#039;. A dinâmica segue a relação da validação social:&lt;br /&gt;
&lt;br /&gt;
# A cada timestep um par de sping &amp;lt;math&amp;gt; S_{i}, S_{i+1}&amp;lt;/math&amp;gt; são escolhidos para tentar mudar os seus vizinhos mais próximos&lt;br /&gt;
# Se &amp;lt;math&amp;gt; S_{i} = S_{i+1}&amp;lt;/math&amp;gt;, então &amp;lt;math&amp;gt; S_{i-1} = S_{i}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; S_{i+2} = S_{i}&amp;lt;/math&amp;gt; (&#039;&#039;validação social&#039;&#039;)&lt;br /&gt;
# Se &amp;lt;math&amp;gt; S_{i} = -S_{i+1}&amp;lt;/math&amp;gt;, então &amp;lt;math&amp;gt; S_{i-1} = S_{i+1}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; S_{i+2} = S_{i}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No modelo, dois tipos de estados estacionários são alcançáveis: consenso completo(ferromagnético) e impasse(antiferromagnético). A principal diferença para o Ising é que a informação flui para fora. O modelo de Sznajd ou USDF tem sido modificado e  utilizado em marketing, política e finanças.&lt;br /&gt;
&lt;br /&gt;
== Modificações ==&lt;br /&gt;
Fala-se que o estado antes mencionado, o antiferromagnetismo, pode ser considerado não realístico para representar o comportamento de indivíduos em uma sociedade. Para tentar evitar este caso, propõe-se o seguinte:&lt;br /&gt;
&lt;br /&gt;
# A cada timestep um par de sping &amp;lt;math&amp;gt; S_{i}, S_{i+1}&amp;lt;/math&amp;gt; são escolhidos para tentar mudar os seus vizinhos mais próximos igual anteriomente&lt;br /&gt;
# Se &amp;lt;math&amp;gt; S_{i} = S_{i+1}&amp;lt;/math&amp;gt;, então &amp;lt;math&amp;gt; S_{i-1} = S_{i}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; S_{i+2} = S_{i}&amp;lt;/math&amp;gt; (&#039;&#039;validação social&#039;&#039;)&lt;br /&gt;
# Se &amp;lt;math&amp;gt; S_{i} = -S_{i+1}&amp;lt;/math&amp;gt;, então &amp;lt;math&amp;gt; S_{i-1} = S_{i}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; S_{i+2} = S_{i}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Estas regras ficaram conhecidas como algo do tipo: &amp;quot;Se você não sabe o que fazer, ou faz nada ou faz qualquer coisa.&amp;quot; É um tanto quanto óbvio que o modelo unidimensional não representa bem um sistema social e que modelos bidimensionais são bem mais realistas. Algo interessante mencionar é a atualização simultânea para sistemas de duas dimensões: uma atualização simultânea leva a uma muito maior dificuldade de atingir o estado de consenso total. Isso foi mostrado por Stauffer&amp;lt;ref&amp;gt;D. Stauffer D, J Math Sociol 28 25 (2004)&amp;lt;/ref&amp;gt; e a razão para isso é que alguns recebem simultaneamente distintas informações de diferentes vizinhos, o que leva  a não aceitar a opinião.&lt;br /&gt;
&lt;br /&gt;
Regras para rede quadrada &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# Se conjunto 2x2 de 4 vizinhos não tiverem todos os seus spins paralelos, deixam os seus oito vizinhos sem .# Um par de vizinhos convence seus seis vizinhos a seguirem a sua orientação se o par de spins for paralelo. &lt;br /&gt;
&lt;br /&gt;
A regra de atualização para duas dimensões pode ser obtida pela regra em uma dimensão: A regra e 1D é aplicada para cada uma das 4 cadeias de spins, como mostra a próxima figura:&lt;br /&gt;
[[Arquivo:1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Isto foi mostrado por Galam&amp;lt;ref&amp;gt;S. Galam, J. Stat. Phys. 61, 943 (1990)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generalização ==&lt;br /&gt;
Para a generalização desse método para a rede quadrada &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; onde cada spin pode estar para cima ou para baixo e utiliza-se condições periódicas de contorno. As regras &amp;lt;ref&amp;gt;D. Stauffer,A.O. Sousa,M. De Oliveira, Int. J. Mod. Phys. C 11 1239&amp;lt;/ref&amp;gt; esquematizadas:&lt;br /&gt;
[[Arquivo:2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I.&amp;lt;/math&amp;gt; Um conjunto 2x2 de quatro vizinhos é escolhido e se todos não forem paralelos, deixa os seus oito vizinhos sem mudanças. Se não, seguem duas regras:&lt;br /&gt;
#&amp;lt;math&amp;gt;I_a&amp;lt;/math&amp;gt; Os vizinhos seguem a orientação do conjunto.&lt;br /&gt;
#&amp;lt;math&amp;gt;I_b&amp;lt;/math&amp;gt; Os vizinhos seguem a orientação oposta ao conjunto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;II.&amp;lt;/math&amp;gt; Um par vizinho tenta convencer seus seis vizinhos a seguir a orientação do par apenas se o par tiver spins paralelos. Caso contrário, seguem três regras horizontais mas com regras verticais completamente análogas:&lt;br /&gt;
#&amp;lt;math&amp;gt;II_a&amp;lt;/math&amp;gt; Os vizinhos não mudam.&lt;br /&gt;
#&amp;lt;math&amp;gt;II_b&amp;lt;/math&amp;gt; Os três vizinhos da esquerda seguem a orientação do spin da esquerda do par e os três da direita seguem o spin da direita.&lt;br /&gt;
#&amp;lt;math&amp;gt;II_c&amp;lt;/math&amp;gt; Os três vizinhos da esquerda seguem a orientação do spin da direita do par e os três da direita seguem o spin da esquerda (oposto a anterior).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;III.&amp;lt;/math&amp;gt; A regra de 1D é aplicada para cada uma das quatro linhas de quatro spins cada.&lt;br /&gt;
&lt;br /&gt;
Regra &amp;lt;math&amp;gt;I_a:&amp;lt;/math&amp;gt; pontos fixos com spins todos para cima ou para baixo.&lt;br /&gt;
&lt;br /&gt;
Regra &amp;lt;math&amp;gt;I_b:&amp;lt;/math&amp;gt; sem pontos fixos.&lt;br /&gt;
&lt;br /&gt;
Regra &amp;lt;math&amp;gt;II_a&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;II_b:&amp;lt;/math&amp;gt; pontos fixos com spins todos para cima ou para baixo.&lt;br /&gt;
&lt;br /&gt;
Regra &amp;lt;math&amp;gt;II_c:&amp;lt;/math&amp;gt; Para L par ten-se ou tudo para cima ou para baixo. Para L ímpar também a o ponto antiferromagnético&lt;br /&gt;
&lt;br /&gt;
Regra &amp;lt;math&amp;gt;III:&amp;lt;/math&amp;gt; pontos fixos com spins todos para cima ou para baixo com L ímpar.&lt;br /&gt;
&lt;br /&gt;
== Aplicações ==&lt;br /&gt;
O modelo de Sznajd pode ser utilizado em política, marketing e finanças. Um caso especial está em &amp;lt;ref&amp;gt;A. T. BERNARDES et al, Int. J. Mod. Phys. C 12, 159 (2001)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Reproduzimos o modelo mostrado no paper, usando uma rede quadrada &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;N = 1000&amp;lt;/math&amp;gt;. Ao invés de usar um modelo de spin (-1 ou 1), o modelo simula eleições brasileiras, usando um número de políticos escolhido como &amp;lt;math&amp;gt;N_p = 600&amp;lt;/math&amp;gt;. Usando a condição de seleção &amp;lt;math&amp;gt;II_a&amp;lt;/math&amp;gt;, cada vez que dois vizinhos tem a mesma opinião, todos os seus 6 vizinhos adquirem a mesma opinião. &lt;br /&gt;
&lt;br /&gt;
Nossa condição inicial é montada selecionando todos os eleitores aleatoriamente, dando-os uma probabilidade &amp;lt;math&amp;gt;P = \frac{n^2}{N^2}&amp;lt;/math&amp;gt; de escolher um candidato &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. Ao escolher um candidado, ele tem uma mesma probabilidade &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; de tentar convencer seus vizinhos (&amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; nesse caso age como o poder de convencimento de um candidato). Na imagem podemos ver a distribuição de votos por politico, que segue uma lei de potências. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:init.png|x300px]]&lt;br /&gt;
&lt;br /&gt;
Em seguida, realizamos passos de Monte Carlo, selecionando aleatóriamente &amp;lt;math&amp;gt;N^2&amp;lt;/math&amp;gt; eleitores (que podem se repetir) e os fazemos tentar convencer um de seus 4 vizinhos, seguindo a mesma regra.&lt;br /&gt;
&lt;br /&gt;
Nosso modelo tenta estudar a fase de transição do modelo (passos de Monte Carlo &amp;lt;math&amp;gt;1 &amp;lt;&amp;lt; t &amp;lt;&amp;lt; 10^5&amp;lt;/math&amp;gt;), dado que num processo eleitoral os votos não atingem um equilíbrio. A imagem mostra a distribuição desses votos. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:anferparty.png|x300px]]&lt;br /&gt;
&lt;br /&gt;
Após essa distribuição, podemos estudar como se dividem os votos. A imagem mostra a distribuição acumulada dos votos, em azul logo após a distribuição inicial (lei de potência com inclinação -1/2), e após os passos de Monte Carlo (com inclinação -1). Vemos que muitos poucos candidatos recebem a maioria dos votos, fato que concorda com o caso real.&amp;lt;ref&amp;gt;R. N. Costa-Filho, M. P. Almeida, J. S. Andrade Jr., and J. E. Moreira, Phys. Rev. E 60, 1067 (1999)&amp;lt;/ref&amp;gt;&lt;br /&gt;
 [[Arquivo:final.png|x300px]]&lt;br /&gt;
&lt;br /&gt;
Uma maneira de visualizar o processo é vendo o que acontece em uma rede quadrada 50x50 com 6 candidatos. O sistema converge para um candidato dominando devido ao tamanho da rede. Para uma rede maior, há uma competição entre vários candidatos dentro do limite de transição.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:foobar.gif|x300px]]&lt;br /&gt;
&lt;br /&gt;
==Bibliografia==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2747</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2747"/>
		<updated>2020-01-19T13:56:46Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ising 2D]]====&lt;br /&gt;
&lt;br /&gt;
====[[Lennard Jones - Monte Carlo]]====&lt;br /&gt;
&lt;br /&gt;
====[[BOIDS]]====&lt;br /&gt;
&lt;br /&gt;
====[[Tráfego]]====&lt;br /&gt;
&lt;br /&gt;
====[[Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Conservação do Parâmetro de Ordem]]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Dilema_Do_Prisioneiro&amp;diff=2746</id>
		<title>Dilema Do Prisioneiro</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Dilema_Do_Prisioneiro&amp;diff=2746"/>
		<updated>2020-01-19T13:56:04Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;&amp;#039;&amp;#039;&amp;#039;Integrantes do grupo:&amp;#039;&amp;#039;&amp;#039; Leonardo Xavier Rodrigues (262696) e Rodrigo Lopes de Sousa Silva (262705)  ==Introdução== O dilema do prisioneiro junto com o dilema &amp;#039;&amp;#039;SnowDrift...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Integrantes do grupo:&#039;&#039;&#039; Leonardo Xavier Rodrigues (262696) e Rodrigo Lopes de Sousa Silva (262705)&lt;br /&gt;
&lt;br /&gt;
==Introdução==&lt;br /&gt;
O dilema do prisioneiro junto com o dilema &#039;&#039;SnowDrift&#039;&#039; são problemas pertencentes a teoria dos jogos. Ambos funcionam de formas similares, baseando-se na interação entre duas pessoas(ou jogadores) e nas suas possíveis escolhas estratégicas para resolver seu problema. Esses dilemas são muito usados como metáforas para tentar explicar a evolução da cooperação através da seleção natural. O dilema do prisioneiro também poder ser usado para interpretar diversas outras formas de interação, desde biológicas até questões de economia.&lt;br /&gt;
&lt;br /&gt;
===Dilema Do Prisioneiro===&lt;br /&gt;
O dilema do prisioneiro clássico é descrito como uma mini história:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dois suspeitos, A e B, são presos pela polícia. A polícia tem provas insuficientes para os condenar, mas, separando os prisioneiros, oferece a ambos o mesmo acordo: se um dos prisioneiros, confessando, testemunhar contra o outro e esse outro permanecer em silêncio, o que confessou sai livre enquanto o cúmplice silencioso cumpre 10 anos de sentença. Se ambos ficarem em silêncio, a polícia só pode condená-los a 6 meses de cadeia cada um. Se ambos traírem o comparsa, cada um leva 5 anos de cadeia. Cada prisioneiro faz a sua decisão sem saber que decisão o outro vai tomar, e nenhum tem certeza da decisão do outro. A questão que o dilema propõe é: o que vai acontecer? Como o prisioneiro vai reagir?&#039;&#039;&lt;br /&gt;
[https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro Ref]&lt;br /&gt;
&lt;br /&gt;
Existem diversas versões deste dilema, variando os anos de prisão, mas todas com a mesma estrutura simples:&lt;br /&gt;
&lt;br /&gt;
- dois jogadores&lt;br /&gt;
&lt;br /&gt;
- duas ações possíveis&lt;br /&gt;
&lt;br /&gt;
Nesta Wiki será utilizado a versão mais comum nas literaturas, onde  o dilema do prisioneiro é interpretado de forma diferente:&lt;br /&gt;
&lt;br /&gt;
Ambos os presos são apresentados com a possibilidade de cooperar(assumir o crime que ele e seu comparsa cometeram) ou Não assumir o crime.&lt;br /&gt;
esse esquema pode ser visto visualmente com o auxilio de uma matriz chamada de matriz de ganhos&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;background: #f9f9f9;border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | A, B !!Coopera!! Nega&lt;br /&gt;
|-&lt;br /&gt;
! Nega&lt;br /&gt;
| Ganho,Perda&lt;br /&gt;
| Perda, Perda&lt;br /&gt;
|-&lt;br /&gt;
! Coopera&lt;br /&gt;
| Ganho Menor, Ganho Menor&lt;br /&gt;
| Perda, Ganho&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Onde ganho seria receber a liberdade imediata, perda a prisão por 10 anos e ganho menor a prisão por 5 anos.&lt;br /&gt;
Neste esquema de jogo, o melhor a se fazer para beneficio mútuo seria cooperar, para que nenhum dos dois passe 10 anos na cadeia. Porém, não há como saber como o outro jogador irá responder ao jogo, Pois se você cooperar e seu comparsa negar o crime, você passará 10 anos na prisão e ele sai livre.&lt;br /&gt;
Este problema é chamado também de jogo de soma não zero, onde não é possível unilateralmente mudar o resultado do jogo.&lt;br /&gt;
&lt;br /&gt;
===Dilema &#039;&#039;SnowDrift&#039;&#039;===&lt;br /&gt;
Este dilema utiliza quase a mesma estrutura do anterior, porém com apenas alguns detalhes de diferença.&lt;br /&gt;
&lt;br /&gt;
Nesta metáfora, duas pessoas estão em um carro preso em uma nevasca, cada uma delas tem a opção de sair do carro e com uma pá cavar a neve ao redor do carro ou simplesmente não fazer nada. nesta situação, diferentemente do dilema anterior, a melhor opção a se tomar quando o outro jogador se nega a colaborar ainda é colaborar, caso contrário você continuará preso na neve.&lt;br /&gt;
&lt;br /&gt;
==Tipos de população==&lt;br /&gt;
As metáforas apresentadas acima são usadas para tentar explicar o aparecimento natural da cooperação através da seleção natural.&lt;br /&gt;
Foram utilizados dois tipos de modelo de populações neste estudo.&lt;br /&gt;
&lt;br /&gt;
O jogo é feito através da interação de um jogador com outro jogador, dependendo do algoritmo utilizado.&lt;br /&gt;
&lt;br /&gt;
===População misturada===&lt;br /&gt;
&lt;br /&gt;
Neste cenário a ideia é reproduzir um modelo de uma população na qual o jogador pode interagir com qualquer outro membro da população, um exemplo desse tipo de estrutura seria uma colonia de bactérias vivendo em um meio líquido, no qual elas podem se mover.&lt;br /&gt;
&lt;br /&gt;
===População Estruturada===&lt;br /&gt;
&lt;br /&gt;
Neste cenário o modelo simulado seria um no qual um membro da população pode apenas interagir com seus vizinhos próximos, na biologia uma placa de Petri(dish) com colonias de bactérias na superfície seria um bom exemplo desse modelo, já que nele as bactérias não podem se locomover.&lt;br /&gt;
&lt;br /&gt;
==Conceitos do jogo==&lt;br /&gt;
Para implementar os dilemas em uma simulação e estudar seus resultados será analisado a matrix de ganhos para um jogador (p1) contra um segundo jogador (p2).&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;background: #f9f9f9;border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | P1, P2 !!Nega!!Coopera&lt;br /&gt;
|-&lt;br /&gt;
! Nega&lt;br /&gt;
| P&lt;br /&gt;
| T&lt;br /&gt;
|-&lt;br /&gt;
! Coopera&lt;br /&gt;
| S&lt;br /&gt;
| R&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
P - &#039;&#039;Punishment&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
T - &#039;&#039;Temptation&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
S - &#039;&#039;Sucker&#039;s Payoff&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R - &#039;&#039;Reward&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Quando ambos Cooperam, o player um recebe a recompensa(&#039;&#039;Reward&#039;&#039; ), se ambos negam, o jogador 1 recebe punição(&#039;&#039;Punishment&#039;&#039;). Se o jogador um nega e o jogador 2 coopera, o primeiro receberá a tentação(&#039;&#039;Temptation&#039;&#039;), Caso contrário, o jogador um recebe &#039;&#039;Sucker&#039;s Payoff&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Algoritmos==&lt;br /&gt;
Os jogos são feitos para estudar o comportamento de uma população e a sobrevivência da cooperação nela, para este fim é necessário dar valores a matriz de ganhos. Cada jogo é feito de diversas rodadas onde há a interação da população assincronamente. &lt;br /&gt;
Para cooperar existe um beneficio(b) e um custo(c), e a matriz de ganhos é baseada nesses valores.&lt;br /&gt;
&lt;br /&gt;
===Características dilema do prisioneiro===&lt;br /&gt;
R = b-c&lt;br /&gt;
&lt;br /&gt;
T = b&lt;br /&gt;
&lt;br /&gt;
S = -c&lt;br /&gt;
&lt;br /&gt;
P = 0&lt;br /&gt;
&lt;br /&gt;
O dilema do prisioneiro, geralmente, segue a regra T &amp;gt; R &amp;gt; P &amp;gt; S. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Características Para dilema &#039;&#039;SnowDrift&#039;&#039;===&lt;br /&gt;
R = b-c/2&lt;br /&gt;
&lt;br /&gt;
T = b&lt;br /&gt;
&lt;br /&gt;
S = b-c&lt;br /&gt;
&lt;br /&gt;
P = 0&lt;br /&gt;
&lt;br /&gt;
Neste jogo há uma diferença crucial, na qual se ambos se negarem a ajudar, eles continuarão presos na neve.&lt;br /&gt;
&lt;br /&gt;
===O jogo===&lt;br /&gt;
O jogo é feito de diversas maneiras, neste exemplo foram utilizadas dois tipos de estruturas de populações.&lt;br /&gt;
O foco do jogo é descobrir se o jogador um irá ou não adotar a estratégia do jogador dois, para isso eles competem, porém competem indiretamente. Eles competem com seus vizinhos e o resultado disso(score) é utilizado para computar a probabilidade do jogador 1 assumir a estratégia feita pelo jogador 2.&lt;br /&gt;
&lt;br /&gt;
==== População Misturada====&lt;br /&gt;
Neste esquema de jogo, a população é aleatoriamente composta por cooperadores e negadores (50/50) e é escolhido aleatoriamente dois membros da população para competir, cada um deles joga contra algum outro membro aleatório da população. os seus respectivos scores são comparados e assim é feita a probabilidade do jogador um copiar a estratégia do jogador 2(w).&lt;br /&gt;
&amp;lt;math&amp;gt;W = (P2 - P1)/alpha&amp;lt;/math&amp;gt;, onde alpha será a diferença máxima entre os valores da matriz de ganho, para garantir que W seja menor que 1.&lt;br /&gt;
&lt;br /&gt;
==== População Estruturada====&lt;br /&gt;
A população estruturada simula uma condição onde os membros não tem como interagir com qualquer outro membro da população, para isso é feito uma matriz n x n com a população de tamanho n. em cada rodada do jogo é escolhido algum membro aleatório da população nessa matriz e ele ira interagir com seus 4 mais próximos vizinhos, para comparar, sera utilizado um desses vizinhos e ele também irá competir com seus 4 vizinhos mais próximos.&lt;br /&gt;
com base nesse score acumulado das 4 interações é calculado a probabilidade do jogador 1 assumir a estratégia do seu competidor. A formulá utilizada foi a de fermi dirac:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Fermi_Dirac.jpg |frame|500px|center|Plot da função abaixo ( fazer)/ ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;W = 1 / (1 + exp((P2-P1)/K))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com essa fórmula é introduzida uma certa aleatoriedade na decisão do jogador 1, pois mesmo que seu score seja maior, há a chance dele adotar a estratégia de seu oponente. isto pode ser interpretado como uma mutação, dependendo da análise feita.&lt;br /&gt;
&lt;br /&gt;
==Resultados==&lt;br /&gt;
&lt;br /&gt;
===Dilema do prisioneiro===&lt;br /&gt;
Analizando as diferentes possibilidades de razões custo/benefício obtemos o gráfico abaixo.&lt;br /&gt;
[[Arquivo:FreqXRazão.jpg |frame|400x400px|center|Frequência Cooperadores X razão Custo/Beneficio - r = c/(b-c)]]&lt;br /&gt;
Nele podemos verificar que quando o custo de cooperar chega a zero, hávará um equilíbrio de 40% de cooperadores e 60% de negadores. e quando a razão custo/beneficio começa a aumentar(aumento do custo) a porcentagem de cooperadores começa a declinar rapidamente e logo chega a zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Logo em seguida, temos os gráficos de partes específicas dos resultados obtidos no gráfico anterior. nele vemos que com custo = 1, beneficio = 2, os cooperadores são eliminados rapidamente.&lt;br /&gt;
[[Arquivo:CF01.jpg |frame|400x400px|center|B = 2 c = 1.0]]&lt;br /&gt;
&lt;br /&gt;
A seguir temos uma imagem que mostraremos como auxílio visual representando o momento inicial do gráfico anterior e o momento final dele, onde em preto temos os negadores, e em branco os cooperadores.&lt;br /&gt;
&amp;lt;gallery widths=400px heights=400px&amp;gt;&lt;br /&gt;
Arquivo:IM_1.jpg|B = 2 c = 1.0&lt;br /&gt;
&lt;br /&gt;
Arquivo:FM_1.jpg|B = 2 c = 1.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora temos um exemplo no qual o benefício =2 e o custo = 0.01 geram um caso no qual há a possibilidade de equilibro após certo tempo.&lt;br /&gt;
[[Arquivo:CF0.01.jpg |frame|400x400px|center|B = 2 c = 0.01]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=400px&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arquivo:IM_0.01.jpg |B = 2 c = 0.01&lt;br /&gt;
&lt;br /&gt;
Arquivo:FM_0.01.jpg |B = 2 c = 0.01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aqui veremos que com custo de 0.01 o equilibrio gira em torno de 45% de cooperadores para 65% de negadores, e é importante observar que os cooperadores de aglutinam com o decorrer do tempo, formando colônias dentro da população onde todos cooperam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora temos o caso onde o custo é muito baixo e os cooperadores chegam ao equilíbrio de mais ou menos 65% de cooperadores para 35% de negadores.&lt;br /&gt;
[[Arquivo:CF0.0001.jpg |frame|400x400px|center|B = 2 c = 0.0001]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=400px&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arquivo:IM_0.0001.jpg |B = 2 c = 0.0001&lt;br /&gt;
Arquivo:FM_0.0001.jpg |B = 2 c = 0.0001&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dilema &#039;&#039;SnowDrift&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
Neste problema analizamos duas situações diferentes, onte fixamos b = 2 e variamos c entre 1.5 e 0.00010, abaixo temos a frequência de cooperadores quando se muda o valor de c através da relação de busto benefício. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:SD_FreqXRazão.jpg |frame|400x400px|center|Frequência Cooperadores X razão Custo/Beneficio - r = c/(b-c]]&lt;br /&gt;
&lt;br /&gt;
Agora temos o gráfico da quantidade de cooperadores pela evolução temporal quando o custo = 1.5.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:SD_CF1.5.jpg |frame|400x400px|center|B = 2 c = 1.5]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=400px&amp;gt;&lt;br /&gt;
Arquivo:SD_IM_1.5.jpg|B = 2 c = 1.5&lt;br /&gt;
&lt;br /&gt;
Arquivo:SD_FM1.5.jpg|B = 2 c = 1.5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que com o custo alto, os cooperadores são quase extintos predominando os negadores. Porém, quando temos o custo bem baixo, os negadores praticamente somem, como podemos ver os gráficos abaixo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:SD_CF0.0001.jpg |frame|400x400px|center|B = 2 c = 0.0001]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=400px heights=400px&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arquivo:SD_IM_0.0001.jpg |B = 2 c = 0.0001&lt;br /&gt;
Arquivo:SD_FM_0.0001.jpg |B = 2 c = 0.0001&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Implementação em C==&lt;br /&gt;
Link para Programas Usados[[https://fiscomp.if.ufrgs.br/index.php/Grupo_-_Dilema_Do_Prisioneiro/Programas]]&lt;br /&gt;
&lt;br /&gt;
==Bibliografia==&lt;br /&gt;
&lt;br /&gt;
*Dusan Misevic,Sebastian Bonhoeffer, Spatial cooperation games&lt;br /&gt;
https://www.ethz.ch/content/dam/ethz/special-interest/usys/ibz/theoreticalbiology/education/learningmaterials/701-1424-00L/scg.pdf&lt;br /&gt;
*Game theory and physics, American Journal of Physics 73, 405 (2005)&lt;br /&gt;
http://dx.doi.org/10.1119/1.1848514&lt;br /&gt;
&lt;br /&gt;
*MARTIN A. NOWAK, SEBASTIAN BONHOEFFER, AND ROBERT M. MAY,Spatial games and the maintenance of cooperation&lt;br /&gt;
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC43892/pdf/pnas01133-0277.pdf&lt;br /&gt;
&lt;br /&gt;
*Behavioural evolution: Cooperate with thy neighbour?&lt;br /&gt;
https://www.nature.com/articles/428611a&lt;br /&gt;
&lt;br /&gt;
*Human cooperation in social dilemmas: comparing the Snowdrift game with the Prisoner&#039;s Dilemma&lt;br /&gt;
http://dx.doi.org/10.1098/rspb.2007.0793&lt;br /&gt;
&lt;br /&gt;
*Delação premiada e Teoria dos Jogos | Nerdologia 271&lt;br /&gt;
https://www.youtube.com/watch?v=EvjdS4vWdc8&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2745</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2745"/>
		<updated>2020-01-19T13:55:47Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ising 2D]]====&lt;br /&gt;
&lt;br /&gt;
====[[Lennard Jones - Monte Carlo]]====&lt;br /&gt;
&lt;br /&gt;
====[[BOIDS]]====&lt;br /&gt;
&lt;br /&gt;
====[[Tráfego]]====&lt;br /&gt;
&lt;br /&gt;
====[[Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Conservação do Parâmetro de Ordem]]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Tr%C3%A1fego&amp;diff=2744</id>
		<title>Tráfego</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Tr%C3%A1fego&amp;diff=2744"/>
		<updated>2020-01-19T13:54:44Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;Integrantes: Rodrigo Zamin Ferreira (262692) e Maurício Gomes de Queiroz (264889)  ==Introdução==  O estudo de caso do comportamento do tráfego urbano se mostra de grande...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Integrantes: Rodrigo Zamin Ferreira (262692) e Maurício Gomes de Queiroz (264889)&lt;br /&gt;
&lt;br /&gt;
==Introdução==&lt;br /&gt;
&lt;br /&gt;
O estudo de caso do comportamento do tráfego urbano se mostra de grande utilidade nos dias atuais, onde metrópoles apresentam grandes volumes de veículos se deslocando pela cidade. Em horários de pico, por exemplo, às 18h, Porto Alegre apresenta média de lentidão de 83km&amp;lt;ref&amp;gt;http://transito.maplink.global/RS/porto_alegre/Estatisticas&amp;lt;/ref&amp;gt;, enquanto São Paulo chega a incríveis 485km&amp;lt;ref&amp;gt;http://transito.maplink.global/SP/sao_paulo/Estatisticas&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
A modelagem de tal comportamento permite um estudo das regras básicas que motoristas tendem a seguir em situações reais, levando assim a um melhor entendimento da formação e desenvolvimento de congestionamentos, além da obtenção de outras informações interessantes, como a velocidade média em função do número de carros. &lt;br /&gt;
&lt;br /&gt;
Aqui é proposto um modelo simples do funcionamento normal de uma avenida utilizando autômatos celulares, inicialmente com apenas uma faixa, sendo após estendido para n faixas.&lt;br /&gt;
&lt;br /&gt;
===Autômatos Celulares===&lt;br /&gt;
&lt;br /&gt;
Weimar&amp;lt;ref&amp;gt;Weimar, Jörg R. (1998). &amp;quot;Simulation with Cellular Automata&amp;quot;. Berlin: Logos-Verlag.&amp;lt;/ref&amp;gt; define um  autômato  celular em &amp;quot;Simulation with Cellular Automata&amp;quot;, informalmente, como um vetor de células sendo caracterizado pelas seguintes propriedades básicas:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
• A evolução se dá em passos discretos de tempo;&lt;br /&gt;
&lt;br /&gt;
• Cada  célula  é  caracterizada  por  um estado  pertencente  a  um  conjunto finito de estados; &lt;br /&gt;
&lt;br /&gt;
• Cada  célula  evolui  de  acordo  com  as  mesmas  regras  que  dependem somente do estado em que a célula se encontra e de um número finito de vizinhos; &lt;br /&gt;
&lt;br /&gt;
• A relação com a vizinhança é local e uniforme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apesar de simples, autômatos celulares (AC) são capazes de simular sistemas dinâmicos complexos e são extensivamente utilizados aqui, onde cada célula representa uma posição na avenida, que pode conter um veículo ou não. Caso contenha um veículo, a célula possui um estado associado a si que representa o índice do veículo, através do qual podemos acessar sua velocidade, a qual pode assumir valores discretos de 0 a &amp;lt;math&amp;gt;v_{max}&amp;lt;/math&amp;gt;; caso contrário, a célula possui um estado que indica que está vazia, sendo utilizado o estado -1 para esse objetivo. A velocidade de um carro representa o número de células que o carro andará num passo.&lt;br /&gt;
&lt;br /&gt;
A atualização dos estados é feita de forma não-síncrona (os estados das células são atualizados um após o outro) e homogênea (as regras de atualização não dependem da posição espacial da própria célula, somente da posição relativa dos vizinhos) &amp;lt;ref&amp;gt;https://www.ppgee.ufmg.br/defesas/113M.PDF&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A mudança dos estados é feita com base em regras que se baseiam nos estados da vizinhança, tendo também algumas mudanças estocásticas, caracterizando um método de Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
==Regras de Aceleração==&lt;br /&gt;
Estabelecemos as regras de mudança da velocidade com base no artigo de Nagel e Schreckenberg (1992)&amp;lt;ref name=nagel&amp;gt;Nagel, K.; Schreckenberg, M. (1992). A cellular automaton model for freeway traffic. J. Phys I France (2221-2229)&amp;lt;/ref&amp;gt;. São três os casos em que um autômato do modelo descrito aqui muda de velocidade:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regra 1:&#039;&#039;&#039; A velocidade é &#039;&#039;&#039;reduzida&#039;&#039;&#039; caso a distância entre um carro e o veículo que vai à sua frente seja suficientemente pequena para que haja colisão durante a atualização de posições da simulação, sendo necessária a redução da velocidade para impedir que isso ocorra.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regra 2:&#039;&#039;&#039; De modo análogo, &#039;&#039;&#039;aumenta-se&#039;&#039;&#039; a velocidade caso a velocidade atual for menor que a máxima e seja suficientemente grande para que não haja colisão durante a atualização de posições da simulação usando a velocidade nova.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regra 3:&#039;&#039;&#039; É também introduzido no modelo um fator que &#039;&#039;&#039;aleatoriamente reduz&#039;&#039;&#039; a velocidade do veículo, para que seja levado em conta flutuações da velocidade devido ao comportamento humano. Esse passo é essencial, já que sem ele o modelo seria determinístico.&lt;br /&gt;
&lt;br /&gt;
Ou seja, sendo &amp;lt;math&amp;gt;dist&amp;lt;/math&amp;gt; a distância entre um carro e o que está à sua frente, &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; a velocidade do carro, e &amp;lt;math&amp;gt;\Delta t = 1&amp;lt;/math&amp;gt; o tempo de um passo,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regra 1:&#039;&#039;&#039; Caso &amp;lt;math&amp;gt;dist \leq v&amp;lt;/math&amp;gt;, então &amp;lt;math&amp;gt;v \rightarrow \frac{dist}{\Delta t} - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regra 2:&#039;&#039;&#039; Caso &amp;lt;math&amp;gt;dist &amp;gt; v + 1&amp;lt;/math&amp;gt;, então &amp;lt;math&amp;gt;v \rightarrow v + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regra 3:&#039;&#039;&#039; Com uma probabilidade &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;,  &amp;lt;math&amp;gt;v \rightarrow v - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Faixa Única==&lt;br /&gt;
&lt;br /&gt;
O problema de faixa única, mesmo que simples, gera discussões muito boas quando simulado. O cenário consiste em uma avenida de uma faixa, com &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; células, com carros que se movem da esquerda para a direita, submetidos às regras citadas anteriormente. Além disso, foram utilizadas condições de contorno periódicas, e os carros foram inicializados em posições aproximadamente equidistantes. Os valores dos parâmetros utilizados foram &amp;lt;math&amp;gt;L = 15&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;v_{max} = 3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Uma primeira abordagem, com finalidade situar a simulação, é com um único carro, sem implementação da redução de velocidade randômica (Regra 3). &lt;br /&gt;
No gráfico abaixo, o carro se desloca, partindo do repouso (representado pela cor preta no gráfico) e com aceleração, até atingir a velocidade máxima, com valor 3, que é mantida no decorrer do tempo.&lt;br /&gt;
Tal gráfico mostra o funcionamento base dos autômatos e da visualização da evolução temporal dos mesmos.&lt;br /&gt;
&lt;br /&gt;
Foi gerado uma simples animação para ilustrar o funcionamento da visualização.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:1_carro.jpg|frame|400x400px|center|Gráfico 1: 1 Carro em faixa única]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Gif_carropistaunica.gif|frame|200x200px|center|Gráfico 1.1: 1 Carro em faixa única]]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é estendermos o modelo para o caso com 7 carros, isto é, uma densidade de quase 0.5 carros/célula (Gráfico 2).&lt;br /&gt;
[[Arquivo:7_carros.jpg|frame|400x400px|center|Gráfico 2: 7 Carros em faixa única]]&lt;br /&gt;
&lt;br /&gt;
Observamos que a distância até o próximo carro é 2 para todos os carros (a distância é calculada pela diferença das posições dos carros; embora no gráfico somente haja uma célula entre eles, a distância é 2-0 = 2 para o primeiro carro, por exemplo), exceto para o carro que inicia mais à direita, com distância 3. Por isso ele é o primeiro a alcançar uma velocidade de 2, enquanto os outros estavam a velocidade 1. Esse carro então, percorre essa distância maior do que os demais, ficando a uma distância 2 do veículo à sua frente, enquanto o carro que está atrás dele tem uma distância de 3, podendo agora aumentar sua velocidade para 2, e assim por diante; por isso a zona em que os carros tem velocidade 3 se propaga no sentido contrário do seu movimento.&lt;br /&gt;
&lt;br /&gt;
Agora, podemos introduzir a probabilidade de redução de velocidade, em uma situação com dois carros. Percebe-se no gráfico abaixo, por exemplo, que o carro iniciado na posição 0 permanece dois passos de tempo com velocidade 0, enquanto o segundo carro já havia mudado de velocidade, algo causado pela probabilidade de redução da velocidade. Nestes gráficos ainda não há grande redução de velocidade e congestionamentos, já que a densidade é baixa; porém, ao decorrer do tempo, os carros oscilam sua velocidade entre 3 e 2. A probabilidade de redução de velocidade utilizada aqui é a de 0.3, a qual&#039;&#039;&#039; é a mesma para todas as simulações analisadas nesta página&#039;&#039;&#039;. Na próxima seção analisaremos também a influência da variação desse parâmetro na velocidade média.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:3carros_prob.jpg|frame|400x400px|center|Gráfico 3: 3 Carros em faixa única, com probabilidade de redução 0.3]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Gif_3carros_pistaunica.gif |frame|200x200px|center|Gráfico 3.1: 3 Carros em faixa única, com probabilidade de redução 0.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ao aplicarmos a simulação para 5 carros (Gráfico 4), observamos que já há pontos de lentidão (ou seja, regiões em que os carros se movem com baixa velocidade, representado pela cor vermelho escuro) e congestionamento (trechos que apresentam velocidade zero), causados pela probabilidade de redução da velocidade e maior densidade de carros. Esses trechos se propagam, de acordo com a simulação, contra o sentido de movimentação dos carros.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:5_carros_prob.jpg|frame|400x400px|center|Gráfico 4: 5 Carros em faixa única, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
Finalmente, estendemos o modelo para um sistema com &amp;lt;math&amp;gt;L = 100&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n_{carros} = 60&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;v_{max} = 6&amp;lt;/math&amp;gt; (Gráfico 5), juntando todas as análise feitas anteriormente.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:60_carros_prob.jpg|frame|400x400px|center|Gráfico 5: 60 Carros em faixa única, L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
Após o início, mesmo deixando &amp;lt;math&amp;gt;v_{max} = 6&amp;lt;/math&amp;gt;, os carros permanecem principalmente com velocidade 1 e 2. Além de trechos grandes de congestionameto, trechos menores são espontaneamente criados devido a probabilidade de redução de velocidade. Todos os trechos de lentidão/congestionamento são propagados contra o fluxo dos carros.&lt;br /&gt;
&lt;br /&gt;
===Medidas de Velocidade===&lt;br /&gt;
&lt;br /&gt;
Por fim, foi medida a velocidade média como função do tempo (fixando a velocidade máxima em 6) e como função da velocidade máxima (sendo medida em &amp;lt;math&amp;gt;t_{final} = 100&amp;lt;/math&amp;gt;) (Gráficos 6 e 7). Com o intuito de fazer uma análise por método de Monte Carlo, somos levados a utilizar grande quantidade de amostragens para obter um resultado, ainda que estimado, mais próximo do real. Aqui são utilizadas 100.000 amostragens e então foi calculada a média da velocidade entre elas. Com mais amostragens reduz-se o ruído, porém o tempo gasto com seu cálculo é significantemente aumentado.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:1_med_t.jpg|frame|400x400px|center|Gráfico 6: &amp;lt;math&amp;gt;v_{max} = 6&amp;lt;/math&amp;gt;, L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:1_med_max.jpg|frame|400x400px|center|Gráfico 7: &amp;lt;math&amp;gt;t_{final} = 100&amp;lt;/math&amp;gt;, L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
Em ambos os casos, a velocidade média tende a um valor de equilíbrio. Para o caso do Gráfico 7, inicialmente o aumento da velocidade máxima tem grande impacto na velocidade média, mas a medida que a velocidade máxima aumenta, é atingido um ponto em que o aumento da velocidade máxima não é mais significativo para a velocidade média, já que dificilmente os carros atingem velocidades tão altas.&lt;br /&gt;
O pico que aparece neste gráfico pode ser atribuído ao fato de que uma velocidade máxima mais alta faz com que os carros possam atingir velocidades mais altas, e isso pode fazer com que os carros fiquem mais próximos uns dos outros, diminuindo a velocidade média.&lt;br /&gt;
&lt;br /&gt;
Podemos também analisar a influência da probabilidade de redução da velocidade na velocidade média em função do tempo. Como seria de se esperar, quanto menor essa probabilidade, maior a velocidade média de equilíbrio.&lt;br /&gt;
[[Arquivo:compar_prob.jpg|frame|400x400px|center|Gráfico 8: &amp;lt;math&amp;gt;v_{max} = 6&amp;lt;/math&amp;gt;, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
Outras medidas interessantes são a velocidade média em função da densidade de carros (número de carros/número de células) e o fluxo em função da densidade de carros. O fluxo é medido como o número de carros que atravessou a seção transversal da rua entre as posições 100 e 0 do vetor que descreve a rua (já que consideramos aqui condições de contorno periódicas) ao longo de toda a simulação, dividindo pelo tempo total. Os gráficos abaixo foram feitos a partir da média de 100000 amostragens.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:1_v_med_dens.jpg|frame|400x400px|center|Gráfico 9: L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:1_fluxo.jpg|frame|400x400px|center|Gráfico 10: Fluxo, L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
O gráfico 9 indica que, quanto maior a densidade, menor a velocidade média dos carros, o que é intuitivo. Também observamos que, para baixas densidades, a velocidade média se aproxima da velocidade máxima do sistema. O Gráfico 10 é mais interessante, indicando que existe uma densidade que maximiza o fluxo de carros: abaixo dela, o número baixo de veículos causa um pequeno fluxo; acima dela, a grande densidade faz com que a velocidade média seja pequena, diminuindo o fluxo de carros. Este gráfico é semelhante ao de uma situação real, conforme gráfico no artigo de Nagel e Schreckenberg&amp;lt;ref name=nagel&amp;gt;&amp;lt;/ref&amp;gt;, mostrado abaixo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:real.jpg|frame|400x400px|center|Gráfico 11&amp;lt;ref name=nagel&amp;gt;&amp;lt;/ref&amp;gt;: &#039;&#039;Occupancy&#039;&#039; corresponde à densidade, enquanto &#039;&#039;flow&#039;&#039; ao fluxo de carros]]&lt;br /&gt;
&lt;br /&gt;
==Faixa Dupla==&lt;br /&gt;
&lt;br /&gt;
É natural então, querermos simular o tráfego em uma pista com duas faixas, de mesmo sentido. Permitir que carros troquem faixa, à princípio, tornaria o sistema mais fluido.&lt;br /&gt;
&lt;br /&gt;
===Regras de Troca de Faixa===&lt;br /&gt;
&lt;br /&gt;
Surge então a necessidade de definir quando permitiremos que uma carro se mude para a faixa ao lado. Apenas definir uma probabilidade para tal evento não faz jus à realidade pois, mesmo que possível, a tendencia não é que pessoas troquem de faixa por motivo algum. Aqui foi utilizada a regra de que, ao reduzir a velocidade devido à falta de distância (ou seja, a regra 1), ou se o carro for obrigado a manter sua velocidade (ou seja, não se encaixar nem na regra 1 nem na regra 2), o motorista checa a faixa vizinha, medindo a distância ao próximo carro; se ela for maior do que a distância atual (medida a partir da faixa em que o carro se encontra), e se a faixa vizinha possuir espaço livre, a troca de pista ocorre. Na sequência, é refeito o processo de mudança de velocidade, levando em conta agora a nova pista em que o carro se encontra.&lt;br /&gt;
&lt;br /&gt;
===Simulações Iniciais===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:5carros_pistadupla.jpg|frame|300x300px|center|Gráfico 12: 5 Carros em faixa dupla, L = 15, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:pistadupla.gif|center|550x550px|center|Gráfico 12.1: 5 Carros em faixa dupla, L = 15, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
Os gráficos a seguir mostram implementações de faixa dupla. Nota-se, caso acompanhar um carro em específico, que ele troca de faixa quando necessário. Como exemplo, tome o carro que inicia na posição 12, no gráfico 12. Do tempo 2 ao 3 ele troca de faixa ao perceber que (lembrando das condições de contorno periódicas) há um carro bloqueando seu caminho.&lt;br /&gt;
&lt;br /&gt;
O mesmo pode ser feito com uma densidade de carros/celula maior.&lt;br /&gt;
&lt;br /&gt;
Comparado com o gráfico 5, o gráfico 14 mostra o resultado da duplicação de faixa. Temos um claro aumento na fluidez. Carros se ajeitam procurando a melhor configuração. Não deixa de gerar lentidão, até com trechos de congestionamento, mas a situação é bem melhor.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:9carros_pistadupla.jpg|frame|400x400px|center|Gráfico 13: 9 Carros em faixa dupla, L = 15, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:60carros_pistadupla.jpg|frame|400x400px|center|Gráfico 14: 60 Carros em faixa dupla, L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
===Medidas de Velocidade===&lt;br /&gt;
&lt;br /&gt;
Da mesma forma que foi feita para pista única, podemos medir a velocidade média em função de diversos parâmetros. Os resultados são semelhantes aos obtidos anteriormente, mas têm uma diferença, que será explorada na próxima seção.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Comparacao_vmax_MC.jpg|frame|400x400px|center|Gráfico 15: Velocidade média em faixa dupla, L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2_lanes_vmed_vmax.jpg|frame|400x400px|center|Gráfico 16: Velocidade média em Carros em faixa dupla, L = 100, em &amp;lt;math&amp;gt;t_{final} = 100&amp;lt;/math&amp;gt;, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
Também pode ser feito o mesmo estudo do fluxo e da velocidade média em função da densidade de carros, conforme os gráficos abaixo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2_v_med_dens.jpg|frame|400x400px|center|Gráfico 17: L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:2_fluxo.jpg|frame|400x400px|center|Gráfico 18: Fluxo, L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
===Comparação entre faixa simples e dupla===&lt;br /&gt;
Após realizarmos essas medidas de velocidade média e fluxo de carros, é natural compararmos os resultados para pista simples e pista dupla. Abaixo, mostramos essas comparações, simplesmente unindo os gráficos para esses dois tipos de pista.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Comparacao_t.jpg|frame|400x400px|center|Gráfico 19: L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Comparacao_vmax.jpg|frame|400x400px|center|Gráfico 20: L = 100, em &amp;lt;math&amp;gt;t_{final} = 100&amp;lt;/math&amp;gt;, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Comparacao_dens.jpg|frame|400x400px|center|Gráfico 21: L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Comparacao_fluxo.jpg|frame|400x400px|center|Gráfico 22: Fluxo, L = 100, com probabilidade de redução de 0.3]]&lt;br /&gt;
&lt;br /&gt;
Através desses quatro gráficos, podemos observar claramente que uma rua com pista dupla é mais fluida do que uma de pista simples.&lt;br /&gt;
&lt;br /&gt;
==N faixas==&lt;br /&gt;
&lt;br /&gt;
O programa foi estendido para comportar uma simulação de &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; faixas. Análises futuras podem, por exemplo, verificar a eficácia da adição de uma faixa à uma avenida, informação valiosa para coordenadores de trafego em uma cidade movimentada que buscam informações sobre custo/benefício de tal obra. Também é possível analisar os impactos da redução de uma faixa, ou do bloqueio de lugares pontuais, comparando diversas simulações.&lt;br /&gt;
&lt;br /&gt;
==Sinaleira==&lt;br /&gt;
===Funcionamento===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:sinaleirafaixadupla.jpg|frame|400x400px|center|Gráfico 23: Sinaleira na posição 50, Sinal fechado entre tempos 5 e 20 (indicado por linha vermelha)]]&lt;br /&gt;
&lt;br /&gt;
==Códigos==&lt;br /&gt;
===Uma pista===&lt;br /&gt;
&lt;br /&gt;
====Códigos em C====&lt;br /&gt;
[[Simulação]]&lt;br /&gt;
&lt;br /&gt;
[[Velocidade média em função da velocidade máxima]]&lt;br /&gt;
&lt;br /&gt;
[[Velocidade média em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
[[Velocidade média em função da densidade e fluxo em função da densidade]]&lt;br /&gt;
&lt;br /&gt;
====Códigos para Gnuplot====&lt;br /&gt;
&lt;br /&gt;
[[Gnuplot - Plot base Matrizes de dados]]&lt;br /&gt;
&lt;br /&gt;
[[Gnuplot - Velocidade média em função da velocidade máxima]]&lt;br /&gt;
&lt;br /&gt;
[[Gnuplot - Velocidade média em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
[[Gnuplot - Velocidade média em função da densidade e fluxo em função da densidade]]&lt;br /&gt;
&lt;br /&gt;
[[Comparação entre diferentes probabilidades de redução de velocidade]]&lt;br /&gt;
&lt;br /&gt;
===N pistas===&lt;br /&gt;
====Códigos em C====&lt;br /&gt;
[[N pistas: Simulação]]&lt;br /&gt;
&lt;br /&gt;
[[N pistas: Velocidade média em função da velocidade máxima]]&lt;br /&gt;
&lt;br /&gt;
[[N pistas: Velocidade média em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
[[N pistas: Velocidade média em função da densidade e fluxo em função da densidade]]&lt;br /&gt;
&lt;br /&gt;
[[Rua com sinaleira]]&lt;br /&gt;
&lt;br /&gt;
====Códigos para Gnuplot====&lt;br /&gt;
[[Gnuplot - N pistas: Velocidade média em função da velocidade máxima]]&lt;br /&gt;
&lt;br /&gt;
[[Gnuplot - N pistas: Velocidade média em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
[[Gnuplot - N pistas: Velocidade média em função da densidade e fluxo em função da densidade]]&lt;br /&gt;
&lt;br /&gt;
[[Comparação entre pista simples e dupla]]&lt;br /&gt;
&lt;br /&gt;
==Bibliografia==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2743</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2743"/>
		<updated>2020-01-19T13:54:21Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ising 2D]]====&lt;br /&gt;
&lt;br /&gt;
====[[Lennard Jones - Monte Carlo]]====&lt;br /&gt;
&lt;br /&gt;
====[[BOIDS]]====&lt;br /&gt;
&lt;br /&gt;
====[[Tráfego]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Conservação do Parâmetro de Ordem]]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=2742</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=2742"/>
		<updated>2020-01-19T13:53:38Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Métodos Computacionais C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
===== [[Julia]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integração numérica)]]=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais C ==&lt;br /&gt;
&lt;br /&gt;
=== [[Equações Diferenciais Parciais]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2017/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NAO APAGAR OS LINKS ABAIXOS!! SAO OS TRABALHOS ORIGINAIS !! HEITOR - 19Jan20 --&amp;gt; &lt;br /&gt;
&amp;lt;!-- =====[[Grupo1 - Dif em 2D]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo2 - Ondas1]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo3 - Ondas2]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo4 - FFT]]=====  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- =====[[Grupo5 - Eq. Schroedinger]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Ising 2D]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Monte Carlo]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Lennard Jones]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - BOIDS]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Tráfego]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste_conv]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Teste2]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Dilema Do Prisioneiro]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--===== [[Grupo - Modelo Sznajd]] ===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Modelo de Potts]]===== --&amp;gt;&lt;br /&gt;
&amp;lt;!--=====[[Grupo - Conservação do Parâmetro de Ordem]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====[[ Movimento Coletivo ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Modelo de Szabó]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Ressonância Estocástica ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] =====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=BOIDS&amp;diff=2741</id>
		<title>BOIDS</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=BOIDS&amp;diff=2741"/>
		<updated>2020-01-19T13:51:56Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alunos: Álvaro Essinger, Pedro Widniczck.&lt;br /&gt;
=Contexto Histórico=&lt;br /&gt;
Desenvolvido por Craig Reynolds, engenheiro de software, em 1986, é um algoritmo que busca, por meio de regras básicas, reproduzir o comportamento sincronizado de grupos de animais. Por exemplo manadas de animais terrestres, cardumes de peixes, bando de pássaros e etc. O nome BOID corresponde ao encurtamento da expressão em inglês &#039;&#039;“bird-oid object”&#039;&#039;, que se refere a um objeto “tipo pássaro”. Seu trabalho foi publicado em 87 sob o título original, em inglês, &#039;&#039;&amp;quot;Flocks, herds and schools: A distributed behavioral model&amp;quot;&#039;&#039;.&lt;br /&gt;
O modelo base de Craig já fora utilizado para diversas implementações e estudos. Como estudo comportamental de medo, interação entre animais via olfato modelando feromônios, mudança de liderança de um bando, dentre muitas outras aplicações interessantes.&lt;br /&gt;
&lt;br /&gt;
Posteriormente, em 1995, Tamás Vicsek, cientista húngaro, apresentou um modelo simplificado de BOID para o estudo de transições de fase de um sistema desordenado para um estado ordenado de larga escala. Esse tipo de transição espontânea é um exemplo de movimento coletivo. Esse modelo é bastante popular atualmente na área da física.&lt;br /&gt;
&lt;br /&gt;
=Motivação=&lt;br /&gt;
O movimento de animais em sincronia é extremamente complexo e é chave para sua sobrevivência em bando. Peixes, pássaros e mamíferos terrestres tem esse tipo de comportamento principalmente no que diz respeito a defesa em momentos em que sentem em perigo. A concentração intimida e o movimento confunde seus predadores. Além de ser extremamente prazeroso assistir um bando de pássaros ou um cardume de peixes em sua dança sincronizada.&lt;br /&gt;
&lt;br /&gt;
Este trabalho busca, em suas etapas, reproduzir um cardume de peixes em seu padrão síncrono de movimento e, posteriormente, na presença de um ou mais predadores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= O Algoritmo Para BOIDS =&lt;br /&gt;
Inicialmente são sorteadas posições e velocidades aleatórias para os objetos. As regras são então calculadas a cada de passo temporal. Embora cada boid tenha liberdade sobre todo o espaço descrito, o seu comportamento é influenciado apenas por outros dentro de uma região circular centrada no objeto dita &#039;&#039;raio de interação&#039;&#039; (R). Após o cálculo das novas posições e velocidades é somado um incremento de tempo e o algoritmo recomeça.&lt;br /&gt;
&lt;br /&gt;
== Separação ==&lt;br /&gt;
Interação de repulsão entre os indivíduos para evitar superconcentração local (ou no caso extremo uma superposição). Uma força central, dependente apenas da distância entre o boid e a origem da força:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{V}_j = \frac{S (\vec{r}_j - \vec{r}_k)}{||\vec{r}||^2}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;\vec{r} = (x_j-x_k)\hat{i} + (y_j-y_k)\hat{j}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; é o coeficiente de separação.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Rule_separation.gif|thumb|none|300px|Fig1. link:https://en.wikipedia.org/wiki/Boids#/media/File:Rule_separation.gif]]&lt;br /&gt;
&lt;br /&gt;
== Alinhamento (vetor velocidade) ==&lt;br /&gt;
A velocidade média dos parceiros próximos influencia o vetor velocidade do objeto, fazendo-o ter um comportamento parecido com sua vizinhança.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{V}^{n+1}_{j} = \frac{1}{k} \Sigma^{k}_{i=1} \vec{V}_{i}&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; sendo o número de vizinhos dentro do raio de interação.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Rule_alignment.gif|thumb|none|300px|Fig2. link:https://en.wikipedia.org/wiki/Boids#/media/File:Rule_alignment.gif]]&lt;br /&gt;
&lt;br /&gt;
== Coesão == &lt;br /&gt;
Os BOIDs interagentes tem um potencial de mola entre si, fazendo com que tenham a tendência de mover-se em direção ao centro de massa do grupo. Calculando primeiramente o centro de massa (CM) das partículas vizinhas utiliza-se da força elástica para simular uma mola entre o objeto e o CM da vizinhança.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{r}_{CM} = \frac{1}{N}\Sigma^N_{i=1} \vec{r}_i&amp;lt;/math&amp;gt;,  com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; sendo o número de partículas dentro do raio de interação.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{V}_j = C (\vec{r}_j - \vec{r}_{CM})&amp;lt;/math&amp;gt;, e &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt; sendo o coeficiente elástico.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Rule_cohesion.gif|thumb|none|300px|Fig3. link:https://en.wikipedia.org/wiki/Boids#/media/File:Rule_cohesion.gif]]&lt;br /&gt;
&lt;br /&gt;
== Ruído ==&lt;br /&gt;
Para reproduzir melhor um ser vivo, um pequeno ruído compõe a velocidade. Isso faz com que tenhamos uma maior flutuação no caminho que os boids traçam.&lt;br /&gt;
&lt;br /&gt;
sendo &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt; um número real aleatório,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;V_x = \cos{(\zeta)} V_x - \sin{(\zeta)} V_y&amp;lt;/math&amp;gt;, na componente x &lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;V_y = \sin{(\zeta)} V_x + \cos{(\zeta)} V_y&amp;lt;/math&amp;gt;, na componente y.&lt;br /&gt;
&lt;br /&gt;
==BOIDS Adaptados Para Cardume de Peixes==&lt;br /&gt;
&lt;br /&gt;
Para a realização da adaptação, utiliza-se outra regra de alinhamento, fazendo uma média ponderada entre a velocidade do boid no tempo t com a velocidade dos vizinhos, da forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{V}^{n+1}_{j} =  (1-M) v_{j} +  \frac{M}{k} \Sigma^{k}_{i=1} \vec{V}_{i}&amp;lt;/math&amp;gt;, M sendo o termo da média.&lt;br /&gt;
&lt;br /&gt;
as outras relaçoes, separação e coesão continuam idênticas. Porém também serão acrescentadas uma barreira repulsiva que dificulte a chegada dos boids na fronteira, sendo a constante de proporcionalidade e E o raio de interação da barreira, da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j} = a exp(-(\frac{x_{j} - L}{E})^2) &amp;lt;/math&amp;gt;,  para quando o boid se aproxima da extremidade superior do dominio, idem para componente x,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j} = a exp(-(\frac{x_{j}}{E})^2) &amp;lt;/math&amp;gt;, para quando o boid se aproxima da parte inferior do dominio. Idem para componente x,&lt;br /&gt;
&lt;br /&gt;
para todos os programas se L = 100, então E = 10 e para L = 1000 então E = 50.&lt;br /&gt;
&lt;br /&gt;
Também é feito que, para todos os boids que possuem mais de &amp;lt;math&amp;gt;0.2N&amp;lt;/math&amp;gt; vizinhos, sejam freiados, pois foi observado que peixes quando na presença de vizinhos (semelhantes) diminuem suas velocidades.&lt;br /&gt;
&lt;br /&gt;
== Predador ==&lt;br /&gt;
A partícula que representa o predador é uma barreira repulsiva. Obedecendo a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  F_{b} = B \frac{r_{j} - b_{k}}{ ||r_{j} - b_{k}||^{1.5} }  &amp;lt;/math&amp;gt;, onde B é o coeficiente da barreira e b é a posição do k-ésimo predador.&lt;br /&gt;
&lt;br /&gt;
No presente trabalho o predador não persegue os BOIDs, apenas se desloca em linha reta no plano com velocidade constante.&lt;br /&gt;
&lt;br /&gt;
Aqui[https://youtu.be/mgg6HhKRwY0?t=41] é possível ver o comportamento de um cardume de peixes na presença de algumas arraias.&lt;br /&gt;
&lt;br /&gt;
=Resultados e Discussão=&lt;br /&gt;
Nosso modelo foi simulado com condições de contorno periódicas em áreas quadradas de lados &amp;lt;math&amp;gt;L = 1000&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;L = 100&amp;lt;/math&amp;gt;. Abaixo apresentamos os resultados para cada regra isoladamente e ao final todas funcionando simultaneamente com e sem a presença do predador.&lt;br /&gt;
&lt;br /&gt;
== Separação ==&lt;br /&gt;
Aqui temos, como esperado, um comportamento semelhante ao de um gás ideal. Que busca um estado de menor energia ocupando todo o espaço disponível. Note que poucas regiões tem mais de 3 objetos próximos.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Separacao.gif‎ |thumb|none|500px| Simulação apenas da regra de separação entre BOIDS. ]]&lt;br /&gt;
&lt;br /&gt;
A animação abaixo busca ilustrar a dependência do parâmetro &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; no sistema, aumentando-o progressivamente.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Repelentes.gif‎ |thumb|none|500px| Simulação apenas da regra de separação entre BOIDS. ]]&lt;br /&gt;
&lt;br /&gt;
== Coesão ==&lt;br /&gt;
Para a coesão temos um comportamento semelhante ao condensamento de um gás em gotas ou gotículas. As regiões mais concentradas (círculo verde) perdem um pouco de sua capacidade de mobilidade e se tornam atrativas para partículas vizinhas (círculos azuis). Ao passo que objetos isolados (círculos roxos) se comportam independentemente até encontrarem um, ou mais, vizinhos ou regiões de alta concentração.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Coesao edit.gif |thumb|none|500px| Simulação apenas da regra de coesão entre BOIDS.]]&lt;br /&gt;
&lt;br /&gt;
Na animação abaixo temos o comportamento dinâmico do sistema para o parâmetro &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt; crescente. Note que, de fato, a medida que &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt; aumenta, também ocorre o aumento da concentração dos BOIDs.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Coesas.gif|thumb|none|500px| Simulação apenas da regra de coesão entre BOIDS. ]]&lt;br /&gt;
&lt;br /&gt;
== Alinhamento (vetor velocidade) ==&lt;br /&gt;
Na regra de alinhamento temos o comportamento do vetor velocidade do objeto sendo influenciado pela velocidade das partículas na vizinhança. Na imagem estática fica difícil de diferenciar da regra de separação, porém, note como aqui há mais regiões com 3 ou mais BOIDs bem próximos. Em alguns casos pode-se notar que quase ocorre uma superposição.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Alinhamento 1.gif |thumb|none|500px| Simulação apenas da regra de alinhamento entre BOIDS. ]]&lt;br /&gt;
&lt;br /&gt;
A animação abaixo ilustra a influência da regra mostrando o sistema inicialmente com o alinhamento desligado e ligando-o logo após.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Alinhamento.gif‎ |thumb|none|500px| Animação da regra de alinhamento entre BOIDS. ]]&lt;br /&gt;
&lt;br /&gt;
== BOIDS (3 regras ligadas) ==&lt;br /&gt;
Aqui temos a implementação das 3 regras básicas ligadas.&lt;br /&gt;
&lt;br /&gt;
Os parâmetros usados nessa simulação foram:&lt;br /&gt;
&amp;lt;math&amp;gt;C = 0,1 ; S = 0,4&amp;lt;/math&amp;gt;, nesse caso não temos o parâmetro &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; pois só é utilizada a media aritmética das componentes.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:BOIDS.gif |thumb|none|500px| Animação BOIDS sem adaptação de cardume. Código:[https://fiscomp.if.ufrgs.br/index.php/Grupo_-_BOIDS/codigo_BOIDS] ]]&lt;br /&gt;
&lt;br /&gt;
== BOIDS Adaptados Para Cardume de Peixes ==&lt;br /&gt;
Implementação das 2 regras básicas de coesão e separação com a modificação da regra de alinhamento buscando um comportamento de grupo mais real. Note que aqui, ao se juntarem, a velocidade diminui. Pois a velocidade está dependo da quantidade de vizinhos.&lt;br /&gt;
&lt;br /&gt;
Os parâmetros utilizados foram:&lt;br /&gt;
&amp;lt;math&amp;gt;C = 0,2; S = 0,3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:BoidsMOD.gif |thumb|none|500px| Simulação BOIDS com otimização de velocidade do cardume. Código: [https://fiscomp.if.ufrgs.br/index.php/Grupo_-_BOIDS/codigo_BOIDS_cardume]]]&lt;br /&gt;
&lt;br /&gt;
Para melhorar o comportamento do cardume, fora implementada uma barreira fraca nas bordas da região. Isso fará muita diferença na visualização da situação com predadores.&lt;br /&gt;
&lt;br /&gt;
Na situação abaixo foram usados os seguintes parâmetros:&lt;br /&gt;
&amp;lt;math&amp;gt;C = 0.05; S =0.3; M=0.15 e B = 0.6&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Barreiranaborda.gif |thumb|none|500px| Simulação BOIDS com otimização de velocidade do cardume e barreira fraca nas bordas. Código[https://fiscomp.if.ufrgs.br/index.php/Grupo_-_BOIDS/codigo_barreira_fronteira]]]&lt;br /&gt;
&lt;br /&gt;
== Predador ==&lt;br /&gt;
Resultado obtido com as regras de coesão, separação e alinhamento adaptado para cardume de peixes implementadas. Aqui buscamos colocar os predadores em cena depois de algum tempo dos objetos criados para que o cardume se organize.&lt;br /&gt;
&lt;br /&gt;
Os parâmetros melhores ajustados que encontramos para essa situação foram:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;C = 0,05; S= 0,3; M = 0,15; B = 0,6&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Predador.jpg |thumb|none|500px| BOIDs na presença de dois predadores.]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:PREDADOR.gif |thumb|none|500px| Animação dos BOIDs na presença de dois predadores. Código[https://fiscomp.if.ufrgs.br/index.php/Grupo_-_BOIDS/codigo_BOIDS_predador]]]&lt;br /&gt;
&lt;br /&gt;
= Conclusão =&lt;br /&gt;
O comportamento coletivo sincronizado de animais é muito complexo. O estudo do cardume de peixes num sistema 2D é uma simplificação mas que nos dá ideias boas das regras básicas de comportamento e otimizações posteriores sobre o objeto de estudo. A regra modificada de alinhamento nos trás um comportamento mais real do cardume de peixes. Outras otimizações poderiam inserir diversas outras regras, como por exemplo um sentimento de nervosismo no bando pela presença de muitos predadores pode fazer o grupo se mover mais rápido e etc. Além disso o algoritmo BOID se torna muito intuitivo de ser trabalhado, podendo ser tratado com regras distintas, ligando e desligando como quisermos.&lt;br /&gt;
&lt;br /&gt;
=Desenvolvimento em C=&lt;br /&gt;
Abaixo verá trechos do código em linguagem de programação C utilizados no trabalho para as regras e etapas.&lt;br /&gt;
&lt;br /&gt;
Link para o código completo[https://fiscomp.if.ufrgs.br/index.php/Grupo_-_BOIDS/codigo].&lt;br /&gt;
&lt;br /&gt;
== Coesão ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      //**********Coesao Entre Particulas e CM**********//&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      for(m=0;m&amp;lt;N;m++){ // laço das particulas &lt;br /&gt;
	if(norm(r[j][1]-r[m][1],r[j][0]-r[m][0])&amp;lt;R){// se as particulas tiverem a uma distancia menor q &amp;quot;R&amp;quot;&lt;br /&gt;
	  cont++;          // acrescenta no contador &lt;br /&gt;
	  x = x + r[m][0]; // acrescenta na posicao das particulas na comp. x&lt;br /&gt;
	  y = y + r[m][1]; // acrescenta na posicao das particulas na comp. y&lt;br /&gt;
	}	 &lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      if(cont&amp;gt;1){ // se contador for cont &amp;gt; 1&lt;br /&gt;
	x = x/cont;     // media aritmetica na componente x       &lt;br /&gt;
	y = y/cont;     // media aritmetica a componente y&lt;br /&gt;
	&lt;br /&gt;
	v[j][0] = v[j][0] - C*(r[j][0] - x)/L; // atualiza velocidade c potencial de mola na componente x&lt;br /&gt;
	v[j][1] = v[j][1] - C*(r[j][1] - y)/L; // atualiza velocidade c potencial de mola na componente y &lt;br /&gt;
      }   &lt;br /&gt;
      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Separação ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      //**********Separacao Entre Particulas**********//&lt;br /&gt;
      &lt;br /&gt;
      for(l=0;l&amp;lt;N;l++){ //laço para particulas&lt;br /&gt;
	if(l==j){  // se a particula for ela mesma nao faz nada &lt;br /&gt;
	  &lt;br /&gt;
	}else{     // se nao é ela entao&lt;br /&gt;
	  &lt;br /&gt;
	  if(norm(r[j][0]-r[l][0],r[j][1]-r[l][1])&amp;lt;rmin){ // se as particulas estao a uma distancia menor que  &amp;quot;rmin&amp;quot;&lt;br /&gt;
	    v[j][0] = v[j][0] + S*(r[j][0] - r[l][0])/pow(norm(r[l][0]-r[j][0],r[l][1]-r[j][1]),2); // Atualiza velocidade c potencial analogo a lei de Coulomb na componente x&lt;br /&gt;
	            &lt;br /&gt;
	    v[j][1] = v[j][1] + S*(r[j][1] - r[l][1])/pow(norm(r[l][0]-r[j][0],r[l][1]-r[j][1]),2); // Atualiza velocidade c potencial analogo a lei de Coulomb na componente y&lt;br /&gt;
	            &lt;br /&gt;
	  }&lt;br /&gt;
	}&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alinhamento (vetor Velocidade) ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    //**********Media da Velocidade dos Vizinhos**********//&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      for(k=0;k&amp;lt;N;k++){ // laço para todas as particulas&lt;br /&gt;
	if(k == j){  // se eh a mesma particula nao faz nada&lt;br /&gt;
	}else if(norm(r[j][1]-r[k][1],r[j][0]-r[k][0])&amp;lt;erre){ &lt;br /&gt;
	  kont++;              // se eh outra particula acrescenta no contador&lt;br /&gt;
	  vmx = vmx + v[k][0]; // acrescenta a velocidade na componente x&lt;br /&gt;
	  vmy = vmy + v[k][1]; // acrescenta a velocidade na componente y&lt;br /&gt;
	}&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      if(kont &amp;gt; 1){&lt;br /&gt;
	v[j][0] = (1-M)*v[j][0] + M*(vmx/kont); // media com peso M para a vel.&lt;br /&gt;
	v[j][1] = (1-M)*v[j][1] + M*(vmy/kont); // dos vizinhos e a propria&lt;br /&gt;
      }&lt;br /&gt;
         &lt;br /&gt;
      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ruído ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      //**********Ruido**********//&lt;br /&gt;
      if(rand()%2 == 0){ // criterio para decidir a fase&lt;br /&gt;
	randomi = - rand()/RAND_MAX; // fase&lt;br /&gt;
      }else{&lt;br /&gt;
	randomi = rand()/RAND_MAX; // fase&lt;br /&gt;
      }&lt;br /&gt;
      v[j][0] = cos(randomi)*v[j][0] + sin(randomi)*v[j][1];  // rotaçao&lt;br /&gt;
      v[j][1] = - sin(randomi)*v[j][0] + cos(randomi)*v[j][1]; // rotaçao&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Predador ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      //Barreira puntual no centro&lt;br /&gt;
      if(norm(r[j][0] -bx, r[j][1] - by) &amp;lt; ERRE){ // se a particula ta a menos&lt;br /&gt;
	                                          //  de &amp;quot;ERRE&amp;quot; entao&lt;br /&gt;
	&lt;br /&gt;
	if(r[j][0] &amp;lt; bx &amp;amp;&amp;amp; r[j][1] &amp;lt; by){ // se estiver atras e abaixo&lt;br /&gt;
	  v[j][0] = v[j][0] - B*norm(r[j][0] - bx, r[j][0] - bx)/pow(norm(r[j][0] - bx, r[j][1]- by),1.5); // atualiza velocidade com potencial analogo &amp;quot;gravitac&amp;quot;&lt;br /&gt;
	  v[j][1] = v[j][1] - B*norm(r[j][1] - by, r[j][1] - by)/pow(norm(r[j][0] - bx, r[j][1]- by),1.5); // atualiza velocidade com potencial analogo &amp;quot;gravitac&amp;quot;&lt;br /&gt;
	  &lt;br /&gt;
	}else if(r[j][0] &amp;gt; bx &amp;amp;&amp;amp; r[j][1] &amp;lt; by){ // se estiver a frente e abaixo&lt;br /&gt;
	  v[j][0] = v[j][0] + B*norm(r[j][0] - bx, r[j][0] - bx)/pow(norm(r[j][0] - bx, r[j][1]- by),1.5); // atualiza velocidade com potencial analogo &amp;quot;gravitac&amp;quot;&lt;br /&gt;
	  v[j][1] = v[j][1] - B*norm(r[j][1] - by, r[j][1] - by)/pow(norm(r[j][0] - bx, r[j][1]- by),1.5); // atualiza velocidade com potencial analogo &amp;quot;gravitac&amp;quot;&lt;br /&gt;
	  &lt;br /&gt;
	}else if(r[j][0] &amp;lt; bx &amp;amp;&amp;amp; r[j][1] &amp;gt; by){ // se estiver abaixo e acima&lt;br /&gt;
	  v[j][0] = v[j][0] - B*norm(r[j][0] - bx, r[j][0] - bx)/pow(norm(r[j][0] - bx, r[j][1]- by),1.5);// atualiza velocidade com potencial analogo &amp;quot;gravitac&amp;quot;&lt;br /&gt;
	  v[j][1] = v[j][1] + B*norm(r[j][1] - by, r[j][1] - by)/pow(norm(r[j][0] - bx, r[j][1]- by),1.5);// atualiza velocidade com potencial analogo &amp;quot;gravitac&amp;quot;&lt;br /&gt;
	  &lt;br /&gt;
	}else if(r[j][0] &amp;gt; bx &amp;amp;&amp;amp; r[j][1] &amp;gt; by){// se estiver a frente e acima&lt;br /&gt;
	  v[j][0] = v[j][0] + B*norm(r[j][0] - bx, r[j][0] - bx)/pow(norm(r[j][0] - bx, r[j][1]- by),1.5); // atualiza velocidade com potencial analogo &amp;quot;gravitac&amp;quot;&lt;br /&gt;
	  v[j][1] = v[j][1] + B*norm(r[j][1] - by, r[j][1] - by)/pow(norm(r[j][0] - bx, r[j][1]- by),1.5); // atualiza velocidade com potencial analogo &amp;quot;gravitac&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
*https://en.wikipedia.org/wiki/Boids&lt;br /&gt;
*Reynolds, C. W. (1987) Flocks, Herds, and Schools: A Distributed Behavioral Model, in Computer Graphics, 21(4) (SIGGRAPH &#039;87 Conference Proceedings) pages 25-34.&lt;br /&gt;
*Vicsek, T.; Czirok, A.; Ben-Jacob, E.;; Cohen, I.; Shochet, O. (1995). &amp;quot;Novel type of phase transition in a system of self-driven particles&amp;quot;. Physical Review Letters. 75: 1226–1229. [https://arxiv.org/abs/cond-mat/0611743 arXiv:cond-mat/0611743]&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=BOIDS&amp;diff=2740</id>
		<title>BOIDS</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=BOIDS&amp;diff=2740"/>
		<updated>2020-01-19T13:50:33Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;Alunos: Ben-Hur Cardoso e Vinícius Garcia   O potencial devido a interação entre duas partículas separadas por uma distância &amp;lt;math&amp;gt;r&amp;#039;&amp;lt;/math&amp;gt; pode ser modelado pelo potenc...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alunos: Ben-Hur Cardoso e Vinícius Garcia&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O potencial devido a interação entre duas partículas separadas por uma distância &amp;lt;math&amp;gt;r&#039;&amp;lt;/math&amp;gt; pode ser modelado pelo potencial de Lennard-Jones &amp;lt;ref&amp;gt;Lennard-Jones, J. E. (1924), &amp;quot;On the Determination of Molecular Fields&amp;quot;, Proc. R. Soc. Lond. A, 106 (738): 463–477&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;U&#039;(r&#039;) = 4 \epsilon \left [ \left ( \frac{\sigma}{r&#039;} \right )^{12} - \left ( \frac{\sigma}{r&#039;} \right )^{6} \right ]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posto em unidades reduzidas (&amp;lt;math&amp;gt;r \equiv r&#039;/ \sigma&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U \equiv U&#039; / \epsilon&amp;lt;/math&amp;gt;), o potencial reduz-se a:  &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;U(r) = 4  \left [ \left ( \frac{1}{r} \right )^{12} - \left ( \frac{1}{r} \right )^{6} \right ]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LennardJones.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
As quantidades físicas de interesse (como pressão, tempo e temperatura) possuem ordens de grandeza muito diferentes entre si quando se usa unidades do Sistema Internacional, o que faz com que fique difícil de identificar erros. Por causa disso, é computacionalmente viável trabalhar com o seguintes sistema de unidades básicas, que mantém os valores em baixas ordens de grandeza:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Grandeza&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Comprimento&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Tempo&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Massa&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Temperatura&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Energia&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Pressão&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Densidade&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Unidade&#039;&#039;&#039; &lt;br /&gt;
| &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;\sigma \sqrt{m_p / \epsilon}&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;m_p&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;\epsilon/k_B&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;\epsilon / \sigma^3&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;1 / \sigma^{3}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
onde &amp;lt;math&amp;gt;m_p&amp;lt;/math&amp;gt; é a massa da partícula e &amp;lt;math&amp;gt;k_B&amp;lt;/math&amp;gt; é a constante de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Note que as novas unidades são adimensionais. Assim, para comparar o modelo com um sistema físico real, deve-se converter para as unidades desejadas. É interessante notar que a simulação feita utilizando as unidades reduzidas permite visualizar que sistemas distintos serão equivalentes, já que há infinitas combinações de densidade, temperatura, &amp;lt;math&amp;gt;\epsilon &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\sigma &amp;lt;/math&amp;gt; com mesmas unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
== Método Monte Carlo ==&lt;br /&gt;
&lt;br /&gt;
Denomina-se método de Monte Carlo métodos estatísticos que se baseiam em amostragem aleatória massiva para cálculo numérico.&lt;br /&gt;
&lt;br /&gt;
=== Amostragem simples ===&lt;br /&gt;
&lt;br /&gt;
O cálculo numérico de uma integral utilizando Monte Carlo parte da ideia de que uma integral pode ser reescrita como:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; F = \int_a^b{f(x) dx} = (b - a)\langle f(x) \rangle &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, utiliza-se amostragem aleatória massiva para estimar &amp;lt;math&amp;gt; \langle f(x) \rangle &amp;lt;/math&amp;gt;, que é a média da função no intervalo de interesse. O estimador para a média real é a média amostral, que por ser uma medida estatística terá sempre um erro inerente associado.&lt;br /&gt;
&lt;br /&gt;
=== Amostragem por importância ===&lt;br /&gt;
&lt;br /&gt;
Um problema da amostragem simples é que ela utiliza uma distribuição uniforme, que pode, para uma função que tenha regiões onde seu valor é próximo de zero por exemplo, custar a estimar corretamente o valor médio da função. A fim de contornar isso, podemos utilizar uma distribuição &amp;lt;math&amp;gt; w(x) &amp;lt;/math&amp;gt; tal que a razão &amp;lt;math&amp;gt; \frac{f(x)}{w(x)} &amp;lt;/math&amp;gt; seja o mais constante possível. Reescrevendo a integral:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; F = \int_a^b{\frac{f(x)}{w(x)} w(x) dx} = (b - a)\left \langle \frac{f(x)}{w(x)} \right \rangle &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basicamente, é a média dos valores da função razão &amp;lt;math&amp;gt; \frac{f(x)}{w(x)} &amp;lt;/math&amp;gt; com distribuição &amp;lt;math&amp;gt; w(x) &amp;lt;/math&amp;gt; para sorteio dos pontos. Esse método diminui a variância amostral e faz com que seja muito mais eficiente a convergência do estimador média amostral para a média real da função.&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo de Metropolis–Hastings ===&lt;br /&gt;
&lt;br /&gt;
Dado uma amostra com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas, a abordagem introduzida por Metropolis (em 1953, algoritmo para distribuições simétricas) e Hastings (em 1970, algoritmo generalizado) segue o seguinte esquema:&lt;br /&gt;
&lt;br /&gt;
 (1) Selecionar uma partícula aleatóriamente, e calcular sua energia &amp;lt;math&amp;gt;U(r)&amp;lt;/math&amp;gt;;&lt;br /&gt;
 (2) Dado o deslocamento &amp;lt;math&amp;gt;\mathbf{r_n} = \mathbf{r} + \mathbf{\Delta}&amp;lt;/math&amp;gt;, calcular &amp;lt;math&amp;gt;U(r_n)&amp;lt;/math&amp;gt;;&lt;br /&gt;
 (3) Aceitar o movimento &amp;lt;math&amp;gt;\mathbf{r} \rightarrow \mathbf{r_n}&amp;lt;/math&amp;gt; com probabilidade &amp;lt;math&amp;gt;p = min\{1; \exp[-\beta (U(r_n) - U(r))]\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido ao fato das componentes de &amp;lt;math&amp;gt;\mathbf{\Delta}&amp;lt;/math&amp;gt; poderem assumir valores postivos e negativos (com a nova posição limitada por alguma condição de contorno), após ser aceito a mudança de posição de uma dada partícula, elá poderá ser selecionada (no próximo passo) com a mesma probabilidade e voltar a sua posição original. Isso garante a condição de balanço detalhado. &amp;lt;ref&amp;gt; Daan Frenkel, Berend Smit, &amp;quot;Understanding molecular simulation: from algorithms to applications&amp;quot;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estimadores no Equilíbrio ===&lt;br /&gt;
Em todos os exemplos tratados aqui, será usado o ensemble NVT (com o número de partículas, volume e temperatura constantes) com &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; dimensões. Dado isso, os sistemas são caracterizados com um densidade e uma temperatura. Com tais sistemas no equilíbrio, são estimadas (média de sucessivas medidas) a energia total e a pressão, dadas respectivamente por:&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;math&amp;gt;U_T = \sum_i \sum_{j&amp;gt;i}U(r_{ij}) &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P = \frac{\rho}{\beta} + \frac{2\rho}{Nd}\sum_i \sum_{j&amp;gt;i}\mathbf{f(\mathbf{r_{ij}})} \cdot \mathbf{r_{ij}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\mathbf{r_{ij}} = \mathbf{r_{j}} - \mathbf{r_{i}}&amp;lt;/math&amp;gt;. Além disso, é interessante a análise da capacidade térmica&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;C_v = \frac{\langle U_T^2 \rangle - \langle U_T \rangle ^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A função radial de distribuição de pares, é uma função que estima o quão provável é encontrar duas partículas a uma distância &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; dentro de um sistema de várias partículas. Em um sistema de &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas, o &amp;lt;math&amp;gt;g(r)&amp;lt;/math&amp;gt; é definido como a média do número de partículas a uma distância &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; g(r)=\frac{1}{N\rho}\langle\sum_{i=1}^N\sum_{j\neq i}^N\delta(r-|r_i-r_j|)  \rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A distribuição de densidades é calculada dividindo espacialmente o sistema, no nosso caso de lado &amp;lt;math&amp;gt; L &amp;lt;/math&amp;gt;, em &amp;lt;math&amp;gt; M &amp;lt;/math&amp;gt; células de lado &amp;lt;math&amp;gt; \frac{L}{M} &amp;lt;/math&amp;gt; e acumular em um histograma as densidades das células. Essa medida é relevante para identificação de fases no sistema.&lt;br /&gt;
&lt;br /&gt;
== Detalhes Técnicos==&lt;br /&gt;
&lt;br /&gt;
=== Condições de Contorno ===&lt;br /&gt;
&lt;br /&gt;
Qualquer sistema possível de ser feito hoje com método Monte Carlo, apesar do grande poder computacional disponível, fica distante do limite termodinâmico. As condições de contorno podem ser estabelecidas de forma a tentar contornar isso. As condições utilizadas neste trabalho foram condições de contorno periódicas, que possibilitam que o sistema se comporte como se fosse muito maior do que é, desde que ele seja isotrópico.&lt;br /&gt;
&lt;br /&gt;
=== Convenção da imagem mínima ===&lt;br /&gt;
&lt;br /&gt;
Construindo um sistema cúbico de lado L, com um número N de partículas fixo, as condições de contorno periódicas fazem com a simulação não se limite ao cubo. Ao calcular a interação entre duas partículas, portanto, a distância entre elas não é unívoca, já que há incontáveis cópias de cada uma, repetindo-se periodicamente. Resolve-se esse problema utilizando-se da convenção da imagem mínima, em que é calculada a interação com a imagem mais próxima das outras.&lt;br /&gt;
&lt;br /&gt;
=== Truncamento nas interações ===&lt;br /&gt;
&lt;br /&gt;
Um problema da condição de contorno periódica é que, a princípio, cada partícula interagiria com todas as outras do sistema, que devido ao fato de ser periodicamente repetido, seriam infinitas. Como o potencial utilizado é de curto alcance, deve ser possível, de alguma forma, limitar as interações entre as partículas sem perda dos significados numéricos da simulação. Pode-se, então, truncar as interações de uma partícula &amp;lt;math&amp;gt; i &amp;lt;/math&amp;gt; a partir de uma distância de corte &amp;lt;math&amp;gt; r_c &amp;lt;/math&amp;gt; de forma que há uma descontinuidade no potencial dessa partícula na esfera de raio &amp;lt;math&amp;gt; r_c &amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: mic.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assim o potencial simulado é:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; U_{trunc}(r) = \begin{cases}U_{LJ}(r) &amp;amp; , r \leq r_c\\0 &amp;amp; , r &amp;gt; r_c \end{cases}  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse é o chamado truncamento simples. O subíndice LJ se refere ao potencial de Lennard-Jones. O problema é que isso cria uma contribuição indesejada à pressão, já que há uma força de impulso por conta dessa descontinuidade do potencial.&lt;br /&gt;
&lt;br /&gt;
Pode-se, então, usar o truncamento com deslocamento, que evita essa descontinuidade fazendo uma subtração em todo ponto do módulo do potencial de Lennard-Jones à distância &amp;lt;math&amp;gt; r_c &amp;lt;/math&amp;gt;. Assim, o potencial simulado é:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; U_{deslocado}(r) = \begin{cases}U_{LJ}(r) - U_{LJ}(r_c) &amp;amp; , r \leq r_c\\0 &amp;amp; , r &amp;gt; r_c \end{cases}  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com esse potencial, que é contínuo, as forças serão sempre finitas, o que retira a força de impulso que alteraria medidas de pressão.&lt;br /&gt;
&lt;br /&gt;
=== Translação ===&lt;br /&gt;
&lt;br /&gt;
A possível nova posição de uma partícula será &amp;lt;math&amp;gt;(x_n, y_n, z_n)&amp;lt;/math&amp;gt; tal que &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;math&amp;gt; x_n = x + \Delta (\alpha - 0.5)&amp;lt;/math&amp;gt; &lt;br /&gt;
  &amp;lt;math&amp;gt; y_n = y + \Delta (\alpha - 0.5)&amp;lt;/math&amp;gt; &lt;br /&gt;
  &amp;lt;math&amp;gt; z_n = z + \Delta (\alpha - 0.5)&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
sendo &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; números aleatórios uniformemente distribuídos e &amp;lt;math&amp;gt; \Delta &amp;lt;/math&amp;gt; o deslocamento máximo permitido. Se a nova posição for aceita seguindo o algorítmo de Metropolis, a partícula assumirá essa posição. Caso contrário, a antiga configuração contribuirá novamente na média.  &amp;lt;ref&amp;gt; David P. Landau, Kurt Binder, &amp;quot;A Guide to Monte Carlo Simulations in Statistical Physics&amp;quot;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O tamanho de &amp;lt;math&amp;gt; \Delta &amp;lt;/math&amp;gt; não pode ser grande ao ponto de nunca ser aceito nem pequeno ao ponto de sempre ser aceito. Dado isso, buscando uma taxa de aceitação &amp;lt;math&amp;gt; \eta &amp;lt;/math&amp;gt; entre &amp;lt;math&amp;gt; 30 \%&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; 50 \% &amp;lt;/math&amp;gt;, define-se um &amp;lt;math&amp;gt; \Delta_0 &amp;lt;/math&amp;gt; inicial que vai se ajustando no decorrer da simulação, executando - a cada passo Monte Carlo (&amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos de simulação) - o seguinte algorítimo:&lt;br /&gt;
&lt;br /&gt;
  Se (&amp;lt;math&amp;gt; \eta &amp;lt; 0.3 &amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt; \Delta \leftarrow \Delta \times (\eta / 0.3)&amp;lt;/math&amp;gt;  &lt;br /&gt;
  Se (&amp;lt;math&amp;gt; \eta &amp;gt; 0.5 &amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt; \Delta \leftarrow \Delta \times (\eta / 0.5)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sistema bidimensional ==&lt;br /&gt;
&lt;br /&gt;
Dado um sistema com densidade &amp;lt;math&amp;gt; \rho = N / L^2 &amp;lt;/math&amp;gt; e temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;, os sistemas foram feitos com:&lt;br /&gt;
&lt;br /&gt;
 (A) &amp;lt;math&amp;gt; N = 256 &amp;lt;/math&amp;gt; partículas&lt;br /&gt;
 (B) Quadrado de lado &amp;lt;math&amp;gt; L =  (N / \rho)^{1/2} &amp;lt;/math&amp;gt;, utilizando a convenção da imagem mínima&lt;br /&gt;
 (C) Incialização aleatória&lt;br /&gt;
 (D) Distância de corte &amp;lt;math&amp;gt;r_c = 2.5 \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
 (E) Deslocamento máximo inicial &amp;lt;math&amp;gt;\Delta_0 = L/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
=== Transição de fase líquido-gás ===&lt;br /&gt;
A partir do artigo de M Rovere et al &amp;lt;ref&amp;gt; M Rovere et al (1990) &amp;quot;The gas-liquid transition of the two-dimensional Lennard-Jones fluid&amp;quot;.  J. Phys.: Condens. Matter 2 7009 &amp;lt;/ref&amp;gt;, que modelou o sistema apresentado, obtemos a informação da temperatura e da densidade críticas. Os valores encontrados pelos autores do artigo são &amp;lt;math&amp;gt; T = 0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \rho = 0.3 &amp;lt;/math&amp;gt;, que determinam qual intervalo de valores de temperatura e densidade apresentam coexistência de fases distintas.&lt;br /&gt;
&lt;br /&gt;
=== Transição de fase com densidade fixa ===&lt;br /&gt;
&lt;br /&gt;
Fixada a densidade &amp;lt;math&amp;gt; \rho = 0.3 &amp;lt;/math&amp;gt;, foram realizadas simulações para as diferentes temperaturas &amp;lt;math&amp;gt; T \in \{0.45, 0.50, 0.70\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Evolução temporal da Energia Total:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:time_evolution_U_d_03.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Observa-se que o sistema se encontra em equilíbrio a &amp;lt;math&amp;gt;10^5&amp;lt;/math&amp;gt; passos  Monte Carlo. Isso é corroborado pelos resultados do artigo de M Rovere et al. A partir do sistema equilibrado, são analisadas a distribuição de densidade e a função distribuição de pares para verificar a presença de uma (líquida) ou duas fases (líquida, gasosa), usando uma média de &amp;lt;math&amp;gt;10^5&amp;lt;/math&amp;gt; medidas sucessivas.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; T = 0.70&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t70_d_03.png|300px]] [[Arquivo: P_t70_d_03.png|300px]] [[Arquivo: g_t70_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Nesse caso observa-se apenas uma fase, com a densidade média sendo a densidade global do sistema, que é diferente do centro do pico (&amp;lt;math&amp;gt; \rho \approx 1.0 &amp;lt;/math&amp;gt;). Isso caracteriza a fase gasosa, que ocupa todo o espaço disponível. A função distribuição de pares rapidamente converge para 1 com pequenas oscilações, caracterizando um gás de alta densidade.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; T = 0.50&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t50_d_03.png|300px]] [[Arquivo: P_t50_d_03.png|300px]] [[Arquivo: g_t50_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Nesse caso observa-se a coexistência das fases gasosa e líquida. Além disso, pode-se observar a densidade característica aproximada de cada fase a essa temperatura centrada nos respectivos picos (&amp;lt;math&amp;gt; \rho_g \approx 0.2 &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \rho_l \approx 2.0 &amp;lt;/math&amp;gt;). A função distribuição de pares representa a de uma fase líquida.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; T = 0.45&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_03.png|300px]] [[Arquivo: P_t45_d_03.png|300px]] [[Arquivo: g_t45_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Nesse gráfico a primeira impressão é de coexistência de fases. Apesar disso, densidade zero não corresponde a uma fase real, e sim aos espaços vazios. Dessa forma, a fase aqui é a líquida. O &#039;&#039;snapshot&#039;&#039; permite visualizar isso, já que há aglomerados de densidade aparentemente constante separados por espaços praticamente sem partículas. A densidade da fase líquida a essa temperatura é aproximadamente o centro do pico da direita (&amp;lt;math&amp;gt; \rho \approx 2.3 &amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; T = 0.30&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t30_d_03.png|300px]] [[Arquivo: P_t30_d_03.png|300px]] [[Arquivo: g_t30_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Assim como no gráfico anterior, há dois picos mas apenas um representa uma fase. A principal diferença é que o pico em zero é bem maior e mais agudo que no caso &amp;lt;math&amp;gt; T = 0.45&amp;lt;/math&amp;gt;, o que ilustra que há mais espaço vazio. A densidade do líquido aqui é &amp;lt;math&amp;gt; \rho \approx 2.8 &amp;lt;/math&amp;gt;. Nota-se que o sistema parece estar se organizando numa fase hexagonal, apesar de ainda ser amorfa, e a densidade já é bem mais alta. A distribuição de pares tem mínimos bem menores do que para os parâmetros acima tratados, caracterizando um sistema que parece estar próximo da transição para a fase hexagonal de baixa energia.&lt;br /&gt;
&lt;br /&gt;
De maneira geral, é possível estimar o intervalo de parâmetros para o qual ocorre a transição de fase líquido-gás. É possível, também, visualizar, a partir da distribuição de densidades, a coexistência de fases, já que cada estado tem uma densidade média característica a dada temperatura.&lt;br /&gt;
&lt;br /&gt;
=== Transição de fase com temperatura fixa ===&lt;br /&gt;
&lt;br /&gt;
Dado a temperatura fixa &amp;lt;math&amp;gt; T = 0.45 &amp;lt;/math&amp;gt;, é observado o sistema para as diferentes densidades &amp;lt;math&amp;gt; \rho \in \{0.10, 0.30, 0.40\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Evolução temporal da Energia Total:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:time_evolution_U_T_45.png|500px|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observa-se que o sistema se encontra em equilíbrio a &amp;lt;math&amp;gt;10^5&amp;lt;/math&amp;gt; passos  Monte Carlo. Isso é corroborado pelos resultados do artigo de M Rovere et al. A partir do sistema equilibrado, são analisadas a distribuição de densidade e a função distribuição de pares para verificar a presença de uma (líquida) ou duas fases (líquida, gasosa), usando uma média de &amp;lt;math&amp;gt;10^5&amp;lt;/math&amp;gt; medidas sucessivas.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; \rho = 0.10&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_10.png|300px]] [[Arquivo: P_t45_d_10.png|300px]] [[Arquivo: g_t45_d_10.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Observa-se no &#039;&#039;snapshot&#039;&#039; que o sistema parece ter fase líquida e fase gasosa coexistindo. O resultado da distribuição de densidades pode ter sido afetado pelo aumento da área (consequentemente  também das células usadas para realização do histograma) já que o sistema ficou maior a fim de diminuir a densidade mantendo o número de partículas. Apesar disso, o resultado da função distribuição de pares parece razoável com a hipótese da fase líquida estar presente.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; \rho = 0.30&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_03.png|300px]] [[Arquivo: P_t45_d_03.png|300px]] [[Arquivo: g_t45_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Esse gráfico foi tratado anteriormente (para temperatura fixa) e está reproduzido novamente a fim de comparação.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; \rho = 0.40&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_40.png|300px]] [[Arquivo: P_t45_d_40.png|300px]] [[Arquivo: g_t45_d_40.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Nesse sistema há a presença de fase líquida com menos espaços vazios. O pico de densidade da fase líquida situa-se em &amp;lt;math&amp;gt; \rho \approx 1.5 &amp;lt;/math&amp;gt;. Essa queda da densidade do líquido com aumento da densidade do sistema indica que uma transição de fase para gás pode estar próxima para esses parâmetros.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; \rho = 0.70&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_70.png|300px]] [[Arquivo: P_t45_d_70.png|300px]] [[Arquivo: g_t45_d_70.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Observa-se que o sistema tem relativa homogeneidade e ocupa toda a área. Isso se caracteriza como um gás, como pode ser verificado na distribuição de densidade, que tem apenas um pico em  &amp;lt;math&amp;gt; \rho \approx 1.0 &amp;lt;/math&amp;gt; (que não é a média global). Apesar disso, o sistema parece relativamente organizado, o que sugere uma possível transição de fase. Também sugere isso a distribuição de pares, que tem mínimos baixos que remetem à fase sólida.&lt;br /&gt;
&lt;br /&gt;
== Sistema tridimensional ==&lt;br /&gt;
&lt;br /&gt;
Dado um sistema tridimensional com densidade &amp;lt;math&amp;gt; \rho = N / L^3&amp;lt;/math&amp;gt; e temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;, os diagramas foram feitos com:&lt;br /&gt;
&lt;br /&gt;
 (A) &amp;lt;math&amp;gt; N = 500 &amp;lt;/math&amp;gt; partículas&lt;br /&gt;
 (B) Cubo de lado &amp;lt;math&amp;gt; L =  (N / \rho)^{1/3} &amp;lt;/math&amp;gt; com convenção da imagem mínima&lt;br /&gt;
 (C) Incialização aleatória&lt;br /&gt;
 (D) Distância de corte &amp;lt;math&amp;gt;r_c \in \{2.5 \sigma, 3.0 \sigma, 3.5 \sigma \} &amp;lt;/math&amp;gt;&lt;br /&gt;
 (E) Deslocamento máximo inicial &amp;lt;math&amp;gt;\Delta_0 = L/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Transição de fase líquido-gás ===&lt;br /&gt;
Conforme o trabalho desenvolvido por Nicholas et al &amp;lt;ref&amp;gt;J.J. Nicolas, K.E. Gubbins, W.B. Streett, and D.J. Tildesley (1979). &amp;quot;Equation of state for&lt;br /&gt;
the Lennard-Jones fluid&amp;quot;. Mol. Phys., 37&amp;lt;/ref&amp;gt;, os valores críticos na transição de fase líquido-gás para um fluido de Lennard-Jones tridimensional são &amp;lt;math&amp;gt;T_{cr} =  1.35&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\rho_{cr} = 0.35&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== T = 2.0 (acima do valor crítico)===&lt;br /&gt;
&lt;br /&gt;
Tendo em vista que a análise no equilíbrio do sistema bidimensional foi feita após &amp;lt;math&amp;gt; 10^5 &amp;lt;/math&amp;gt; passos Monte Carlo, é bastante possível que os sistemas tridimensionais aqui tratados não tenham alcançado o equilíbrio. Para  &amp;lt;math&amp;gt;r_c  = 2.5\sigma&amp;lt;/math&amp;gt;, temos a evolução temporal da energia total e da pressão:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: t_t20_r25_U.png|500px]] [[Arquivo: t_t20_r25_P.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Estimando seus valores a partir do equilíbrio, determina-se o diagrama de fase:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:t20_r25_Pd.png|500px|center]] &lt;br /&gt;
&lt;br /&gt;
Além disso, tem-se as diferentes configurações espaciais para as densidades &amp;lt;math&amp;gt;\rho = 0.2&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\rho = 0.6&amp;lt;/math&amp;gt;, respectivamente:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:g_t20_d02_r25.png|500px]] [[Arquivo:g_t20_d06_r25.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Executando o mesmo esquema, o diagrama é comparado para diferentes valores de  &amp;lt;math&amp;gt;r_c&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:t20_Pd.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Nessa situação (acima do valor crítico de temperatura), o gráfico pressão - densidade mostra sua injetividade, e portanto, a não coexistência de fases (como esperado).&lt;br /&gt;
&lt;br /&gt;
==Referências==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2739</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2739"/>
		<updated>2020-01-19T13:50:18Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Grupo - BOIDS= */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ising 2D]]====&lt;br /&gt;
&lt;br /&gt;
====[[Lennard Jones - Monte Carlo]]====&lt;br /&gt;
&lt;br /&gt;
====[[BOIDS]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Tráfego]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Conservação do Parâmetro de Ordem]]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Lennard_Jones_-_Monte_Carlo&amp;diff=2738</id>
		<title>Lennard Jones - Monte Carlo</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Lennard_Jones_-_Monte_Carlo&amp;diff=2738"/>
		<updated>2020-01-19T13:49:44Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;Alunos: Ben-Hur Cardoso e Vinícius Garcia   O potencial devido a interação entre duas partículas separadas por uma distância &amp;lt;math&amp;gt;r&amp;#039;&amp;lt;/math&amp;gt; pode ser modelado pelo potenc...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alunos: Ben-Hur Cardoso e Vinícius Garcia&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O potencial devido a interação entre duas partículas separadas por uma distância &amp;lt;math&amp;gt;r&#039;&amp;lt;/math&amp;gt; pode ser modelado pelo potencial de Lennard-Jones &amp;lt;ref&amp;gt;Lennard-Jones, J. E. (1924), &amp;quot;On the Determination of Molecular Fields&amp;quot;, Proc. R. Soc. Lond. A, 106 (738): 463–477&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;U&#039;(r&#039;) = 4 \epsilon \left [ \left ( \frac{\sigma}{r&#039;} \right )^{12} - \left ( \frac{\sigma}{r&#039;} \right )^{6} \right ]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posto em unidades reduzidas (&amp;lt;math&amp;gt;r \equiv r&#039;/ \sigma&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U \equiv U&#039; / \epsilon&amp;lt;/math&amp;gt;), o potencial reduz-se a:  &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;U(r) = 4  \left [ \left ( \frac{1}{r} \right )^{12} - \left ( \frac{1}{r} \right )^{6} \right ]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LennardJones.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
As quantidades físicas de interesse (como pressão, tempo e temperatura) possuem ordens de grandeza muito diferentes entre si quando se usa unidades do Sistema Internacional, o que faz com que fique difícil de identificar erros. Por causa disso, é computacionalmente viável trabalhar com o seguintes sistema de unidades básicas, que mantém os valores em baixas ordens de grandeza:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Grandeza&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Comprimento&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Tempo&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Massa&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Temperatura&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Energia&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Pressão&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Densidade&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Unidade&#039;&#039;&#039; &lt;br /&gt;
| &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;\sigma \sqrt{m_p / \epsilon}&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;m_p&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;\epsilon/k_B&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;\epsilon / \sigma^3&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;1 / \sigma^{3}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
onde &amp;lt;math&amp;gt;m_p&amp;lt;/math&amp;gt; é a massa da partícula e &amp;lt;math&amp;gt;k_B&amp;lt;/math&amp;gt; é a constante de Boltzmann.&lt;br /&gt;
&lt;br /&gt;
Note que as novas unidades são adimensionais. Assim, para comparar o modelo com um sistema físico real, deve-se converter para as unidades desejadas. É interessante notar que a simulação feita utilizando as unidades reduzidas permite visualizar que sistemas distintos serão equivalentes, já que há infinitas combinações de densidade, temperatura, &amp;lt;math&amp;gt;\epsilon &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\sigma &amp;lt;/math&amp;gt; com mesmas unidades reduzidas.&lt;br /&gt;
&lt;br /&gt;
== Método Monte Carlo ==&lt;br /&gt;
&lt;br /&gt;
Denomina-se método de Monte Carlo métodos estatísticos que se baseiam em amostragem aleatória massiva para cálculo numérico.&lt;br /&gt;
&lt;br /&gt;
=== Amostragem simples ===&lt;br /&gt;
&lt;br /&gt;
O cálculo numérico de uma integral utilizando Monte Carlo parte da ideia de que uma integral pode ser reescrita como:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; F = \int_a^b{f(x) dx} = (b - a)\langle f(x) \rangle &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, utiliza-se amostragem aleatória massiva para estimar &amp;lt;math&amp;gt; \langle f(x) \rangle &amp;lt;/math&amp;gt;, que é a média da função no intervalo de interesse. O estimador para a média real é a média amostral, que por ser uma medida estatística terá sempre um erro inerente associado.&lt;br /&gt;
&lt;br /&gt;
=== Amostragem por importância ===&lt;br /&gt;
&lt;br /&gt;
Um problema da amostragem simples é que ela utiliza uma distribuição uniforme, que pode, para uma função que tenha regiões onde seu valor é próximo de zero por exemplo, custar a estimar corretamente o valor médio da função. A fim de contornar isso, podemos utilizar uma distribuição &amp;lt;math&amp;gt; w(x) &amp;lt;/math&amp;gt; tal que a razão &amp;lt;math&amp;gt; \frac{f(x)}{w(x)} &amp;lt;/math&amp;gt; seja o mais constante possível. Reescrevendo a integral:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; F = \int_a^b{\frac{f(x)}{w(x)} w(x) dx} = (b - a)\left \langle \frac{f(x)}{w(x)} \right \rangle &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basicamente, é a média dos valores da função razão &amp;lt;math&amp;gt; \frac{f(x)}{w(x)} &amp;lt;/math&amp;gt; com distribuição &amp;lt;math&amp;gt; w(x) &amp;lt;/math&amp;gt; para sorteio dos pontos. Esse método diminui a variância amostral e faz com que seja muito mais eficiente a convergência do estimador média amostral para a média real da função.&lt;br /&gt;
&lt;br /&gt;
=== Algoritmo de Metropolis–Hastings ===&lt;br /&gt;
&lt;br /&gt;
Dado uma amostra com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas, a abordagem introduzida por Metropolis (em 1953, algoritmo para distribuições simétricas) e Hastings (em 1970, algoritmo generalizado) segue o seguinte esquema:&lt;br /&gt;
&lt;br /&gt;
 (1) Selecionar uma partícula aleatóriamente, e calcular sua energia &amp;lt;math&amp;gt;U(r)&amp;lt;/math&amp;gt;;&lt;br /&gt;
 (2) Dado o deslocamento &amp;lt;math&amp;gt;\mathbf{r_n} = \mathbf{r} + \mathbf{\Delta}&amp;lt;/math&amp;gt;, calcular &amp;lt;math&amp;gt;U(r_n)&amp;lt;/math&amp;gt;;&lt;br /&gt;
 (3) Aceitar o movimento &amp;lt;math&amp;gt;\mathbf{r} \rightarrow \mathbf{r_n}&amp;lt;/math&amp;gt; com probabilidade &amp;lt;math&amp;gt;p = min\{1; \exp[-\beta (U(r_n) - U(r))]\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devido ao fato das componentes de &amp;lt;math&amp;gt;\mathbf{\Delta}&amp;lt;/math&amp;gt; poderem assumir valores postivos e negativos (com a nova posição limitada por alguma condição de contorno), após ser aceito a mudança de posição de uma dada partícula, elá poderá ser selecionada (no próximo passo) com a mesma probabilidade e voltar a sua posição original. Isso garante a condição de balanço detalhado. &amp;lt;ref&amp;gt; Daan Frenkel, Berend Smit, &amp;quot;Understanding molecular simulation: from algorithms to applications&amp;quot;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estimadores no Equilíbrio ===&lt;br /&gt;
Em todos os exemplos tratados aqui, será usado o ensemble NVT (com o número de partículas, volume e temperatura constantes) com &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; dimensões. Dado isso, os sistemas são caracterizados com um densidade e uma temperatura. Com tais sistemas no equilíbrio, são estimadas (média de sucessivas medidas) a energia total e a pressão, dadas respectivamente por:&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;math&amp;gt;U_T = \sum_i \sum_{j&amp;gt;i}U(r_{ij}) &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P = \frac{\rho}{\beta} + \frac{2\rho}{Nd}\sum_i \sum_{j&amp;gt;i}\mathbf{f(\mathbf{r_{ij}})} \cdot \mathbf{r_{ij}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\mathbf{r_{ij}} = \mathbf{r_{j}} - \mathbf{r_{i}}&amp;lt;/math&amp;gt;. Além disso, é interessante a análise da capacidade térmica&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;C_v = \frac{\langle U_T^2 \rangle - \langle U_T \rangle ^2}{k_BT^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A função radial de distribuição de pares, é uma função que estima o quão provável é encontrar duas partículas a uma distância &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; dentro de um sistema de várias partículas. Em um sistema de &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; partículas, o &amp;lt;math&amp;gt;g(r)&amp;lt;/math&amp;gt; é definido como a média do número de partículas a uma distância &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; g(r)=\frac{1}{N\rho}\langle\sum_{i=1}^N\sum_{j\neq i}^N\delta(r-|r_i-r_j|)  \rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A distribuição de densidades é calculada dividindo espacialmente o sistema, no nosso caso de lado &amp;lt;math&amp;gt; L &amp;lt;/math&amp;gt;, em &amp;lt;math&amp;gt; M &amp;lt;/math&amp;gt; células de lado &amp;lt;math&amp;gt; \frac{L}{M} &amp;lt;/math&amp;gt; e acumular em um histograma as densidades das células. Essa medida é relevante para identificação de fases no sistema.&lt;br /&gt;
&lt;br /&gt;
== Detalhes Técnicos==&lt;br /&gt;
&lt;br /&gt;
=== Condições de Contorno ===&lt;br /&gt;
&lt;br /&gt;
Qualquer sistema possível de ser feito hoje com método Monte Carlo, apesar do grande poder computacional disponível, fica distante do limite termodinâmico. As condições de contorno podem ser estabelecidas de forma a tentar contornar isso. As condições utilizadas neste trabalho foram condições de contorno periódicas, que possibilitam que o sistema se comporte como se fosse muito maior do que é, desde que ele seja isotrópico.&lt;br /&gt;
&lt;br /&gt;
=== Convenção da imagem mínima ===&lt;br /&gt;
&lt;br /&gt;
Construindo um sistema cúbico de lado L, com um número N de partículas fixo, as condições de contorno periódicas fazem com a simulação não se limite ao cubo. Ao calcular a interação entre duas partículas, portanto, a distância entre elas não é unívoca, já que há incontáveis cópias de cada uma, repetindo-se periodicamente. Resolve-se esse problema utilizando-se da convenção da imagem mínima, em que é calculada a interação com a imagem mais próxima das outras.&lt;br /&gt;
&lt;br /&gt;
=== Truncamento nas interações ===&lt;br /&gt;
&lt;br /&gt;
Um problema da condição de contorno periódica é que, a princípio, cada partícula interagiria com todas as outras do sistema, que devido ao fato de ser periodicamente repetido, seriam infinitas. Como o potencial utilizado é de curto alcance, deve ser possível, de alguma forma, limitar as interações entre as partículas sem perda dos significados numéricos da simulação. Pode-se, então, truncar as interações de uma partícula &amp;lt;math&amp;gt; i &amp;lt;/math&amp;gt; a partir de uma distância de corte &amp;lt;math&amp;gt; r_c &amp;lt;/math&amp;gt; de forma que há uma descontinuidade no potencial dessa partícula na esfera de raio &amp;lt;math&amp;gt; r_c &amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: mic.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assim o potencial simulado é:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; U_{trunc}(r) = \begin{cases}U_{LJ}(r) &amp;amp; , r \leq r_c\\0 &amp;amp; , r &amp;gt; r_c \end{cases}  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esse é o chamado truncamento simples. O subíndice LJ se refere ao potencial de Lennard-Jones. O problema é que isso cria uma contribuição indesejada à pressão, já que há uma força de impulso por conta dessa descontinuidade do potencial.&lt;br /&gt;
&lt;br /&gt;
Pode-se, então, usar o truncamento com deslocamento, que evita essa descontinuidade fazendo uma subtração em todo ponto do módulo do potencial de Lennard-Jones à distância &amp;lt;math&amp;gt; r_c &amp;lt;/math&amp;gt;. Assim, o potencial simulado é:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; U_{deslocado}(r) = \begin{cases}U_{LJ}(r) - U_{LJ}(r_c) &amp;amp; , r \leq r_c\\0 &amp;amp; , r &amp;gt; r_c \end{cases}  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com esse potencial, que é contínuo, as forças serão sempre finitas, o que retira a força de impulso que alteraria medidas de pressão.&lt;br /&gt;
&lt;br /&gt;
=== Translação ===&lt;br /&gt;
&lt;br /&gt;
A possível nova posição de uma partícula será &amp;lt;math&amp;gt;(x_n, y_n, z_n)&amp;lt;/math&amp;gt; tal que &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;math&amp;gt; x_n = x + \Delta (\alpha - 0.5)&amp;lt;/math&amp;gt; &lt;br /&gt;
  &amp;lt;math&amp;gt; y_n = y + \Delta (\alpha - 0.5)&amp;lt;/math&amp;gt; &lt;br /&gt;
  &amp;lt;math&amp;gt; z_n = z + \Delta (\alpha - 0.5)&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
sendo &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; números aleatórios uniformemente distribuídos e &amp;lt;math&amp;gt; \Delta &amp;lt;/math&amp;gt; o deslocamento máximo permitido. Se a nova posição for aceita seguindo o algorítmo de Metropolis, a partícula assumirá essa posição. Caso contrário, a antiga configuração contribuirá novamente na média.  &amp;lt;ref&amp;gt; David P. Landau, Kurt Binder, &amp;quot;A Guide to Monte Carlo Simulations in Statistical Physics&amp;quot;&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O tamanho de &amp;lt;math&amp;gt; \Delta &amp;lt;/math&amp;gt; não pode ser grande ao ponto de nunca ser aceito nem pequeno ao ponto de sempre ser aceito. Dado isso, buscando uma taxa de aceitação &amp;lt;math&amp;gt; \eta &amp;lt;/math&amp;gt; entre &amp;lt;math&amp;gt; 30 \%&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; 50 \% &amp;lt;/math&amp;gt;, define-se um &amp;lt;math&amp;gt; \Delta_0 &amp;lt;/math&amp;gt; inicial que vai se ajustando no decorrer da simulação, executando - a cada passo Monte Carlo (&amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos de simulação) - o seguinte algorítimo:&lt;br /&gt;
&lt;br /&gt;
  Se (&amp;lt;math&amp;gt; \eta &amp;lt; 0.3 &amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt; \Delta \leftarrow \Delta \times (\eta / 0.3)&amp;lt;/math&amp;gt;  &lt;br /&gt;
  Se (&amp;lt;math&amp;gt; \eta &amp;gt; 0.5 &amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt; \Delta \leftarrow \Delta \times (\eta / 0.5)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sistema bidimensional ==&lt;br /&gt;
&lt;br /&gt;
Dado um sistema com densidade &amp;lt;math&amp;gt; \rho = N / L^2 &amp;lt;/math&amp;gt; e temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;, os sistemas foram feitos com:&lt;br /&gt;
&lt;br /&gt;
 (A) &amp;lt;math&amp;gt; N = 256 &amp;lt;/math&amp;gt; partículas&lt;br /&gt;
 (B) Quadrado de lado &amp;lt;math&amp;gt; L =  (N / \rho)^{1/2} &amp;lt;/math&amp;gt;, utilizando a convenção da imagem mínima&lt;br /&gt;
 (C) Incialização aleatória&lt;br /&gt;
 (D) Distância de corte &amp;lt;math&amp;gt;r_c = 2.5 \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
 (E) Deslocamento máximo inicial &amp;lt;math&amp;gt;\Delta_0 = L/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
=== Transição de fase líquido-gás ===&lt;br /&gt;
A partir do artigo de M Rovere et al &amp;lt;ref&amp;gt; M Rovere et al (1990) &amp;quot;The gas-liquid transition of the two-dimensional Lennard-Jones fluid&amp;quot;.  J. Phys.: Condens. Matter 2 7009 &amp;lt;/ref&amp;gt;, que modelou o sistema apresentado, obtemos a informação da temperatura e da densidade críticas. Os valores encontrados pelos autores do artigo são &amp;lt;math&amp;gt; T = 0.5&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \rho = 0.3 &amp;lt;/math&amp;gt;, que determinam qual intervalo de valores de temperatura e densidade apresentam coexistência de fases distintas.&lt;br /&gt;
&lt;br /&gt;
=== Transição de fase com densidade fixa ===&lt;br /&gt;
&lt;br /&gt;
Fixada a densidade &amp;lt;math&amp;gt; \rho = 0.3 &amp;lt;/math&amp;gt;, foram realizadas simulações para as diferentes temperaturas &amp;lt;math&amp;gt; T \in \{0.45, 0.50, 0.70\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Evolução temporal da Energia Total:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:time_evolution_U_d_03.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Observa-se que o sistema se encontra em equilíbrio a &amp;lt;math&amp;gt;10^5&amp;lt;/math&amp;gt; passos  Monte Carlo. Isso é corroborado pelos resultados do artigo de M Rovere et al. A partir do sistema equilibrado, são analisadas a distribuição de densidade e a função distribuição de pares para verificar a presença de uma (líquida) ou duas fases (líquida, gasosa), usando uma média de &amp;lt;math&amp;gt;10^5&amp;lt;/math&amp;gt; medidas sucessivas.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; T = 0.70&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t70_d_03.png|300px]] [[Arquivo: P_t70_d_03.png|300px]] [[Arquivo: g_t70_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Nesse caso observa-se apenas uma fase, com a densidade média sendo a densidade global do sistema, que é diferente do centro do pico (&amp;lt;math&amp;gt; \rho \approx 1.0 &amp;lt;/math&amp;gt;). Isso caracteriza a fase gasosa, que ocupa todo o espaço disponível. A função distribuição de pares rapidamente converge para 1 com pequenas oscilações, caracterizando um gás de alta densidade.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; T = 0.50&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t50_d_03.png|300px]] [[Arquivo: P_t50_d_03.png|300px]] [[Arquivo: g_t50_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Nesse caso observa-se a coexistência das fases gasosa e líquida. Além disso, pode-se observar a densidade característica aproximada de cada fase a essa temperatura centrada nos respectivos picos (&amp;lt;math&amp;gt; \rho_g \approx 0.2 &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \rho_l \approx 2.0 &amp;lt;/math&amp;gt;). A função distribuição de pares representa a de uma fase líquida.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; T = 0.45&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_03.png|300px]] [[Arquivo: P_t45_d_03.png|300px]] [[Arquivo: g_t45_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Nesse gráfico a primeira impressão é de coexistência de fases. Apesar disso, densidade zero não corresponde a uma fase real, e sim aos espaços vazios. Dessa forma, a fase aqui é a líquida. O &#039;&#039;snapshot&#039;&#039; permite visualizar isso, já que há aglomerados de densidade aparentemente constante separados por espaços praticamente sem partículas. A densidade da fase líquida a essa temperatura é aproximadamente o centro do pico da direita (&amp;lt;math&amp;gt; \rho \approx 2.3 &amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; T = 0.30&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t30_d_03.png|300px]] [[Arquivo: P_t30_d_03.png|300px]] [[Arquivo: g_t30_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Assim como no gráfico anterior, há dois picos mas apenas um representa uma fase. A principal diferença é que o pico em zero é bem maior e mais agudo que no caso &amp;lt;math&amp;gt; T = 0.45&amp;lt;/math&amp;gt;, o que ilustra que há mais espaço vazio. A densidade do líquido aqui é &amp;lt;math&amp;gt; \rho \approx 2.8 &amp;lt;/math&amp;gt;. Nota-se que o sistema parece estar se organizando numa fase hexagonal, apesar de ainda ser amorfa, e a densidade já é bem mais alta. A distribuição de pares tem mínimos bem menores do que para os parâmetros acima tratados, caracterizando um sistema que parece estar próximo da transição para a fase hexagonal de baixa energia.&lt;br /&gt;
&lt;br /&gt;
De maneira geral, é possível estimar o intervalo de parâmetros para o qual ocorre a transição de fase líquido-gás. É possível, também, visualizar, a partir da distribuição de densidades, a coexistência de fases, já que cada estado tem uma densidade média característica a dada temperatura.&lt;br /&gt;
&lt;br /&gt;
=== Transição de fase com temperatura fixa ===&lt;br /&gt;
&lt;br /&gt;
Dado a temperatura fixa &amp;lt;math&amp;gt; T = 0.45 &amp;lt;/math&amp;gt;, é observado o sistema para as diferentes densidades &amp;lt;math&amp;gt; \rho \in \{0.10, 0.30, 0.40\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Evolução temporal da Energia Total:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:time_evolution_U_T_45.png|500px|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observa-se que o sistema se encontra em equilíbrio a &amp;lt;math&amp;gt;10^5&amp;lt;/math&amp;gt; passos  Monte Carlo. Isso é corroborado pelos resultados do artigo de M Rovere et al. A partir do sistema equilibrado, são analisadas a distribuição de densidade e a função distribuição de pares para verificar a presença de uma (líquida) ou duas fases (líquida, gasosa), usando uma média de &amp;lt;math&amp;gt;10^5&amp;lt;/math&amp;gt; medidas sucessivas.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; \rho = 0.10&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_10.png|300px]] [[Arquivo: P_t45_d_10.png|300px]] [[Arquivo: g_t45_d_10.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Observa-se no &#039;&#039;snapshot&#039;&#039; que o sistema parece ter fase líquida e fase gasosa coexistindo. O resultado da distribuição de densidades pode ter sido afetado pelo aumento da área (consequentemente  também das células usadas para realização do histograma) já que o sistema ficou maior a fim de diminuir a densidade mantendo o número de partículas. Apesar disso, o resultado da função distribuição de pares parece razoável com a hipótese da fase líquida estar presente.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; \rho = 0.30&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_03.png|300px]] [[Arquivo: P_t45_d_03.png|300px]] [[Arquivo: g_t45_d_03.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Esse gráfico foi tratado anteriormente (para temperatura fixa) e está reproduzido novamente a fim de comparação.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; \rho = 0.40&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_40.png|300px]] [[Arquivo: P_t45_d_40.png|300px]] [[Arquivo: g_t45_d_40.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Nesse sistema há a presença de fase líquida com menos espaços vazios. O pico de densidade da fase líquida situa-se em &amp;lt;math&amp;gt; \rho \approx 1.5 &amp;lt;/math&amp;gt;. Essa queda da densidade do líquido com aumento da densidade do sistema indica que uma transição de fase para gás pode estar próxima para esses parâmetros.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt; \rho = 0.70&amp;lt;/math&amp;gt; temos  que:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: snapshot_t45_d_70.png|300px]] [[Arquivo: P_t45_d_70.png|300px]] [[Arquivo: g_t45_d_70.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Observa-se que o sistema tem relativa homogeneidade e ocupa toda a área. Isso se caracteriza como um gás, como pode ser verificado na distribuição de densidade, que tem apenas um pico em  &amp;lt;math&amp;gt; \rho \approx 1.0 &amp;lt;/math&amp;gt; (que não é a média global). Apesar disso, o sistema parece relativamente organizado, o que sugere uma possível transição de fase. Também sugere isso a distribuição de pares, que tem mínimos baixos que remetem à fase sólida.&lt;br /&gt;
&lt;br /&gt;
== Sistema tridimensional ==&lt;br /&gt;
&lt;br /&gt;
Dado um sistema tridimensional com densidade &amp;lt;math&amp;gt; \rho = N / L^3&amp;lt;/math&amp;gt; e temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;, os diagramas foram feitos com:&lt;br /&gt;
&lt;br /&gt;
 (A) &amp;lt;math&amp;gt; N = 500 &amp;lt;/math&amp;gt; partículas&lt;br /&gt;
 (B) Cubo de lado &amp;lt;math&amp;gt; L =  (N / \rho)^{1/3} &amp;lt;/math&amp;gt; com convenção da imagem mínima&lt;br /&gt;
 (C) Incialização aleatória&lt;br /&gt;
 (D) Distância de corte &amp;lt;math&amp;gt;r_c \in \{2.5 \sigma, 3.0 \sigma, 3.5 \sigma \} &amp;lt;/math&amp;gt;&lt;br /&gt;
 (E) Deslocamento máximo inicial &amp;lt;math&amp;gt;\Delta_0 = L/2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Transição de fase líquido-gás ===&lt;br /&gt;
Conforme o trabalho desenvolvido por Nicholas et al &amp;lt;ref&amp;gt;J.J. Nicolas, K.E. Gubbins, W.B. Streett, and D.J. Tildesley (1979). &amp;quot;Equation of state for&lt;br /&gt;
the Lennard-Jones fluid&amp;quot;. Mol. Phys., 37&amp;lt;/ref&amp;gt;, os valores críticos na transição de fase líquido-gás para um fluido de Lennard-Jones tridimensional são &amp;lt;math&amp;gt;T_{cr} =  1.35&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\rho_{cr} = 0.35&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== T = 2.0 (acima do valor crítico)===&lt;br /&gt;
&lt;br /&gt;
Tendo em vista que a análise no equilíbrio do sistema bidimensional foi feita após &amp;lt;math&amp;gt; 10^5 &amp;lt;/math&amp;gt; passos Monte Carlo, é bastante possível que os sistemas tridimensionais aqui tratados não tenham alcançado o equilíbrio. Para  &amp;lt;math&amp;gt;r_c  = 2.5\sigma&amp;lt;/math&amp;gt;, temos a evolução temporal da energia total e da pressão:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo: t_t20_r25_U.png|500px]] [[Arquivo: t_t20_r25_P.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Estimando seus valores a partir do equilíbrio, determina-se o diagrama de fase:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:t20_r25_Pd.png|500px|center]] &lt;br /&gt;
&lt;br /&gt;
Além disso, tem-se as diferentes configurações espaciais para as densidades &amp;lt;math&amp;gt;\rho = 0.2&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\rho = 0.6&amp;lt;/math&amp;gt;, respectivamente:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:g_t20_d02_r25.png|500px]] [[Arquivo:g_t20_d06_r25.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Executando o mesmo esquema, o diagrama é comparado para diferentes valores de  &amp;lt;math&amp;gt;r_c&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:t20_Pd.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Nessa situação (acima do valor crítico de temperatura), o gráfico pressão - densidade mostra sua injetividade, e portanto, a não coexistência de fases (como esperado).&lt;br /&gt;
&lt;br /&gt;
==Referências==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2737</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2737"/>
		<updated>2020-01-19T13:49:24Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ising 2D]]====&lt;br /&gt;
&lt;br /&gt;
====[[Lennard Jones - Monte Carlo]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - BOIDS]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Tráfego]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Conservação do Parâmetro de Ordem]]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2736</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2736"/>
		<updated>2020-01-19T13:48:08Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ising 2D]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Lennard Jones]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - BOIDS]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Tráfego]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Conservação do Parâmetro de Ordem]]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ising_2D&amp;diff=2735</id>
		<title>Ising 2D</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ising_2D&amp;diff=2735"/>
		<updated>2020-01-19T13:46:23Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;&amp;#039;&amp;#039;&amp;#039;Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.&amp;#039;&amp;#039;&amp;#039;  O objetivo deste trabalho é estudar o comportamento de um sistema de Ising spins a partir do método de Monte Carlo...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Grupo: Ânderson Rosa, Caetano Pires e Lucas Doria.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
O objetivo deste trabalho é estudar o comportamento de um sistema de Ising spins a partir do método de Monte Carlo. O problema do ferromagnetismo em um material foi abordado utilizando o algoritmo de metrópolis, considerando que o sistema interagia com um reservatório térmico externo. Várias propriedades do sistema foram investigadas, tais como a magnetização total, a energia por spin, o calor específico e a suscetibilidade magnética do sistema.&lt;br /&gt;
&lt;br /&gt;
== Modelo de Ising ==&lt;br /&gt;
&lt;br /&gt;
A denominação &amp;quot;modelo de Ising&amp;quot; é utilizada para tratar um sistema de spins de Ising &amp;lt;math&amp;gt;s={s_1,s_2,..s_i,...s_N}&amp;lt;/math&amp;gt; que podem assumir valor &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;, respectivamente &amp;quot;up&amp;quot; e &amp;quot;down&amp;quot;, onde &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; é a quantidade máxima de spins, ao qual se acopla uma dinâmica que lhe proporciona relaxamento para um estado de equilíbrio. A evolução desse sistema de spins é descrito por uma dinâmica que possui as propriedades do processo de Markov de balanceamento detalhado e ergocidade, garantindo ao sistema que sua evolução o leva a estados estacionários de equilibrio descritos pela distribuição de Gibbs relacionada à hamiltoniada de Ising.&lt;br /&gt;
&lt;br /&gt;
O modelo de Ising 2D tratado neste trabalho possui seus spins organizados em uma rede quadrada bidimensional de tamanho &amp;lt;math&amp;gt;N=L\times L&amp;lt;/math&amp;gt; com vizinhança de Von Newmann e condições de contorno periódicas. A energia desse sistema é descrita pela equação &amp;lt;ref name=giordano&amp;gt;N. J. Giordano, &amp;quot;Computational Physics&amp;quot;. Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E = -J \sum_{&amp;lt;ij&amp;gt;} s_i s_j - \mu H \sum_i s_i,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a taxa de transição, &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; representa o campo magnético externo e &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; o momento magnético associado com cada spin. O primeiro somatório é sobre todas as vizinhanças de spins e o segundo sobre todos os spins. Neste trabalho, particularmente, escolhemos &amp;lt;math&amp;gt;J=1&amp;lt;/math&amp;gt; para favorecer menores energias em spins apontados para cima (&amp;lt;math&amp;gt;s=1&amp;lt;/math&amp;gt;), &amp;lt;math&amp;gt;\mu = 1 &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;0\le H&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A magnetização desse sistema é dada pela soma de todos os valores de spins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;M = \sum_{i=1}^N &amp;lt;s_i&amp;gt; &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Utilizando a abordagem da mecânica estatística, conforme descrito por Gibbs (1902), podemos estimar valores médios de propriedades macroscópicas de um sistema termodinâmico, como energia ou magnetização, a partir de uma amostragem de Boltzmann relativa ao valor da propriedade sobre todos os estados do sistema. Sendo assim, podemos estimar o valor energia do nosso sistema em estado de equilibro termodinâmico como sendo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&amp;lt;E&amp;gt; = \frac{1}{Z}\sum_{\nu}E_{\nu} e^{-E{\nu}/kT}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde Z é a função partição &amp;lt;math&amp;gt;Z =  \sum_{\nu} e^{-E{\nu}/kT} &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; E_{\nu}&amp;lt;/math&amp;gt; é a energia do sistema no estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; é a temperatura de um reservatório em contato com o sistema e &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a constante de Boltzmann, escolhida nesse trabalho como tendo valor unitário. O mesmo serve para a magnetização:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&amp;lt;M&amp;gt; = \frac{1}{Z}\sum_{\nu}|M_{\nu}| e^{-E{\nu}/kT}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; é medido sobre o módulo da &amp;lt;math&amp;gt;M_{\nu}&amp;lt;/math&amp;gt;, que é a magnetização no estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Outra medida relevante é a suscetibilidade magnética do sistema, dada por &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\chi = \frac{&amp;lt;M^2&amp;gt; - &amp;lt;M&amp;gt;^2}{Nk_BT},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; é o número total de spins &amp;lt;math&amp;gt;(L^2)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;&amp;lt;M^2&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;M&amp;gt;&amp;lt;/math&amp;gt; são, respectivamente, a média quadrática da magnetização e média da magnetização durante a simulação.&lt;br /&gt;
Por fim, temos a medida do calor específico por spin do sistema, dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;c_{spin} = \frac{&amp;lt;E^2&amp;gt; - &amp;lt;E&amp;gt;^2}{Nk_B^2T^2},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;&amp;lt;E^2&amp;gt;&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;&amp;lt;E&amp;gt;&amp;lt;/math&amp;gt; são, respectivamente, a média quadrática da energia do sistema e média da energia durante a simulação.&lt;br /&gt;
&lt;br /&gt;
== O Método de Monte Carlo ==&lt;br /&gt;
&lt;br /&gt;
=== Algorítmo de Metrópolis ===&lt;br /&gt;
Para o método de Monte Carlo responsável por gerar configurações do sistema, utilizaremos o Algorítmo de Metropolis. O algoritmo funcionará escolhendo repetidamente um novo estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e aceitando ou rejeitando o estado de acordo com uma probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; de transitar de um estado antigo &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para o novo estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;. O algoritmo que iremos descrever utiliza a dinâmica de inversão única de spins, onde apenas um spin será invertido aleatoriamente para termos um novo estado a ser testado. &lt;br /&gt;
É válido notar que a dinâmica de inversão única de spins não é o que caracteriza o método de Metropolis, pois ainda poderíamos ter esse método ao utilizarmos uma dinâmica com mais spins sendo invertidos simultaneamente. &lt;br /&gt;
&lt;br /&gt;
Temos que a condição de balanceamento detalhado é dada por &amp;lt;ref&amp;gt;M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = e^{-\frac{\Delta E}{k_BT}}, \qquad (3)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\Delta E = E_\nu - E_\mu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Vamos supor que tenhamos os estados &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e que temos a relação de energias: &amp;lt;math&amp;gt;E_\mu &amp;lt; E_\nu&amp;lt;/math&amp;gt;. Então, a maior das duas chances de aceitação é &amp;lt;math&amp;gt;A(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;, portanto iremos igualar essa probabilidade a 1. &lt;br /&gt;
Para que &amp;lt;math&amp;gt;(3)&amp;lt;/math&amp;gt; seja respeitada, iremos definir o valor de &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;e^{-\frac{\Delta E}{k_BT}}&amp;lt;/math&amp;gt;. Temos, assim, o algoritmo de Metropolis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
e^{-\frac{\Delta E}{k_BT}}, \qquad \text{se } \Delta E &amp;gt; 0\\\\&lt;br /&gt;
1, \qquad \qquad \text{caso contrario}.&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa forma, sempre que tivermos um estado cuja energia seja menor do que a do estado atual, iremos aceitar a transição, mas se a energia for maior, teremos uma pequena probabilidade de trocarmos de estado.&lt;br /&gt;
&lt;br /&gt;
=== Implementação ===&lt;br /&gt;
Para a implementação do método, utilizaremos uma matriz &amp;lt;math&amp;gt;L\times L&amp;lt;/math&amp;gt; com condições de contorno periódicas, i.e., faremos com que os vizinhos de uma fronteira da matriz sejam os spins na outra fronteira correspondente. Isso irá garantir que todos os spins tenham o mesmo número de vizinhos e a mesma geometria local. Cada spin da matriz poderá assumir apenas os valores de +1 e -1, representando a magnetização desse spin.&lt;br /&gt;
&lt;br /&gt;
Para o estado inicial do sistema, podemos escolher entre duas opções muito utilizadas: ou determinamos &amp;lt;math&amp;gt;T=0&amp;lt;/math&amp;gt; e todos os spins, portanto, estarão alinhados na mesma direção, ou assumimos &amp;lt;math&amp;gt;T=\infty&amp;lt;/math&amp;gt;, o que fará com que tenhamos uma configuração aproximadamente aleatória, garantido uma magnetização média do sistema de aproximadamente 0.&lt;br /&gt;
&lt;br /&gt;
Uma boa estratégia para otimizarmos a simulação é calcular a energia total do sistema no estado inicial utilizando a equação &amp;lt;math&amp;gt;(1)&amp;lt;/math&amp;gt; e durante a dinâmica da simulação calcularmos apenas &amp;lt;math&amp;gt;\Delta E&amp;lt;/math&amp;gt;, atualizando a nova energia do sistema com &amp;lt;math&amp;gt;E_\nu = E_\mu + \Delta E&amp;lt;/math&amp;gt;.&lt;br /&gt;
Para obtermos um novo estado, escolhemos aleatoriamente um spin e calculamos a variação de energia ao invertemos ele. Da equação &amp;lt;math&amp;gt;(1)&amp;lt;/math&amp;gt;, temos que só um spin &amp;lt;math&amp;gt;(s_k)&amp;lt;/math&amp;gt; irá mudar de estado; logo, apenas seus vizinhos serão afetados. Temos que, para qualquer valor de &amp;lt;math&amp;gt;s_k&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;s_k^\nu - s_k^\mu = -2s_k^\mu&amp;lt;/math&amp;gt;. Utilizando isso e fazendo a diferença entre as energias, podemos escrever &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta E = 2s_k^\mu(J\displaystyle \sum_j s_{j} + H)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde o somatório se dá nos vizinhos de &amp;lt;math&amp;gt;s_k&amp;lt;/math&amp;gt; e, como os vizinhos de &amp;lt;math&amp;gt;s_k&amp;lt;/math&amp;gt; não mudam de estado, &amp;lt;math&amp;gt;s_j^\mu = s_j^\nu&amp;lt;/math&amp;gt; para qualquer &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma similar ao que foi feito para a energia, uma boa estratégia de otimização para a medida da magnetização é calcular a magnetização total do sistema no estado inicial e então somar &amp;lt;math&amp;gt;\Delta M&amp;lt;/math&amp;gt; sempre que o sistema aceitar a mudança de estado. Sendo que para qualquer &amp;lt;math&amp;gt;s_k&amp;lt;/math&amp;gt; temos &amp;lt;math&amp;gt;\Delta M = s_k^\nu - s_k^\mu = 2s_k^\nu&amp;lt;/math&amp;gt;, temos que &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;M_\nu = M_\mu + 2s_k^\nu.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Antes de começar o registro das medidas de magnetização e energia do sistema é interessante dar um tempo de equilíbrio para o sistema, ou seja, deixar a simulação ocorrer durante um determinado tempo para eliminar problemas transientes do sistema e o sistema tender a um estado de equilíbrio. Após esse tempo, inicia-se o registro. Os valores do calor específico por spin e da susceptibilidade magnética são feitos após o fim da dinâmica de Monte Carlo.&lt;br /&gt;
&lt;br /&gt;
Durante todo o processo de simulação que fizemos, utilizamos medidas de temperatura em unidades de energia. Dessa forma, temos &amp;lt;math&amp;gt;k_B = 1&amp;lt;/math&amp;gt;. Além disso, também utilizamos &amp;lt;math&amp;gt;J=1&amp;lt;/math&amp;gt;. Também escolhemos medir o tempo de simulação em passos de Monte Carlo (Monte Carlo steps, ou apenas MCS), que representa o fato de que todos os spins do sistema receberam a chance de inverterem de estado. Em outras palavras, em um sistema com N spins, já ocorreram N seleções aleatórias de spins para tentar a mudança de estado. A partir disso, podemos utilizar o método de amostragem por importância para medir as médias da energia e da magnetização, além das médias da magnetização quadrada e da energia quadrada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&amp;lt;E&amp;gt; = \frac{1}{MCS}\sum_{\nu}E_{\nu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&amp;lt;E^2&amp;gt; = \frac{1}{MCS}\sum_{\nu}E_{\nu}^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&amp;lt;M&amp;gt; = \frac{1}{MCS}\sum_{\nu}|M_{\nu}|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&amp;lt;M^2&amp;gt; = \frac{1}{MCS}\sum_{\nu}M_{\nu}^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;MCS&amp;lt;/math&amp;gt; é a quantidade de passos de Monte Carlo dadas.&lt;br /&gt;
&lt;br /&gt;
== Resultados ==&lt;br /&gt;
Para analisarmos os resultados obtidos pelo método de Metropolis, realizamos diversas medidas em sistemas com dimensões &amp;lt;math&amp;gt;20\times20&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;36\times36&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;48\times48&amp;lt;/math&amp;gt;. Utilizamos para todas as medidas um tempo de equilíbrio de &amp;lt;math&amp;gt;10^5&amp;lt;/math&amp;gt; Monte Carlo Steps e fizemos &amp;lt;math&amp;gt;10^6&amp;lt;/math&amp;gt; medidas.&lt;br /&gt;
&lt;br /&gt;
Primeiramente, fizemos medidas para sistemas sem campo magnético, ou seja, &amp;lt;math&amp;gt;H=0&amp;lt;/math&amp;gt;. Com isso, montamos histogramas da magnetização por spins e da energia por spins do sistema para cada um dos 3 casos em três diferentes temperaturas:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Hist20.png|frameless|upright=5]]&lt;br /&gt;
[[Arquivo:Hist36.png|frameless|upright=5]]&lt;br /&gt;
[[Arquivo:Hist48.png|frameless|upright=5]]&lt;br /&gt;
&lt;br /&gt;
Imediatamente é possível notar que, para todas as temperaturas, quanto maior o número de spins, menor é a variância da energia, com as larguras das gaussianas ficando menores. Para a magnetização, para temperaturas menores que a temperatura crítica &amp;lt;math&amp;gt;T_c \approx 2.269&amp;lt;/math&amp;gt; e tempos de simulação suficientemente longos, era esperado que tivéssemos duas gaussianas simétricas e de mesma altura, já que os spins estão livres para assumirem valores de +1 e -1. Esse resultado é facilmente observado para &amp;lt;math&amp;gt;T=2.2&amp;lt;/math&amp;gt; no sistema 20x20, mas para os sistemas 36x36 e 48x48 as gaussianas possuem alturas diferentes. Esses resultados são indicativos do efeito de redes maiores, onde temos que quanto maior a rede, menor a probabilidade de haver mudança de magnetização do sistema, exigindo tempos de simulação cada vez maiores. Esse efeito pode ser observado ao compararmos as séries temporais da magnetização dos três sistemas:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Séries.png|thumb|upright=5|none|alt=Alt text|Séries temporais da magnetização para os sistemas 20x20 (esquerda), 36x36 (centro) e 48x48 (direita).]]&lt;br /&gt;
&lt;br /&gt;
Como podemos ver pelas séries temporais, no mesmo período de tempo, o sistema 20x20 troca de estado diversas vezes, enquanto o sistema 36x36 troca apenas uma vez para o estado -1 e o sistema 48x48 não troca nenhuma vez para o estado -1.&lt;br /&gt;
Além disso, pelos histogramas, é possível notar que quanto maior a temperatura em relação à temperatura crítica, mais a magnetização do sistema tende a zero, ou seja, as duas gaussianas vão se somando em &amp;lt;math&amp;gt;M=0&amp;lt;/math&amp;gt;, resultado da transição de fase do ferromagnetismo para o paramagnetismo.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:MeExT.png|thumb|upright=5|none|alt=Alt text|Energia (esquerda) e magnetização (direita) em função da temperatura para diferentes tamanhos de rede. &amp;lt;math&amp;gt;T_c \approx 2.269&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
Fazendo um gráfico para a energia em função da temperatura e da magnetização em função da temperatura para cada um dos sistemas, podemos ver que a energia aumenta com o aumento da temperatura, enquanto a magnetização decresce com o aumento da temperatura. Também é possível notar que em ambos os gráficos os resultados para os três tamanhos de sistemas são aproximadamente iguais até a a temperatura aproximar-se da temperatura crítica. Conforme a temperatura se aproxima da transição de fase, os resultados deixam de ser aproximadamente iguais, pois a energia passa a ser maior para redes maiores e voltam a tornarem-se similares após &amp;lt;math&amp;gt;T=2.5&amp;lt;/math&amp;gt;. Para a magnetização, ao se aproximar da transição de fase, a magnetização decresce muito mais rapidamente em redes maiores, com os resultados tendendo a zero com o aumento da temperatura.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:SeXxT.png|thumb|upright=5|none|alt=Alt text|Calor específico em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. &amp;lt;math&amp;gt;T_c \approx 2.269&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
[[Arquivo:XxT.png|thumb|upright=5|none|alt=Alt text|Suscetibilidade magnética em função da temperatura para diferentes tamanhos de rede. À esquerda um gráfico para uma faixa grande de temperaturas e à direita um gráfico detalhado próximo da temperatura crítica. &amp;lt;math&amp;gt;T_c \approx 2.269&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
Analisando os gráficos da suscetibilidade magnética e do calor específico em função da temperatura, podemos perceber que tanto a suscetibilidade magnética quanto o calor específico aumentam quando a temperatura se aproxima da temperatura crítica, com ambos os gráficos possuindo curvas que se tornam mais estreitas próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, com os gráficos sendo mais estreitos em redes maiores. Também podemos ver que ambos os gráficos começam a decair um pouco após a temperatura crítica. Isso significa que as variâncias da energia e da magnetização aumentam consideravelmente com a transição de fase do sistema, implicando no aumento da suscetibilidade magnética e do calor específico ao redor da temperatura crítica. É possível perceber que esse efeito é maior em redes maiores, onde há uma grande diferença entre os valores das redes de diferentes tamanhos. No gráfico com a faixa de temperatura maior, podemos ver que para temperaturas menores que T = 2.1 e maiores que T = 2.8 tanto a suscetibilidade magnética quanto o calor específico possuem valores aproximadamente iguais para todos os tamanhos de rede.&lt;br /&gt;
&lt;br /&gt;
=== Um resultado de redes grandes ===&lt;br /&gt;
Algo que pode resultar de simulações com redes grandes é o aparecimento de blocos de spins. Em uma rede suficientemente grande, pode ocorrer o aparecimento de aglomerados (clusters) de spins de determinada magnetização e esses aglomerados podem acabar crescendo até que se formem blocos de spins com uma direção que dão um resultado não tão esperado para o sistema. Um exemplo pode ser visto ao simularmos um sistema &amp;lt;math&amp;gt;100\times100&amp;lt;/math&amp;gt; com temperatura &amp;lt;math&amp;gt;T=2.0&amp;lt;/math&amp;gt;. Nessas condições, o sistema tende a ficar aproximadamente estável com magnetização aproximadamente +1 ou -1. Contudo, eventualmente pode ocorrer de uma simulação acabar com uma magnetização variando próximo de zero, como é possível ver na série temporal:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Serie100.png|thumb|upright=3|none|alt=Alt text|Série temporal da magnetização. É possível notar que regularmente a série converge rapidamente para um estado com magnetização +1 (note que poderia também convergir para -1), mas há a possibilidade de ficar oscilando próximo de &amp;lt;math&amp;gt;M=0&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
Ao olharmos um snapshot do estado de ambos os sistemas conseguimos entender o que está acontecendo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Snapshots.png|thumb|upright=4|none|alt=Alt text|Snapshot de uma simulação ordinária (esquerda) de um sistema 100x100 a uma temperatura de T=2.0 que convergiu para M = +1 e snapshot de um sistema (direita) onde ocorreu o aparecimento de blocos de spins. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1. Ambas snapshots tiradas após &amp;lt;math&amp;gt;10^4&amp;lt;/math&amp;gt; Monte Carlo steps.]]&lt;br /&gt;
&lt;br /&gt;
No snapshot da simulação ordinária conseguimos ver que a maior parte dos spins estão com magnetização +1, o que está de acordo com a série temporal. Já no outro snapshot, temos a formação de um bloco de spins com magnetização -1 ocupando uma faixa vertical completa do sistema. Esse estado da rede faz com que spins que sejam invertidos dentro de um dos blocos influenciem muito pouco a magnetização do sistema e os spins das fronteiras entre os blocos que forem invertidos acabam apenas sendo invertidos novamente, fazendo com que a magnetização total do sistema oscile, mas se mantenha sempre próxima do mesmo valor. Para ilustrarmos esse efeito, temos uma animação para cada uma das evoluções: sem a formação de blocos e com formação de blocos.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Sembloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema convergindo para magnetização +1 correspondente à série temporal &amp;quot;Simulação ordinária&amp;quot; no gráfico das séries temporais. Animação feita até &amp;lt;math&amp;gt;3\times10^3&amp;lt;/math&amp;gt; Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]&lt;br /&gt;
[[Arquivo:Formarbloco.gif|thumb|upright=4|none|alt=Alt text|Animação do sistema com formação de um bloco vertical de spins com magnetização +1. Animação feita até &amp;lt;math&amp;gt;3\times10^3&amp;lt;/math&amp;gt; Monte Carlo steps. Pontos pretos são spins com magnetização +1 e pontos brancos são spins com magnetização -1.]]&lt;br /&gt;
&lt;br /&gt;
=== Simulação com campo magnético ===&lt;br /&gt;
Para fazermos a simulação do modelo de Ising com campo magnético não nulo e termos resultados interessantes de serem observados, precisamos de duas características: primeiro, precisamos que o campo magnético seja pequeno para que possamos fazer observações, pois para campos magnéticos grandes os spins irão se alinhar rapidamente à direção do campo e, portanto, será pouco provável a mudança de estado do sistema. A segunda característica que precisamos é a de que a rede seja pequena, pois quanto maior a rede, menos provável é o sistema mudar de estado em tempos de simulação viáveis, assim como foi visto nos resultados sem campo magnético. &lt;br /&gt;
Utilizando uma rede 20x20, fizemos histogramas para diferentes temperaturas para dois diferentes campos magnéticos:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Histogramas com campo.png|thumb|upright=4|none|alt=Alt text|Histogramas da magnetização de uma rede 20x20 sob efeito de um campo magnético. À esquerda temos um campo magnético atuante &amp;lt;math&amp;gt;H = -0.005&amp;lt;/math&amp;gt; e à direita temos um campo magnético &amp;lt;math&amp;gt;H = 0.005&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
Podemos observar que para a temperatura inferior a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, temos a formação de uma gaussiana muito maior do que a outra, com a maior gaussiana sendo a que tem a magnetização alinhada com a direção do campo magnético exercendo influencia na rede. Ao utilizarmos temperaturas maiores que a temperatura crítica, vemos a magnetização aumentar ao redor de M = 0, até que em T = 3.0 temos apenas uma gaussiana centrada em M = 0, o que está de acordo com a transição de fase do sistema.&lt;br /&gt;
Caso não tivéssemos respeitado uma das duas características citadas anteriormente para a simulação de Ising com campo magnético, a maior diferença estaria no sistema com temperatura inferior à temperatura crítica, pois teríamos a formação de apenas uma gaussiana e ela estaria alinhada à direção do campo magnético aplicado ao sistema.&lt;br /&gt;
&lt;br /&gt;
== Conclusões e Observações ==&lt;br /&gt;
&lt;br /&gt;
O modelo de Ising estudado neste trabalho é um modelo de spin extremamente simples. Outros modelos podem ser estudados. Por exemplo, podemos considerar os spins como sendo vetores de comprimento constante mas que tenham movimento de rotação em um plano[https://en.wikipedia.org/wiki/Classical_XY_model], ou até mesmo considerar vetores em três dimensões[https://en.wikipedia.org/wiki/Classical_Heisenberg_model]. Além disso, o alcance das interações entre os spins do sistema pode ser incrementada para os segundos, terceiros ou até mais distantes vizinhos mais próximos de um spin. Todos esses modelos têm sido estudados extensivamente. Apesar disso, o modelo simples em 2D com spins +1 e -1 estudado ainda representa bem as propriedades do sistema, principalmente o fenômeno de transição de fase.&lt;br /&gt;
&lt;br /&gt;
== Programas utilizados em linguagem C ==&lt;br /&gt;
[[Séries temporais e histogramas sem campo magnético]]&lt;br /&gt;
&lt;br /&gt;
[[Magnetização e energia em função da temperatura]]&lt;br /&gt;
&lt;br /&gt;
[[Suscetibilidade magnética e calor específico]]&lt;br /&gt;
&lt;br /&gt;
[[Animação da evolução do estado do sistema]]&lt;br /&gt;
&lt;br /&gt;
[[Série temporal e histograma da magnetização com campo magnético]]&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bibliografias ==&lt;br /&gt;
&lt;br /&gt;
Tânia Tomé, Mário J. de Oliveira, &amp;quot;Stochastic Dynamics and Irreversibility&amp;quot;. Universidade de São Paulo, São Paulo, Brasil. 2015.&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2734</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2734"/>
		<updated>2020-01-19T13:45:59Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Grupo - Ising 2D= */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ising 2D]]====&lt;br /&gt;
&lt;br /&gt;
====[[Monte Carlo]] =====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Lennard Jones]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - BOIDS]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Tráfego]]=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Conservação do Parâmetro de Ordem]]====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2733</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2733"/>
		<updated>2020-01-19T13:45:28Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Ising 2D]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Monte Carlo]] =====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Lennard Jones]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - BOIDS]]=====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Tráfego]]=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==== [[Teste_conv]] ===== &lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Dilema Do Prisioneiro]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo Sznajd]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Modelo de Potts]]====&lt;br /&gt;
&lt;br /&gt;
====[[Grupo - Conservação do Parâmetro de Ordem]]====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2732</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2732"/>
		<updated>2020-01-19T13:41:25Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====[[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 1]]====&lt;br /&gt;
&lt;br /&gt;
====[[Ondas 2]]====&lt;br /&gt;
&lt;br /&gt;
====[[FFT]]====&lt;br /&gt;
&lt;br /&gt;
====[[Equação de Schroedinger]]====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Schroedinger&amp;diff=2731</id>
		<title>Equação de Schroedinger</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Equa%C3%A7%C3%A3o_de_Schroedinger&amp;diff=2731"/>
		<updated>2020-01-19T13:40:06Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;A evolução temporal do estado quântico &amp;lt;math&amp;gt; \Psi(\mathbf{r},t) &amp;lt;/math&amp;gt; é dada pela equação de Schrödinger, a qual é postulada como:  &amp;lt;math&amp;gt;i\hbar\frac{\partial}{\par...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A evolução temporal do estado quântico &amp;lt;math&amp;gt; \Psi(\mathbf{r},t) &amp;lt;/math&amp;gt; é dada pela equação de Schrödinger, a qual é postulada como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;i\hbar\frac{\partial}{\partial t} \Psi(\mathbf{r},t) = \left [ -\frac{\hbar^2}{2m}\nabla^2 + V(\mathbf{r},t)\right ] \Psi(\mathbf{r},t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Posto em unidades atômicas (onde &amp;lt;math&amp;gt;m_e&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\hbar&amp;lt;/math&amp;gt; são unitários), o caso unidimensional de um elétron num potencial independente do tempo reduz-se a:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial}{\partial t} \Psi(x,t) = \left [ \frac{i}{2}\frac{\partial^2}{\partial x^2} - i V(x)\right ] \Psi(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Método numérico ==&lt;br /&gt;
&lt;br /&gt;
Buscando resolver a equação numericamente, tem-se a discretização de &amp;lt;math&amp;gt;\frac{\partial ^2 \Psi}{\partial x^2}&amp;lt;/math&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\Psi^{n}_{j-1} - 2\Psi^{n}_{j} + \Psi^{n}_{j+1}}{\left(\Delta x \right)^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e as discretizações de &amp;lt;math&amp;gt;\frac{\partial \Psi}{\partial t}&amp;lt;/math&amp;gt; (explícita e implícita, respectivamente):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial \Psi}{\partial t} = \frac{\Psi^{n+1}_{j} - \Psi^{n}_{j}}{\Delta t}&amp;lt;/math&amp;gt;  (explícita)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial \Psi}{\partial t} = \frac{\Psi^{n}_{j} - \Psi^{n-1}_{j}}{\Delta t}&amp;lt;/math&amp;gt;  (implícita)&lt;br /&gt;
&lt;br /&gt;
No método implícito as diferenças são tomadas no tempo &amp;lt;math&amp;gt; n+1 &amp;lt;/math&amp;gt; ao invés de tomá-las no tempo &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; como no método explícito.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\Psi^{n+1}_{j} - \Psi^{n}_{j}}{\Delta t} = \frac{\Psi^{n+1}_{j+1} - 2\Psi^{n+1}_{j} + \Psi^{n+1}_{j-1}}{\left(\Delta x \right)^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fazendo &amp;lt;math&amp;gt;\lambda = \frac{\Delta t}{(\Delta x)^2}&amp;lt;/math&amp;gt;, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Psi^{n}_{j} = - \lambda\Psi^{n+1}_{j+1} + (1 + 2 \lambda)\Psi^{n+1}_{j} - \lambda\Psi^{n+1}_{j-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando &amp;lt;math&amp;gt;0 \leq j \leq M &amp;lt;/math&amp;gt; temos &amp;lt;math&amp;gt; M - 1 &amp;lt;/math&amp;gt; equações simultâneas. O método implícito converge à solução da EDP desde que &amp;lt;math&amp;gt; \Delta x \rightarrow 0 &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \Delta t \rightarrow 0 &amp;lt;/math&amp;gt; independente do valor de &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para obter os valores no dado tempo &amp;lt;math&amp;gt; n+1 &amp;lt;/math&amp;gt; se resolve o conjunto de equações simultaneamente dado pela equação acima que pode ser escrita na forma matricial,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{pmatrix}&lt;br /&gt;
-\lambda &amp;amp; (1+2\lambda) &amp;amp; -\lambda &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 &amp;amp; 0\\ 0 &amp;amp; -\lambda &amp;amp; (1+2\lambda) &amp;amp; -\lambda &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 \\ \vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \ddots &amp;amp; \ddots&amp;amp; \vdots&amp;amp; \vdots \\ 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; -\lambda &amp;amp; (1+2\lambda) &amp;amp; -\lambda&lt;br /&gt;
\end{pmatrix}&lt;br /&gt;
\begin{pmatrix} \Psi_0^{n+1} \\ \Psi_1^{n+1} \\ \vdots \\ \Psi_{j-1}^{n+1}\end{pmatrix} &lt;br /&gt;
= &lt;br /&gt;
\begin{pmatrix} \Psi_0^{n} \\ \Psi_1^{n} \\ \vdots \\ \Psi_{j-1}^{n} \end{pmatrix} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tanto no método explícito quanto no método implícito não é conservada a norma do estado (o que é estritamente necessário, já que o estado pode ser interpretado como uma onda de probabilidade). Por esse motivo, utiliza-se o método de Crank-Nicolson, o qual tem essa propriedade.&lt;br /&gt;
&lt;br /&gt;
O método de Crank-Nicolson consiste em uma média aritmética dos métodos explícito e implícito. Essa combinação dá a estabilidade do método implícito e a precisão do método explícito, apesar de causar oscilações numéricas (podendo ser contornadas usando passos de tempo menores). Excetuando manipulações algébricas triviais, verifica-se que a relação de recorrência do método é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a\Psi^{n+1}_{j-1} + b_{j}\Psi^{n+1}_{j} + a\Psi^{n+1}_{j+1} = a^* \Psi^{n}_{j-1} + b_{j}^{*} \Psi^{n}_{j} + a^*\Psi^{n}_{j+1},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a \equiv -\frac{i \Delta t}{4(\Delta x)^2}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;b_{j} \equiv 1+\frac{ i\Delta t}{2} \left[\frac{1}{(\Delta x)^2} + V(j \Delta x) \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A integração numérica depende, portanto, do potencial em que o elétron está sujeito, bem como da sua condição inicial e suas das condições de contorno.&lt;br /&gt;
&lt;br /&gt;
Que condições podemos impor para a fronteira? Quando se trata do problema analiticamente, costuma-se considerar que a função de onda tende a zero no infinito. Numericamente, pode-se fazer uma transposição disso, criando uma condição para bordas em pontos suficientemente distantes do centro da distribuição da função de onda, igualando-as a zero. Outra forma de tratar o problema numericamente é criando condições de contorno periódicas, em que para as bordas vale &amp;lt;math&amp;gt;\Psi^{n}_{0} = \Psi^{n}_{j_{max}}&amp;lt;/math&amp;gt; para todo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; (ou, para as bordas &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; há a relação &amp;lt;math&amp;gt;\Psi (a, t) = \Psi (b, t)&amp;lt;/math&amp;gt; para todo &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Condições de contorno iguais a zero===&lt;br /&gt;
Para as condições de contorno &amp;lt;math&amp;gt;\Psi_0^n = \Psi_L^n = 0&amp;lt;/math&amp;gt;, a iteração reduz-se à equação matricial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{pmatrix}&lt;br /&gt;
b_1 &amp;amp; a &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 &amp;amp; 0\\ a &amp;amp; b_2 &amp;amp; a &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 &amp;amp; 0 \\ \vdots &amp;amp; \vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots&amp;amp; \vdots&amp;amp; \vdots \\ 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; a &amp;amp; b_{L-2} &amp;amp; a \\ 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 &amp;amp; a &amp;amp; b_{L-1}&lt;br /&gt;
\end{pmatrix}&lt;br /&gt;
\begin{pmatrix} \Psi_1^{n+1} \\ \Psi_2^{n+1} \\ \vdots \\ \Psi_{L-2}^{n+1} \\ \Psi_{L-1}^{n+1} \end{pmatrix} &lt;br /&gt;
= &lt;br /&gt;
\begin{pmatrix} b_1^* &amp;amp; a^* &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 &amp;amp; 0\\ a^* &amp;amp; b_2^* &amp;amp; a^* &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 &amp;amp; 0 \\ \vdots &amp;amp; \vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots&amp;amp; \vdots&amp;amp; \vdots \\ 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; a^* &amp;amp; b_{L-2}^* &amp;amp; a^* \\ 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 &amp;amp; a^* &amp;amp; b_{L-1}^*\end{pmatrix}&lt;br /&gt;
\begin{pmatrix} \Psi_1^{n} \\ \Psi_2^{n} \\ \vdots \\ \Psi_{L-2}^{n} \\ \Psi_{L-1}^{n} \end{pmatrix} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Condições de contorno periódicas===&lt;br /&gt;
De maneira semelhante, a iteração do caso das condições de contorno periódicas - &amp;lt;math&amp;gt;\Psi_0^n = \Psi_L^n&amp;lt;/math&amp;gt; - reduz-se à equação matricial: &lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{pmatrix} b_0 &amp;amp; a &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 &amp;amp; a\\ a &amp;amp; b_1 &amp;amp; a &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 &amp;amp; 0 \\ \vdots &amp;amp; \vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots&amp;amp; \vdots&amp;amp; \vdots \\ 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; a &amp;amp; b_{L-1} &amp;amp; a \\ a &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 &amp;amp; a &amp;amp; b_{L}\end{pmatrix}&lt;br /&gt;
\begin{pmatrix} \Psi_0^{n+1} \\ \Psi_2^{n+1} \\ \vdots \\ \Psi_{L-1}^{n+1} \\ \Psi_{L}^{n+1} \end{pmatrix} &lt;br /&gt;
= &lt;br /&gt;
\begin{pmatrix} b_0^* &amp;amp; a^* &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 &amp;amp; a^*\\ a^* &amp;amp; b_1^* &amp;amp; a^* &amp;amp; \cdots &amp;amp; 0 &amp;amp; 0 &amp;amp; 0 \\ \vdots &amp;amp; \vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots&amp;amp; \vdots&amp;amp; \vdots \\ 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; a^* &amp;amp; b_{L-1}^* &amp;amp; a^* \\ a^* &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 &amp;amp; a^* &amp;amp; b_{L}^*\end{pmatrix}&lt;br /&gt;
\begin{pmatrix} \Psi_0^{n} \\ \Psi_2^{n} \\ \vdots \\ \Psi_{L-1}^{n} \\ \Psi_{L}^{n} \end{pmatrix} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Condição inicial===&lt;br /&gt;
Já a condição inicial é arbitrária, pois define o estado inicial do sistema que queremos tratar. Fazendo uma referência ao tratamento de sistemas clássicos, seria como definir posição e momento iniciais. É claro que, para ter o sentido físico de uma função de onda, deve-se ter o cuidado de criar uma condição inicial normalizada, satisfazendo  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int _{-\infty}^{\infty} \, \left| \Psi (x, 0) \right|  ^2 \, dx = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bastando, então, inseri-la no programa.&lt;br /&gt;
&lt;br /&gt;
==Implementação em C==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;math.h&amp;gt;&lt;br /&gt;
#include &amp;lt;complex.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
#define N_steps 100000&lt;br /&gt;
#define L 1000&lt;br /&gt;
#define dt 1&lt;br /&gt;
#define dx 4.0&lt;br /&gt;
#define w 0.002&lt;br /&gt;
&lt;br /&gt;
double V(int x_rel)&lt;br /&gt;
{&lt;br /&gt;
	return - pow(w,2) * pow(x_rel - 500,2) / 2.0; //SHO&lt;br /&gt;
&lt;br /&gt;
	//return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
double complex b(int i)&lt;br /&gt;
{&lt;br /&gt;
	return 0.5 * dt * I * (1.0 / pow(dx,2.0) + V(i)) + 1.0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
double u_0(int x_rel)&lt;br /&gt;
{&lt;br /&gt;
	//return sqrt(2 / L) * sin(5*x_rel * M_PI / L); //eigenstate of infinite square well&lt;br /&gt;
&lt;br /&gt;
	//return (1.0/ sqrt(5 * M_PI)) * exp(I * 0.5 * x_rel) * exp(-pow(x_rel - 500, 2) / (2 * 25)); //gaussian packet&lt;br /&gt;
&lt;br /&gt;
	return  (w / M_PI) * exp(-w * pow(x_rel - 500, 2) / 2.0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CN(double complex *u, double complex *u_aux, double complex *u_next, double complex a, int bi)&lt;br /&gt;
{&lt;br /&gt;
	//bi = 1 (bounded); bi = 0 (periodic)&lt;br /&gt;
&lt;br /&gt;
	int i;&lt;br /&gt;
&lt;br /&gt;
	for(i = bi; i &amp;lt;= L - bi; i++) u_aux[i] = conj(a) * (u[(i-1+L)%L] + u[(i+1+L)%L]) + conj(b(i)) * u[i];&lt;br /&gt;
&lt;br /&gt;
	//thomas algorithm&lt;br /&gt;
&lt;br /&gt;
	double complex c_new[L+1], d_new[L+1];&lt;br /&gt;
&lt;br /&gt;
	c_new[bi] = a / b(bi);&lt;br /&gt;
	for(i = 1 + bi; i &amp;lt;= L - bi; i++) c_new[i] = a / (b(i) - c_new[i-1] * a);&lt;br /&gt;
&lt;br /&gt;
	d_new[bi] = u_aux[bi] / b(bi);&lt;br /&gt;
	for(i = 1 + bi; i &amp;lt;= L - bi; i++) d_new[i] = (u_aux[i] - d_new[i-1] * a) / (b(i) - c_new[i-1] * a);&lt;br /&gt;
&lt;br /&gt;
	if (bi == 1) u_next[0] = u_next[L] = 0;&lt;br /&gt;
	u_next[L-bi] = d_new[L-bi];&lt;br /&gt;
	for(i = L-1-bi; i &amp;gt;= bi; i --) u_next[i] = d_new[i] - c_new[i] * u_next[i+1];&lt;br /&gt;
	&lt;br /&gt;
	//u = u_next&lt;br /&gt;
&lt;br /&gt;
	for(i = 0; i &amp;lt;= L; i++) u[i] = u_next[i];&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	int i, j, n = 0;&lt;br /&gt;
&lt;br /&gt;
	double complex u[L+1], u_next[L+1], u_aux[L+1], a = - 0.25 * I * dt / pow(dx,2.0);&lt;br /&gt;
&lt;br /&gt;
	//Initial Contition&lt;br /&gt;
	for(i = 0; i &amp;lt;= L; i ++) u[i] = u_0(i);&lt;br /&gt;
&lt;br /&gt;
	while(n &amp;lt; N_steps)&lt;br /&gt;
	{&lt;br /&gt;
		CN(u, u_aux, u_next, a, 0);&lt;br /&gt;
		printf(&amp;quot;set title &#039;Time = %d&#039;\nplot \&#039;-&#039; w lp pt 7 ps 0.1&amp;quot;, n);&lt;br /&gt;
		for(i = 0; i &amp;lt;= L; i ++) printf(&amp;quot;%d\t%.10lf\n&amp;quot;,i,pow(creal(u[i]),2) + pow(cimag(u[i]),2));&lt;br /&gt;
		//for(i = 0; i &amp;lt;= L; i ++) printf(&amp;quot;%d\t%lf\n&amp;quot;,i,cimag(u[i]));&lt;br /&gt;
		//for(i = 0; i &amp;lt;= L; i ++) printf(&amp;quot;%d\t%lf\n&amp;quot;,i,creal(u[i]));&lt;br /&gt;
		printf(&amp;quot;e\npause 0.1\n&amp;quot;); &lt;br /&gt;
		n ++;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplicações==&lt;br /&gt;
&lt;br /&gt;
===Linearidade da função de onda===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gaussian_sho.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pacote gaussiano estacionário num oscilador harmônico===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gaussian_linearity.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pacote gaussiano tunelando uma berreira de potencial===&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gaussian_barrier.gif]]&lt;br /&gt;
&lt;br /&gt;
==Referências==&lt;br /&gt;
*Cohen-Tannoudji C., Diu B., Laloe F. Quantum mechanics. Volume 1. Wiley, 1991.&lt;br /&gt;
*Numerical Resolution Of The Schrödinger Equation. Jorgensen L., Lopes Cardozo D., Thivierge E. http://web.pa.msu.edu/people/duxbury/courses/phy480/SchrodingerDynamics.pdf&lt;br /&gt;
*Crank, J.; Nicolson, P. (1947). &amp;quot;A practical method for numerical evaluation of solutions of partial differential equations of the heat conduction type&amp;quot;. Proc. Camb. Phil. Soc. 43 (1): 50–67. doi:10.1007/BF02127704.&lt;br /&gt;
*Sherer, Philipp O.J., Computational Physics simulation of Classical and Quantum Systems. Springer, 2010.&lt;br /&gt;
*Born M., Nobel lecture: The statistical interpretation of quantum mechanics. 11 de Dezembro de 1954. https://www.nobelprize.org/nobel_prizes/physics/laureates/1954/born-lecture.pdf&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2730</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2730"/>
		<updated>2020-01-19T13:39:54Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Grupo5 - Eq. Schroedinger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== [[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
=====[[Ondas 1]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Ondas 2]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[FFT]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Equação de Schroedinger]]=====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=2729</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=2729"/>
		<updated>2020-01-19T13:39:06Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Métodos Computacionais C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
===== [[Julia]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integração numérica)]]=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais C ==&lt;br /&gt;
&lt;br /&gt;
=== [[Equações Diferenciais Parciais]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2017/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NAO APAGAR OS LINKS ABAIXOS!! SAO OS TRABALHOS ORIGINAIS !! HEITOR - 19Jan20 --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo1 - Dif em 2D]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo2 - Ondas1]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo3 - Ondas2]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo4 - FFT]]=====  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo5 - Eq. Schroedinger]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Ising 2D]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Monte Carlo]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Lennard Jones]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - BOIDS]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Tráfego]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Teste_conv]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Grupo - Dilema Do Prisioneiro]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Grupo - Modelo Sznajd]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Modelo de Potts]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Conservação do Parâmetro de Ordem]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Movimento Coletivo ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Modelo de Szabó]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Ressonância Estocástica ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] =====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=2728</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=2728"/>
		<updated>2020-01-19T13:38:13Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Métodos Computacionais C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
===== [[Julia]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integração numérica)]]=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais C ==&lt;br /&gt;
&lt;br /&gt;
=== [[Equações Diferenciais Parciais]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Trabalhos 2017/2 ]] ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;-- NAO APAGAR OS LINKS ABAIXOS!! SAO OS TRABALHOS ORIGINAIS !! HEITOR - 19Jan20 --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo1 - Dif em 2D]] ===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo2 - Ondas1]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo3 - Ondas2]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo4 - FFT]]=====  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =====[[Grupo5 - Eq. Schroedinger]]===== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Ising 2D]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Monte Carlo]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Lennard Jones]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - BOIDS]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Tráfego]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Teste_conv]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Teste2]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Grupo - Dilema Do Prisioneiro]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Grupo - Modelo Sznajd]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Modelo de Potts]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Conservação do Parâmetro de Ordem]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Movimento Coletivo ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Modelo de Szabó]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[ Ressonância Estocástica ]] =====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Equações de Schrödinger não-lineares acopladas]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Correlações no Movimento de Átomos em Argônio]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo - Solução Exata para Movimento Anisotrópico de Ornstein-Uhlenbeck]] =====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=FFT&amp;diff=2727</id>
		<title>FFT</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=FFT&amp;diff=2727"/>
		<updated>2020-01-19T13:36:49Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;A Transformada rápida de Fourier (em inglês &amp;#039;&amp;#039;&amp;#039;Fast Fourier Transform&amp;#039;&amp;#039;&amp;#039;, ou &amp;#039;&amp;#039;&amp;#039;FFT&amp;#039;&amp;#039;&amp;#039;) é um algoritmo que torna viável o cálculo da Transformada Discreta de Fourier (DFT...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Transformada rápida de Fourier (em inglês &#039;&#039;&#039;Fast Fourier Transform&#039;&#039;&#039;, ou &#039;&#039;&#039;FFT&#039;&#039;&#039;) é um algoritmo que torna viável o cálculo da Transformada Discreta de Fourier (DFT), que é a forma discretizada da [[https://pt.wikipedia.org/wiki/Transformada_de_Fourier Transformada de Fourier]]. &lt;br /&gt;
A &#039;&#039;&#039;FFT&#039;&#039;&#039; permite transformar de forma rápida uma série de sinais discretos em uma amostra contendo as frequências desses sinais, desde que satisfaça algumas propriedades.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transformada Discreta de Fourier ==&lt;br /&gt;
&lt;br /&gt;
Em muitas aplicações se tem informação sobre um conjunto de dados, ao invés de uma função contínua. A &#039;&#039;&#039;Transformada Discreta de Fourier&#039;&#039;&#039; transforma esse conjunto de dados em um conjunto de tamanho igual com informação sobre as frequências da função que satisfaz o conjunto de dados.&lt;br /&gt;
&lt;br /&gt;
Para um conjunto de dados igualmente espaçados, pode-se, ao considerar os dados como um período de uma função periódica, cujo período normalmente é considerado entre &amp;lt;math&amp;gt;[-\pi, \pi]&amp;lt;/math&amp;gt; para facilitar o cálculo (e que pode sempre ser transformada em uma função nesse interválo), mostrar que a transformada discreta de Fourier pode ser dada pela equação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F_k = \sum_{n=0}^{N-1} f_n  e^{-i2\pi nk/N}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A sua inversa é, em paralelo ao caso da transformada contínua,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \frac{1}{N} \sum_{n=0}^{N-1} F_k  e^{i2\pi nk/N}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A transformada também pode ser expressa em forma vetorial, como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{A} = \mathbf{W^{nk}} \vec{a} ~ &amp;lt;/math&amp;gt; onde &amp;lt;math&amp;gt; ~ \mathbf{W^{nk}} ~ &amp;lt;/math&amp;gt; é definido como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\mathbf{W^{nk}} = \begin{bmatrix}&lt;br /&gt;
e^{-2\pi i 0\cdot0/N} &amp;amp; e^{-2\pi i 0\cdot1/N} &amp;amp; \cdots  &amp;amp; e^{-2\pi i 0\cdot k/N}\\ &lt;br /&gt;
e^{-2\pi i 1\cdot0/N} &amp;amp; e^{-2\pi i 1\cdot1/N} &amp;amp; \cdots &amp;amp; e^{-2\pi i 1\cdot k/N}\\ &lt;br /&gt;
\vdots  &amp;amp; \vdots &amp;amp; \ddots  &amp;amp; \vdots\\ &lt;br /&gt;
e^{-2\pi i n\cdot0/N} &amp;amp; e^{-2\pi i n\cdot1/N} &amp;amp; \cdots &amp;amp; e^{-2\pi i n\cdot k/N}&lt;br /&gt;
\end{bmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O cálculo dessa expressão leva em torno de &amp;lt;math&amp;gt;N^2&amp;lt;/math&amp;gt; passos para o resultado. Uma amostra com 3,000 pontos precisa de 9,000,000 operações para a transformada ser obtida, tornando a DFT inviável para aplicações rápidas.&lt;br /&gt;
&lt;br /&gt;
== Transformada Rápida de Fourier ==&lt;br /&gt;
&lt;br /&gt;
É possível calcular a transformada com &amp;lt;math&amp;gt;N \log_{2} N&amp;lt;/math&amp;gt; passos. Para isso se dispõe de um algoritmo chamado &#039;&#039;&#039;Transformada Rápida de Fourier&#039;&#039;&#039;.&lt;br /&gt;
Considera-se um conjunto de pontos &amp;lt;math&amp;gt;N = 2^p&amp;lt;/math&amp;gt; (com &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; inteiro, então, da definição da DFT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
F_k =\sum_{n=0}^{N-1} f_n \cdot e^{-i \frac{2 \pi}{N}\cdot k\cdot n}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
podemos dividir o somatório em 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
	F_k  =\color{red}\sum_{n=0}^{N/2-1} f_{2n} \cdot e^{-i \frac{2 \pi}{N}\cdot k\cdot 2n} \color{black}+ \color{blue}\sum_{n=0}^{N/2-1} f_{2n+1} \cdot e^{-i \frac{2 \pi}{N}\cdot k\cdot (2n+1)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
	\color{black}F_k =\color{red}\sum_{n=0}^{N/2-1} f_{2n} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} \color{black}+ \color{blue}e^{-i\frac{2\pi}{N}k} \sum_{n=0}^{N/2-1} f_{2n+1} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
	\color{black}F_k =\color{red}\sum_{n=0}^{N/2-1} f_{2n} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} \color{black}+ \color{blue}~ C(k) ~ \sum_{n=0}^{N/2-1} f_{2n+1} \cdot e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde a soma em vermelho é a parte &#039;&#039;&#039;par&#039;&#039;&#039; e a soma em azul é a parte &#039;&#039;&#039;ímpar&#039;&#039;&#039; da transformada. As duas somas tem o mesmo expoente, que agora é dividido por &amp;lt;math&amp;gt;N/2&amp;lt;/math&amp;gt;.&lt;br /&gt;
Desse expoente, é evidente a relação entre o ponto &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; e o ponto &amp;lt;math&amp;gt;k + N/2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} = e^{-i \frac{2 \pi}{N/2}\cdot (k+N/2)\cdot n} = e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} \cdot e^{-i \frac{2 \pi}{N/2}\cdot N/2\cdot n} = e^{-i \frac{2 \pi}{N/2}\cdot k\cdot n} \cdot 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com essa relação, podemos ver que &amp;lt;math&amp;gt;F_k&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;F_{k+N/2}&amp;lt;/math&amp;gt; tem o mesmo expoente e podem ser calculadas ao mesmo tempo. Mais que isso, a nova forma da transformada pode ser sucessivamente dividida, cada vez produzindo somas com limites menores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exemplo ===&lt;br /&gt;
&lt;br /&gt;
Suponha que temos a função sinusoidal &amp;lt;math&amp;gt;a(t) = sin(2\pi \cdot 1Hz \cdot t)&amp;lt;/math&amp;gt; e fazemos quatro medidas no intervalo de 1 segundo, resultando em &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_0 = 0.00&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;a_1 = 1.00&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;a_2 = 0.00&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;a_3 = -1.00&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com essas 4 medidas, podemos dividir a soma 2 vezes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A_k = \sum_{t=0}^3 a_t \cdot e^{-i \frac{2\pi}{4}\cdot k \cdot t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A_k = \sum_{t_1=0}^1 a_{2t_1} \cdot e^{-i \frac{2\pi}{2}\cdot k \cdot t_1} + C_k^1\sum_{t_1=0}^1 a_{2t_1+1} \cdot e^{-i \frac{2\pi}{2}\cdot k \cdot t_1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A_k = \sum_{t_2=0}^0 a_{4t_2} \cdot e^{-i \frac{2\pi}{1}\cdot k \cdot t_2} + C_k^2\sum_{t_2=0}^0 a_{4t_2+2} \cdot e^{-i \frac{2\pi}{1}\cdot k \cdot t_2} + C_k^1\sum_{t_2=0}^0 a_{4t_2+1} \cdot e^{-i \frac{2\pi}{1}\cdot k \cdot t_2} + C_k^3\sum_{t_2=0}^0 a_{4t_2+3} \cdot e^{-i \frac{2\pi}{1}\cdot k \cdot t_2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e como temos &amp;lt;math&amp;gt;C_k^j = (e^{-i\frac{2\pi}{N}k})^j&amp;lt;/math&amp;gt; podemos calcular&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A_0 = 1.00 \cdot C_0^1 - 1.00 \cdot C_0^3 = 0.00 + i0.00&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A_1 = 1.00 \cdot C_1^1 - 1.00 \cdot C_1^3 = 0.00 - i2.00&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A_2 = 1.00 \cdot C_2^1 - 1.00 \cdot C_2^3 = 0.00 + i0.00&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A_3 = 1.00 \cdot C_3^1 - 1.00 \cdot C_3^3 = 0.00 + i2.00&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FFT para N diferente de uma potência de 2 ===&lt;br /&gt;
&lt;br /&gt;
Mesmo com a FFT sendo um algoritmo extremamente eficiente para &amp;lt;math&amp;gt;N = 2^p&amp;lt;/math&amp;gt;, esse dificilmente é o caso que encotramos. Ainda assim, para &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; altamente composto (&amp;lt;math&amp;gt;N = r_1\cdot r_2 \cdot ... \cdot r_m&amp;lt;/math&amp;gt;) o algoritmo ainda resulta em uma boa queda no tempo de cálculo.&lt;br /&gt;
&lt;br /&gt;
Para o caso mais simples &amp;lt;math&amp;gt;N = r_1 \cdot r_2&amp;lt;/math&amp;gt; a transformada pode ser escrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(k_1,k_0) = \sum_{n_0=0}^{r_2-1}\left [ \sum_{n_1=0}^{r_1-1} x(n_1,n_0) e^{-i2\pi\cdot k \cdot n_1 \cdot r_2} \right ] e^{-i2\pi \cdot k \cdot n_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;k = k_1 \cdot r_1 + k_0 ~~~~~~~~ k_0 = 0,1,...,r_1-1 ~~~~~~~~ k_1 = 0,1,...,r_2-1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;n = n_1 \cdot r_2 + n_0 ~~~~~~~~ n_0 = 0,1,...,r_2-1 ~~~~~~~~ n_1 = 0,1,...,r_1-1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
assim a transformada que antes necessitava de N cálculos, agora pode ser vista como &amp;lt;math&amp;gt;r_1 + r_2&amp;lt;/math&amp;gt; cálculos.&lt;br /&gt;
&lt;br /&gt;
Uma outra alternativa para o calculo da FFT é adicionar pontos 0 no fim da sequência. Por exemplo, para uma FFT de 5 pontos, basta adicionar 3 pontos 0 e calcular uma FFT pelos métodos já mostrados. Uma dificuldade dessa alternativa é que a transformada terá também 8 pontos, e apesar de corresponder ao mesmo formato da função original, está amostrada numa frequência diferente.&lt;br /&gt;
&lt;br /&gt;
=== Algorítmo (usando recursão) ===&lt;br /&gt;
&amp;lt;math&amp;gt;&amp;gt;&amp;gt;\mathbf{function} ~ FFT(N,\vec{a})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &amp;gt;&amp;gt;&amp;gt; ~~~~ \mathbf{if} ~ N = 1 ~ \mathbf{then}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &amp;gt;&amp;gt;&amp;gt; ~~~~~~~~ return ~ \vec{a};&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &amp;gt;&amp;gt;&amp;gt; ~~~~ \mathbf{else}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &amp;gt;&amp;gt;&amp;gt;~~~~~~~~ E = FFT(N/2, (a_0, a_2, ..., a_{N-2}));&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &amp;gt;&amp;gt;&amp;gt;~~~~~~~~ O = FFT(N/2, (a_1, a_3, ..., a_{N-1}));&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &amp;gt;&amp;gt;&amp;gt;~~~~~~~~ \mathbf{for} ~ k = 0 ~ to ~ k &amp;lt;= N/2 -1 ~ \mathbf{do}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &amp;gt;&amp;gt;&amp;gt;~~~~~~~~~~~~ A_k=E_k+exp(-i2\pi k/N) * O_k;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &amp;gt;&amp;gt;&amp;gt;~~~~~~~~~~~~ A_{k+N/2}=E_k-exp(-i2\pi k/N) * O_k;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &amp;gt;&amp;gt;&amp;gt;~~~~ return ~ \vec{A};&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementação ==&lt;br /&gt;
&lt;br /&gt;
A natureza recursiva do algoritmo da transformada rápida de fourier o torna ideal para implementações em linguagens funcionais como Haskell. Abaixo exibimos as partes mais relevantes do código, onde omitimos inclusões de bibliotecas e a definição das funções auxiliares evens e odds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;haskell&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--esse termo multiplica o somatório de termos ímpares&lt;br /&gt;
f xs n = exp $ -(0:+2*pi)*n / genericLength xs&lt;br /&gt;
&lt;br /&gt;
--caso a função seja chamada com apenas dois termos, temos o caso base&lt;br /&gt;
ffti [x,y] n = x + y * (exp $ -(0:+pi)*n)&lt;br /&gt;
&lt;br /&gt;
--caso contrário aplique a função recursivamente separando o somatório em &lt;br /&gt;
-- termos com índice par e com índice ímpar&lt;br /&gt;
ffti xs n = ffti (evens xs) n + f xs n * ffti (odds xs) n&lt;br /&gt;
&lt;br /&gt;
--função que calcula os n coeficientes (ffti calcula um coeficiente)&lt;br /&gt;
fft xs [] = []&lt;br /&gt;
fft xs (y:ys) = (ffti xs y):(fft xs ys)&lt;br /&gt;
&lt;br /&gt;
--exemplo&lt;br /&gt;
fft [0, 1, 4, 9] [0,1,2,3]&lt;br /&gt;
&lt;br /&gt;
--saída ( :+ indica número complexo em Haskell)&lt;br /&gt;
[14.0 :+ 0.0, -4.0 :+ 8.0,  -6.0 :+ 0.0,  -4.0 :+ -8.0)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Embora não seja uma linguagem puramente funcional Wolfram Mathematica também se presta a uma implementação direta e clara. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
// caso base de uma lista contendo apenas dois termos&lt;br /&gt;
fft[{x_, y_}, n_] := x + y Exp[-I Pi n ]&lt;br /&gt;
// caso contrário, divida a lista entre termos com índice ímpar e par &lt;br /&gt;
// e aplique a função recursivamente&lt;br /&gt;
fft[f_List, n_] :=                fft[Downsample[f, 2, 1], n] + &lt;br /&gt;
    Exp[-((I 2 Pi n )/Length[f])] fft[Downsample[f, 2, 2], n]&lt;br /&gt;
//acima calcula-se com um coeficiente abaixo calcula-se todos&lt;br /&gt;
fft[f_List] := Table[fft[f, n] // N, {n, 0, Length[f] - 1}]&lt;br /&gt;
&lt;br /&gt;
//exemplo&lt;br /&gt;
fft[{0, 1, 4, 9}]&lt;br /&gt;
{14., -4. + 8. I, -6., -4. - 8. I}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplos ==&lt;br /&gt;
&lt;br /&gt;
Abaixo encontra-se alguns exemplos básicos da transformada de fourier com base no código acima porém com modificações para lidar com o caso em que o intervalo de amostragem é diferente de &amp;lt;math&amp;gt;[0, 2\pi]&amp;lt;/math&amp;gt; e cuja taxa de amostragem é qualquer (diferente de &amp;lt;math&amp;gt;\frac{2\pi k}{N}&amp;lt;/math&amp;gt; como assumido acima)&lt;br /&gt;
&lt;br /&gt;
=== Gaussiana ===&lt;br /&gt;
&lt;br /&gt;
A menos de uma normalização a função gaussiana é definida por: &amp;lt;math&amp;gt;f(x) = e^{-\frac{(x - &amp;lt;x&amp;gt;)^2}{2 \sigma^2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Aplicando a transformada de fourier na curva gaussiana obtem-se outra gaussiana. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gaussian1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Observa-se que uma curva larga no espaço real corresponde a uma curva estreita no espaço de fourier e vice-versa. Esse é um fato matemático amplamente conhecido e se exprime também na física pelo Princípio da Incerteza de Heisenberg.&lt;br /&gt;
Abaixo uma curva gaussiana mais larga que a anterior e sua transformada correspondentemente mais estreita.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gaussian2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Uma função par em relação à origem possui uma expansão em fourier com termos ímpares nulos, no entanto, deslocando a gaussiana um pouco para a direita e, portanto, quebrando sua simetria, vemos que a sua transformada possui uma parte complexa:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:gaussian3.png|700px]]&lt;br /&gt;
&lt;br /&gt;
=== Oscilador Harmônico Amortecido ===&lt;br /&gt;
&lt;br /&gt;
A curva que representa um oscilador harmônico amortecido é descrita por &amp;lt;math&amp;gt;f(x) = sin(a x) e^{-bx}&amp;lt;/math&amp;gt; onde o termo senoidal, periódico, é amortecido pelo termo exponencial que leva a oscilação rapidamente a zero.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:osch.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
A transformada de fourier dessa curva possui parte real e imaginária, da parte imaginária dessa curva é possível obter a frequência de ressonância do fenômeno representado por ela. No caso abaixo vemos que a frequência de ressonância vale &amp;lt;math&amp;gt;\pm 10Hz&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:oschim.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Abaixo a parte real da transformada:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:oschre.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Aplicações ==&lt;br /&gt;
&lt;br /&gt;
=== Equação de Schrödinger: propagação de onda de probabilidade ===&lt;br /&gt;
&lt;br /&gt;
O cálculo da evolução temporal da equação de schrödinger é computacionalmente exigente. A cada passo de tempo é necessário recalcular a posição da onda de probabilidade que representa a partícula em cada ponto do domínio. Portanto, torna-se vantajoso o uso da transformada de fourier rápida. Além disso a própria transformada faz parte da solução, pois também deseja-se obter a sua evolução temporal no espaço de momento. O código foi desenvolvido em python por [https://jakevdp.github.io/blog/2012/09/05/quantum-python/ Jake Vanderplas], no entanto, sob extensas modificações foi possível não apenas entender o código mas também modifica-lo para representar situações diferentes das propostas pelo autor. No site do autor encontra-se a explicação da teoria por trás do problema e também o funcionamento do algoritmo. A seguir exploramos a interação de uma onda de probabilidade com potenciais de diferentes formas.&lt;br /&gt;
&lt;br /&gt;
A parte principal do código modificado é exibida abaixo. Nota-se que o autor utilizou o método Leapfrog para integrar as equações de movimento fazendo a seguinte sequência de operações: dar um meio passo no espaço real, tomar a transformada, dar um passo no espaço de momento, tomar a transformada inversa e finalmente dar um passo completo no espaço real.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
def time_step():&lt;br /&gt;
    global t, psi_mod_x, psi_mod_k, t_max&lt;br /&gt;
    psi_mod_x *= x_evolve_half&lt;br /&gt;
    for i in range(N_steps):&lt;br /&gt;
        psi_mod_k = fft(psi_mod_x)&lt;br /&gt;
        psi_mod_k *= k_evolve&lt;br /&gt;
        psi_mod_x = ifft(psi_mod_k)&lt;br /&gt;
        psi_mod_x *= x_evolve_half*x_evolve_half&lt;br /&gt;
    psi_mod_k = fft(psi_mod_x)&lt;br /&gt;
    t += dt * N_steps&lt;br /&gt;
    t_max = t_max - 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O restante do código ocupa-se somente de inicialização de valores, definição do potencial e escrita dos resultados.&lt;br /&gt;
&lt;br /&gt;
==== Potencial Quadrado ====&lt;br /&gt;
&lt;br /&gt;
O potencial quadrado foi o exemplo escolhido pelo autor do código. Nesse exemplo fica visível que uma porção da onda de probabilidade atravessa o potencial embora classicamente não tenha energia suficiente para tal feito. Essa é uma demonstração numérica do efeito de tunelamento. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Square.gif]]&lt;br /&gt;
&lt;br /&gt;
==== Potencial Triangular ====&lt;br /&gt;
&lt;br /&gt;
O potencial triangular, por ter uma base mais larga, coíbe o efeito de tunelamento, no entanto, uma pequena porção da onda incidente ainda consegue transpor a barreira.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Triangular.gif]]&lt;br /&gt;
&lt;br /&gt;
==== Potencial Batman ====&lt;br /&gt;
&lt;br /&gt;
Em cursos básicos de quântica normalmente resolve-se apenas o potencial quadrado, às vezes, excepcionalmente, apresenta-se o potencial triangular. Isso se deve a dificuldade em tratar casos de potenciais irregulares analiticamente. Mas em casos reais os potenciais são extremamente irregulares. A solução numérica trata tais casos com naturalidade e sem qualquer alteração. Em particular, um potencial tipo batman é encarado sem problemas:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Batman.gif]]&lt;br /&gt;
&lt;br /&gt;
A parte superior da curva é apenas ilustrativa (pois não faz sentido matemático nem físico)&lt;br /&gt;
&lt;br /&gt;
=== Padrões de Difração ===&lt;br /&gt;
&lt;br /&gt;
A transformada rápida é muito utilizada no tratamento de imagens. Software como ImageJ ou Matlab possuem muitas ferramentas que fazem uso da técnica. Uma aplicação específica da FFT é na análise de imagens de partículas nanométricas obtidas por um microscópio eletrônico de transmissão. Esse equipamento produz um interferograma que (a menos de correções) representa a imagem real do que se está observando mas também produz uma segunda imagem, localizada no ponto focal da lente, que é o padrão de difração da imagem real. Essa imagem é uma visualização do espaço recíproco, ou seja, da transformada do espaço real. &lt;br /&gt;
&lt;br /&gt;
Abaixo está uma imagem de um plano de átomos de ouro obtida por um microscópio de transmissão eletrônica com uma escala de 2 nanômetros na qual destacamos uma região (quadrado vermelho) na qual tomaremos a transformada de fourier. A imagem em si é representada por uma matrix 800x800 onde cada elemento da matrix é um valor de intensidade sendo 0 para totalmente escuro e 255 para totalmente claro.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Region.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Utilizando, por exemplo o software Matlab podemos tomar a transformada inversa dessa imagem.  A transformada de fourier produz o padrão de difração que revela a periodicidade da imagem.&lt;br /&gt;
O código em Matlab é bem simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
function imagefft(I)&lt;br /&gt;
    F = fft2(I);&lt;br /&gt;
    F = fftshift(F); % centraliza a FFT&lt;br /&gt;
    F = abs(F); % obtem a magnitude (desnecessário, nossa imagem varia de 0 a 255)&lt;br /&gt;
    F = log(F+1); % escala logaritmica, +1 por que log(0) é indefinido&lt;br /&gt;
    F = mat2gray(F); % renormaliza a imagem de 0-255 para 0-1&lt;br /&gt;
    imshow(F,[]) % exibe o resultado&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Matlab fft.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Cada par de pontos simétricos em relação ao ponto central representa um conjunto de planos paralelos no espaço real, sendo a imagem real o conjunto de todos os planos representados por todos os pontos somado ao ruído da imagem. Observe que a imagem original, além de ruído, apresenta três planos diferentes como pode-se notar pela orientação dos átomos. Isso explica a presença de linhas claras ao redor dos pontos de difração. Um cristal perfeito, por outro lado, possuiria um padrão de difração de pontos localizados e não discos com linhas como vemos num cristal real.&lt;br /&gt;
&lt;br /&gt;
A seguir vejamos como decompor essas informações. Aplicando uma máscara sobre a imagem podemos selecionar apenas um par de pontos e ver a qual conjunto de planos do espaço real ele está relacionado:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Applied mask.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Para descobrir qual é o conjunto de planos tomamos a transformada inversa:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Inverse fft.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Como mencionado se selecionarmos todos os pontos e tomarmos a transformada inversa obteremos a imagem original, no entanto, removendo boa parte dos ruídos - a parte que deixamos de fora da máscara.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Full mask.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Removed all noise.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Se quisermos ver a composição do ruído podemos tomar a máscara inversa e aplicar a transformada inversa, obtendo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Negative mask.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Noise.png|900px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências Bibliográficas==&lt;br /&gt;
&lt;br /&gt;
[1] [https://web.stanford.edu/class/cme324/classics/cooley-tukey.pdf An Algorithm for the Machine Calculation of. Complex Fourier Series. By James W. Cooley and John W. Turkey].&lt;br /&gt;
&lt;br /&gt;
[2] Kreyszig, Erwin. Advanced Engineering Mathematics. Wiley, 2011.&lt;br /&gt;
&lt;br /&gt;
[3] Scherer, Claudio. Métodos Computacionais da Física.&lt;br /&gt;
&lt;br /&gt;
[4] Richard; Faires, Douglas. Numerical Analysis, 2011&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2726</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2726"/>
		<updated>2020-01-19T13:36:29Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Grupo4 - FFT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== [[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
=====[[Ondas 1]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Ondas 2]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[FFT]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo5 - Eq. Schroedinger]]=====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ondas_2&amp;diff=2725</id>
		<title>Ondas 2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ondas_2&amp;diff=2725"/>
		<updated>2020-01-19T13:36:00Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039;&amp;#039;&amp;#039;&amp;#039;Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.&amp;#039;&amp;#039;&amp;#039;  O objetivo deste trabalho é analisar três métodos diferentes de integração numérica para resolução de equa...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Grupo: Lucas Dória, Caetano Pires e Ânderson Rosa.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
O objetivo deste trabalho é analisar três métodos diferentes de integração numérica para resolução de equações diferenciais parciais (EDP&#039;s). A equação aqui abordada é a equação da onda, a qual consiste em uma EDP hiperbólica de segunda ordem. Uma pequena noção dos métodos numéricos é dada, após a explicação do problema físico abordado. Os dados encontrados são comentados e comparados com os resultados esperados. Simulações também foram feitas para melhor visualização dos fenômenos. Por último, foi feita uma análise de erros e estabilidade para cada um dos métodos, assim como algumas conclusões foram inferidas.&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Equações diferenciais parciais hiperbólicas geralmente podem ser formuladas a partir de teoremas de conservação. Um exemplo é a equação do tipo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial \vec{U}}{\partial t} + \nabla \cdot \vec{F}(U) = \vec{S}(U),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\vec{U}&amp;lt;/math&amp;gt; é o vetor de densidades da quantidade conservada, i.e., &amp;lt;math&amp;gt;\vec{U} = (U_1,...,U_n),&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;\vec{F}&amp;lt;/math&amp;gt; é o fluxo de densidade e &amp;lt;math&amp;gt;\vec{S}&amp;lt;/math&amp;gt; é um termo genérico representando fontes e/ou sumidouros.&lt;br /&gt;
&lt;br /&gt;
Uma classe especial de equações hiperbólicas são as chamadas equações de adveção, na qual a derivada temporal da quantidade conservada &amp;lt;math&amp;gt;\vec{U}(\vec{x},t)&amp;lt;/math&amp;gt; é proporcional à sua derivada espacial. Nesses casos, &amp;lt;math&amp;gt;\vec{F}(U)&amp;lt;/math&amp;gt; é diagonal e dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{F}(U) = v I \cdot \vec{U},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; é a matriz identidade.&lt;br /&gt;
&lt;br /&gt;
Considerando apenas uma dimensão e com &amp;lt;math&amp;gt;\vec{U} \equiv u&amp;lt;/math&amp;gt;, temos a equação de adveção:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial u}{\partial t} + v \frac{\partial u}{\partial x} = 0,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; é a velocidade de propagação do pulso gerado. A equação admite uma solução analítica da forma &amp;lt;math&amp;gt;u = f(x - vt),&amp;lt;/math&amp;gt; representando um pulso se movendo na direção positiva de &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 é uma EDP hiperbólica de segunda ordem dada por&lt;br /&gt;
&lt;br /&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;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;u = u(x,t)&amp;lt;/math&amp;gt; é o deslocamento transversal à direção de propagação de uma posição &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; no instante &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; e admite duas soluções, representadas por pulsos, na forma &amp;lt;math&amp;gt;f_1(x + vt)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f_2(x - vt).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assumindo que &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; não depende da posição na equação da onda, nos restringimos a problemas lineares. Além disso, se escrevermos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
k = v \frac{\partial u}{\partial x},\qquad   s = \frac{\partial u}{\partial t},&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
então a equação da onda pode ser escrita como um sistema de três equações diferenciais de primeira ordem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}\displaystyle \frac{\partial k}{\partial t} = v\frac{\partial s}{\partial x} \\\\&lt;br /&gt;
\displaystyle \frac{\partial s}{\partial t} = v\frac{\partial k}{\partial x} \\\\&lt;br /&gt;
\displaystyle \frac{\partial u}{\partial t} = s &lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Em notação vetorial, o sistema acima pode ser reescrito na forma conservativa como: &amp;lt;math&amp;gt;\frac{\partial U}{\partial t}+ \frac{\partial F(U)}{\partial x} = 0, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;U = \begin{pmatrix}k\\s\end{pmatrix},\quad \textrm{e}\quad F(U) =\begin{pmatrix}0 &amp;amp; -v\\-v &amp;amp; 0\end{pmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Condição CFL==&lt;br /&gt;
&lt;br /&gt;
Uma condição necessária mas nem sempre suficiente para a convergência de equações diferenciais parciais resolvidas a partir de métodos de diferença, conhecida como condição CFL &amp;lt;ref&amp;gt;Luciano Rezzolla, &amp;quot;Numerical Methods for the Solution of Partial Differential Equations&amp;quot;. Albert Einstein Institute, Max-Planck-Institute for Gravitational Physics, Potsdam, Germany.&amp;lt;/ref&amp;gt;, é formulada a partir do termo de “domínio de dependência”.&lt;br /&gt;
&lt;br /&gt;
Considerando, por exemplo, a equação da advecção [https://en.wikipedia.org/wiki/Advection] em uma aproximação a partir de métodos de diferença em sua forma explícita &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{U^{n+1}_i-U^n_i}{\Delta t} + v\frac{U^n_{i}-U^n_{i-1}}{\Delta x}=0,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
diz-se que o valor de &amp;lt;math&amp;gt;U^{n+1}_i&amp;lt;/math&amp;gt; depende dos valores anteriores de &amp;lt;math&amp;gt;U^n_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;U^n_{i-1}&amp;lt;/math&amp;gt;, e esses dois pontos dependem, novamente, de outros dois pontos em tempos anteriores. Todos esses pontos dependentes formam o domínio de dependência do valor &amp;lt;math&amp;gt;U^{n+1}_i&amp;lt;/math&amp;gt;, representado abaixo (botar figura do domínio de dependência).&lt;br /&gt;
&lt;br /&gt;
A condição CFL enuncia que a condição mínima para que haja estabilidade em métodos de diferenças o domínio de dependência da equação diferencia parcial, dado por sua equação característica, deve estar situado dentro do domínio de dependência do esquema numérico.&lt;br /&gt;
&lt;br /&gt;
A partir dessa condição, define-se o número CFL como &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r\equiv v\frac{\Delta t}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; é um passo na malha temporal e &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; é um passo na malha espacial. Para casos unidimensionais, como o que será tratado aqui, a condição CFL é satisfeita se r&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left|r\right| \le 1 &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Um uso da condição CFL é determinar o tamanho do passo temporal, sabendo-se &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta t = c_{cfl}\frac{\Delta x}{\left|v\right|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde o fator &amp;lt;math&amp;gt;c_{cfl}&amp;lt;1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O número CFL pode ser entendido como um fluxo numérico advectivo adimensionalisado pelas malhas espacial e temporal do problema. De um ponto de vista matemático, ele garante que o domínio numérico de dependência é sempre maior que o domínio físico. De um ponto de vista físico, é garantido que a velocidade de propagação de qualquer perturbação, como uma onda, seja menor ou ao menos igual que a velocidade de propagação numérica, fazendo com que a distância propagada pela perturbação não seja maior do que a divisão da malha espacial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left|v\right|\Delta t \le \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== O Problema Físico ==&lt;br /&gt;
&lt;br /&gt;
===O Modelo de Corda Ideal===&lt;br /&gt;
&lt;br /&gt;
Para uma primeira abordagem da equação da onda, consideramos uma corda com suas extremidades fixas. Podemos dividir o comprimento &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; dessa corda em &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt; intervalos de comprimentos iguais, dessa forma &amp;lt;math&amp;gt;\Delta x = \frac{L}{K}&amp;lt;/math&amp;gt;. Cada intervalo é discretizado, representado por &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;i=0,1,...,K&amp;lt;/math&amp;gt;. Também podemos dividir o tempo em intervalos iguais &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; e denotá-los como &amp;lt;math&amp;gt;t_n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n =0,1,...,t_{max}&amp;lt;/math&amp;gt;. Abaixo temos uma esquematização das informações que precisamos para cada ponto da corda:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:grid.png]]&lt;br /&gt;
&lt;br /&gt;
Tendo feita a discretização das variáveis, podemos aproximar a equação da onda por diferenciação finita, utilizando derivadas centradas da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;U_i^n&amp;lt;/math&amp;gt; representa o valor discretizado de &amp;lt;math&amp;gt;u(x_i,t_n)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, chegamos em uma equação discretizada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;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}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Sabendo que essa discretização da equação da onda pode ser verificada como sendo o método Leapfrog (ver seção do método de Leapfrog [https://fiscomp.if.ufrgs.br/index.php/Grupo3_-_Ondas2#O_M.C3.A9todo_de_Leapfrog método de Leapfrog]), podemos resolver a equação para &amp;lt;math&amp;gt;U_i^{n+1}&amp;lt;/math&amp;gt; para sabermos o deslocamento vertical de uma partição da corda no momento de tempo seguinte, assim obtendo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}&amp;lt;/math&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;
===Um Quadro Mais Realístico - O Modelo de Corda Rígida ===&lt;br /&gt;
&lt;br /&gt;
Para nos aproximarmos de um modelo mais real, podemos adicionar um termo à equação original da onda que corresponde ao efeito de fricção em uma corda. A equação da onda mais geral com efeito de fricção pode ser escrita como: &amp;lt;ref name=giordano&amp;gt;N. J. Giordano, &amp;quot;Computational Physics&amp;quot;. Department of Physics, Purdue University. Upper Saddle River, New Jersey. Prentice-Hall, 1997.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial^2 u}{\partial t^2} = v^2 \left( \frac{\partial^2 u}{\partial x^2} - \epsilon L^2 \frac{\partial^4 u}{\partial x^4} \right),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; é a velocidade transversal de propagação do pulso na corda, dada pela relação &amp;lt;math&amp;gt;v = \sqrt[]{\frac{T}{\rho}}&amp;lt;/math&amp;gt; (sendo &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; a tensão na corda e &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; a densidade linear da mesma), &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; é um parâmetro adimensional de fricção que representa a rigidez da corda e &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; o comprimento da corda.&lt;br /&gt;
&lt;br /&gt;
O parâmetro &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; é dado por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\epsilon = \kappa² \frac{E S}{T L^2}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\kappa&amp;lt;/math&amp;gt; é o [https://en.wikipedia.org/wiki/Radius_of_gyration raio de giro] da corda, &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; é o [https://en.wikipedia.org/wiki/Young%27s_modulus Módulo de Young] e &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; a área da secção da corda.&lt;br /&gt;
&lt;br /&gt;
Discretizamos a equação da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \frac{\partial^2u}{\partial t^2}=\frac{U^{n+1}_{i}-2U^n_i+U^{n-1}_i}{\Delta t^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^2u}{\partial x^2}=\frac{U^{n}_{i+1}-2U^n_i+U^{n}_{i-1}}{\Delta x^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;    \frac{\partial^4u}{\partial x^4}=\frac{U^n_{i+2}-4U^n_{i+1}+6U^n_i-4U^n_{i-1}+U^n_{i-2}}{\Delta x^4}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e resolvemos para &amp;lt;math&amp;gt;U_i^{n+1}&amp;lt;/math&amp;gt;, obtendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U_i^{n+1}=[2-2r^2-6\epsilon r^2K^2]U_i^n - U_i^{n-1} +r^2[1+4\epsilon K^2][U_{i+1}^n+U_{i-1}^n]-\epsilon r^2K^2[U_{i+2}^n + U_{i-2}^n].&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O fato de essa discretização depender do deslocamento da corda em posições &amp;lt;math&amp;gt;i-2&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;i+2&amp;lt;/math&amp;gt; implica em precisarmos simular &amp;quot;pontos fantasmas&amp;quot; quando integramos os extremos das cordas. Para fazermos isso, podemos ou utilizar a aproximação &amp;lt;math&amp;gt;U_{-1}^n = -U_{+1}^n&amp;lt;/math&amp;gt; ou podemos considerar esses &amp;quot;pontos fantasmas&amp;quot; como pontos presos e, portanto, sempre iguais a zero.&lt;br /&gt;
&lt;br /&gt;
== Os Métodos Utilizados ==&lt;br /&gt;
&lt;br /&gt;
Foi realizada uma abordagem ao problema da corda real a partir de três métodos diferentes de integração numérica.&lt;br /&gt;
&lt;br /&gt;
O método mais básico é chamado de FTCS (Forward-Time-Centered-Space) e consiste em duas expansões de Taylor ao redor do ponto &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x_i + \Delta x,t^n) = u(x_i,t^n) + \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x_i - \Delta x,t^n) = u(x_i,t^n) - \frac{\partial u}{\partial x}(x_i,t^n)\Delta x + \frac{1}{2} \frac{\partial^2 u}{\partial x^2}(x_i,t^n)\Delta x^2 + \mathcal{O}(\Delta x^3).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Subtraindo as duas expressões, encontramos a expressão&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left.\frac{\partial u}{\partial x}\right|_i^n = \frac{u^n_{i+1} - u^n_{i-1}}{2 \Delta x} + \mathcal{O}(\Delta x^2)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
A qual podemos substituir na equação da onda, juntamente com a discretização da derivada parcial temporal. Temos então que, para um sistema linear de equações hiperbólicas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta t^2, \Delta x^2 \Delta t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Visto que essa última notação é mais genérica, ela será utilizada para a explicação dos métodos posteriores.&lt;br /&gt;
&lt;br /&gt;
=== O Método de Lax-Friedrichs ===&lt;br /&gt;
&lt;br /&gt;
O método de Lax-Friedrichs consiste em substituir o termo &amp;lt;math&amp;gt;\textbf{U}^n_i&amp;lt;/math&amp;gt; com sua respectiva média espacial, i.e., &amp;lt;math&amp;gt;U^n_i = (U^n_{i+1} + U^n_{i-1})/2&amp;lt;/math&amp;gt;. Logo, temos a seguinte equação de recorrência:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\textbf{U}^{n+1}_i = \frac{1}{2}(\textbf{U}^n_{i+1} + \textbf{U}^n_{i-1}) - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== O Método de Leapfrog ===&lt;br /&gt;
&lt;br /&gt;
Tanto o método FTCS quanto o método de Lax-Friedrichs são métodos de primeira ordem para a derivada temporal. Nessas circunstâncias, &amp;lt;math&amp;gt;v \Delta t&amp;lt;/math&amp;gt; deve ser significantemente menor do que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, muito abaixo do limite imposto pela condição de Courant.&lt;br /&gt;
&lt;br /&gt;
Uma nova expressão para a derivada temporal, com precisão de segunda ordem é dada por&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left.\frac{\partial u}{\partial t}\right|^n_i = \frac{U^{n+1}_i - U^{n-1}_i}{2 \Delta t} + \mathcal{O}(\Delta t^2).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo a nova expressão acima no método de FTCS discutido anteriormente, encontramos o método de Leapfrog:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\textbf{U}^{n+1}_i = \textbf{U}^{n-1}_i - \frac{\Delta t}{\Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como o método de Leapfrog será o mais aplicado na resolução do problema da onda, é interessante um aprofundamento maior do método. Podemos adaptar o método de Leapfrog para o sistema de equações definido para a equação da onda ao fazermos a discretização ao redor de um ponto qualquer &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; no instante de tempo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
k_{i+\frac{1}{2}}^n \equiv v \left.\frac{\partial U}{\partial x}\right|_{i+\frac{1}{2}}^{n} = v \frac{U_{i+1}^n-U_i^n}{\Delta x} + \mathcal{O}(\Delta x) \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s_{i}^{n+\frac{1}{2}} \equiv \left.\frac{\partial U}{\partial t}\right|_{i}^{n+\frac{1}{2}} = \frac{U_{i}^{n+1}-U_i^n}{\Delta t} + \mathcal{O}(\Delta t) \qquad (2)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com essas discretizações, podemos utilizar as equações (1) e (2) para resolvermos para &amp;lt;math&amp;gt;k^{n+1}_{i+\frac{1}{2}}&amp;lt;/math&amp;gt; apenas em termos de &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;. Fazendo as substituições dessas duas equações uma na outra (ver passo a passo: [[Dedução Leapfrog]]), obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\Delta x}{v}k^{n+1}_{i+\frac{1}{2}} = s^{n+\frac{1}{2}}_{i+1}\Delta t + \frac{\Delta x}{v}k^{n}_{i+\frac{1}{2}} + U^n_i - (s^{n+\frac{1}{2}}_i \Delta t + U^n_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dessa equação, chegamos a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
k_{i+\frac{1}{2}}^{n+1} = k_{i+\frac{1}{2}}^n+r(s_{i+1}^{n+\frac{1}{2}}-s_{i}^{n+\frac{1}{2}}) \qquad (3)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizando o mesmo raciocínio, podemos também resolver para &amp;lt;math&amp;gt;s^{n+\frac{1}{2}}_i&amp;lt;/math&amp;gt; e obter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
s_i^{n+\frac{1}{2}} = s_{i}^{n-\frac{1}{2}}+r(k_{i+\frac{1}{2}}^{n}-k_{i-\frac{1}{2}}^{n}) \qquad (4)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com essas duas equações, podemos fazer uma integração utilizando o método de Euler para obter &amp;lt;math&amp;gt;U_i^{n+1}&amp;lt;/math&amp;gt;, ou seja, o deslocamento de um determinado ponto &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; da corda no próximo instante de tempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_i^{n+1} = U_i^n + \frac{\Delta t}{2}s_i^{n+\frac{1}{2}}+\mathcal{O}(\Delta x^2).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contudo, podemos fazer uma simples substituição das equações &amp;lt;math&amp;gt;(1)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(2)&amp;lt;/math&amp;gt; nas equações &amp;lt;math&amp;gt;(3)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(4)&amp;lt;/math&amp;gt; e, assim, obtemos que a representação de Leapfrog da equação da onda é dada pela discretização de segunda ordem da própria equação da onda, com &amp;lt;math&amp;gt;\mathcal{O}(\Delta t^2, \Delta x^2)&amp;lt;/math&amp;gt; (ver passo a passo da comparação [[Discretização x Leapfrog]]. Isso nos dá uma solução de &amp;quot;um passo&amp;quot;, onde só precisamos efetuar o cálculo da equação discretizada pelo método da derivação finita, ou seja, para o caso da corda ideal, a equação&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_i^{n+1} = 2(1-r^2)U_i^n + r^2[U_{i+1}^n+U_{i-1}^n]-U_i^{n-1}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== O Método de Lax-Wendroff ===&lt;br /&gt;
&lt;br /&gt;
O método de Lax-Wendroff é a extensão do método de Lax-Friedrichs de segunda ordem. Calculamos o vetor &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt; a partir de um passo médio de Lax-Friedrichs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\textbf{U}^{n+\frac{1}{2}}_{i + \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i+1} + \textbf{U}^n_i] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i+1} - \textbf{F}^n_i] + \mathcal{O}(\Delta x^2)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\textbf{U}^{n+\frac{1}{2}}_{i - \frac{1}{2}} = \frac{1}{2} [\textbf{U}^n_{i} + \textbf{U}^n_{i-1}] - \frac{\Delta t}{2 \Delta x} [\textbf{F}^n_{i} - \textbf{F}^n_{i-1}] + \mathcal{O}(\Delta x^2)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
E encontramos os fluxos &amp;lt;math&amp;gt;\textbf{F}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}&amp;lt;/math&amp;gt; a partir dos valores de &amp;lt;math&amp;gt;\textbf{U}^{n+\frac{1}{2}}_{i \pm \frac{1}{2}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo, com um meio passo de Leapfrog, temos a expressão final do método:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\textbf{U}^{n+1}_i = \textbf{U}^n_i - \frac{\Delta t}{\Delta x} \left[\textbf{F}^{n + \frac{1}{2}}_{i + \frac{1}{2}} - \textbf{F}^{n + \frac{1}{2}}_{i - \frac{1}{2}}\right] + \mathcal{O}(\Delta x^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Análise e Discussão dos Resultados ==&lt;br /&gt;
Escolhemos para simular quatro diferentes cordas: as cordas C2, C4 e C7, que são cordas dó de um piano &amp;lt;ref&amp;gt;Antoine Chaign, Anders Askenfelt, &amp;quot;Numerical simulations of piano strings. I. A physical model for a struck string using finite difference methods&amp;quot;. Signal Department, Paris, France. Department of Speech Communication and Music Acoustics; Royal Institute of Technology, Stockholm, Sweden.&amp;lt;/ref&amp;gt; e uma corda qualquer baseada nos dados encontrados no livro &amp;quot;&#039;&#039;Computational Physics&#039;&#039;&amp;quot; &amp;lt;ref name=giordano/&amp;gt;. Os dados das cordas C2, C4 e C7 estão na tabela abaixo, onde iremos definir para cada corda o comprimento, a massa, a tensão aplicada elas, o número de divisões existentes, amostragem de sinal (que é um parâmetro obtido experimentalmente)e o parâmetro de fricção.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! &#039;&#039;&#039;C2&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;C4&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;C7&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Comprimento&#039;&#039;&#039; (&amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;)&lt;br /&gt;
| &amp;lt;math&amp;gt;1.90&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;0.62&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;0.09&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Massa&#039;&#039;&#039;(&amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;)&lt;br /&gt;
| &amp;lt;math&amp;gt;35&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;3.93 &amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;0.467&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tensão&#039;&#039;&#039; (&amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;)&lt;br /&gt;
| &amp;lt;math&amp;gt;750&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;670&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;750&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Divisões&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;50&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;16&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Amostragem de sinal&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;math&amp;gt;16\times10^{3}&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;32\times10^{3}&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;96\times10^{3}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Parâmetro de fricção&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;math&amp;gt;7.5\times10^{-6}&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;3.82\times10^{-5}&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;8.67\times10^{-4}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Desses dados, temos que a densidade linear de massa das cordas é dada por &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\rho = \frac{M}{L},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; é a massa e &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; o comprimento da corda, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;v = \sqrt{\frac{T}{\rho}},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; é a tensão na corda, &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\Delta x = \frac{L}{K},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta t = \frac{1}{f_e},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r = v\frac{\Delta t}{\Delta x}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os dados obtidos a partir de todas essas equações são calculados pelo programa com base dos dados da tabela.&lt;br /&gt;
&lt;br /&gt;
Para a simulação baseada nos dados retirados do livro &#039;&#039;&amp;quot;Computational Physics&amp;quot;&#039;&#039;&amp;lt;ref name=giordano/&amp;gt;, utilizamos uma corda com 2 metros de comprimento, com velocidade de propagação transversal da onda sendo 300&amp;lt;math&amp;gt;m/s&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; de 0.01&amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta t = \frac{\Delta x }{4v}&amp;lt;/math&amp;gt; e parâmetro de fricção de &amp;lt;math&amp;gt;7.5\times10^{-6}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo uma corda inicialmente em repouso, temos que em &amp;lt;math&amp;gt;t = 0&amp;lt;/math&amp;gt; a corda irá receber em seu centro o equivalente à batida do martelo de um piano. Supomos que esse estímulo da batida do martelo possuía o formato aproximado de uma Gaussiana com amplitude de &amp;lt;math&amp;gt;\frac{1}{4}&amp;lt;/math&amp;gt; do comprimento de cada corda. &lt;br /&gt;
&lt;br /&gt;
Então, com o estado inicial da simulação sendo um pulso com o formato de um pacote gaussiano, utilizando condições de contorno fixas, ou seja, mantendo as extremidades da corda paradas e utilizando os dados da tabela para simularmos cada uma das cordas, começamos a simular a propagação de ondas.&lt;br /&gt;
&lt;br /&gt;
Utilizando o método de Leapfrog, foi realizada uma primeira simulação para uma onda ideal em uma corda:&lt;br /&gt;
&lt;br /&gt;
[[File:ideal.gif|frame|none|alt=Alt text|Simulação de uma onda em uma corda ideal com condições de contorno u(0,t) = 0 e u(L,t) = 0. A corda simulada possuía comprimento de 2 metros e a amplitude inicial do pulso gaussiano tinha amplitude de 0.5 metros. Foi utilizado uma velocidade de propagação de 300 m/s, &amp;lt;math&amp;gt;\Delta x = 0.01&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta t = \frac{\Delta x }{4v}&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Corda C2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:C2.gif|frame|none|alt=Alt text|Simulação de uma corda C2 de um piano com os parâmetros da tabela acima.]][[Arquivo:C2foto.png|frame|none|alt=Alt text|Estado da corda C2 em diferentes instantes de tempo.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Corda C4:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:C4.gif|frame|none|alt=Alt text|Simulação de uma corda C4 de um piano com os parâmetros da tabela acima.]]&lt;br /&gt;
[[Arquivo:C4foto.png|frame|none|alt=Alt text|Estado da corda C4 em diferentes instantes de tempo.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Corda C7:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:C7.gif|frame|none|alt=Alt text|Simulação de uma corda C7 de um piano com os parâmetros da tabela acima.]]&lt;br /&gt;
[[Arquivo:C7foto.png|frame|none|alt=Alt text|Estado da corda C7 em diferentes instantes de tempo.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Corda com as definições do livro &amp;quot;&#039;&#039;Computational Physics&#039;&#039;&amp;quot;&amp;lt;ref name=giordano/&amp;gt;:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Giordano.gif|frame|none|alt=Alt text|Simulação da corda exemplificada no livro &#039;&#039;Computational Physics&#039;&#039; &amp;lt;ref name=giordano/&amp;gt;. Os parâmetros utilizados estão descritos no texto.]]&lt;br /&gt;
[[Arquivo:Giordanofoto.png|frame|none|alt=Alt text|Estado da corda usada como exemplo pelo autor Giordano &amp;lt;ref name=giordano/&amp;gt; em diferentes instantes de tempo.]]&lt;br /&gt;
&lt;br /&gt;
É possível observar que o tempo necessário para que, devido a fricção, os movimentos na corda diferenciem-se cada vez mais da solução para a corda ideal é menor para um tamanho de corda menor, ou seja, a fricção acaba sendo mais relevante mais rapidamente em cordas mais curtas. Isso significa que deixamos de ter apenas dois pulsos propagando-se em sentidos opostos para termos ou mais pulsos de amplitudes menores, ou a soma de pulsos de diferentes amplitudes.&lt;br /&gt;
&lt;br /&gt;
=== Scripts para a simulação dos resultados apresentados: ===&lt;br /&gt;
&lt;br /&gt;
[[Programa baseado no método de Leapfrog para a simulação de uma corda ideal]]&lt;br /&gt;
&lt;br /&gt;
[[Programa baseado no método de Leapfrog para a simulação de uma corda real]]&lt;br /&gt;
&lt;br /&gt;
== Análise de Erro e Estabilidade dos Métodos ==&lt;br /&gt;
&lt;br /&gt;
=== Estabilidade do método Leapfrog ===&lt;br /&gt;
Pela estabilidade de Von Neumann, podemos escrever que &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
r \leq 1.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;r = 1&amp;lt;/math&amp;gt;, a equação da discretização da onda pode ser reescrita como&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U_i^{n+1} = U_{i+1}^n+U_{i-1}^n-U_i^{n-1}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa escolha com &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\Delta x}{\Delta t} = v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nos dá a solução exata sem dispersão numérica, como pode ser verificado pela condição CFL. Contudo, &amp;lt;math&amp;gt;r=1&amp;lt;/math&amp;gt; é válido somente no caso de uma corda ideal.&lt;br /&gt;
É conveniente escrever a condição acima em termos da amostragem de sinal &amp;lt;math&amp;gt;f_e = \frac{1}{\Delta t}&amp;lt;/math&amp;gt; e a frequência fundamental da corda &amp;lt;math&amp;gt;f_1 = \frac{v}{2L}&amp;lt;/math&amp;gt;, o que nos leva a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Kf_1 \leq \frac{f_e}{2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O[https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem Teorema de Nyquist-Shannon] diz que a frequência superior no espectro deve ser menor do que &amp;lt;math&amp;gt;\frac{f_e}{2}&amp;lt;/math&amp;gt; para evitar serrilhamento e para garantir uma reconstrução única e contínua. Logo, no caso ideal quando as autofrequências da corda são igualmente espaçadas (&amp;lt;math&amp;gt;\Delta f = f_1&amp;lt;/math&amp;gt;), a condição de Nyquist indica que o número máximo de frequências no espectro é &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt;. Isso significa que essa condição pode ser usada para selecionar o número apropriado de pontos espaciais &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt; para a corda. Entretanto, como &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt; é um inteiro, apenas valores discretos da frequência natural podem ser obtidos sem erros de trucamento, ou seja, usando &amp;lt;math&amp;gt;r = 1&amp;lt;/math&amp;gt;. Como séries discretas não costumam ser utilizadas, precisamos aceitar pequenos erros de truncamento para ajustar &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt;, ou seja, utilizando &amp;lt;math&amp;gt;r &amp;lt; 1&amp;lt;/math&amp;gt;. No caso de uma onda com fricção, temos que &amp;lt;math&amp;gt;r=\frac{1}{4}&amp;lt;/math&amp;gt; é um valor de boa estabilidade.&lt;br /&gt;
&lt;br /&gt;
== Referências Bibliográficas==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2724</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2724"/>
		<updated>2020-01-19T13:35:30Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Grupo3 - Ondas2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== [[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
=====[[Ondas 1]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Ondas 2]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo4 - FFT]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo5 - Eq. Schroedinger]]=====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ondas_1&amp;diff=2723</id>
		<title>Ondas 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ondas_1&amp;diff=2723"/>
		<updated>2020-01-19T13:34:52Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039; &amp;#039;&amp;#039;&amp;#039;Integrantes do grupo:&amp;#039;&amp;#039;&amp;#039; Rodrigo Zamin Ferreira (262692), Leonardo Xavier Rodrigues (262696), Maurício Gomes de Queiroz (264889) e Rodrigo Lopes de Sousa Silva (262705)...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Integrantes do grupo:&#039;&#039;&#039; Rodrigo Zamin Ferreira (262692), Leonardo Xavier Rodrigues (262696), Maurício Gomes de Queiroz (264889) e Rodrigo Lopes de Sousa Silva (262705)&lt;br /&gt;
&lt;br /&gt;
==Introdução==&lt;br /&gt;
&lt;br /&gt;
A modelagem numérica vem se tornando cada vez mais uma ferramenta indispensável para um engenheiro. Tal modelagem pode trazer informações importantes para entender como melhor abordar o desenvolvimento de um projeto, neste caso, um que envolva ondas. Nós, como futuros engenheiros físicos, pensamos em trazer um problema mais &amp;quot;concreto&amp;quot;, de engenharia costeira e portuária, que pode ou não surgir em nossas vidas profissionais mas cujo método de solução certamente estará presente. &lt;br /&gt;
Aqui será apresentado um modelo baseado em uma condição inicial e um perfil topográfico do local estudado que descreve a evolução temporal de uma onda.&lt;br /&gt;
&lt;br /&gt;
Inicialmente, para testarmos os diferentes métodos, utilizaremos a equação da onda em uma dimensão, que é uma equação diferencial parcial de segunda ordem, para modelarmos uma corda:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^2 u}{\partial t^2}  = c^2 \frac{\partial^{2} u}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
em que &amp;lt;math&amp;gt; u(x, t) &amp;lt;/math&amp;gt; é o deslocamento vertical da corda, &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; é a velocidade de propagação da onda e &amp;lt;math&amp;gt; 0&amp;lt;x&amp;lt;L &amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt; L &amp;lt;/math&amp;gt; o comprimento da corda.&lt;br /&gt;
&lt;br /&gt;
Podemos reescrever a equação da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} \Big( \frac{\partial u}{\partial t} \Big)  =  c\frac{\partial}{\partial x} \Big( c\frac{\partial u}{\partial x} \Big)  &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Uma vez que os métodos citados abaixo são para equações de primeira ordem, é necessário separarmos a equação em um sistema de equações, fazendo a substituição &amp;lt;math&amp;gt; v=\frac{\partial u}{\partial t} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; w= c\frac{\partial u}{\partial x} &amp;lt;/math&amp;gt;, de forma que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\dfrac{\partial v}{\partial t}=c\dfrac{\partial w}{\partial x} \\&lt;br /&gt;
&lt;br /&gt;
\\&lt;br /&gt;
&lt;br /&gt;
c\dfrac{\partial v}{\partial x}=\dfrac{\partial w}{\partial t} \\&lt;br /&gt;
&lt;br /&gt;
\end{cases}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aqui usaremos &amp;lt;math&amp;gt;c=1&amp;lt;/math&amp;gt;, sem perda de generalidade. As condições de contorno utilizadas aqui são &amp;lt;math&amp;gt; u(0, t) = u(L, t) = 0 &amp;lt;/math&amp;gt; (pontas fixas), e as condições iniciais são &amp;lt;math&amp;gt; u(x,0) = \sin{\Big(\frac{\pi x}{L}\Big)} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \frac{\partial u}{\partial t}(x, 0) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Algoritmos==&lt;br /&gt;
&lt;br /&gt;
Apresentaremos aqui três abordagens diferentes para a solução da equação diferencial parcial apresentada, e após, seus respectivos erros associados. A respeito das discretizações, &amp;lt;math&amp;gt; j &amp;lt;/math&amp;gt; corresponde à posição, e &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; representa o tempo.&lt;br /&gt;
&lt;br /&gt;
===Método de Lax-Friedrichs ===&lt;br /&gt;
&lt;br /&gt;
Esse método de ordem &amp;lt;math&amp;gt; \mathcal{O}(\Delta x^2, \Delta t)&amp;lt;/math&amp;gt;&amp;lt;ref name=recipes&amp;gt;&amp;lt;/ref&amp;gt; consiste em inicialmente discretizar as equações no esquema FTCS (Forward Time Centered Space), ou seja, discretizando a derivada temporal utilizando os tempos &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;n+1&amp;lt;/math&amp;gt; e a derivada espacial através das posições &amp;lt;math&amp;gt;j-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;j+1&amp;lt;/math&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{1}{\Delta t}(v_{j}^{n+1} - v_j^n) = \frac{1}{2\Delta x} (w_{j+1}^{n} - w_{j-1}^{n}) &amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{1}{\Delta t}(w_{j}^{n+1} - w_j^n) = \frac{1}{2\Delta x} (v_{j+1}^{n} - v_{j-1}^{n})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resultando em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j}^{n+1} = v_j^n + \frac{\Delta t}{2\Delta x}(w_{j+1}^{n} - w_{j-1}^{n}) &amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j}^{n+1} = w_j^n + \frac{\Delta t}{2\Delta x}(v_{j+1}^{n} - v_{j-1}^{n}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Entretanto, ao se realizar uma análise de estabilidade de Von Neumann, conclui-se que esse método é instável&amp;lt;ref name=recipes&amp;gt;Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). &amp;quot;Numerical Recipes: The Art of Scientific Computing&amp;quot; (3rd ed.). New York: Cambridge University Press. ISBN 978-0-521-88068-8.&amp;lt;/ref&amp;gt; . Para torná-lo estável, é necessário trocarmos os termos &amp;lt;math&amp;gt; v_j^n &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; w_j^n &amp;lt;/math&amp;gt; por suas médias espaciais, chegando, assim, na expressão do esquema de Lax-Friedrichs:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j}^{n+1} = \Big( \frac{ v_{j-1}^{n} + v_{j+1}^{n}}{2} \Big) + \frac{\Delta t}{2\Delta x}(w_{j+1}^{n} - w_{j-1}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j}^{n+1} = \Big( \frac{ w_{j-1}^{n} + w_{j+1}^{n}}{2} \Big) + \frac{\Delta t}{2\Delta x}(v_{j+1}^{n} - v_{j-1}^{n}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para obtermos o valor de &amp;lt;math&amp;gt; u_{j}^{n+1} &amp;lt;/math&amp;gt;, que é o nosso objetivo, discretizamos a equação &amp;lt;math&amp;gt; \frac{\partial u}{\partial t} = v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{n+1} = u_{j}^{n} + v_{j}^{n}\Delta t &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
Embora as médias espaciais sejam necessárias para a estabilidade do método, elas introduzem um problema: surge um efeito chamado de dissipação numérica, ou seja, a amplitude da solução diminui com o tempo. Isso pode ser observado através da análise de Von Neumann ou de uma investigação da equação do esquema Lax-Friedrichs &amp;lt;ref name=recipes/&amp;gt; . Por este método, observa-se que ao inserirmos as médias, mudamos a equação original do problema, pois agora há também um termo do tipo difusivo (uma derivada segunda), com constante de difusão &amp;lt;math&amp;gt;\frac{(\Delta x)^2}{2\Delta t}&amp;lt;/math&amp;gt; &amp;lt;ref name=recipes/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Agora vamos unir todas as equações, utilizando, além da equação para &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; obtida acima, as discretizações de &amp;lt;math&amp;gt; v=\frac{\partial u}{\partial t} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; w= \frac{\partial u}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_j^n = \frac{1}{\Delta t} (u_{j}^{n+1} - u_{j}^{n})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_j^n = \frac{1}{2\Delta x} (u_{j+1}^{n} - u_{j-1}^{n})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, obtemos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{n+1} = u_{j}^{n} + \Big( \frac{u_{j-1}^{n} + u_{j+1}^{n}}{2} \Big) - \Big( \frac{u_{j-1}^{n-1} + u_{j+1}^{n-1}}{2} \Big) + \frac{(\Delta t)^2}{4(\Delta x)^2} \Big( u_{j-2}^{n-1} -2u_{j}^{n-1} + u_{j+2}^{n-1}\Big) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Método de Leapfrog ===&lt;br /&gt;
Neste método , de ordem &amp;lt;math&amp;gt; \mathcal{O}(\Delta x^2, \Delta t^2 )&amp;lt;/math&amp;gt; &amp;lt;ref name=recipes&amp;gt;&amp;lt;/ref&amp;gt;, utilizamos os pontos intermediários na discretização das equações.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{1}{\Delta t}\bigg( v_{j}^{n+\frac{1}{2}} -  v_{j}^{n-\frac{1}{2}}\bigg) = \frac{1}{\Delta x}\Big(w_{j+\frac{1}{2}}^{n} -  w_{j-\frac{1}{2}}^{n}\bigg)  \Rightarrow v_{j}^{n+\frac{1}{2}} =  v_{j}^{n-\frac{1}{2}} + \frac{\Delta t}{\Delta x} \bigg(w_{j+\frac{1}{2}}^{n} - w_{j-\frac{1}{2}}^{n} \bigg) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  \frac{1}{\Delta x}\bigg(v_{j+1}^{n+\frac{1}{2}} -  v_{j}^{n+\frac{1}{2}}\bigg) = \frac{1}{\Delta t}\bigg(w_{j+\frac{1}{2}}^{n+1} -  w_{j+\frac{1}{2}}^{n} \bigg) \Rightarrow w_{j+\frac{1}{2}}^{n+1} =  w_{j+\frac{1}{2}}^{n} + \frac{\Delta t}{\Delta x} \bigg(v_{j+1}^{n+\frac{1}{2}} - v_{j}^{n+\frac{1}{2}}\bigg) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  v_{j}^{n+\frac{1}{2}} = \frac{\partial u}{\partial t} \bigg|_{j}^{n+\frac{1}{2}} = \frac{1}{\Delta t} (u_{j}^{n+1} - u_j^n) \Rightarrow  u_{j}^{n+1} = u_j^n + v_{j}^{n+\frac{1}{2}} \Delta t&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j}^{n+\frac{1}{2}} = \frac{1}{\Delta t} (u_{j}^{n+1} - u_j^n)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w_{j+\frac{1}{2}}^{n} = \frac{1}{\Delta x} (u_{j+1}^{n} - u_{j}^{n})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
chegamos na equação para &amp;lt;math&amp;gt;u_{j}^{n+1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  u_{j}^{n+1} = 2u_{j}^{n} - u_{j}^{n-1} + \frac{(\Delta t)^2}{(\Delta x)^2}(u_{j+1}^{n} - 2u_{j}^{n} + u_{j-1}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
o que é equivalente a discretizarmos a equação da onda diretamente, utilizando que, para uma função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d^2f}{dx^2}\bigg|_j = \frac{1}{(\Delta x)^2}(f_{j-1} - 2f_j + f_{j+1})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
sendo &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; a discretização em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Método de Lax-Wendroff de Dois Passos ===&lt;br /&gt;
&lt;br /&gt;
Para este método, de ordem &amp;lt;math&amp;gt; \mathcal{O}(\Delta x^2, \Delta t^2 )&amp;lt;/math&amp;gt;, o primeiro passo consiste em calcular o valor de &amp;lt;math&amp;gt;v^{n+\frac{1}{2}}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;w^{n+\frac{1}{2}}&amp;lt;/math&amp;gt; utilizando o método de Lax-Friedrichs, para posterior cálculo de &amp;lt;math&amp;gt;v^{n+1}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;w^{n+1}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j+\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( v_{j+1}^{n} +  v_{j}^{n} ) + \frac{\Delta t }{2\Delta x} (w_{j+1}^{n} -  w_{j}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j-\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( v_{j}^{n} +  v_{j-1}^{n} ) + \frac{\Delta t }{2\Delta x} (w_{j}^{n} -  w_{j-1}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j+\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( w_{j+1}^{n} +  w_{j}^{n} ) + \frac{\Delta t }{2\Delta x} (v_{j+1}^{n} -  v_{j}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  w_{j-\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( w_{j}^{n} +  w_{j-1}^{n} ) + \frac{\Delta t }{2\Delta x} (v_{j}^{n} -  v_{j-1}^{n})  &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora, no tempo &amp;lt;math&amp;gt;n+1&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j}^{n+1} =  v_{j}^{n} + \frac{\Delta t}{\Delta x} \bigg(w_{j+\frac{1}{2}}^{n+\frac{1}{2}} - w_{j-\frac{1}{2}}^{n+\frac{1}{2}}\bigg) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j}^{n+1} =  w_{j}^{n} + \frac{\Delta t}{\Delta x} \bigg(v_{j+\frac{1}{2}}^{n+\frac{1}{2}} - v_{j-\frac{1}{2}}^{n+\frac{1}{2}}\bigg) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agrupando as equações,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j}^{n+1} = w_j^n + \frac{\Delta t}{\Delta x} \Bigg[\frac{1}{2}(v_{j+1}^{n} -  v_{j-1}^{n}) + \frac{\Delta t}{2\Delta x} (w_{j+1}^{n} - 2 w_{j}^{n} + w_{j-1}^{n})\Bigg] &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  v_{j}^{n+1} = v_j^n + \frac{\Delta t}{\Delta x} \Bigg[\frac{1}{2}(w_{j+1}^{n} -  w_{j-1}^{n}) + \frac{\Delta t}{2\Delta x} (v_{j+1}^{n} - 2 v_{j}^{n} + v_{j-1}^{n})\Bigg] &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
E finalmente temos a equação unificada em u, utilizando a expressão para &amp;lt;math&amp;gt;  v_{j}^{n+1} &amp;lt;/math&amp;gt; e as discretizações de &amp;lt;math&amp;gt; v=\frac{\partial u}{\partial t} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; w= \frac{\partial u}{\partial x} &amp;lt;/math&amp;gt;, como obtidas na seção sobre o Método de Lax-Friedrichs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{n+1} = u_{j}^{n} + v_{j}^{n}\Delta t &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  u_{j}^{n+1} = 2u_{j}^{n} - u_{j}^{n-1} + \frac{(\Delta t)^2}{2(\Delta x)^2}\Bigg[ \frac{1}{2}u_{j+2}^{n-1} - \frac{1}{2}u_{j-2}^{n-1} + u_{j+1}^{n} - u_{j+1}^{n-1} - 2u_{j}^{n} + u_{j}^{n-1} + u_{j-1}^{n} - u_{j-1}^{n-1}\Bigg]  &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
== Implementação==&lt;br /&gt;
&lt;br /&gt;
Ao implementarmos o método, surgem dois problemas: o problema não é auto-inicializável, pois para calcularmos o valor de &amp;lt;math&amp;gt;u_j^{1}&amp;lt;/math&amp;gt;, necessitamos de &amp;lt;math&amp;gt;u_j^{-1}&amp;lt;/math&amp;gt; (além de &amp;lt;math&amp;gt;u_j^{0}&amp;lt;/math&amp;gt;). Entretanto, isto é rapidamente solucionado quando discretizamos a condição inicial de que &amp;lt;math&amp;gt; \frac{\partial u}{\partial t}(x, 0) = 0 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{1}{2\Delta t} (u_j^{1} - u_j^{-1}) = 0 \Rightarrow u_j^{1} = u_j^{-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
ou seja, para o cálculo de &amp;lt;math&amp;gt;u_j^{-1}&amp;lt;/math&amp;gt;, utilizamos que &amp;lt;math&amp;gt; u_j^{1} = u_j^{-1} &amp;lt;/math&amp;gt;. Através do método de Leapfrog, dessa forma conseguimos isolar &amp;lt;math&amp;gt;u_j^{-1}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{-1} = 2u_{j}^{0} - u_{j}^{-1} + \frac{(\Delta t)^2}{(\Delta x)^2}(u_{j+1}^{0} - 2u_{j}^{0} + u_{j-1}^{0})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{-1} = u_{j}^{0} + \frac{(\Delta t)^2}{2(\Delta x)^2}(u_{j+1}^{0} - 2u_{j}^{0} + u_{j-1}^{0})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Porém, isso não ocorre com os outros dois métodos, pois surgem termos em diferentes posições para o tempo &amp;lt;math&amp;gt;n=0&amp;lt;/math&amp;gt; (de &amp;lt;math&amp;gt;u_{-2}^{0}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{-1}^{0}&amp;lt;/math&amp;gt;, até &amp;lt;math&amp;gt;u_{2}^{0}&amp;lt;/math&amp;gt;), sendo necessário resolvermos o sistema como um todo simultaneamente, ou seja, teríamos que inverter uma matriz. Por isso, foi utilizado o método de Leapfrog para o cálculo de &amp;lt;math&amp;gt;u_j^{-1}&amp;lt;/math&amp;gt; em todos os métodos, devido a sua simplicidade.&lt;br /&gt;
&lt;br /&gt;
Além disso, são necessários valores de &amp;lt;math&amp;gt;u_{-1}^n&amp;lt;/math&amp;gt; e de &amp;lt;math&amp;gt;u_{j_{max}+1}^n&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;j_{max}&amp;lt;/math&amp;gt; correspondendo a &amp;lt;math&amp;gt;x = L&amp;lt;/math&amp;gt;, para calcularmos &amp;lt;math&amp;gt;u_1^{n}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{j_{max}}^{n}&amp;lt;/math&amp;gt;, para qualquer tempo, utilizando os métodos de Lax-Wendroff de dois passos e Lax-Friedrichs. A solução a este problema foi utilizarmos &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{-1}^n = -u_{1}^n &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{j_{max}+1}^n = -u_{j_{max}-1}^n &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pensando na condição inicial &amp;lt;math&amp;gt; u(x,0) = \sin{\Big(\frac{\pi x}{L}\Big)} &amp;lt;/math&amp;gt;, e estendendo para além da corda (pensando no seno de &amp;lt;math&amp;gt; -\infty&amp;lt;x&amp;lt;\infty &amp;lt;/math&amp;gt;), observamos que ela respeita as equações acima.&lt;br /&gt;
&lt;br /&gt;
== Solução e Análise de erros ==&lt;br /&gt;
&lt;br /&gt;
Primeiramente, apresentamos abaixo as soluções geradas pelos programas, em comparação com a solução analítica.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Output_comp.png|frame|100px|center|Comparação da solução analítica com as soluções numéricas]]&lt;br /&gt;
&lt;br /&gt;
Aqui já podemos observar o que foi comentado na seção sobre o método de Lax-Friedrichs: devido à dissipação numérica inerente ao método, há uma diminuição da amplitude da onda ao longo do tempo, embora ela mantenha sua forma. Isso interferirá na análise do erro deste método, o que será apresentado na sequência.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir do cálulo da solução analítica da equação da onda, podemos calcular quanto o valor obtido pelos métodos difere da solução real, o que leva a uma visualização do erro corrente em cada método de integração.&lt;br /&gt;
Nesse caso, a solução é &amp;lt;math&amp;gt;u(x, t) = \cos{\Big(\frac{\pi t}{L}\Big)}\sin{\Big(\frac{\pi x}{L}\Big)}&amp;lt;/math&amp;gt; &amp;lt;ref&amp;gt;&lt;br /&gt;
Weisstein, Eric W. &amp;quot;Wave Equation--1-Dimensional.&amp;quot; From MathWorld--A Wolfram Web Resource; disponível em: [http://mathworld.wolfram.com/WaveEquation1-Dimensional.html]; último acesso em 26/11/2017&amp;lt;/ref&amp;gt;.A análise de erros se torna mais evidente durante a escolha do parâmetro &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;k = \frac{\Delta t}{\Delta x}&amp;lt;/math&amp;gt;. Valores grandes trazem pouca acurácia, e valores pequenos necessitam de muito poder de computação (tempo e dinheiro).&lt;br /&gt;
&lt;br /&gt;
O erro foi obtido efetuando uma média espacial, ou seja, o programa foi evoluindo até um tempo final &amp;lt;math&amp;gt;t_f = 100&amp;lt;/math&amp;gt;, e, em &amp;lt;math&amp;gt;t=t_f&amp;lt;/math&amp;gt;, foi feita uma média sobre o valor absoluto da diferença entre a solução analítica e a numérica. Aqui variamos o valor de &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt;, fixando &amp;lt;math&amp;gt; \Delta x=1&amp;lt;/math&amp;gt;, de forma que &amp;lt;math&amp;gt;k=\Delta t&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
[[Arquivo:erro_dt.jpeg|frame|400px|center|Comparação do erro global entre os três métodos estudados com escala logarítimica em ambos os eixos]]&lt;br /&gt;
&lt;br /&gt;
Podemos observar que os erros crescem à medida que o parâmetro k se torna maior, como seria de se esperar. &lt;br /&gt;
&lt;br /&gt;
Além disso, sabendo a ordem do erro dos métodos, podemos determinar a inclinação da reta que melhor se ajusta aos pontos. Se um método tem erro de ordem &amp;lt;math&amp;gt;(\Delta t)^n&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon _l = \alpha (\Delta t)^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
em que &amp;lt;math&amp;gt;\varepsilon _l&amp;lt;/math&amp;gt; é o erro local, ou seja, o erro de um passo do método, e &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; é uma constante. Assim, o erro global &amp;lt;math&amp;gt;\varepsilon _g&amp;lt;/math&amp;gt;, ou seja, o erro após N passos, é dado por &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon _g = N\varepsilon _l= N\alpha (\Delta t)^n &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como &amp;lt;math&amp;gt;N = \frac{t_f}{\Delta t}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\varepsilon _g = \frac{t_f}{\Delta t}\alpha (\Delta t)^n = \alpha t_f (\Delta t)^{n-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Logo, se o erro local é de ordem &amp;lt;math&amp;gt;(\Delta t)^n&amp;lt;/math&amp;gt;, o erro global (que é o que calculamos aqui) é de ordem &amp;lt;math&amp;gt;(\Delta t)^{n-1}&amp;lt;/math&amp;gt;. Além disso, como utilizamos escala logarítmica para representar os resultados, a função do erro global se torna&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\log{\varepsilon _g} = \log{\alpha t_f (\Delta t)^{n-1}} = \log{\alpha t_f} + (n-1)\log{(\Delta t)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou seja, a inclinação do gráfico do erro global é &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Observamos que se determinarmos a reta que melhor se ajusta às curvas dos métodos de Leapfrog e Lax-Wendroff, ela tem inclinação aproximada de 1, já que os métodos são de ordem &amp;lt;math&amp;gt;(\Delta t)^2&amp;lt;/math&amp;gt;. Com relação ao gráfico do erro do método de Lax-Friedrichs, é mais complicado de fazer sua análise, uma vez que há o efeito de dissipação numérica, que se intensifica para valores menores de &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt;. Podemos observar nos dados que o  ponto de máximo na parte esquerda do gráfico corresponde a um erro de aproximadamente &amp;lt;math&amp;gt;0,63&amp;lt;/math&amp;gt;, que é a média da solução analítica no tempo &amp;lt;math&amp;gt;t = t_f&amp;lt;/math&amp;gt; (conforme solução analítica, a amplitude no tempo &amp;lt;math&amp;gt;t=100&amp;lt;/math&amp;gt; é &amp;lt;math&amp;gt;\cos{\Big(\frac{100\pi}{49}\Big)} \approx 1&amp;lt;/math&amp;gt;, e a média de &amp;lt;math&amp;gt;\sin{\Big(\frac{\pi x}{L}\Big)}&amp;lt;/math&amp;gt; vale &amp;lt;math&amp;gt;\frac{2}{\pi} \approx 0.64&amp;lt;/math&amp;gt;). Isso significa que, devido à dissipação, a solução numérica é praticamente 0 frente à solução analítica na parte esquerda do gráfico.&lt;br /&gt;
&lt;br /&gt;
== Simulação de Propagação de Onda 2D no Mar Dependente de Topografia ==&lt;br /&gt;
&lt;br /&gt;
O modelo mais simples para a propagação de onda dependente da topografia parte da equação da onda &amp;lt;ref&amp;gt;Lie, Knut-Andreas. &amp;quot;The Wave Equation in 1D and 2D&amp;quot;. Dept. of Informatics, University of Oslo; disponível em: [http://www.uio.no/studier/emner/matnat/ifi/INF2340/v05/foiler/sim04.pdf]; último acesso em 23/10/2017.&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;Hjorth-Jensen, Morten. Computational Physics, University of Oslo, 2009.&amp;lt;/ref&amp;gt;, incluindo uma velocidade dependente da posição, da forma &amp;lt;math&amp;gt;gH(x,y,t)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^2 u}{\partial t^2}  = \Big( \frac{\partial}{\partial x} gH(x,y,t) \frac{\partial u}{\partial x}\Big) + \Big( \frac{\partial}{\partial y} gH(x,y,t) \frac{\partial u}{\partial y}\Big) - \frac{\partial^2 H}{\partial t^2} &amp;lt;/math&amp;gt; ,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sendo &amp;lt;math&amp;gt;H(x,y,t)&amp;lt;/math&amp;gt; uma representação da profundidade em águas calmas, &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; a aceleração da gravidade e &amp;lt;math&amp;gt;u(x, y, t)&amp;lt;/math&amp;gt; a elevação da água em relação ao nível de águas calmas. Em uma situação real, pode-se obtê-la por mapeamento eletrônico do terreno por sistema de sonar. A dependência em &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; de &amp;lt;math&amp;gt;H(x,y,t)&amp;lt;/math&amp;gt; permite um modelo no qual o terreno se modifica com o tempo. Isto é, pode-se observar o efeito que o deslocamento de placas tectônicas, deslizamentos, e até explosões provocam no comportamento das ondas na costa de um país e o reconhecimento de áreas críticas. Entretanto, utilizaremos aqui &amp;lt;math&amp;gt;H = H(x, y)&amp;lt;/math&amp;gt;, sem dependência no tempo, e mudaremos as condições iniciais para a modelagem do problema, além de usarmos &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;, para simplificarmos as expressões.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Grupo2_ondas1_imagem1.png |frame|500px|center| Exemplo de mapeamento de terreno sub - calota polar feito por AUV (&#039;&#039;autonomous underwater vehicle&#039;&#039;)&amp;lt;ref&amp;gt;Wadhams, M. J. Doble. &amp;quot;Digital terrain mapping of the underside of sea ice from a small AUV&amp;quot;; disponível em: DOI: 10.1029/2007GL031921 ; último acesso em 23/10/2017.&amp;lt;/ref&amp;gt; ]]&lt;br /&gt;
&lt;br /&gt;
Como primeira abordagem visando uma análise em 2D, a integração da equação em 1D (mesmo sendo uma situação muito idealizada) já traz resultados interessantes.  Pode ser mostrado que a velocidade da onda pode ser dada por &amp;lt;math&amp;gt;v=\sqrt{gH}&amp;lt;/math&amp;gt;, para o caso em que &amp;lt;math&amp;gt;\lambda&amp;lt;&amp;lt;H&amp;lt;/math&amp;gt;, o que é razoável para um tsunami, que tem um comprimento de onda da ordem de até centenas de quilômetros, com uma profundidade da ordem de quilômetros&amp;lt;ref name=lang&amp;gt;Silveira, F. L.; Varriale, M. C. &amp;quot;Propagação das ondas marítimas e dos tsunami&amp;quot;. Caderno Brasileiro de Ensino de Física, V. 22, N. 2: P. 190-215, 2005.&amp;lt;/ref&amp;gt;. Como o período da onde não se altera &amp;lt;ref name=lang&amp;gt;&amp;lt;/ref&amp;gt;, quanto menor a profundidade, menor a velocidade, e menor o seu comprimento de onda. Além disso, devido à conservação de energia, e supondo que a extensão da frente de onda não seja alterada, é obtida a chamada Lei de Green&amp;lt;ref name=lang&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A_2}{A_1} = \Bigg(\frac{H_1}{H_2}\Bigg)^{\frac{1}{4}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
em que &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; é a amplitude da onda, e os índices representando dois meios. Logo, quanto menos profundo, maior a amplitude da onda.  Esta informação por si só ajuda na construção de proteção contra quebra de ondas, pois é obtido o tamanho que as mesmas atingem. Nos gráficos abaixo podemos observar esses efeitos.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:top_visitados.jpg ‎|frame|500x500px||center| Pontos visitados por simulação em 1D ]]&lt;br /&gt;
&lt;br /&gt;
E no caso em que simulamos uma fina camada de líquido, podemos ver a diminuição de velocidade da onda e o aumento de sua amplitude, especialmente no trecho mais à esquerda:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:camada_de_liquido.gif ‎|frame|500px|center| Simulação em 1D de ondas perto da margem, com camada fina de líquido ]]&lt;br /&gt;
&lt;br /&gt;
É importante notar o quão poderosa é a integração de equações parciais na vida de um engenheiro.&lt;br /&gt;
&lt;br /&gt;
Estendendo o algoritmo de Leapfrog à situação 2D, obtemos, para uma condição inicial de uma gaussiana com média 0 e desvio padrão 1, tanto em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; quanto em &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, e &amp;lt;math&amp;gt;H(x,y) = 1&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:02ss.gif |frame|500px|center|Simulação em 2D de ondas em águas com profundidade constante, visão de cima]]&lt;br /&gt;
[[Arquivo:01ss.gif|frame|500px|center|Simulação em 2D de onda em águas com profundidade constante, visão em ângulo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos então, analisar como a mesma condição inicial se porta quando &amp;lt;math&amp;gt;H(x,y) = 1-e^{\frac{-(x^2 + y^2)}{2}}&amp;lt;/math&amp;gt;, simulando uma elevação de terra:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:02cs.gif |frame|500px|center|Simulação em 2D de ondas em águas com gaussiana na origem, visão de cima]]&lt;br /&gt;
[[Arquivo:01cs.gif|frame|500px|center|Simulação em 2D de onda em águas com gaussiana na origem, visão em ângulo]]&lt;br /&gt;
&lt;br /&gt;
Perfil da onda em sua diagonal:&lt;br /&gt;
[[Arquivo:Output_12344.png|frame|500px|center|Perfil da onda em sua diagonal no tempo de simulação igual a 300]]&lt;br /&gt;
&lt;br /&gt;
==Códigos==&lt;br /&gt;
&lt;br /&gt;
===Equação da onda em uma dimensão===&lt;br /&gt;
[[Lax-Friedrichs]]&lt;br /&gt;
&lt;br /&gt;
[[Lax-Wendroff de dois passos]]&lt;br /&gt;
&lt;br /&gt;
[[Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
[[Erro: Lax-Friedrichs]]&lt;br /&gt;
&lt;br /&gt;
[[Erro: Lax-Wendroff de dois passos]]&lt;br /&gt;
&lt;br /&gt;
[[Erro: Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
===Equação da onda em duas dimensões===&lt;br /&gt;
[[Onda 2D: Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
==Bibliografia==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2722</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2722"/>
		<updated>2020-01-19T13:34:19Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Grupo2 - Ondas 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== [[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
=====[[Ondas 1]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo3 - Ondas2]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo4 - FFT]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo5 - Eq. Schroedinger]]=====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo2_-_Ondas_1&amp;diff=2721</id>
		<title>Grupo2 - Ondas 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo2_-_Ondas_1&amp;diff=2721"/>
		<updated>2020-01-19T13:33:37Z</updated>

		<summary type="html">&lt;p&gt;Heitor: Criou página com &amp;#039; &amp;#039;&amp;#039;&amp;#039;Integrantes do grupo:&amp;#039;&amp;#039;&amp;#039; Rodrigo Zamin Ferreira (262692), Leonardo Xavier Rodrigues (262696), Maurício Gomes de Queiroz (264889) e Rodrigo Lopes de Sousa Silva (262705)...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Integrantes do grupo:&#039;&#039;&#039; Rodrigo Zamin Ferreira (262692), Leonardo Xavier Rodrigues (262696), Maurício Gomes de Queiroz (264889) e Rodrigo Lopes de Sousa Silva (262705)&lt;br /&gt;
&lt;br /&gt;
==Introdução==&lt;br /&gt;
&lt;br /&gt;
A modelagem numérica vem se tornando cada vez mais uma ferramenta indispensável para um engenheiro. Tal modelagem pode trazer informações importantes para entender como melhor abordar o desenvolvimento de um projeto, neste caso, um que envolva ondas. Nós, como futuros engenheiros físicos, pensamos em trazer um problema mais &amp;quot;concreto&amp;quot;, de engenharia costeira e portuária, que pode ou não surgir em nossas vidas profissionais mas cujo método de solução certamente estará presente. &lt;br /&gt;
Aqui será apresentado um modelo baseado em uma condição inicial e um perfil topográfico do local estudado que descreve a evolução temporal de uma onda.&lt;br /&gt;
&lt;br /&gt;
Inicialmente, para testarmos os diferentes métodos, utilizaremos a equação da onda em uma dimensão, que é uma equação diferencial parcial de segunda ordem, para modelarmos uma corda:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^2 u}{\partial t^2}  = c^2 \frac{\partial^{2} u}{\partial x^{2}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
em que &amp;lt;math&amp;gt; u(x, t) &amp;lt;/math&amp;gt; é o deslocamento vertical da corda, &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; é a velocidade de propagação da onda e &amp;lt;math&amp;gt; 0&amp;lt;x&amp;lt;L &amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt; L &amp;lt;/math&amp;gt; o comprimento da corda.&lt;br /&gt;
&lt;br /&gt;
Podemos reescrever a equação da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial}{\partial t} \Big( \frac{\partial u}{\partial t} \Big)  =  c\frac{\partial}{\partial x} \Big( c\frac{\partial u}{\partial x} \Big)  &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Uma vez que os métodos citados abaixo são para equações de primeira ordem, é necessário separarmos a equação em um sistema de equações, fazendo a substituição &amp;lt;math&amp;gt; v=\frac{\partial u}{\partial t} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; w= c\frac{\partial u}{\partial x} &amp;lt;/math&amp;gt;, de forma que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\dfrac{\partial v}{\partial t}=c\dfrac{\partial w}{\partial x} \\&lt;br /&gt;
&lt;br /&gt;
\\&lt;br /&gt;
&lt;br /&gt;
c\dfrac{\partial v}{\partial x}=\dfrac{\partial w}{\partial t} \\&lt;br /&gt;
&lt;br /&gt;
\end{cases}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aqui usaremos &amp;lt;math&amp;gt;c=1&amp;lt;/math&amp;gt;, sem perda de generalidade. As condições de contorno utilizadas aqui são &amp;lt;math&amp;gt; u(0, t) = u(L, t) = 0 &amp;lt;/math&amp;gt; (pontas fixas), e as condições iniciais são &amp;lt;math&amp;gt; u(x,0) = \sin{\Big(\frac{\pi x}{L}\Big)} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \frac{\partial u}{\partial t}(x, 0) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Algoritmos==&lt;br /&gt;
&lt;br /&gt;
Apresentaremos aqui três abordagens diferentes para a solução da equação diferencial parcial apresentada, e após, seus respectivos erros associados. A respeito das discretizações, &amp;lt;math&amp;gt; j &amp;lt;/math&amp;gt; corresponde à posição, e &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; representa o tempo.&lt;br /&gt;
&lt;br /&gt;
===Método de Lax-Friedrichs ===&lt;br /&gt;
&lt;br /&gt;
Esse método de ordem &amp;lt;math&amp;gt; \mathcal{O}(\Delta x^2, \Delta t)&amp;lt;/math&amp;gt;&amp;lt;ref name=recipes&amp;gt;&amp;lt;/ref&amp;gt; consiste em inicialmente discretizar as equações no esquema FTCS (Forward Time Centered Space), ou seja, discretizando a derivada temporal utilizando os tempos &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;n+1&amp;lt;/math&amp;gt; e a derivada espacial através das posições &amp;lt;math&amp;gt;j-1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;j+1&amp;lt;/math&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{1}{\Delta t}(v_{j}^{n+1} - v_j^n) = \frac{1}{2\Delta x} (w_{j+1}^{n} - w_{j-1}^{n}) &amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{1}{\Delta t}(w_{j}^{n+1} - w_j^n) = \frac{1}{2\Delta x} (v_{j+1}^{n} - v_{j-1}^{n})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resultando em&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j}^{n+1} = v_j^n + \frac{\Delta t}{2\Delta x}(w_{j+1}^{n} - w_{j-1}^{n}) &amp;lt;/math&amp;gt;, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j}^{n+1} = w_j^n + \frac{\Delta t}{2\Delta x}(v_{j+1}^{n} - v_{j-1}^{n}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Entretanto, ao se realizar uma análise de estabilidade de Von Neumann, conclui-se que esse método é instável&amp;lt;ref name=recipes&amp;gt;Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). &amp;quot;Numerical Recipes: The Art of Scientific Computing&amp;quot; (3rd ed.). New York: Cambridge University Press. ISBN 978-0-521-88068-8.&amp;lt;/ref&amp;gt; . Para torná-lo estável, é necessário trocarmos os termos &amp;lt;math&amp;gt; v_j^n &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; w_j^n &amp;lt;/math&amp;gt; por suas médias espaciais, chegando, assim, na expressão do esquema de Lax-Friedrichs:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j}^{n+1} = \Big( \frac{ v_{j-1}^{n} + v_{j+1}^{n}}{2} \Big) + \frac{\Delta t}{2\Delta x}(w_{j+1}^{n} - w_{j-1}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j}^{n+1} = \Big( \frac{ w_{j-1}^{n} + w_{j+1}^{n}}{2} \Big) + \frac{\Delta t}{2\Delta x}(v_{j+1}^{n} - v_{j-1}^{n}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para obtermos o valor de &amp;lt;math&amp;gt; u_{j}^{n+1} &amp;lt;/math&amp;gt;, que é o nosso objetivo, discretizamos a equação &amp;lt;math&amp;gt; \frac{\partial u}{\partial t} = v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{n+1} = u_{j}^{n} + v_{j}^{n}\Delta t &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
Embora as médias espaciais sejam necessárias para a estabilidade do método, elas introduzem um problema: surge um efeito chamado de dissipação numérica, ou seja, a amplitude da solução diminui com o tempo. Isso pode ser observado através da análise de Von Neumann ou de uma investigação da equação do esquema Lax-Friedrichs &amp;lt;ref name=recipes/&amp;gt; . Por este método, observa-se que ao inserirmos as médias, mudamos a equação original do problema, pois agora há também um termo do tipo difusivo (uma derivada segunda), com constante de difusão &amp;lt;math&amp;gt;\frac{(\Delta x)^2}{2\Delta t}&amp;lt;/math&amp;gt; &amp;lt;ref name=recipes/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Agora vamos unir todas as equações, utilizando, além da equação para &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; obtida acima, as discretizações de &amp;lt;math&amp;gt; v=\frac{\partial u}{\partial t} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; w= \frac{\partial u}{\partial x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_j^n = \frac{1}{\Delta t} (u_{j}^{n+1} - u_{j}^{n})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_j^n = \frac{1}{2\Delta x} (u_{j+1}^{n} - u_{j-1}^{n})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, obtemos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{n+1} = u_{j}^{n} + \Big( \frac{u_{j-1}^{n} + u_{j+1}^{n}}{2} \Big) - \Big( \frac{u_{j-1}^{n-1} + u_{j+1}^{n-1}}{2} \Big) + \frac{(\Delta t)^2}{4(\Delta x)^2} \Big( u_{j-2}^{n-1} -2u_{j}^{n-1} + u_{j+2}^{n-1}\Big) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Método de Leapfrog ===&lt;br /&gt;
Neste método , de ordem &amp;lt;math&amp;gt; \mathcal{O}(\Delta x^2, \Delta t^2 )&amp;lt;/math&amp;gt; &amp;lt;ref name=recipes&amp;gt;&amp;lt;/ref&amp;gt;, utilizamos os pontos intermediários na discretização das equações.&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{1}{\Delta t}\bigg( v_{j}^{n+\frac{1}{2}} -  v_{j}^{n-\frac{1}{2}}\bigg) = \frac{1}{\Delta x}\Big(w_{j+\frac{1}{2}}^{n} -  w_{j-\frac{1}{2}}^{n}\bigg)  \Rightarrow v_{j}^{n+\frac{1}{2}} =  v_{j}^{n-\frac{1}{2}} + \frac{\Delta t}{\Delta x} \bigg(w_{j+\frac{1}{2}}^{n} - w_{j-\frac{1}{2}}^{n} \bigg) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  \frac{1}{\Delta x}\bigg(v_{j+1}^{n+\frac{1}{2}} -  v_{j}^{n+\frac{1}{2}}\bigg) = \frac{1}{\Delta t}\bigg(w_{j+\frac{1}{2}}^{n+1} -  w_{j+\frac{1}{2}}^{n} \bigg) \Rightarrow w_{j+\frac{1}{2}}^{n+1} =  w_{j+\frac{1}{2}}^{n} + \frac{\Delta t}{\Delta x} \bigg(v_{j+1}^{n+\frac{1}{2}} - v_{j}^{n+\frac{1}{2}}\bigg) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; temos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  v_{j}^{n+\frac{1}{2}} = \frac{\partial u}{\partial t} \bigg|_{j}^{n+\frac{1}{2}} = \frac{1}{\Delta t} (u_{j}^{n+1} - u_j^n) \Rightarrow  u_{j}^{n+1} = u_j^n + v_{j}^{n+\frac{1}{2}} \Delta t&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilizando o fato de que &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j}^{n+\frac{1}{2}} = \frac{1}{\Delta t} (u_{j}^{n+1} - u_j^n)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w_{j+\frac{1}{2}}^{n} = \frac{1}{\Delta x} (u_{j+1}^{n} - u_{j}^{n})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
chegamos na equação para &amp;lt;math&amp;gt;u_{j}^{n+1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  u_{j}^{n+1} = 2u_{j}^{n} - u_{j}^{n-1} + \frac{(\Delta t)^2}{(\Delta x)^2}(u_{j+1}^{n} - 2u_{j}^{n} + u_{j-1}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
o que é equivalente a discretizarmos a equação da onda diretamente, utilizando que, para uma função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{d^2f}{dx^2}\bigg|_j = \frac{1}{(\Delta x)^2}(f_{j-1} - 2f_j + f_{j+1})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
sendo &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; a discretização em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Método de Lax-Wendroff de Dois Passos ===&lt;br /&gt;
&lt;br /&gt;
Para este método, de ordem &amp;lt;math&amp;gt; \mathcal{O}(\Delta x^2, \Delta t^2 )&amp;lt;/math&amp;gt;, o primeiro passo consiste em calcular o valor de &amp;lt;math&amp;gt;v^{n+\frac{1}{2}}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;w^{n+\frac{1}{2}}&amp;lt;/math&amp;gt; utilizando o método de Lax-Friedrichs, para posterior cálculo de &amp;lt;math&amp;gt;v^{n+1}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;w^{n+1}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j+\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( v_{j+1}^{n} +  v_{j}^{n} ) + \frac{\Delta t }{2\Delta x} (w_{j+1}^{n} -  w_{j}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j-\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( v_{j}^{n} +  v_{j-1}^{n} ) + \frac{\Delta t }{2\Delta x} (w_{j}^{n} -  w_{j-1}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j+\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( w_{j+1}^{n} +  w_{j}^{n} ) + \frac{\Delta t }{2\Delta x} (v_{j+1}^{n} -  v_{j}^{n}) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  w_{j-\frac{1}{2}}^{n+\frac{1}{2}} = \frac{1}{2}( w_{j}^{n} +  w_{j-1}^{n} ) + \frac{\Delta t }{2\Delta x} (v_{j}^{n} -  v_{j-1}^{n})  &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora, no tempo &amp;lt;math&amp;gt;n+1&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; v_{j}^{n+1} =  v_{j}^{n} + \frac{\Delta t}{\Delta x} \bigg(w_{j+\frac{1}{2}}^{n+\frac{1}{2}} - w_{j-\frac{1}{2}}^{n+\frac{1}{2}}\bigg) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j}^{n+1} =  w_{j}^{n} + \frac{\Delta t}{\Delta x} \bigg(v_{j+\frac{1}{2}}^{n+\frac{1}{2}} - v_{j-\frac{1}{2}}^{n+\frac{1}{2}}\bigg) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agrupando as equações,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; w_{j}^{n+1} = w_j^n + \frac{\Delta t}{\Delta x} \Bigg[\frac{1}{2}(v_{j+1}^{n} -  v_{j-1}^{n}) + \frac{\Delta t}{2\Delta x} (w_{j+1}^{n} - 2 w_{j}^{n} + w_{j-1}^{n})\Bigg] &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  v_{j}^{n+1} = v_j^n + \frac{\Delta t}{\Delta x} \Bigg[\frac{1}{2}(w_{j+1}^{n} -  w_{j-1}^{n}) + \frac{\Delta t}{2\Delta x} (v_{j+1}^{n} - 2 v_{j}^{n} + v_{j-1}^{n})\Bigg] &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
E finalmente temos a equação unificada em u, utilizando a expressão para &amp;lt;math&amp;gt;  v_{j}^{n+1} &amp;lt;/math&amp;gt; e as discretizações de &amp;lt;math&amp;gt; v=\frac{\partial u}{\partial t} &amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; w= \frac{\partial u}{\partial x} &amp;lt;/math&amp;gt;, como obtidas na seção sobre o Método de Lax-Friedrichs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{n+1} = u_{j}^{n} + v_{j}^{n}\Delta t &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  u_{j}^{n+1} = 2u_{j}^{n} - u_{j}^{n-1} + \frac{(\Delta t)^2}{2(\Delta x)^2}\Bigg[ \frac{1}{2}u_{j+2}^{n-1} - \frac{1}{2}u_{j-2}^{n-1} + u_{j+1}^{n} - u_{j+1}^{n-1} - 2u_{j}^{n} + u_{j}^{n-1} + u_{j-1}^{n} - u_{j-1}^{n-1}\Bigg]  &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
== Implementação==&lt;br /&gt;
&lt;br /&gt;
Ao implementarmos o método, surgem dois problemas: o problema não é auto-inicializável, pois para calcularmos o valor de &amp;lt;math&amp;gt;u_j^{1}&amp;lt;/math&amp;gt;, necessitamos de &amp;lt;math&amp;gt;u_j^{-1}&amp;lt;/math&amp;gt; (além de &amp;lt;math&amp;gt;u_j^{0}&amp;lt;/math&amp;gt;). Entretanto, isto é rapidamente solucionado quando discretizamos a condição inicial de que &amp;lt;math&amp;gt; \frac{\partial u}{\partial t}(x, 0) = 0 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{1}{2\Delta t} (u_j^{1} - u_j^{-1}) = 0 \Rightarrow u_j^{1} = u_j^{-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
ou seja, para o cálculo de &amp;lt;math&amp;gt;u_j^{-1}&amp;lt;/math&amp;gt;, utilizamos que &amp;lt;math&amp;gt; u_j^{1} = u_j^{-1} &amp;lt;/math&amp;gt;. Através do método de Leapfrog, dessa forma conseguimos isolar &amp;lt;math&amp;gt;u_j^{-1}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{-1} = 2u_{j}^{0} - u_{j}^{-1} + \frac{(\Delta t)^2}{(\Delta x)^2}(u_{j+1}^{0} - 2u_{j}^{0} + u_{j-1}^{0})&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u_{j}^{-1} = u_{j}^{0} + \frac{(\Delta t)^2}{2(\Delta x)^2}(u_{j+1}^{0} - 2u_{j}^{0} + u_{j-1}^{0})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Porém, isso não ocorre com os outros dois métodos, pois surgem termos em diferentes posições para o tempo &amp;lt;math&amp;gt;n=0&amp;lt;/math&amp;gt; (de &amp;lt;math&amp;gt;u_{-2}^{0}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;u_{-1}^{0}&amp;lt;/math&amp;gt;, até &amp;lt;math&amp;gt;u_{2}^{0}&amp;lt;/math&amp;gt;), sendo necessário resolvermos o sistema como um todo simultaneamente, ou seja, teríamos que inverter uma matriz. Por isso, foi utilizado o método de Leapfrog para o cálculo de &amp;lt;math&amp;gt;u_j^{-1}&amp;lt;/math&amp;gt; em todos os métodos, devido a sua simplicidade.&lt;br /&gt;
&lt;br /&gt;
Além disso, são necessários valores de &amp;lt;math&amp;gt;u_{-1}^n&amp;lt;/math&amp;gt; e de &amp;lt;math&amp;gt;u_{j_{max}+1}^n&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;j_{max}&amp;lt;/math&amp;gt; correspondendo a &amp;lt;math&amp;gt;x = L&amp;lt;/math&amp;gt;, para calcularmos &amp;lt;math&amp;gt;u_1^{n}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;u_{j_{max}}^{n}&amp;lt;/math&amp;gt;, para qualquer tempo, utilizando os métodos de Lax-Wendroff de dois passos e Lax-Friedrichs. A solução a este problema foi utilizarmos &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{-1}^n = -u_{1}^n &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_{j_{max}+1}^n = -u_{j_{max}-1}^n &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pensando na condição inicial &amp;lt;math&amp;gt; u(x,0) = \sin{\Big(\frac{\pi x}{L}\Big)} &amp;lt;/math&amp;gt;, e estendendo para além da corda (pensando no seno de &amp;lt;math&amp;gt; -\infty&amp;lt;x&amp;lt;\infty &amp;lt;/math&amp;gt;), observamos que ela respeita as equações acima.&lt;br /&gt;
&lt;br /&gt;
== Solução e Análise de erros ==&lt;br /&gt;
&lt;br /&gt;
Primeiramente, apresentamos abaixo as soluções geradas pelos programas, em comparação com a solução analítica.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Output_comp.png|frame|100px|center|Comparação da solução analítica com as soluções numéricas]]&lt;br /&gt;
&lt;br /&gt;
Aqui já podemos observar o que foi comentado na seção sobre o método de Lax-Friedrichs: devido à dissipação numérica inerente ao método, há uma diminuição da amplitude da onda ao longo do tempo, embora ela mantenha sua forma. Isso interferirá na análise do erro deste método, o que será apresentado na sequência.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir do cálulo da solução analítica da equação da onda, podemos calcular quanto o valor obtido pelos métodos difere da solução real, o que leva a uma visualização do erro corrente em cada método de integração.&lt;br /&gt;
Nesse caso, a solução é &amp;lt;math&amp;gt;u(x, t) = \cos{\Big(\frac{\pi t}{L}\Big)}\sin{\Big(\frac{\pi x}{L}\Big)}&amp;lt;/math&amp;gt; &amp;lt;ref&amp;gt;&lt;br /&gt;
Weisstein, Eric W. &amp;quot;Wave Equation--1-Dimensional.&amp;quot; From MathWorld--A Wolfram Web Resource; disponível em: [http://mathworld.wolfram.com/WaveEquation1-Dimensional.html]; último acesso em 26/11/2017&amp;lt;/ref&amp;gt;.A análise de erros se torna mais evidente durante a escolha do parâmetro &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;k = \frac{\Delta t}{\Delta x}&amp;lt;/math&amp;gt;. Valores grandes trazem pouca acurácia, e valores pequenos necessitam de muito poder de computação (tempo e dinheiro).&lt;br /&gt;
&lt;br /&gt;
O erro foi obtido efetuando uma média espacial, ou seja, o programa foi evoluindo até um tempo final &amp;lt;math&amp;gt;t_f = 100&amp;lt;/math&amp;gt;, e, em &amp;lt;math&amp;gt;t=t_f&amp;lt;/math&amp;gt;, foi feita uma média sobre o valor absoluto da diferença entre a solução analítica e a numérica. Aqui variamos o valor de &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt;, fixando &amp;lt;math&amp;gt; \Delta x=1&amp;lt;/math&amp;gt;, de forma que &amp;lt;math&amp;gt;k=\Delta t&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
[[Arquivo:erro_dt.jpeg|frame|400px|center|Comparação do erro global entre os três métodos estudados com escala logarítimica em ambos os eixos]]&lt;br /&gt;
&lt;br /&gt;
Podemos observar que os erros crescem à medida que o parâmetro k se torna maior, como seria de se esperar. &lt;br /&gt;
&lt;br /&gt;
Além disso, sabendo a ordem do erro dos métodos, podemos determinar a inclinação da reta que melhor se ajusta aos pontos. Se um método tem erro de ordem &amp;lt;math&amp;gt;(\Delta t)^n&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon _l = \alpha (\Delta t)^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
em que &amp;lt;math&amp;gt;\varepsilon _l&amp;lt;/math&amp;gt; é o erro local, ou seja, o erro de um passo do método, e &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; é uma constante. Assim, o erro global &amp;lt;math&amp;gt;\varepsilon _g&amp;lt;/math&amp;gt;, ou seja, o erro após N passos, é dado por &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon _g = N\varepsilon _l= N\alpha (\Delta t)^n &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como &amp;lt;math&amp;gt;N = \frac{t_f}{\Delta t}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\varepsilon _g = \frac{t_f}{\Delta t}\alpha (\Delta t)^n = \alpha t_f (\Delta t)^{n-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Logo, se o erro local é de ordem &amp;lt;math&amp;gt;(\Delta t)^n&amp;lt;/math&amp;gt;, o erro global (que é o que calculamos aqui) é de ordem &amp;lt;math&amp;gt;(\Delta t)^{n-1}&amp;lt;/math&amp;gt;. Além disso, como utilizamos escala logarítmica para representar os resultados, a função do erro global se torna&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\log{\varepsilon _g} = \log{\alpha t_f (\Delta t)^{n-1}} = \log{\alpha t_f} + (n-1)\log{(\Delta t)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou seja, a inclinação do gráfico do erro global é &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Observamos que se determinarmos a reta que melhor se ajusta às curvas dos métodos de Leapfrog e Lax-Wendroff, ela tem inclinação aproximada de 1, já que os métodos são de ordem &amp;lt;math&amp;gt;(\Delta t)^2&amp;lt;/math&amp;gt;. Com relação ao gráfico do erro do método de Lax-Friedrichs, é mais complicado de fazer sua análise, uma vez que há o efeito de dissipação numérica, que se intensifica para valores menores de &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt;. Podemos observar nos dados que o  ponto de máximo na parte esquerda do gráfico corresponde a um erro de aproximadamente &amp;lt;math&amp;gt;0,63&amp;lt;/math&amp;gt;, que é a média da solução analítica no tempo &amp;lt;math&amp;gt;t = t_f&amp;lt;/math&amp;gt; (conforme solução analítica, a amplitude no tempo &amp;lt;math&amp;gt;t=100&amp;lt;/math&amp;gt; é &amp;lt;math&amp;gt;\cos{\Big(\frac{100\pi}{49}\Big)} \approx 1&amp;lt;/math&amp;gt;, e a média de &amp;lt;math&amp;gt;\sin{\Big(\frac{\pi x}{L}\Big)}&amp;lt;/math&amp;gt; vale &amp;lt;math&amp;gt;\frac{2}{\pi} \approx 0.64&amp;lt;/math&amp;gt;). Isso significa que, devido à dissipação, a solução numérica é praticamente 0 frente à solução analítica na parte esquerda do gráfico.&lt;br /&gt;
&lt;br /&gt;
== Simulação de Propagação de Onda 2D no Mar Dependente de Topografia ==&lt;br /&gt;
&lt;br /&gt;
O modelo mais simples para a propagação de onda dependente da topografia parte da equação da onda &amp;lt;ref&amp;gt;Lie, Knut-Andreas. &amp;quot;The Wave Equation in 1D and 2D&amp;quot;. Dept. of Informatics, University of Oslo; disponível em: [http://www.uio.no/studier/emner/matnat/ifi/INF2340/v05/foiler/sim04.pdf]; último acesso em 23/10/2017.&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;Hjorth-Jensen, Morten. Computational Physics, University of Oslo, 2009.&amp;lt;/ref&amp;gt;, incluindo uma velocidade dependente da posição, da forma &amp;lt;math&amp;gt;gH(x,y,t)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \frac{\partial^2 u}{\partial t^2}  = \Big( \frac{\partial}{\partial x} gH(x,y,t) \frac{\partial u}{\partial x}\Big) + \Big( \frac{\partial}{\partial y} gH(x,y,t) \frac{\partial u}{\partial y}\Big) - \frac{\partial^2 H}{\partial t^2} &amp;lt;/math&amp;gt; ,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sendo &amp;lt;math&amp;gt;H(x,y,t)&amp;lt;/math&amp;gt; uma representação da profundidade em águas calmas, &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; a aceleração da gravidade e &amp;lt;math&amp;gt;u(x, y, t)&amp;lt;/math&amp;gt; a elevação da água em relação ao nível de águas calmas. Em uma situação real, pode-se obtê-la por mapeamento eletrônico do terreno por sistema de sonar. A dependência em &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; de &amp;lt;math&amp;gt;H(x,y,t)&amp;lt;/math&amp;gt; permite um modelo no qual o terreno se modifica com o tempo. Isto é, pode-se observar o efeito que o deslocamento de placas tectônicas, deslizamentos, e até explosões provocam no comportamento das ondas na costa de um país e o reconhecimento de áreas críticas. Entretanto, utilizaremos aqui &amp;lt;math&amp;gt;H = H(x, y)&amp;lt;/math&amp;gt;, sem dependência no tempo, e mudaremos as condições iniciais para a modelagem do problema, além de usarmos &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;, para simplificarmos as expressões.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Grupo2_ondas1_imagem1.png |frame|500px|center| Exemplo de mapeamento de terreno sub - calota polar feito por AUV (&#039;&#039;autonomous underwater vehicle&#039;&#039;)&amp;lt;ref&amp;gt;Wadhams, M. J. Doble. &amp;quot;Digital terrain mapping of the underside of sea ice from a small AUV&amp;quot;; disponível em: DOI: 10.1029/2007GL031921 ; último acesso em 23/10/2017.&amp;lt;/ref&amp;gt; ]]&lt;br /&gt;
&lt;br /&gt;
Como primeira abordagem visando uma análise em 2D, a integração da equação em 1D (mesmo sendo uma situação muito idealizada) já traz resultados interessantes.  Pode ser mostrado que a velocidade da onda pode ser dada por &amp;lt;math&amp;gt;v=\sqrt{gH}&amp;lt;/math&amp;gt;, para o caso em que &amp;lt;math&amp;gt;\lambda&amp;lt;&amp;lt;H&amp;lt;/math&amp;gt;, o que é razoável para um tsunami, que tem um comprimento de onda da ordem de até centenas de quilômetros, com uma profundidade da ordem de quilômetros&amp;lt;ref name=lang&amp;gt;Silveira, F. L.; Varriale, M. C. &amp;quot;Propagação das ondas marítimas e dos tsunami&amp;quot;. Caderno Brasileiro de Ensino de Física, V. 22, N. 2: P. 190-215, 2005.&amp;lt;/ref&amp;gt;. Como o período da onde não se altera &amp;lt;ref name=lang&amp;gt;&amp;lt;/ref&amp;gt;, quanto menor a profundidade, menor a velocidade, e menor o seu comprimento de onda. Além disso, devido à conservação de energia, e supondo que a extensão da frente de onda não seja alterada, é obtida a chamada Lei de Green&amp;lt;ref name=lang&amp;gt;&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A_2}{A_1} = \Bigg(\frac{H_1}{H_2}\Bigg)^{\frac{1}{4}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
em que &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; é a amplitude da onda, e os índices representando dois meios. Logo, quanto menos profundo, maior a amplitude da onda.  Esta informação por si só ajuda na construção de proteção contra quebra de ondas, pois é obtido o tamanho que as mesmas atingem. Nos gráficos abaixo podemos observar esses efeitos.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:top_visitados.jpg ‎|frame|500x500px||center| Pontos visitados por simulação em 1D ]]&lt;br /&gt;
&lt;br /&gt;
E no caso em que simulamos uma fina camada de líquido, podemos ver a diminuição de velocidade da onda e o aumento de sua amplitude, especialmente no trecho mais à esquerda:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:camada_de_liquido.gif ‎|frame|500px|center| Simulação em 1D de ondas perto da margem, com camada fina de líquido ]]&lt;br /&gt;
&lt;br /&gt;
É importante notar o quão poderosa é a integração de equações parciais na vida de um engenheiro.&lt;br /&gt;
&lt;br /&gt;
Estendendo o algoritmo de Leapfrog à situação 2D, obtemos, para uma condição inicial de uma gaussiana com média 0 e desvio padrão 1, tanto em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; quanto em &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, e &amp;lt;math&amp;gt;H(x,y) = 1&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:02ss.gif |frame|500px|center|Simulação em 2D de ondas em águas com profundidade constante, visão de cima]]&lt;br /&gt;
[[Arquivo:01ss.gif|frame|500px|center|Simulação em 2D de onda em águas com profundidade constante, visão em ângulo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos então, analisar como a mesma condição inicial se porta quando &amp;lt;math&amp;gt;H(x,y) = 1-e^{\frac{-(x^2 + y^2)}{2}}&amp;lt;/math&amp;gt;, simulando uma elevação de terra:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:02cs.gif |frame|500px|center|Simulação em 2D de ondas em águas com gaussiana na origem, visão de cima]]&lt;br /&gt;
[[Arquivo:01cs.gif|frame|500px|center|Simulação em 2D de onda em águas com gaussiana na origem, visão em ângulo]]&lt;br /&gt;
&lt;br /&gt;
Perfil da onda em sua diagonal:&lt;br /&gt;
[[Arquivo:Output_12344.png|frame|500px|center|Perfil da onda em sua diagonal no tempo de simulação igual a 300]]&lt;br /&gt;
&lt;br /&gt;
==Códigos==&lt;br /&gt;
&lt;br /&gt;
===Equação da onda em uma dimensão===&lt;br /&gt;
[[Lax-Friedrichs]]&lt;br /&gt;
&lt;br /&gt;
[[Lax-Wendroff de dois passos]]&lt;br /&gt;
&lt;br /&gt;
[[Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
[[Erro: Lax-Friedrichs]]&lt;br /&gt;
&lt;br /&gt;
[[Erro: Lax-Wendroff de dois passos]]&lt;br /&gt;
&lt;br /&gt;
[[Erro: Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
===Equação da onda em duas dimensões===&lt;br /&gt;
[[Onda 2D: Leapfrog]]&lt;br /&gt;
&lt;br /&gt;
==Bibliografia==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2720</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2720"/>
		<updated>2020-01-19T13:33:24Z</updated>

		<summary type="html">&lt;p&gt;Heitor: /* Grupo2 - Ondas1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== [[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo2 - Ondas 1]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo3 - Ondas2]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo4 - FFT]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo5 - Eq. Schroedinger]]=====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2719</id>
		<title>Trabalhos 2017/2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2017/2&amp;diff=2719"/>
		<updated>2020-01-19T13:32:12Z</updated>

		<summary type="html">&lt;p&gt;Heitor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== [[Difusão em 2D]] ====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo2 - Ondas1]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo3 - Ondas2]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo4 - FFT]]=====&lt;br /&gt;
&lt;br /&gt;
=====[[Grupo5 - Eq. Schroedinger]]=====&lt;/div&gt;</summary>
		<author><name>Heitor</name></author>
	</entry>
</feed>