<?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=Mgteus</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=Mgteus"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Especial:Contribui%C3%A7%C3%B5es/Mgteus"/>
	<updated>2026-06-12T14:48:56Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6565</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6565"/>
		<updated>2021-11-30T23:33:01Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Transição de Segunda Ordem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; do sistema, seguindo então a notação de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], temos:&lt;br /&gt;
&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de primeira ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entropia (&amp;lt;math&amp;gt; S &amp;lt;/math&amp;gt;) !! Volume Molar (&amp;lt;math&amp;gt; V_m &amp;lt;/math&amp;gt;) !! Entalpia (&amp;lt;math&amp;gt; H &amp;lt;/math&amp;gt;)&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{P} = -S&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{T} = V_m&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial \frac{F}{T}}{\partial \frac{1}{T}}\bigg)_{P} = H&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de segunda ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em&amp;quot; align=&amp;quot;center&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Calor Específico ( &amp;lt;math&amp;gt; C_p &amp;lt;/math&amp;gt; ) !! Coeficiente de Expansão Térmica ( &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; ) !! Coeficiente de Compressibilidade Isotérmica ( &amp;lt;math&amp;gt; \kappa_T &amp;lt;/math&amp;gt; )&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
|  &amp;lt;math&amp;gt;\bigg(  \frac{\partial H}{\partial T}\bigg)_{P} = C_p&amp;lt;/math&amp;gt;  ||              &amp;lt;math&amp;gt;\bigg(  \frac{\partial V}{\partial T}\bigg) = \alpha V&amp;lt;/math&amp;gt;  ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{T} = -\kappa_T V&amp;lt;/math&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de Ehrenfest, não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
== Transições de Fase em Simulações ==&lt;br /&gt;
Como exemplo de apresentação das transições de fase em simulações computacionais de sistemas físicos, a simulação do [https://fiscomp.if.ufrgs.br/index.php/Grupo_-_Modelo_de_Potts Modelo de Potts] é oportuna pois apresenta transições de fase de primeira e de segunda ordem, dependendo do valor de estados (q) escolhido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilizando o [https://fiscomp.if.ufrgs.br/index.php/Clusteriza%C3%A7%C3%A3o Algoritmo de Wolff] para medir o parâmetro de ordem escolhido (magnetização do sistema), obteve-se a seguinte série temporal:&lt;br /&gt;
[Série Temporal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6564</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6564"/>
		<updated>2021-11-30T23:32:24Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Transição de Primeira Ordem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; do sistema, seguindo então a notação de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], temos:&lt;br /&gt;
&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de primeira ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entropia (&amp;lt;math&amp;gt; S &amp;lt;/math&amp;gt;) !! Volume Molar (&amp;lt;math&amp;gt; V_m &amp;lt;/math&amp;gt;) !! Entalpia (&amp;lt;math&amp;gt; H &amp;lt;/math&amp;gt;)&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{P} = -S&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{T} = V_m&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial \frac{F}{T}}{\partial \frac{1}{T}}\bigg)_{P} = H&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de segunda ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em&amp;quot; align=&amp;quot;center&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Calor Específico ( &amp;lt;math&amp;gt; C_p &amp;lt;/math&amp;gt; ) !! Coeficiente de Expansão Térmica ( &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; ) !! Coeficiente de Compressibilidade Isotérmica ( &amp;lt;math&amp;gt; \kappa_T &amp;lt;/math&amp;gt; )&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
|  &amp;lt;math&amp;gt;\bigg(  \frac{\partial H}{\partial T}\bigg)_{P}&amp;lt;/math&amp;gt;  ||              &amp;lt;math&amp;gt;\bigg(  \frac{\partial V}{\partial T}\bigg)&amp;lt;/math&amp;gt;  ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{T}&amp;lt;/math&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de Ehrenfest, não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
== Transições de Fase em Simulações ==&lt;br /&gt;
Como exemplo de apresentação das transições de fase em simulações computacionais de sistemas físicos, a simulação do [https://fiscomp.if.ufrgs.br/index.php/Grupo_-_Modelo_de_Potts Modelo de Potts] é oportuna pois apresenta transições de fase de primeira e de segunda ordem, dependendo do valor de estados (q) escolhido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilizando o [https://fiscomp.if.ufrgs.br/index.php/Clusteriza%C3%A7%C3%A3o Algoritmo de Wolff] para medir o parâmetro de ordem escolhido (magnetização do sistema), obteve-se a seguinte série temporal:&lt;br /&gt;
[Série Temporal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6563</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6563"/>
		<updated>2021-11-30T23:31:16Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Transição de Segunda Ordem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; do sistema, seguindo então a notação de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], temos:&lt;br /&gt;
&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de primeira ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entropia &amp;lt;math&amp;gt; S &amp;lt;/math&amp;gt; !! Volume Molar &amp;lt;math&amp;gt; V_m &amp;lt;/math&amp;gt; !! Entalpia &amp;lt;math&amp;gt; H &amp;lt;/math&amp;gt;&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{P}&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{T}&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial \frac{F}{T}}{\partial \frac{1}{T}}\bigg)_{P}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de segunda ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em&amp;quot; align=&amp;quot;center&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Calor Específico ( &amp;lt;math&amp;gt; C_p &amp;lt;/math&amp;gt; ) !! Coeficiente de Expansão Térmica ( &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; ) !! Coeficiente de Compressibilidade Isotérmica ( &amp;lt;math&amp;gt; \kappa_T &amp;lt;/math&amp;gt; )&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
|  &amp;lt;math&amp;gt;\bigg(  \frac{\partial H}{\partial T}\bigg)_{P}&amp;lt;/math&amp;gt;  ||              &amp;lt;math&amp;gt;\bigg(  \frac{\partial V}{\partial T}\bigg)&amp;lt;/math&amp;gt;  ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{T}&amp;lt;/math&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de Ehrenfest, não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
== Transições de Fase em Simulações ==&lt;br /&gt;
Como exemplo de apresentação das transições de fase em simulações computacionais de sistemas físicos, a simulação do [https://fiscomp.if.ufrgs.br/index.php/Grupo_-_Modelo_de_Potts Modelo de Potts] é oportuna pois apresenta transições de fase de primeira e de segunda ordem, dependendo do valor de estados (q) escolhido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilizando o [https://fiscomp.if.ufrgs.br/index.php/Clusteriza%C3%A7%C3%A3o Algoritmo de Wolff] para medir o parâmetro de ordem escolhido (magnetização do sistema), obteve-se a seguinte série temporal:&lt;br /&gt;
[Série Temporal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6562</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6562"/>
		<updated>2021-11-30T23:25:48Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Transição de Segunda Ordem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; do sistema, seguindo então a notação de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], temos:&lt;br /&gt;
&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de primeira ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entropia &amp;lt;math&amp;gt; S &amp;lt;/math&amp;gt; !! Volume Molar &amp;lt;math&amp;gt; V_m &amp;lt;/math&amp;gt; !! Entalpia &amp;lt;math&amp;gt; H &amp;lt;/math&amp;gt;&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{P}&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{T}&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial \frac{F}{T}}{\partial \frac{1}{T}}\bigg)_{P}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de segunda ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Calor Específico &amp;lt;math&amp;gt; C_p &amp;lt;/math&amp;gt; !! Coeficiente de Expansão Térmica &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; !! Coeficiente de Compressibilidade Isotérmica &amp;lt;math&amp;gt; \kappa_T &amp;lt;/math&amp;gt;&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
|  &amp;lt;math&amp;gt;\bigg(  \frac{\partial H}{\partial T}\bigg)_{P}&amp;lt;/math&amp;gt;  ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial V}{\partial T}\bigg)&amp;lt;/math&amp;gt;  ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{T}&amp;lt;/math&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de Ehrenfest, não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
== Transições de Fase em Simulações ==&lt;br /&gt;
Como exemplo de apresentação das transições de fase em simulações computacionais de sistemas físicos, a simulação do [https://fiscomp.if.ufrgs.br/index.php/Grupo_-_Modelo_de_Potts Modelo de Potts] é oportuna pois apresenta transições de fase de primeira e de segunda ordem, dependendo do valor de estados (q) escolhido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilizando o [https://fiscomp.if.ufrgs.br/index.php/Clusteriza%C3%A7%C3%A3o Algoritmo de Wolff] para medir o parâmetro de ordem escolhido (magnetização do sistema), obteve-se a seguinte série temporal:&lt;br /&gt;
[Série Temporal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6561</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6561"/>
		<updated>2021-11-30T23:24:02Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Transição de Primeira Ordem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; do sistema, seguindo então a notação de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], temos:&lt;br /&gt;
&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de primeira ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entropia &amp;lt;math&amp;gt; S &amp;lt;/math&amp;gt; !! Volume Molar &amp;lt;math&amp;gt; V_m &amp;lt;/math&amp;gt; !! Entalpia &amp;lt;math&amp;gt; H &amp;lt;/math&amp;gt;&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{P}&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial F}{\partial T}\bigg)_{T}&amp;lt;/math&amp;gt; ||  &amp;lt;math&amp;gt;\bigg(  \frac{\partial \frac{F}{T}}{\partial \frac{1}{T}}\bigg)_{P}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de segunda ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Calor Específico !! Coeficiente de Expansão Térmica !! Coeficiente de Compressibilidade Isotérmica&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| [eq. Calor Específico] || [eq. Coef Exp Térmica] || [eq.Coef Compre]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de Ehrenfest, não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Fase em Simulações ==&lt;br /&gt;
Como exemplo de apresentação das transições de fase em simulações computacionais de sistemas físicos, a simulação do [https://fiscomp.if.ufrgs.br/index.php/Grupo_-_Modelo_de_Potts Modelo de Potts] é oportuna pois apresenta transições de fase de primeira e de segunda ordem, dependendo do valor de estados (q) escolhido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilizando o [https://fiscomp.if.ufrgs.br/index.php/Clusteriza%C3%A7%C3%A3o Algoritmo de Wolff] para medir o parâmetro de ordem escolhido (magnetização do sistema), obteve-se a seguinte série temporal:&lt;br /&gt;
[Série Temporal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6560</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6560"/>
		<updated>2021-11-30T23:18:19Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; do sistema, seguindo então a notação de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], temos:&lt;br /&gt;
&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de primeira ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entropia !! Volume Molar !! Entalpia&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| [eq. Entropia]  || [eq. Volume Molar] || [eq. Entalpia]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
            &lt;br /&gt;
           &lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de segunda ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Calor Específico !! Coeficiente de Expansão Térmica !! Coeficiente de Compressibilidade Isotérmica&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| [eq. Calor Específico] || [eq. Coef Exp Térmica] || [eq.Coef Compre]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de Ehrenfest, não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Fase em Simulações ==&lt;br /&gt;
Como exemplo de apresentação das transições de fase em simulações computacionais de sistemas físicos, a simulação do [https://fiscomp.if.ufrgs.br/index.php/Grupo_-_Modelo_de_Potts Modelo de Potts] é oportuna pois apresenta transições de fase de primeira e de segunda ordem, dependendo do valor de estados (q) escolhido.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilizando o [https://fiscomp.if.ufrgs.br/index.php/Clusteriza%C3%A7%C3%A3o Algoritmo de Wolff] para medir o parâmetro de ordem escolhido (magnetização do sistema), obteve-se a seguinte série temporal:&lt;br /&gt;
[Série Temporal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6559</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6559"/>
		<updated>2021-11-30T23:16:05Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; do sistema, seguindo então a notação de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], temos:&lt;br /&gt;
&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de primeira ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Entropia !! Volume Molar !! Entalpia&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| [eq. Entropia]  || [eq. Volume Molar] || [eq. Entalpia]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
            &lt;br /&gt;
           &lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de segunda ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Calor Específico !! Coeficiente de Expansão Térmica !! Coeficiente de Compressibilidade Isotérmica&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| [eq. Calor Específico] || [eq. Coef Exp Térmica] || [eq.Coef Compre]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de Ehrenfest, não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6558</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6558"/>
		<updated>2021-11-30T23:15:04Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Transição de Segunda Ordem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; do sistema, seguindo então a notação de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], temos:&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de primeira ordem são: &lt;br /&gt;
&lt;br /&gt;
Entropia    Volume Molar        Entalpia&lt;br /&gt;
[eq. Entropia]        [eq. Volume Molar]    [eq. Entalpia]&lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de segunda ordem são: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;height:14em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Calor Específico !! Coeficiente de Expansão Térmica !! Coeficiente de Compressibilidade Isotérmica&lt;br /&gt;
|- style=height:7em&lt;br /&gt;
| [eq. Calor Específico] || [eq. Coef Exp Térmica] || [eq.Coef Compre]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de Ehrenfest, não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6557</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6557"/>
		<updated>2021-11-30T23:12:59Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Transições de Primeira e Segunda Ordem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; do sistema, seguindo então a notação de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], temos:&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de primeira ordem são: &lt;br /&gt;
&lt;br /&gt;
Entropia    Volume Molar        Entalpia&lt;br /&gt;
[eq. Entropia]        [eq. Volume Molar]    [eq. Entalpia]&lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Exemplos de observáveis que apresentam transições de segunda ordem são: &lt;br /&gt;
&lt;br /&gt;
Calor Específico    Coeficiente de Expansão Térmica    Coeficiente de Compressibilidade Isotérmica&lt;br /&gt;
[eq. Calor Específico]        [eq. Coef Exp Térmica]    [eq.Coef Compre]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de Ehrenfest, não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6556</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6556"/>
		<updated>2021-11-30T23:01:56Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transições de Primeira e Segunda Ordem ==&lt;br /&gt;
Pode-se caracterizar as transições de fase em função da natureza da derivada da energia livre (E_f) do sistema, seguindo então a notação de Ehrenfest [Ehrenfest], temos:&lt;br /&gt;
=== Transição de Primeira Ordem ===&lt;br /&gt;
Uma transição de primeira ordem é definida a partir de uma descontinuidade em uma função representada por “primeiras” derivadas da função de energia livre do sistema, ou seja, se um observável calculado a partir de uma derivada da função de energia livre do sistema apresentar uma descontinuidade, define-se uma transição de fase de primeira ordem neste ponto de descontinuidade.&lt;br /&gt;
&lt;br /&gt;
=== Transição de Segunda Ordem ===&lt;br /&gt;
Uma transição de segunda ordem, por sua vez, está relacionado com descontinuidades em derivadas segundas da função de energia livre do sistema, ou seja, ao invés de apresentar descontinuidades nas primeiras derivadas, as transições de fase de segunda ordem apresentam descontinuidades em relação a derivadas segundas da função de energia livre.&lt;br /&gt;
&lt;br /&gt;
Ambas transições apresentam ponto de inflexão na denominada temperatura crítica (T_c) do sistema, fazendo-se possível então a separação de dois estados para um sistema com temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;lt; T_c =&amp;lt;/math&amp;gt; Estado Ordenado;&lt;br /&gt;
:&amp;lt;math&amp;gt;T &amp;gt; T_c =&amp;lt;/math&amp;gt; Estado Desordenado.&lt;br /&gt;
&lt;br /&gt;
Pela definição de [https://pt.wikipedia.org/wiki/Paul_Ehrenfest Ehrenfest], não se exclui a existência de transições de fase de maiores ordem, uma vez que estas estariam relacionadas a derivadas de maiores ordens da função de energia livre do sistema; existem também as chamadas &#039;&#039;transições de ordem infinita&#039;&#039; [3], nas quais uma transição de fase é perceptível macroscopicamente, porém não existem descontinuidades em derivadas finitas da função de energia livre.&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;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6555</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6555"/>
		<updated>2021-11-30T22:55:48Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas e, com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&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;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6554</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6554"/>
		<updated>2021-11-30T22:55:09Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Transições de Fase#Parâmetros de Ordem|parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas, e com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&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;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6553</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6553"/>
		<updated>2021-11-30T22:53:25Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[Parâmetros de Ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas, e com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&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;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6552</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6552"/>
		<updated>2021-11-30T22:52:55Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas, e com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parâmetros de Ordem ==&lt;br /&gt;
Parâmetro de ordem é o termo dado aos observáveis que possuem natureza atrelada a alguma simetria do sistema, já que devem demonstrar comportamentos variados, para  as fases ordenadas e fases desordenadas do sistema; segundo [2] um parâmetro de ordem deve:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;i.&#039;&#039;&#039; Preferencialmente,  ser diferente de 0 na fase ordenada;&lt;br /&gt;
:&#039;&#039;&#039;ii.&#039;&#039;&#039; Preferencialmente, ser igual a 0 na fase ordenada.&lt;br /&gt;
&lt;br /&gt;
Os pontos i e ii não são exatamente obrigatórios para um observável ser considerado um parâmetro de ordem, uma vez que faz-se possível a translação da grande maioria de medidas para que o observável cumpra estes “requisitos”. Existem diversos exemplos de parâmetros ordem associados às mais diversas áreas, como por exemplo: em um sistema ferromagnético, a magnetização cumpre o papel de um parâmetro de ordem, já que consegue separar a fase ordenada da fase desordenada do sistema, ou seja, é possível usar a medida de magnetização como parâmetro para definirmos a simetria de um sistema ferromagnético; Em sistemas gás-líquido, temos a diferença de densidade cumprindo o mesmo papel da magnetização anteriormente citada e ainda, para sistemas de cristais líquidos, quem pode definir a simetria de um sistema é o grau da ordem de orientação.&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;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6551</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6551"/>
		<updated>2021-11-30T22:50:32Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Transições de Fase são os pontos onde, por meio de processos físicos, ocorrem mudanças nas características intrínsecas a meios, comumente associadas a pontos que separam fases ordenadas e desordenadas de um sistema, sendo que essas transições são detectadas a partir da medição de observáveis já conhecidos e popularmente chamados de [[parâmetros de ordem]], uma vez que estes observáveis podem estar atrelados a características intrínsecas ao meio em questão. É importante ressaltar que uma transição de fase nem sempre está associada a uma mudança de estado físico, como uma troca do estado líquido para o gasoso, já que a existência de uma transição de fase não exige mudanças macroscópicas, e com isso, pode não envolver mudança de estado físico, mas sim, mudanças no valor atrelado a um observável.&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;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6550</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6550"/>
		<updated>2021-11-30T22:24:41Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&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;
== Referências ==&lt;br /&gt;
[1] Challa MS, Landau DP, Binder K. &#039;&#039;&#039;Finite-size effects at temperature-driven first-order transitions&#039;&#039;&#039;. Phys Rev B Condens Matter. 1986 Aug 1;34(3):1841-1852. doi: 10.1103/physrevb.34.1841. PMID: 9939842. &lt;br /&gt;
&lt;br /&gt;
[2] Chen S, Ferrenberg AM, Landau DP. &#039;&#039;&#039;Monte Carlo simulation of phase transitions in a two-dimensional random-bond Potts model&#039;&#039;&#039;. Phys Rev E Stat Phys Plasmas Fluids Relat Interdiscip Topics. 1995 Aug;52(2):1377-1386. doi: 10.1103/physreve.52.1377. PMID: 9963557&lt;br /&gt;
&lt;br /&gt;
[3] Kumar, Pradeep &amp;amp; Khare, Avinash &amp;amp; Saxena, Avadh. (2011). &#039;&#039;&#039;An Infinite Order Phase Transition.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6363</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6363"/>
		<updated>2021-11-27T17:16:48Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trabalho desenvolvido no semestre 2021/1 da UFRGS pelos alunos Kevin Pergher, Lucas Colombo e Mateus Guimarães para o curso de Métodos Computacionais da Física C, ministrado pelo professor Heitor C.M Fernandes.&lt;br /&gt;
== Introdução ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6362</id>
		<title>Transições de Fase</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Transi%C3%A7%C3%B5es_de_Fase&amp;diff=6362"/>
		<updated>2021-11-27T17:07:52Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: Criou página com &amp;#039;== Introdução ==&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2021/1&amp;diff=6361</id>
		<title>Trabalhos 2021/1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Trabalhos_2021/1&amp;diff=6361"/>
		<updated>2021-11-27T17:07:32Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===[[Equação de Burgers]] ===&lt;br /&gt;
&lt;br /&gt;
===[[Método de Elementos Finitos]]===&lt;br /&gt;
&lt;br /&gt;
===[[Equação de Águas Rasas]]===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[Modelos Epidemiológicos]]===&lt;br /&gt;
&lt;br /&gt;
===[[Dinâmica Molecular de Partículas-Planares Interagentes]]===&lt;br /&gt;
&lt;br /&gt;
===[[Transições de Fase]]===&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5812</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5812"/>
		<updated>2021-10-13T20:32:53Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Conclusão */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
Nas animações acima, pode-se perceber que a temperatura tem papel importante na dinâmica apresentada em decorrência da forma com a qual está relacionada a probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;, como podemos ver o gráfico a seguir:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Neste gráfico temos a probabilidade de um spin que possui a mesma orientação que o sítio inicial escolhido ser aceito e adicionado ao cluster em função da temperatura da rede. É de se esperar que conforme a temperatura aumente a probabilidade do spin ser adicionado ao cluster diminua e para temperaturas mais baixas espera-se o contrário. Com base nisso, podemos formular a ideia do tamanho médio dos cluster (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) que é invertido durante os passos de Monte Carlo em função da temperatura e associar este tamanho com a fração representada por este na rede.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Fração do Tamanho dos Clusters (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) ===&lt;br /&gt;
No gráfico abaixo podemos perceber a mesma natureza que foi observados nas animações desenvolvidas, já que a fração do tamanho dos cluster diminui conforme a temperatura aumenta, ou seja, com a temperatura alta os clusters são menores e por isso representam uma fração menor e para temperatura acima de 3J essa fração é quase zero. Já para temperaturas mais baixas, essa fração aproxima-se de 1 o que significa que grande parte da rede, ou praticamente toda a rede, está sendo invertida em cada passo; exatamente o que observamos na animação para T=1.8J.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:FCs.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===  Série Temporal para a medida de magnetização ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Série Temporal da magnetização.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:STmag.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da série temporal da medida de magnetização comparando os algoritmos|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Podemos observar na figura acima medidas da magnetização usando o algoritmo de Wolff e o algoritmo de Metropolis para um sistema Ising 2D de mesmo tamanho (16x16) na temperatura crítica (&amp;lt;math&amp;gt;T_c=2.269J&amp;lt;/math&amp;gt;). Nota-se que o algoritmo de Wolff explora o espaço de fase ao redor dessa temperatura em muito menos passos que o algoritmo de Metropolis, sendo mais eficiente para se obter medidas precisas ao redor dessa região. &lt;br /&gt;
&lt;br /&gt;
Na figura abaixo podemos observar esse mesmo sistema para um número menor de passos. É possível notar que para que o algoritmo de Metropolis inverta os clusters de spins alinhados a fim de chegar nos mesmos limites dos valores de magnetização há uma demora muito maior de tempo, que se deve à sua dinâmica de single spin flip. Nesse caso, enquanto Wolff já explora o espaço de fase ao redor de T_c em menos de 100 passos, Metropolis precisa de pelo menos 600 passos. &lt;br /&gt;
&lt;br /&gt;
Esse comportamento é o que esperamos dado a desaceleração crítica (critical slowing down), onde a medida que o sistema aumenta de tamanho se torna mais difícil de gerar configurações estatisticamente independentes [3]. Os clusters do algoritmo de Wolff mitigam esse efeito, sendo um sistema muito eficiente para eliminar correlações não locais.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Série Temporal da magnetização até 1000 passos.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:STmagShort.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da série temporal da medida de magnetização comparando os algoritmos nos primeiros 1000 passos|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
Conclui-se então que os resultados obtidos com o códigos produzidos estão, de certa forma, de acordo com o esperado e fez-se possível elucidar as diferenças entre as duas dinâmicas dos algoritmos (Metropolis e Wolff) mostrando os pontos positivos do algoritmo de Wolff e as razões pelas quais se sai melhor na geração de dados estatisticamente independentes do modelo de Ising 2D. Todos os códigos, imagens e gifs gerados para esta apresentação estão disponíveis em: https://github.com/mgteus/MonteCarlo.&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5811</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5811"/>
		<updated>2021-10-13T20:28:38Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
Nas animações acima, pode-se perceber que a temperatura tem papel importante na dinâmica apresentada em decorrência da forma com a qual está relacionada a probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;, como podemos ver o gráfico a seguir:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Neste gráfico temos a probabilidade de um spin que possui a mesma orientação que o sítio inicial escolhido ser aceito e adicionado ao cluster em função da temperatura da rede. É de se esperar que conforme a temperatura aumente a probabilidade do spin ser adicionado ao cluster diminua e para temperaturas mais baixas espera-se o contrário. Com base nisso, podemos formular a ideia do tamanho médio dos cluster (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) que é invertido durante os passos de Monte Carlo em função da temperatura e associar este tamanho com a fração representada por este na rede.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Fração do Tamanho dos Clusters (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) ===&lt;br /&gt;
No gráfico abaixo podemos perceber a mesma natureza que foi observados nas animações desenvolvidas, já que a fração do tamanho dos cluster diminui conforme a temperatura aumenta, ou seja, com a temperatura alta os clusters são menores e por isso representam uma fração menor e para temperatura acima de 3J essa fração é quase zero. Já para temperaturas mais baixas, essa fração aproxima-se de 1 o que significa que grande parte da rede, ou praticamente toda a rede, está sendo invertida em cada passo; exatamente o que observamos na animação para T=1.8J.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:FCs.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===  Série Temporal para a medida de magnetização ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Série Temporal da magnetização.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:STmag.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da série temporal da medida de magnetização comparando os algoritmos|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Podemos observar na figura acima medidas da magnetização usando o algoritmo de Wolff e o algoritmo de Metropolis para um sistema Ising 2D de mesmo tamanho (16x16) na temperatura crítica (&amp;lt;math&amp;gt;T_c=2.269J&amp;lt;/math&amp;gt;). Nota-se que o algoritmo de Wolff explora o espaço de fase ao redor dessa temperatura em muito menos passos que o algoritmo de Metropolis, sendo mais eficiente para se obter medidas precisas ao redor dessa região. &lt;br /&gt;
&lt;br /&gt;
Na figura abaixo podemos observar esse mesmo sistema para um número menor de passos. É possível notar que para que o algoritmo de Metropolis inverta os clusters de spins alinhados a fim de chegar nos mesmos limites dos valores de magnetização há uma demora muito maior de tempo, que se deve à sua dinâmica de single spin flip. Nesse caso, enquanto Wolff já explora o espaço de fase ao redor de T_c em menos de 100 passos, Metropolis precisa de pelo menos 600 passos. &lt;br /&gt;
&lt;br /&gt;
Esse comportamento é o que esperamos dado a desaceleração crítica (critical slowing down), onde a medida que o sistema aumenta de tamanho se torna mais difícil de gerar configurações estatisticamente independentes [3]. Os clusters do algoritmo de Wolff mitigam esse efeito, sendo um sistema muito eficiente para eliminar correlações não locais.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Série Temporal da magnetização até 1000 passos.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:STmagShort.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da série temporal da medida de magnetização comparando os algoritmos nos primeiros 1000 passos|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5810</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5810"/>
		<updated>2021-10-13T20:28:08Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Série Temporal para a medida de magnetização */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
Nas animações acima, pode-se perceber que a temperatura tem papel importante na dinâmica apresentada em decorrência da forma com a qual está relacionada a probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;, como podemos ver o gráfico a seguir:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Neste gráfico temos a probabilidade de um spin que possui a mesma orientação que o sítio inicial escolhido ser aceito e adicionado ao cluster em função da temperatura da rede. É de se esperar que conforme a temperatura aumente a probabilidade do spin ser adicionado ao cluster diminua e para temperaturas mais baixas espera-se o contrário. Com base nisso, podemos formular a ideia do tamanho médio dos cluster (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) que é invertido durante os passos de Monte Carlo em função da temperatura e associar este tamanho com a fração representada por este na rede.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Fração do Tamanho dos Clusters (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) ===&lt;br /&gt;
No gráfico abaixo podemos perceber a mesma natureza que foi observados nas animações desenvolvidas, já que a fração do tamanho dos cluster diminui conforme a temperatura aumenta, ou seja, com a temperatura alta os clusters são menores e por isso representam uma fração menor e para temperatura acima de 3J essa fração é quase zero. Já para temperaturas mais baixas, essa fração aproxima-se de 1 o que significa que grande parte da rede, ou praticamente toda a rede, está sendo invertida em cada passo; exatamente o que observamos na animação para T=1.8J.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:FCs.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===  Série Temporal para a medida de magnetização ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Série Temporal da magnetização.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:STmag.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da série temporal da medida de magnetização comparando os algoritmos|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Podemos observar na figura acima medidas da magnetização usando o algoritmo de Wolff e o algoritmo de Metropolis para um sistema Ising 2D de mesmo tamanho (16x16) na temperatura crítica (&amp;lt;math&amp;gt;T_c=2.269J&amp;lt;/math&amp;gt;). Nota-se que o algoritmo de Wolff explora o espaço de fase ao redor dessa temperatura em muito menos passos que o algoritmo de Metropolis, sendo mais eficiente para se obter medidas precisas ao redor dessa região. &lt;br /&gt;
&lt;br /&gt;
Na figura abaixo podemos observar esse mesmo sistema para um número menor de passos. É possível notar que para que o algoritmo de Metropolis inverta os clusters de spins alinhados a fim de chegar nos mesmos limites dos valores de magnetização há uma demora muito maior de tempo, que se deve à sua dinâmica de single spin flip. Nesse caso, enquanto Wolff já explora o espaço de fase ao redor de T_c em menos de 100 passos, Metropolis precisa de pelo menos 600 passos. &lt;br /&gt;
&lt;br /&gt;
Esse comportamento é o que esperamos dado a desaceleração crítica (critical slowing down), onde a medida que o sistema aumenta de tamanho se torna mais difícil de gerar configurações estatisticamente independentes [3]. Os clusters do algoritmo de Wolff mitigam esse efeito, sendo um sistema muito eficiente para eliminar correlações não locais.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Série Temporal da magnetização até 1000 passos.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:STmagShort.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da série temporal da medida de magnetização comparando os algoritmos nos primeiros 1000 passos|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:STmagShort.jpeg&amp;diff=5809</id>
		<title>Arquivo:STmagShort.jpeg</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:STmagShort.jpeg&amp;diff=5809"/>
		<updated>2021-10-13T20:26:21Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:STmag.jpeg&amp;diff=5808</id>
		<title>Arquivo:STmag.jpeg</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:STmag.jpeg&amp;diff=5808"/>
		<updated>2021-10-13T20:26:08Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5807</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5807"/>
		<updated>2021-10-13T20:25:44Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Propriedades do Algoritmo de Wolff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
Nas animações acima, pode-se perceber que a temperatura tem papel importante na dinâmica apresentada em decorrência da forma com a qual está relacionada a probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;, como podemos ver o gráfico a seguir:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Neste gráfico temos a probabilidade de um spin que possui a mesma orientação que o sítio inicial escolhido ser aceito e adicionado ao cluster em função da temperatura da rede. É de se esperar que conforme a temperatura aumente a probabilidade do spin ser adicionado ao cluster diminua e para temperaturas mais baixas espera-se o contrário. Com base nisso, podemos formular a ideia do tamanho médio dos cluster (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) que é invertido durante os passos de Monte Carlo em função da temperatura e associar este tamanho com a fração representada por este na rede.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Fração do Tamanho dos Clusters (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) ===&lt;br /&gt;
No gráfico abaixo podemos perceber a mesma natureza que foi observados nas animações desenvolvidas, já que a fração do tamanho dos cluster diminui conforme a temperatura aumenta, ou seja, com a temperatura alta os clusters são menores e por isso representam uma fração menor e para temperatura acima de 3J essa fração é quase zero. Já para temperaturas mais baixas, essa fração aproxima-se de 1 o que significa que grande parte da rede, ou praticamente toda a rede, está sendo invertida em cada passo; exatamente o que observamos na animação para T=1.8J.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:FCs.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===  Série Temporal para a medida de magnetização ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Série Temporal da magnetização.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:STmag.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da série temporal da medida de magnetização comparando os algoritmos|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Podemos observar na figura 1 medidas da magnetização usando o algoritmo de Wolff e o algoritmo de Metropolis para um sistema Ising 2D de mesmo tamanho (16x16) na temperatura crítica (&amp;lt;math&amp;gt;T_c=2.269J&amp;lt;/math&amp;gt;). Nota-se que o algoritmo de Wolff explora o espaço de fase ao redor dessa temperatura em muito menos passos que o algoritmo de Metropolis, sendo mais eficiente para se obter medidas precisas ao redor dessa região. &lt;br /&gt;
&lt;br /&gt;
Na figura 2 podemos observar esse mesmo sistema para um número menor de passos. É possível notar que para que o algoritmo de Metropolis inverta os clusters de spins alinhados a fim de chegar nos mesmos limites dos valores de magnetização há uma demora muito maior de tempo, que se deve à sua dinâmica de single spin flip. Nesse caso, enquanto Wolff já explora o espaço de fase ao redor de T_c em menos de 100 passos, Metropolis precisa de pelo menos 600 passos. &lt;br /&gt;
&lt;br /&gt;
Esse comportamento é o que esperamos dado a desaceleração crítica (critical slowing down), onde a medida que o sistema aumenta de tamanho se torna mais difícil de gerar configurações estatisticamente independentes [3]. Os clusters do algoritmo de Wolff mitigam esse efeito, sendo um sistema muito eficiente para eliminar correlações não locais.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Série Temporal da magnetização até 1000 passos.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:STmagShort.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da série temporal da medida de magnetização comparando os algoritmos nos primeiros 1000 passos|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5806</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5806"/>
		<updated>2021-10-13T20:18:16Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Algoritmo de Wolf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
Nas animações acima, pode-se perceber que a temperatura tem papel importante na dinâmica apresentada em decorrência da forma com a qual está relacionada a probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;, como podemos ver o gráfico a seguir:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Neste gráfico temos a probabilidade de um spin que possui a mesma orientação que o sítio inicial escolhido ser aceito e adicionado ao cluster em função da temperatura da rede. É de se esperar que conforme a temperatura aumente a probabilidade do spin ser adicionado ao cluster diminua e para temperaturas mais baixas espera-se o contrário. Com base nisso, podemos formular a ideia do tamanho médio dos cluster (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) que é invertido durante os passos de Monte Carlo em função da temperatura e associar este tamanho com a fração representada por este na rede.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Fração do Tamanho dos Clusters (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) ===&lt;br /&gt;
No gráfico abaixo podemos perceber a mesma natureza que foi observados nas animações desenvolvidas, já que a fração do tamanho dos cluster diminui conforme a temperatura aumenta, ou seja, com a temperatura alta os clusters são menores e por isso representam uma fração menor e para temperatura acima de 3J essa fração é quase zero. Já para temperaturas mais baixas, essa fração aproxima-se de 1 o que significa que grande parte da rede, ou praticamente toda a rede, está sendo invertida em cada passo; exatamente o que observamos na animação para T=1.8J.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:FCs.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5805</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5805"/>
		<updated>2021-10-13T20:15:16Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Animações */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|550px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
Nas animações acima, pode-se perceber que a temperatura tem papel importante na dinâmica apresentada em decorrência da forma com a qual está relacionada a probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;, como podemos ver o gráfico a seguir:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Neste gráfico temos a probabilidade de um spin que possui a mesma orientação que o sítio inicial escolhido ser aceito e adicionado ao cluster em função da temperatura da rede. É de se esperar que conforme a temperatura aumente a probabilidade do spin ser adicionado ao cluster diminua e para temperaturas mais baixas espera-se o contrário. Com base nisso, podemos formular a ideia do tamanho médio dos cluster (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) que é invertido durante os passos de Monte Carlo em função da temperatura e associar este tamanho com a fração representada por este na rede.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Fração do Tamanho dos Clusters (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) ===&lt;br /&gt;
No gráfico abaixo podemos perceber a mesma natureza que foi observados nas animações desenvolvidas, já que a fração do tamanho dos cluster diminui conforme a temperatura aumenta, ou seja, com a temperatura alta os clusters são menores e por isso representam uma fração menor e para temperatura acima de 3J essa fração é quase zero. Já para temperaturas mais baixas, essa fração aproxima-se de 1 o que significa que grande parte da rede, ou praticamente toda a rede, está sendo invertida em cada passo; exatamente o que observamos na animação para T=1.8J.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:FCs.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5804</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5804"/>
		<updated>2021-10-13T20:14:43Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Propriedades do Algoritmo de Wolff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
Nas animações acima, pode-se perceber que a temperatura tem papel importante na dinâmica apresentada em decorrência da forma com a qual está relacionada a probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;, como podemos ver o gráfico a seguir:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Neste gráfico temos a probabilidade de um spin que possui a mesma orientação que o sítio inicial escolhido ser aceito e adicionado ao cluster em função da temperatura da rede. É de se esperar que conforme a temperatura aumente a probabilidade do spin ser adicionado ao cluster diminua e para temperaturas mais baixas espera-se o contrário. Com base nisso, podemos formular a ideia do tamanho médio dos cluster (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) que é invertido durante os passos de Monte Carlo em função da temperatura e associar este tamanho com a fração representada por este na rede.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Fração do Tamanho dos Clusters (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) ===&lt;br /&gt;
No gráfico abaixo podemos perceber a mesma natureza que foi observados nas animações desenvolvidas, já que a fração do tamanho dos cluster diminui conforme a temperatura aumenta, ou seja, com a temperatura alta os clusters são menores e por isso representam uma fração menor e para temperatura acima de 3J essa fração é quase zero. Já para temperaturas mais baixas, essa fração aproxima-se de 1 o que significa que grande parte da rede, ou praticamente toda a rede, está sendo invertida em cada passo; exatamente o que observamos na animação para T=1.8J.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:FCs.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:FCs.jpeg&amp;diff=5803</id>
		<title>Arquivo:FCs.jpeg</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:FCs.jpeg&amp;diff=5803"/>
		<updated>2021-10-13T20:14:17Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5802</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5802"/>
		<updated>2021-10-13T20:14:07Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Propriedades do Algoritmo de Wolff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
Nas animações acima, pode-se perceber que a temperatura tem papel importante na dinâmica apresentada em decorrência da forma com a qual está relacionada a probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;, como podemos ver o gráfico a seguir:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Neste gráfico temos a probabilidade de um spin que possui a mesma orientação que o sítio inicial escolhido ser aceito e adicionado ao cluster em função da temperatura da rede. É de se esperar que conforme a temperatura aumente a probabilidade do spin ser adicionado ao cluster diminua e para temperaturas mais baixas espera-se o contrário. Com base nisso, podemos formular a ideia do tamanho médio dos cluster (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) que é invertido durante os passos de Monte Carlo em função da temperatura e associar este tamanho com a fração representada por este na rede.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Fração do Tamanho dos Clusters (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) ===&lt;br /&gt;
No gráfico abaixo podemos perceber a mesma natureza que foi observados nas animações desenvolvidas, já que a fração do tamanho dos cluster diminui conforme a temperatura aumenta, ou seja, com a temperatura alta os clusters são menores e por isso representam uma fração menor e para temperatura acima de 3J essa fração é quase zero. Já para temperaturas mais baixas, essa fração aproxima-se de 1 o que significa que grande parte da rede, ou praticamente toda a rede, está sendo invertida em cada passo; exatamente o que observamos na animação para T=1.8J.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:FCs.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico de &amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5801</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5801"/>
		<updated>2021-10-13T20:11:20Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* P_{add}\;= \;1 - e^{-2\beta J}  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
Nas animações acima, pode-se perceber que a temperatura tem papel importante na dinâmica apresentada em decorrência da forma com a qual está relacionada a probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;, como podemos ver o gráfico a seguir:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Neste gráfico temos a probabilidade de um spin que possui a mesma orientação que o sítio inicial escolhido ser aceito e adicionado ao cluster em função da temperatura da rede. É de se esperar que conforme a temperatura aumente a probabilidade do spin ser adicionado ao cluster diminua e para temperaturas mais baixas espera-se o contrário. Com base nisso, podemos formular a ideia do tamanho médio dos cluster (&amp;lt;math&amp;gt;C_s&amp;lt;/math&amp;gt;) que é invertido durante os passos de Monte Carlo em função da temperatura e associar este tamanho com a fração representada por este na rede.&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5800</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5800"/>
		<updated>2021-10-13T19:57:52Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Expoentes Críticos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; [5] e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt; [6].&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo inverta essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5799</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5799"/>
		<updated>2021-10-13T19:54:42Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Clusterização do Modelo de Ising */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular [1] sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising [1]. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo &#039;&#039;flipe&#039;&#039; essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5798</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5798"/>
		<updated>2021-10-13T19:49:36Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Animações */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo &#039;&#039;flipe&#039;&#039; essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5797</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5797"/>
		<updated>2021-10-13T19:48:36Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Referências */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo &#039;&#039;flipe&#039;&#039; essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
[1] 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;br /&gt;
&lt;br /&gt;
[2] Materias da disciplina disponíveis em: &amp;lt;https://moodle.ufrgs.br/course/view.php?id=80767&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[3] E. Luijten, “Introduction to Cluster Monte Carlo Algorithms” &amp;lt;http://csml.northwestern.edu/resources/Reprints/lnp_color.pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[4] &amp;lt;https://fiscomp.if.ufrgs.br/index.php/Ising_2D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[5] Nightingale and Blöte (1996).&lt;br /&gt;
&lt;br /&gt;
[6] Coddington e Baillie (1992).&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5796</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5796"/>
		<updated>2021-10-13T19:47:33Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Função da Dinâmica de Clusterização */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo &#039;&#039;flipe&#039;&#039; essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Função do Cálculo da Magnetização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din_mag(sitio, mag):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    mag = mag +2*s[sitio]&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin:   &lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no buffer&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
                 mag = mag +2*s[nn]&lt;br /&gt;
    return mag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:TC-.gif&amp;diff=5795</id>
		<title>Arquivo:TC-.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:TC-.gif&amp;diff=5795"/>
		<updated>2021-10-13T19:41:14Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:HTC.gif&amp;diff=5794</id>
		<title>Arquivo:HTC.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:HTC.gif&amp;diff=5794"/>
		<updated>2021-10-13T19:38:56Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5793</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5793"/>
		<updated>2021-10-13T19:36:46Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Animações */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo &#039;&#039;flipe&#039;&#039; essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:TC%2B.gif&amp;diff=5792</id>
		<title>Arquivo:TC+.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:TC%2B.gif&amp;diff=5792"/>
		<updated>2021-10-13T19:35:59Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: Mgteus enviou uma nova versão de &amp;amp;quot;Arquivo:TC+.gif&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:TC%2B.gif&amp;diff=5791</id>
		<title>Arquivo:TC+.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:TC%2B.gif&amp;diff=5791"/>
		<updated>2021-10-13T19:34:13Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5790</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5790"/>
		<updated>2021-10-13T18:29:47Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Clusterização do Modelo de Ising */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
==  Clusterização do Modelo de Ising ==&lt;br /&gt;
O modelo de Ising é definido como uma malha de tamanho L, quadrada quando em duas dimensões e cúbica quando em três dimensões, onde cada vértice apresenta um componente de spin de magnitude fixa que pode apontar para cima ou para baixo (+1 ou -1, respectivamente). O sistema pode ser descrito pelo seguinte hamiltoniano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_{Ising} = -J \sum_{\langle ij \rangle} s_i s_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; representa o valor do spin e a soma é feita sobre os pares de vértices próximas que são conectadas com um acoplamento ferromagnético de força &amp;lt;math&amp;gt;J &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para um modelo de Ising bidimensional (o tipo que consideramos) é possível calcular sua temperatura crítica exata como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;T_c = \frac{2J}{\log(1 + \sqrt{2})} \simeq 2.269J&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima dessa temperatura o sistema está na ‘’’fase paramagnética‘’’, onde a magnetização média é nula, e abaixo dessa temperatura o sistema está na fase ‘’’fase ferromagnética’’’, onde a maioria dos spins se alinham e a magnetização se torna não-nula. Ao estudar o modelo de Ising em geral temos maior interesse no comportamento do sistema perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, onde o sistema forma grupos grandes de spins para cima ou para baixo. Esses grupos contribuem muito para a energia do sistema, causando muita flutuação quando invertem.&lt;br /&gt;
&lt;br /&gt;
O algoritmo de Metropolis é um ótimo algoritmo para realizar simulações do modelo de Ising. Porém, sua dinâmica de &#039;&#039;flip&#039;&#039; único é ineficiente especialmente quando próxima da temperatura crítica do sistema. As imprecisões estatísticas de quantidades como magnetização e energia interna do sistema aumentam quando próximo da temperatura crítica. Assim, quando esses grandes grupos de spins alinhados (clusters) invertem, há grandes imprecisões. Essa imprecisão aumenta com o tamanho das flutuações, mas diminui com o número de medidas feitas na simulação, então para se estudar a região perto de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; de modo mais preciso é necessário que a simulação aconteça por mais tempo. Porém, uma outra fraqueza do algoritmo de Metropolis é seu tempo de correlação &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; grande ao redor da temperatura crítica. Isso significa que o número de medidas de uma simulação é pequena, então para diminuir as imprecisões estatísticas causadas pelas poucas medidas é necessário rodar o algoritmo por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Uma das propriedades do modelo de Ising é o fato de flutuações grandes gerarem medidas mais imprecisas. Porém, o tempo de correlação e o modo como ele se comporta próximo a &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt; é uma propriedade do algoritmo utilizado para estudar o sistema, e então é algo que pode ser otimizado.&lt;br /&gt;
&lt;br /&gt;
=== Expoentes Críticos ===&lt;br /&gt;
Para estudar mais sobre a eficiência dos algoritmos no modelo de Ising podemos definir a temperatura reduzida como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = \frac{T - T_c}{T_c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essa grandeza indica o quão distante estamos da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, de modo que para &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt; estamos em &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;. A partir disso, e sabendo que &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; indica a largura médio dos clusters, temos que a expressão &amp;lt;math&amp;gt;\xi \sim |t|^{- \nu}&amp;lt;/math&amp;gt; demonstra a divergência da largura de correlação (largura dos clusters). Se tratando do tempo, definimos &amp;lt;math&amp;gt;\tau \sim |t|^{-z \nu}&amp;lt;/math&amp;gt; como o tempo de correlação da simulação, medido em passos de Monte Carlo por sítio da rede. O expoente &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, chamado de expoente dinâmico, é um modo de quantificar a diferença de tempo que acontece devido à divergência. Um valor grande de &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; simboliza que &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; fica grande, por exemplo, fazendo uma simulação mais demorada e menos precisa quando próximo de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Combinando as duas equações vistas, podemos escrever que &amp;lt;math&amp;gt;\tau \sim \xi^z&amp;lt;/math&amp;gt;. Essa relação indica que o tempo de correlação aumenta com o tamanho típico dos clusters. Considerando um sistema de tamanho finito porém (os tipos de sistema que simulamos), o valor máximo de &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; vai ser o tamanho &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; do sistema (e.g. um sistema &amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt;x&amp;lt;math&amp;gt;64&amp;lt;/math&amp;gt; tem &amp;lt;math&amp;gt;L=64&amp;lt;/math&amp;gt;). Podemos assim concluir que &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sabendo a temperatura crítica do sistema (para Ising 2D, &amp;lt;math&amp;gt;T_c = 2.269J&amp;lt;/math&amp;gt; é possível usar a relação &amp;lt;math&amp;gt;\tau \sim L^z&amp;lt;/math&amp;gt; para medir &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; por meio de simulações onde a temperatura do sistema é igual à temperatura crítica para vários tamanhos diferentes de &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;, plotando  &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; versus  &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; em escala logarítmica. A inclinação da reta que liga todos esses pontos nos dá o valor de  &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por meio desse método, temos que  o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Metropolis é &amp;lt;math&amp;gt;z = 2.1655 \pm 0.0012&amp;lt;/math&amp;gt; e o &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; do algoritmo de Wolff (um algoritmo de clusterização) é &amp;lt;math&amp;gt;z = 0.25 \pm 0.001&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
O motivo do tempo grande do algoritmo de Metropolis é a divergência do tamanho de correlação &amp;lt;math&amp;gt;\xi&amp;lt;/math&amp;gt; próximo da temperatura crítica. Ao se aproximar de &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;, grandes regiões se formam onde todos os spins estão alinhados, e é demorado para que o algoritmo &#039;&#039;flipe&#039;&#039; essas regiões, dado que ele inverte os spins sítio por sítio.&lt;br /&gt;
&lt;br /&gt;
Algoritmos de cluster, como o de Wolff, fazem uso da técnica de clusterização. Com isso, os algoritmos encontram agrupam spins alinhados em clusters que apontam para a mesma direção e invertem os spins desse cluster ao mesmo tempo. Algoritmos de clusterização permitem uma exploração mais efetivo do espaço de fase próximo da temperatura crítica por serem mais eficientes e de precisarem de menos iterações para terem medidas precisas.&lt;br /&gt;
&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crpitica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5466</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5466"/>
		<updated>2021-05-28T14:42:10Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Função da Dinâmica de Clusterização */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
== Clusterização do Modelo de Ising ==&lt;br /&gt;
=== Clusterização ===&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crpitica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5465</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5465"/>
		<updated>2021-05-28T14:41:51Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* Função da Dinâmica de Clusterização */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
== Clusterização do Modelo de Ising ==&lt;br /&gt;
=== Clusterização ===&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crpitica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Py&amp;gt;&lt;br /&gt;
def cluster_din(sitio):&lt;br /&gt;
    stack = []&lt;br /&gt;
    oldspin = s[sitio]&lt;br /&gt;
    newspin = (-1)*s[sitio]&lt;br /&gt;
    s[sitio] = newspin&lt;br /&gt;
    sp=1&lt;br /&gt;
    stack.append(sitio)&lt;br /&gt;
    &lt;br /&gt;
    while (sp):&lt;br /&gt;
        sp = sp-1&lt;br /&gt;
        atual = stack[sp]&lt;br /&gt;
        stack.pop()        &lt;br /&gt;
    &lt;br /&gt;
        for j in range(4):&lt;br /&gt;
            nn=viz[atual][j]&lt;br /&gt;
            if s[nn] == oldspin: #IF da orientação do vizinho&lt;br /&gt;
             rfloat1 = rng.random()&lt;br /&gt;
             if (rfloat1&amp;lt;prob) : #IF da inclusão no cluster&lt;br /&gt;
                 &lt;br /&gt;
                 stack.append(nn)&lt;br /&gt;
                 sp = sp+1&lt;br /&gt;
                 s[nn] = newspin&lt;br /&gt;
    return&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5464</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5464"/>
		<updated>2021-05-28T14:38:48Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
== Clusterização do Modelo de Ising ==&lt;br /&gt;
=== Clusterização ===&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crpitica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Códigos Fonte ==&lt;br /&gt;
=== Função da Dinâmica de Clusterização ===&lt;br /&gt;
&amp;lt;source lang=Python&amp;gt;&lt;br /&gt;
float sitio[L*L];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5463</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5463"/>
		<updated>2021-05-28T14:33:18Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* P_{add}\;= \;1 - e^{-2\beta J}  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
== Clusterização do Modelo de Ising ==&lt;br /&gt;
=== Clusterização ===&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crpitica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5462</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5462"/>
		<updated>2021-05-28T14:32:59Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* P_{add}\;= \;1 - e^{-2\beta J}  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
== Clusterização do Modelo de Ising ==&lt;br /&gt;
=== Clusterização ===&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crpitica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|800px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Prob.jpeg&amp;diff=5461</id>
		<title>Arquivo:Prob.jpeg</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Prob.jpeg&amp;diff=5461"/>
		<updated>2021-05-28T14:31:42Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5460</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5460"/>
		<updated>2021-05-28T14:31:25Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* P_{add}\;= \;1 - e^{-2\beta J}  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
== Clusterização do Modelo de Ising ==&lt;br /&gt;
=== Clusterização ===&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crpitica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;gt; ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Probabilidade em função da temperatura.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:prob.jpeg|thumb|upright=4|none|alt=Alt text|Gráfico da probabilidade de aceitação &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; em função de &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5459</id>
		<title>Clusterização</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Clusteriza%C3%A7%C3%A3o&amp;diff=5459"/>
		<updated>2021-05-28T14:26:09Z</updated>

		<summary type="html">&lt;p&gt;Mgteus: /* = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PÁGINA EM CONSTRUÇÃO&#039;&#039;&#039;&lt;br /&gt;
== Clusterização do Modelo de Ising ==&lt;br /&gt;
=== Clusterização ===&lt;br /&gt;
=== Balanço Detalhado ===&lt;br /&gt;
Para respeitarmos o Balanço Detalhado, precisamos que a mudança da rede de um estado $&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; ocorra com a mesma probabilidade da mudança de um estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; para &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;, denotamos essa mudança por: &amp;lt;math&amp;gt;A(\mu \to \nu) = A(\nu \to \mu)&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt;A(x \to y)&amp;lt;/math&amp;gt; sendo a razão de aceitação da mudança de um estado &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; para um estado &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Supondo que estamos mudando de um estado &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; para outro estado &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, temos que a diferença de energia entre esses dois é resultado da quebra das ligações entre pares de spins orientados na mesma direção que não foram adicionados ao cluster, já que, não há uma garantia que a &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt; \nu \to \mu &amp;lt;/math&amp;gt; quebre a mesma quantidade de ligações que a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt; \mu \to \nu&amp;lt;/math&amp;gt;. A probabilidade de não adicionarmos um spin vizinho ao cluster é dada por: &amp;lt;math&amp;gt;1 - P_{add}&amp;lt;/math&amp;gt;; uma vez que &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt; é  a probabilidade de incluir esse spin no cluster.&lt;br /&gt;
&lt;br /&gt;
Supondo que existam &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; ligações a serem quebradas na &#039;&#039;ida&#039;&#039; de &amp;lt;math&amp;gt;\nu \to \mu&amp;lt;/math&amp;gt;, a probabilidade desse evento é dada por &amp;lt;math&amp;gt;(1-P_{add})^m&amp;lt;/math&amp;gt;. Porém, o mesmo pode não valer para a &#039;&#039;volta&#039;&#039; de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;, em razão disso, precisamos analisar o caso em que não há o mesmo número de ligações a serem quebradas na &#039;&#039;volta&#039;&#039; e então a probabilidade será dada por &amp;lt;math&amp;gt;(1-P_{add})^n&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sendo o número de ligações a serem quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Consideramos agora que &amp;lt;math&amp;gt;E_{\nu}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;E_{\mu}&amp;lt;/math&amp;gt; sejam as energias associadas aos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; \mu &amp;lt;/math&amp;gt;, respectivamente, temos que: a cada &amp;lt;math&amp;gt; m&amp;lt;/math&amp;gt; ligações que são quebradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia aumenta com &amp;lt;math&amp;gt;+2J&amp;lt;/math&amp;gt; e para cada &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; novas ligações geradas de &amp;lt;math&amp;gt;\mu \to \nu&amp;lt;/math&amp;gt; a energia diminui com &amp;lt;math&amp;gt;-2J&amp;lt;/math&amp;gt;. Pode-se escrever então que a diferença de energia entre &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; é dada por: &amp;lt;math&amp;gt;E_{\nu} - E_{\mu} = 2mJ -2nJ = 2J(m-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seguindo a definição do Balanço Detalhado e impondo que o Processo Markoviano dessas mudanças de estados descritas acima respeite a Distribuição de Boltzmann, precisamos que:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) } = e^{-\beta(E_{\nu} - E_{\mu})} = (1-P_{add})^{m-n}\frac{A(\mu \to \nu)}{A(\nu \to \mu)}&amp;lt;/math&amp;gt;, tal que, &lt;br /&gt;
&amp;lt;math&amp;gt;\frac{A(\mu \to \nu)}{A(\nu \to \mu)} = \big[e^{2\beta J}(1-P_{add})\big]^{n-m}\;\;\;\; \Longrightarrow P_{add} = 1-e^{-2\beta J} \Longrightarrow \frac{(1-P_{add})^m A(\mu \to \nu)}{(1-P_{add})^n A(\nu \to \mu) }=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
== Algoritmo de Wolf ==&lt;br /&gt;
&lt;br /&gt;
=== Dinâmica do Algoritmo ===&lt;br /&gt;
O algoritmo de Wolff baseia-se principalmente em 4 passos. são estes:&lt;br /&gt;
*&#039;&#039;&#039;1 - &#039;&#039;&#039; Escolhe-se um sítio aleatório da rede;&lt;br /&gt;
*&#039;&#039;&#039;2 - &#039;&#039;&#039;Entre seus 4 vizinhos, se o spin do vizinho for igual ao do sítio inicial, adicionamos o vizinho ao cluster com probabilidade &amp;lt;math&amp;gt; P_{add} = 1-e^{2\beta J}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;3 - &#039;&#039;&#039; Para cada vizinho que foi adicionado ao cluster no passo anterior, repetimos o processo do passo &#039;&#039;&#039;2&#039;&#039;&#039; adicionando os vizinhos desse vizinho que possuem spin na mesma direção com a mesma probabilidade &amp;lt;math&amp;gt;P_{add}&amp;lt;/math&amp;gt;. Faz-se isso para todos os sítios que são adicionados ao cluster.&lt;br /&gt;
*&#039;&#039;&#039;4 - &#039;&#039;&#039; Quando todos os vizinhos de todos os sítios adicionados ao cluster tiveram ao menos uma “chance” de serem adicionados ao cluster, &#039;&#039;flipamos&#039;&#039; o cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Dinâmica do algoritmo.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:dinamica_wolff.gif|thumb|upright=4|none|alt=Alt text|Demonstração da dinâmica de clusterização do algoritmo na temperatura crítica &amp;lt;math&amp;gt;\; T_c = 2.269J &amp;lt;/math&amp;gt;.|1080px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simulações ==&lt;br /&gt;
=== Animações ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Animações do algoritmo de Wolff em função da Temperatura &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:TC-.gif|thumb|upright=4|none|alt=Alt text|Simulação para temperatura abaixo da temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:hTC.gif|thumb|upright=4|none|alt=Alt text|Simulação na temperatura crítica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|[[Arquivo:TC+.gif|thumb|upright=4|none|alt=Alt text|Simulação para tempetura acima da temperatura crpitica &amp;lt;math&amp;gt;T_c&amp;lt;/math&amp;gt;.|500px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Obs: Nossos gifs ficaram com mais de 2mb, limite da wiki, estamos refazendo...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Propriedades do Algoritmo de Wolff ==&lt;br /&gt;
===  &amp;lt;math&amp;gt;P_{add}\;= \;1 - e^{-2\beta J} &amp;lt;/math&amp;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;
== Referências ==&lt;/div&gt;</summary>
		<author><name>Mgteus</name></author>
	</entry>
</feed>