<?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=Jhordan</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=Jhordan"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php/Especial:Contribui%C3%A7%C3%B5es/Jhordan"/>
	<updated>2026-04-08T20:44:10Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Sustainable_Development_Outlook_2019:_Gathering_storms_and_silver_linings&amp;diff=9720</id>
		<title>Sustainable Development Outlook 2019: Gathering storms and silver linings</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Sustainable_Development_Outlook_2019:_Gathering_storms_and_silver_linings&amp;diff=9720"/>
		<updated>2023-10-25T18:49:53Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Em 2019 a Organização das Nações Unidas publicou um relatório discutindo o panorama do desenvolvimento sustentável. O que vou trazer são pequenas discussões sobre determinados trechos. O relatório como um todo tem 4 capítulos, e não devo abordar todos. O primeiro que é o de maior interesse  para meu trabalho aborda questões econômicas e a desigualdade como um todo. O segundo discute outros obstáculos para que o desenvolvimento sustentável seja atingido, especialmente mudanças climáticas, conflitos e deslocamento de populações, o terceiro é voltado ao uso de novas tecnologias para atingir os objetivos. E por fim, o último busca discutir algumas propostas de política pública, como políticas de taxa de carbono, impostos, e renda básica universal.&lt;br /&gt;
= Resumo Executivo =&lt;br /&gt;
Começamos com o &amp;quot;resumo executivo&amp;quot;, e como sempre, focado principalmente nas questões econômicas. Vale lembrar que neste momento,este texto é principalmente constituído de notas de estudo. Começamos então lembrando que os objetivos de desenvolvimento sustentável foram concebidos na agenda de desenvolvimento sustentável 2030, e são consideradas, nas palavras do relatório, as maiores esperanças para um futuro sustentável. Porém tem surgido desafios na sua implementação e o relatório visa então trazer para o debate público algumas destas questões.&lt;br /&gt;
Uma das questões centrais quando se debate desigualdade de riqueza é, afinal, qual é o problema de existir desigualdade que faz necessário que seja combatida? Temos então uma resposta dada logo no início do relatório, que foge um pouco da dimensão econômica e entra na dimensão política:&lt;br /&gt;
&lt;br /&gt;
  “A persistência de altos níveis de desigualdade enraíza a incerteza e a insegurança entre as pessoas, reforçando as divisões e minando a confiança nas instituições e no governo.”&lt;br /&gt;
&lt;br /&gt;
Essa é uma ideia que vai reaparecer mais adiante.  Além disso, discutindo os próprios objetivos definidos na agenda 2030, o aumento da desigualdade econômica é uma séria ameaça à ao desenvolvimento sustentável desenhado pela mesma. Discutindo brevemente alguns tópicos, temos algumas observações interessantes que acredito que valem a pena serem trazidos para cá. &lt;br /&gt;
 &lt;br /&gt;
O relatório sinaliza que o comércio internacional é um mecanismo de crescimento global que tem diminuído o ritmo desde a crise financeira em 2008. O que teria como consequência o enfraquecimento da geração de empregos e a piora na desigualdade entre os países, assim como o incremento do senso de incerteza e insegurança, aumentando então o risco de uma crise econômica.&lt;br /&gt;
&lt;br /&gt;
Porém, além do crescimento global medido muitas vezes em termos de PIB, é importante que a comunidade internacional olhe além desta quantidade para que seja possível de se alcançar os objetivos. O aumento no PIB não reflete necessariamente uma melhora no bem estar da população. Ainda que exista uma tendência de crescimento da riqueza global, há no mundo um índice persistente e elevado de inseguridade no emprego: a maior parte da população está engajada em empregos informais e em condições de vulnerabilidade. É urgente então que se crie um número adequado de trabalhos que ofereçam salário digno e benefício para que os objetivos sejam alcançáveis.&lt;br /&gt;
&lt;br /&gt;
Em 2019,  um a cada três adultos enfrentava riscos crônicos de desemprego. Governos devem então criar e/ou adotar novas métricas para medir índices da performance econômica do país que meça a criação de empregos dignos, a insegurança econômica e a vulnerabilidade. Desta forma será possível mensurar melhor o combate a desigualdade. Desigualdade esta, que é necessária que seja reduzida em todas as formas e manifestações, a agenda 2030 abraçou como princípio lema “não deixar ninguém para trás”.&lt;br /&gt;
 &lt;br /&gt;
Infelizmente, esta é uma batalha em que há poucas evidências que o mundo esteja vencendo, pelo contrário. Nas palavras do relatório, nos últimos anos durante as tentativas de implementação dos objetivos:&lt;br /&gt;
&lt;br /&gt;
  “Os altos níveis de desigualdade de renda e riqueza observados na maioria dos países surgiram como o maior obstáculo para a implementação dos Objetivos de Desenvolvimento Sustentável.”&lt;br /&gt;
&lt;br /&gt;
É necessário aqui, então retomar a importância de combater a desigualdade. Ela é responsável por impedir o desenvolvimento sustentável em muitas formas. O aumento na desigualdade de riquezas e acesso de oportunidades desencoraja o acúmulo de habilidades, sufoca a economia e a mobilidade social, além de frear o desenvolvimento humano. A desigualdade consolida a incerteza, vulnerabilidade e insegurança, mina a confiança nas instituições e no governo, aumenta a discórdia e a tensão social. Quando há um incremento na desigualdade de uma sociedade, ela se torna mais suscetível a violência e episódios de conflito.&lt;br /&gt;
&lt;br /&gt;
Para combater é necessário agir em todas dimensões. Existe uma dinâmica de reforço entre desigualdade e insegurança no emprego que aprisiona grande parte da população em sociedades altamente desiguais. O combate a este mecanismo deve fundamentar as decisões políticas, deve-se  então expandir as possibilidades educacionais, criar trabalhos decentes e fortalecer as medidas de proteção social. É necessário uma nova aproximação da redistribuição de riqueza, renda e oportunidades.  Conflitos violentos frequentemente são resultados de um alto índice de desigualdade entre grupos e insegurança domiciliar, de forma que também é prioritário além da expansão das oportunidades econômicas a garantia do domicílio de qualidade, especialmente para os grupos mais marginalizados e vulneráveis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Desigualdade, incerteza e insegurança econômica = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Crescimento&amp;lt;/b&amp;gt;: o crescimento econômico sem políticas públicas sustentáveis não leva a um progresso sustentável, porém a vitalidade da economia é crucial para que seja possível atingir as metas. A estagnação do crescimento da economia e do comércio internacional ameaça reverter os ganhos que o mundo teve nas últimas épocas. &lt;br /&gt;
&lt;br /&gt;
O BRICS tem ocupado uma posição cada vez mais importante na economia mundial, enquanto a relevância do seleto grupo de países mais ricos tem decaído proporcionalmente, isso denota uma mudança na dinâmica global.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Tensão&amp;lt;/b&amp;gt;: O aumento na desigualdade de riqueza e de renda tem gerado um sentimento &amp;quot;anticomercial&amp;quot;, nas palavras do relatório. Desde a crise de 2008, em média 800 novas medidas protetivas foram introduzidas anualmente, com destaque para o conflito entre EUA e China.&lt;br /&gt;
&lt;br /&gt;
Além disso, é dito que pesquisas econômicas apontam um alto custo da guerra de tarifas para o PIB do mundo, além de que as tensões ao mesmo tempo que criam oportunidades para outros países, tem como efeito final na economia global um efeito negativo devido principalmente ao alto custo de ajuste e transição para uma nova dinâmica. Como um todo, essa situação indica um enfraquecimento do sistema atual.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Incertezas&amp;lt;/b&amp;gt;: Esse é um dos tópicos mais importantes. É necessário que sejam adotadas políticas públicas que promovam trabalho de qualidade, e não apenas quantidade. Essa é uma medida crítica para combater a desigualdade e insegurança econômica. Na maior parte dos países o crescimento dos salários não acompanhou o crescimento da produtividade, dentre outros motivos, podemos destacar a ausência de políticas públicas proativas neste sentido. Enquanto o salário permaneceu estagnado para os 50% na base da pirâmide, ela cresceu substancialmente para o topo da pirâmide (os 10% mais ricos). Ao mesmo tempo, o custo de vida aumentou como um todo. Também se faz necessário políticas de proteção econômica para pessoas de idade avançada.&lt;br /&gt;
&lt;br /&gt;
Hoje, no mundo, 61% da força de trabalho está em situação informal, parcial ou contratual. Nos EUA, 40% dos trabalhadores estão em situação de insegurança financeira, 25% em moderada e 15% em alta. É também conhecido que a insegurança financeira influencia nas eleições, estimulando a votação na extrema direita, e também nos índices de imigração, fazendo com que as pessoas migrem em busca de maior qualidade de vida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Dívidas&amp;lt;/b&amp;gt;: Aqui eu chamo a atenção que países europeus frequentemente tem dívida acima de 100% do PIB, e ainda temos o caso extremo do Japão onde essa dívida ultrapassa 200%. O relatório sugere que os países façam empréstimos em moedas locais para fugir da valorização do dólar. A crise de dívidas nacionais em todo mundo denuncia também uma falta de coordenação global para responder a esta crise, é necessário então uma melhor infraestrutura financeira global, dada a inabilidade das instituições e ferramentas que existem para lidar com este problema.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Desigualdade&amp;lt;/b&amp;gt;: Mais de dois terços do mundo está experimentando um crescimento na desigualdade de renda e de riqueza, o que se torna um obstáculo para que seja possível alcançar um desenvolvimento sustentável. &lt;br /&gt;
&lt;br /&gt;
Aqui eu preciso abrir espaço para tecer um comentário pessoal. Em um primeiro momento é dito que desigualdade é associada a um desvio da meritocracia e equidade, assim como ela seria um requisito moral em diferentes culturas e contextos. Na sequência então temos a apresentação de que estudos indicam que não há correlação entre alta desigualdade e crescimento lento, o que indicaria que não é necessário desigualdade para o crescimento econômico. Eu estou de acordo com a ideia de que não é necessário desigualdade para o adequado desenvolvimento socioeconômico de uma sociedade, mas a primeira afirmação é quase que redundante: não há igualdade, porque há desigualdade. A questão aqui, na minha opinião, é entender a causa da desigualdade e o que é necessário mudar para que essa igualdade econômica seja atingida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vulnerabilidade&amp;lt;/b&amp;gt;: Se por um lado, altos níveis de empregos informais e vulneráveis reforçam a desigualdade, por outro lado, um alto índice de desigualdade também estimula o aumento de trabalhos informais e vulneráveis. A hipótese levantada para explicar esta situação consiste na ideia de que uma alta concentração de riqueza também se traduz em uma alta concentração de poder político, o que permite que os mais ricos conseguem impor sobre a sociedade políticas públicas que sejam de seu agrado, o que leva a uma menor densidade de sindicatos e proteção social.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Ascensão social&amp;lt;/b&amp;gt;:A alta desigualdade econômica está intimamente relacionada com baixa mobilidade social, isto é, a mobilidade de salário entre gerações é menor quando a desigualdade é alta. Uma das razões disso acontecer são as limitações financeiras que famílias mais pobres possuem para investir na educação dos seus filhos.&lt;br /&gt;
&lt;br /&gt;
Além disso, conforme discutido anteriormente, a concentração de poder que ocorre no topo da pirâmide permite que o processo de decisão de políticas públicas adotado pelo governo não leve em conta e não satisfaça as necessidades da população que está fora desse estrato social. Existe uma narrativa que de desigualdade faria o público apoiar políticas que não favorecem o desenvolvimento econômico da sociedade, mas o que é observado é que uma maior desigualdade econômica se traduz em uma desigualdade de poder político, de forma que a concentração de riqueza se traduz também na concentração de poder político, tirando o poder político da mão do público. Pesquisas indicam que nos EUA, o serviço público prefere agradar os mais ricos do que a maior parte da população.&lt;br /&gt;
&lt;br /&gt;
A frequentemente apontada queda da desigualdade entre os países é devido em grande parte, a enorme população dos países asiáticos em desenvolvimento. O a desigualdade no interior dos países medida pelo Gini aumentou nos países que abrigam mais de 2/3 da população mundial. Estes resultados já havíamos observado no relatório anterior, inclusive contestando a interpretação de que a desigualdade estava a diminuir, e como podemos ver na sequência, adiantamos grande parte da discussão que estamos vendo agora.&lt;br /&gt;
&lt;br /&gt;
O relatório continua a discussão trazendo à tona a situação de que muitos países, apesar de apresentarem uma queda no Gini, ainda apresentaram um aumento na concentração de riqueza da fatia dos 10% mais ricos. De maneira geral, mesmo em países que apresentaram uma queda na desigualdade em diferentes índices, o crescimento do salário e a criação de empregos de qualidade não tem sido rápido o suficiente para que as pessoas na parte debaixo do espectro consigam escapar da pobreza.&lt;br /&gt;
&lt;br /&gt;
Outra observação interessante é que os maiores índices de desigualdade estão associados a menor densidade de sindicatos e políticas públicas de proteção do trabalhador. Isso ocorre, pois conforme temos discutido incessantemente, estas políticas públicas não são de interesse de quem está no topo da pirâmide. Por fim, existe a observação de que crises financeiras afetam diferentemente a desigualdade de riqueza e de renda.&lt;br /&gt;
&lt;br /&gt;
Enquanto a parte mais pobre não não sofre necessariamente a maior perda proporcional do salário, pois está blindada pelos mesmos motivos que a prendem nessa situação (o relatório destaca o isolamento geográfico e baixa conectividade ao mercado nacional e global), a classe média é quem sofre desproporcionalmente, enquanto a classe alta normalmente está mais preparada com antecedência para lidar com a crise, além de inclusive receber compensação financeira pelos bancos. Quando falamos sobre desigualdade de riqueza, a crise faz o preço das casas colapsar, afetando fortemente a população mais pobre da população, enquanto a rápida recuperação do mercado financeiro beneficia os ricos. O relatório sugere então uma possibilidade de desacoplamento entre as desigualdades de riqueza e de renda.&lt;br /&gt;
&lt;br /&gt;
Acredito que isso dê no máximo em uma curta janela temporal. Enquanto a renda do pobre permanece igual e o patrimônio diminui na crise, o rico tanto se prepara e recebe compensação financeira para não sentir uma queda significativa na renda quanto tem seu patrimônio valorizado. Precisaria fazer uma análise melhor, mas acredito que a longo prazo, o que acontece é apenas o aumento da desigualdade tanto de riqueza quanto de patrimônio, no máximo temos uma oscilação imediatamente após a crise.&lt;br /&gt;
&lt;br /&gt;
Neste ponto, acho importante discutir o que é considerado trabalho vulnerável. Segundo o sindicato britânico UNISON são trabalhos que requerem baixa qualificação, pagam mal e possuem pouca segurança no emprego. Os trabalhadores são constantemente explorados e forçados a trabalhar por longas horas, ou em condições de perigo. Trabalhadores vulneráveis também talvez não saibam de seus direitos trabalhistas ou tenham medo de desafiar seus empregadores quando tratados de forma injusta.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Desafio&amp;lt;/b&amp;gt;: A redução da desigualdade é algo que tem permanecido como um desafio ao longo do tempo, mas não é o suficiente reduzir apenas as desigualdades econômicas, mas todas as manifestações de desigualdades: de acesso à educação, proteção social, água limpa e saneamento básico, tecnologia, terra, recursos naturais, etc ...&lt;br /&gt;
&lt;br /&gt;
Conforme já discutido,  um estado de alta desigualdade econômica anda lado a lado com a alta concentração de poder político. Buscando proteger os próprios interesses, estes com influência política tem então o incentivo para ativamente impedir a introdução de medidas de redução da desigualdade, criando efetivamente uma armadilha de desigualdade.&lt;br /&gt;
&lt;br /&gt;
O reconhecimento destas armadilhas aumenta a urgência da tarefa de combater a desigualdade, iniquidade e exclusão. Algo que me chama a atenção no relatório é a sugestão de um movimento migratório &amp;quot;ordenado e regular&amp;quot;, como uma medida importante para reduzir a desigualdade, prevenir conflitos e facilitar o combate às mudanças climáticas.&lt;br /&gt;
&lt;br /&gt;
O relatório nos lembra que a globalização do comércio tem sido frequentemente acusada como fator chave no crescimento da desigualdade, seja em países desenvolvidos ou em desenvolvimento. Porém, há uma falta de evidências empíricas que suportem essa ideia. Existiriam então dados cruzados entre países cobrindo as últimas décadas que mostram uma correlação limitada entre a abertura de comércio e a desigualdade no interior do próprio país. Estudos recentes apontaram que ainda que a abertura tenha uma posição significativa na desigualdade de renda, seu impacto seria secundário frente a outros fatores, como o desenvolvimento tecnológico, a abertura financeira (que diz respeito ao fluxo financeiro internacional), e a profundidade financeira (o desenvolvimento dos sistemas financeiros nacionais). O maior responsável então, seriam políticas públicas ruins, como o enfraquecimento do poder de barganha do trabalhador e o desenvolvimento inadequado em áreas como educação e medidas de segurança social, dentre outras.&lt;br /&gt;
&lt;br /&gt;
Na minha perspectiva esse é um assunto que merece um melhor aprofundamento e discussão sobre como abertura comercial ou a globalização do comércio é definida. Na linguagem do dia a dia, abertura comercial se confunde com abertura financeira, além de que segundo os próprios estudos apontados a abertura comercial teria um efeito (ainda que secundário) na desigualdade, e a própria abertura financeira tem um efeito primário. Então antes de formular maiores opiniões, para mim, é necessário um aprofundamento no tópico. Outro ponto pra levantar é que não raras as vezes as medidas de abertura defendidas trazem consigo a exigência ou o incentivo daquilo que é descrito como políticas públicas ruins, como por exemplo, o enfraquecimento do poder de barganha do trabalhador.&lt;br /&gt;
 &lt;br /&gt;
De todo modo, o relatório defende que é necessário criar melhores mecanismos de redistribuição para compensar o impacto assimétrico do comércio internacional, minimizando os efeitos prejudiciais do mesmo. O que na minha leitura torna evidente o reconhecimento de que existem efeitos negativos e que esta abertura não pode ser feita de forma desregulada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Insegurança&amp;lt;/b&amp;gt;: É importante entendermos que quando se discute incerteza econômica, o uso do termo 'econômico' diz mais sobre as consequências (prejuízo na renda e/ou patrimônio) do que as causas. Poderíamos ter como fonte de incertezas econômicas, por exemplo, eventos climáticos extremos, mudanças tecnológicas, conflitos violentos, etc.&lt;br /&gt;
A insegurança não é algo que pode ser capturado facilmente por um indicador, é algo difícil de ser medido objetivamente e faz com que frequentemente as análises ignorem as implicações do mesmo para o desenvolvimento sustentável. Porém a insegurança pode minar a confiança nas instituições e a participação popular, além de ter consequências psicológicas no indivíduos. Por isso é necessário uma demanda de gerenciamento de risco mais integrada, que vá além de respostas pontuais a eventos adversos quando os mesmos se realizam. O fator psicológico exige que os formuladores de política pública vão além da preocupação com maximização de renda e consumo como é tradicional em modelos econômicos tradicionais.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Incerteza&amp;lt;/b&amp;gt;: Há dois fatores ligado a incerteza econômica que interagem entre si para moldar a insegurança econômica:&lt;br /&gt;
&lt;br /&gt;
* O estado e a percepção pública das incertezas econômicas;&lt;br /&gt;
* A habilidade das pessoas gerir estas incertezas.&lt;br /&gt;
&lt;br /&gt;
A própria incerteza vem de diferentes formas: mudanças rápidas e inesperadas, mudanças lentas que são esperadas a ocorrência mas não é possível prever a intensidade, e a volatilidade de variáveis econômicas. Sendo assim, a insegurança econômica não nasce puramente da incerteza, mas ela surge a partir da percepção pública destas incertezas e da capacidade de lidar com as incertezas. Nos últimos tempos a incerteza econômica tem aumentado, o que pode ser observado tanto em termos objetivos como o aprofundamento da crise climática, quanto em termos subjetivos como análises textuais dos relatórios econômicos divulgados na mídia, que funciona como uma representação da percepção pública da incerteza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Lidando&amp;lt;/b&amp;gt;: Conforme discutido anteriormente, o crescimento da incerteza econômica é apenas metade da história da insegurança, se as pessoas se sentem seguras ou não, depende de quão bem as pessoas se sentem preparadas para lidar com as diferentes formas de incerteza. Existem diversos mecanismos que uma pessoa pode recorrer para lidar com incerteza, com destaque para os seguros sociais.&lt;br /&gt;
&lt;br /&gt;
É dado conhecido que países em desenvolvimento tem uma rede de proteção social com uma cobertura muito maior que em países em desenvolvimento. Deixar que a nível individual a capacidade de lidar com incertezas não tem a capacidade de reduzir a insegurança econômica. Entre os países membros da OECD, 40% da população se encontra em situação economicamente vulnerável, isto é, não possuem capital financeiro suficiente para viver mais que 3 meses sem salário e acima da linha da pobreza. Este é um número muito maior que a população que possui uma renda baixa, o que implica que não é um problema restrito à população com baixo rendimento. É fato que a incerteza está crescendo no mundo, e ele não está preparado para lidar com isso.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Desigualdade&amp;lt;/b&amp;gt;: A insegurança econômica tem efeito direto nas decisões domiciliares e na economia como um todo.  Um cenário de alta insegurança pode levar a um efeito manada, onde cada indivíduo adota uma posição cautelosa que tende a seguir as ações dos outros. Porém os efeitos da desigualdade tem diferentes impactos nos diferentes grupos da população, levando a um agravamento ainda maior da desigualdade. Como exemplo, podemos citar que a resiliência dos domicílios frente aos eventos climáticos depende das condições sócio econômicas de seus residentes. Com um efeito cíclico negativo, a desigualdade por sua vez intensifica o sentimento de insegurança.&lt;br /&gt;
&lt;br /&gt;
Outro exemplo de como a insegurança aprofunda a desigualdade pode ser vista sob a perspectiva do desempenho cognitivo. Exercícios em laboratório demonstram que as pessoas têm diferentes níveis de performance dependendo da distância entre o que precisam fazer e os recursos disponíveis para que façam isto. Quanto mais as duas coisas estão distantes entre si, mais essa questão captura a atenção do indivíduo, gerando pensamentos intrusivos e atrapalhando sua performance. Dessa forma, quem enfrenta situações de insegurança econômica (que é tipicamente a população menos favorecida) encara uma espécie de 'imposto cognitivo' que além de afetar sua produtividade, afeta principalmente seu bem estar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Confiança&amp;lt;/b&amp;gt;: O aumento da insegurança tem como efeito colateral a queda da confiança pública no governo, instituições e até mesmo entre indivíduos. Esse é um cenário que favorece a votação em candidatos fora do considerado ‘mainstream’, tipicamente populistas e nacionalistas. Pode também fazer com que a população se sinta menos comprometida em seguir regras, o que afeta negativamente a eficiência de políticas públicas.&lt;br /&gt;
&lt;br /&gt;
A diferença entre o que o panorama chama de elite e trabalhadores regulares, que ocorre a nível nacional também tem sido projetado na esfera internacional. As forças nacionais capitalizaram o descontentamento nacional projetando a culpa nas instituições. Porém é real que de forma geral, o sistema de comércio internacional está em crise, por exemplo, a evasão de impostos reflete um controle internacional inadequado. &lt;br /&gt;
&lt;br /&gt;
Se as potências não se esforçarem para corrigir os problemas no sistema multilateral, melhorar a cooperação internacional sobre impostos, facilitar a transferência de tecnologia, lidar com a crise climática, entre outras questões, então países menos desenvolvidos vão ficar para trás, sendo a população mais vulnerável destes países suportando o peso das consequências.&lt;br /&gt;
&lt;br /&gt;
O relatório também traz uma breve discussão de blockchain, como uma aproximação descentralizada para lidar com questões financeiras, onde contratos inteligentes eliminam a necessidade de instituições centralizadas liberarem as transações. Mas é preciso lembrar que ainda existe uma relação de confiança entre os usuários e a tecnologia que estão adotando, assim como as instituições que operam essa tecnologia. Seria então essa uma tecnologia que pode facilitar transações econômicas, mas isso depende da confiança na eficiência do sistema.&lt;br /&gt;
&lt;br /&gt;
Ninguém fica: Alguns números chamam a atenção nessa parte. Para países de baixa e média-baixa renda, é necessário passar de 3.5% para 6.3% do PIB o investimento em educação para atingir a educação universal (do nível pré-primário até o secundário).  É necessário também em torno de 4.2% do PIB destes mesmos países para atingir uma proteção social necessária, isto é, uma proteção social universal que cobre transferência de dinheiro para crianças, benefício de maternidade, auxílio para deficientes e aposentadoria, dentre outros. Em média, é necessário 7.5% do PIB dos países para assegurar os objetivos relativos à saúde, onde dentre outros subitens, destaca-se a cobertura universal de saúde.&lt;br /&gt;
&lt;br /&gt;
Temos aqui menos de 20% do PIB necessário, em média. Além disso, quando se discute as metas relativas a água e saneamento básico, é necessário 0.39% do PIB agregado dos 140 países estudados, com um pouco mais a ser destinado para os países em desenvolvimento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Investimento&amp;lt;/b&amp;gt;: Alguns países conseguem utilizar recursos domésticos para atender as necessidades, outros podem precisar de financiamento internacional. Para aumentar as receitas, os países devem então focar em recuperar recursos perdidos através de atividades como sonegação de impostos e fluxo financeiro ilícito. Este último diz respeito a movimentos de dinheiro ou capital de um país ou outro,  em que alguma parte desse processo, seja a transferência ou a origem do dinheiro, é ilícita. Como exemplo podemos citar corrupção, tráfico, trabalho escravo, etc…&lt;br /&gt;
&lt;br /&gt;
Na África mais dinheiro é perdido neste fluxo ilegal do que entra diretamente através de investimentos estrangeiros. Mais alguns dados que são trazidos é que em países de baixa renda nos anos recentes programas de proteção social tem sido mais esvaziados do que educação, saúde e nutrição. Além disso, os países da Ásia e Pacífico precisam investir apenas mais 4% do PIB total da área para  acabar com a extrema pobreza nos próximos anos e caminharem na direção da saúde pública e educação de qualidade. A ênfase do investimento varia entre as regiões, no sul da Ásia o foco deve ser proteção social, saúde e educação, enquanto o leste deve se concentrar em questões ambientais.&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
O fim do capítulo traz algo que se aproxima a um resumo de tudo que foi visto destacando que o deveria ser visto como as discussões mais importantes que foram feitas. Começamos então retomando a discussão sobre incerteza e insegurança econômica. Devido a sua importância, aqueles responsáveis por criar as políticas públicas devem ser cuidadosos na forma com que se comunicam com o público para evitar aumentar a insegurança econômica de forma desnecessária.&lt;br /&gt;
&lt;br /&gt;
O aumento da desigualdade econômica é algo que não se encerra em si mesmo, mas também paralisa as ações contra a crise climática, e serve como combustível para uma crescente onda de nacionalismo e populismo. Agora é bastante interessante notar que entre os anos 1990 e os finais dos anos 2000, houve um aumento expressivo do apoio público a favor da redistribuição de renda. Em 70% dos países pesquisados a população se tornou mais favorável à redistribuição, sendo algo mais expressivo ainda em países que tiveram o maior aumento de desigualdade. Porém essa vontade pública não se materializou em políticas públicas devido a concentração de poder político nas mãos da fatia da população mais rica nestes países.&lt;br /&gt;
&lt;br /&gt;
O relatório avança com uma discussão sobre a importância de &amp;quot;redefinir a distribuição&amp;quot;, segundo o mesmo &amp;quot;ela não significa menos para as pessoas no topo&amp;quot;. O argumento é que &amp;quot;significa mais para todo mundo: mais paz e estabilidade para as pessoas no topo, mais segurança econômica e oportunidades para as pessoas na base&amp;quot;, além de uma condição mais sustentável para enfrentar a crise climática.&lt;br /&gt;
&lt;br /&gt;
Discutindo algumas alternativas mais específicas que podem contribuir no combate a desigualdade, o relatório se concentra basicamente em imposto como forma de coletar recursos e então políticas sociais redistributivas para distribuir estes recursos. É mencionado a importância do imposto progressivo como um fator importante no combate a desigualdade, assim como sobre ganhos de capital e herança para diminuir a desigualdade entre as gerações. Políticas fiscais também contribuíram para uma diminuição na desigualdade de renda, aumentado a oferta e o acesso a serviços básicos que apoiam todos os cidadãos, mas os mais pobres em particular.&lt;br /&gt;
&lt;br /&gt;
Porém o que se observou nos últimos anos foi um um aumento na desigualdade ao redor do mundo. Isto está relacionado a eliminação de esquemas de imposto progressivo, redução em impostos de renda (especialmente nas rendas mais altas) dentre outras políticas que beneficia o segmento mais rico da sociedade. O relatório também traz uma breve discussão sobre a possibilidade de que reduzir a desigualdade de compra ao invés da renda pudesse ser mais efetivo para reduzir a desigualdade de consumo.&lt;br /&gt;
&lt;br /&gt;
Quanto às políticas sociais redistributivas, as sugestões são incluir benefícios diretamente em dinheiro, como subsídios e ajustes nos impostos, assim como benefícios não-financeiros como saúde e educação. A América Latina é citada como um exemplo bem sucedido onde países implementaram com sucesso programas de transferência de dinheiro. Propostas de uma renda básica universal tem emergido ao redor do mundo. Além disso, a reforma agrária é um importante debate a ser feito em países em desenvolvimento no combate à desigualdade.&lt;br /&gt;
&lt;br /&gt;
Porém a mudança necessária é estrutural, Nas palavras do relatório:&lt;br /&gt;
  “Transformações estruturais não são apenas aceitáveis, mas parte integral da estratégia para muitos países em desenvolvimento conseguirem lidar com a desigualdade... O que se sabe é que é necessário uma aproximação proativa dos estados e dos legisladores e que deixar essas grandes ambições pro mercado não leva a esta transformação estrutural necessária.”&lt;br /&gt;
&lt;br /&gt;
Para a elaboração de novas políticas públicas é necessário levar em conta os padrões passados já conhecidos de distribuição durante o crescimento econômico, e não apenas a quantidade de crescimento. É necessário mudarmos o foco de ser 'o país que cresceu mais rápido a economia' para 'o país que mais reduziu a desigualdade'. Além disso, a redução da desigualdade deve ser feita de forma paralela a busca por um desenvolvimento mais sustentável ecologicamente.&lt;br /&gt;
&lt;br /&gt;
Porém os dados não são completamente animadores. Com o que tem sido feito até hoje na maior parte do mundo,  está claro que o esforço feito tem sido lamentavelmente inadequado para combater a pobreza e o desenvolvimento sustentável, uma vez que a desigualdade permaneceu basicamente inalterada nos últimos 15 anos até 2015, e nos 15 anos anteriores houve um agravamento desta desigualdade.&lt;br /&gt;
&lt;br /&gt;
Por fim, uma discussão adicional é feita sobre o caso da Etiópia que alcançou resultados expressivos nos últimos anos, e muito se discute sobre as razões do seu sucesso econômico. Segundo o relatório esta transformação da economia etíope é resultado de um planejamento de longo prazo e uma forte vontade política do estado, tudo foi realizado sob a orientação de um &amp;quot;estado desenvolvimentista&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= O caminho a seguir = &lt;br /&gt;
&lt;br /&gt;
Vamos para o quarto e último capítulo, nesta seção, se discute algumas políticas públicas para lidar com a mudança climática e a desigualdade, sendo que meu foco de interesse está concentrado principalmente nesta última questão. De maneira geral, as propostas se concentram em sistema de impostos (sobre a riqueza e a renda) e renda básica universal, então vou começar passando rapidamente por questões mais gerais.&lt;br /&gt;
&lt;br /&gt;
A primeira coisa que relatório nos lembra, é que por um lado, produtores se preocupam com o seu sucesso imediato e o lucro, frequentemente ignorando os custos sociais e ambientais de suas decisões, e por outro lado, os consumidores são frequentemente limitados a consumir bens e serviços que são oferecidos a preços acessíveis, dessa forma, o atual sistema de produção e consumo é organizado de forma que não leva em conta outros fatores que não são diretamente econômicos, como danos ambientais e sociais.&lt;br /&gt;
&lt;br /&gt;
As campanhas de conscientização são lentas, e desta forma, inadequadas para a escala e urgência dos problemas que precisamos enfrentar, por isso a necessidade da elaboração de políticas públicas eficientes. Na questão ambiental, uma sugestão é o imposto sobre emissão de carbono. Ela se concentra na ideia de que o comportamento humano responde a incentivos financeiros e impostos são incentivos (ou desincentivos) financeiros efetivos, então propõe-se o que é chamado de taxa de carbono. Porém essa é uma medida que ainda encontra bastante resistência, caindo em um dilema análogo ao conhecido dilema do prisioneiro da teoria de jogos, há pesquisas que investigam a questão sob essa perspectiva.&lt;br /&gt;
&lt;br /&gt;
De forma breve, também discute-se a importância de acordos globais que tratem sobre o tema, não apenas a Agenda 2030, mas também o Acordo de Paris e a Agenda de Ação Adis Abeba. Um esforço global citado como importante para construir uma infraestrutura resiliente e diminuir a desigualdade, assim como também combater a crise climática é a Nova Rota da Seda.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Imposto progressivo&amp;lt;/b&amp;gt;: Entrando então na discussão mais específica sobre as políticas públicas que dizem respeito diretamente a desigualdade econômica, nos é lembrado que durante a maior parte do século XX os países adotaram imposto progressivo (isto é, quanto maior a renda, maior o imposto) para garantir uma redistribuição mais equitativa ao mesmo tempo que oferece um bom serviço público.&lt;br /&gt;
&lt;br /&gt;
Porém, nos últimas 4 décadas a situação começou a mudar. Seguindo o argumento de que os impostos baixos encorajam o investimento privado e gera um efeito multiplicador maior que o investimento público, e fazendo uso da concentração de poder adquirida através da concentração de riqueza, as pessoas de alta renda conseguiram exercer uma influência política forçando a queda da progressividade fiscal.&lt;br /&gt;
&lt;br /&gt;
Eu vou abrir espaço para lembrar que a revolução russa que deu origem à União das Repúblicas Soviéticas (URSS) ocorreu no começo do século XX, e o fim da URSS aconteceu 3 décadas atrás. Sei que existem alguns pensadores que sugerem um impacto da URSS na política de países capitalistas. Buscando combater a propagação das ideias socialistas e comunistas, os países se viram obrigados a adotarem políticas favoráveis aos trabalhadores como forma de amenizar as tensões sociais e garantir a sobrevivência do capitalismo. Com o fim da URSS essa situação pode ter se modificado. Me parece que podemos estar observando aqui este mesmo efeito. Agora a correlação não significa causa, precisaria um estudo mais aprofundado para confirmar ou descartar esta hipótese.&lt;br /&gt;
&lt;br /&gt;
Economias altamente informais, com uma fraca administração de impostos aliado com uma alta concentração de poder político dos ricos tem muitas vezes prevenido a adoção com sucesso de impostos progressivos. O que muitos países desenvolvidos têm adotado é aumentar os impostos indiretos em valor agregado (Value added tax, VAT), um imposto sobre consumo. &lt;br /&gt;
&lt;br /&gt;
Com a queda na arrecadação de impostos, os governos têm se deparado com o desafio de procurar novas fontes de recursos para financiar o serviço público e reduzir a desigualdade, especialmente a desigualdade de consumo e acesso de oportunidades. Segundo o relatório, políticas de proteção social e de transferência podem reduzir a desigualdade no consumo mesmo quando a desigualdade é alta. Segundo o relatório, nos EUA, mesmo com uma queda no imposto progressivo, a desigualdade no consumo não se aprofundou tanto por causa dos programas sociais de transferência. Em cada domicílio nos EUA 30% do consumo costuma ser consumo sem dinheiro, principalmente pagamentos por cuidados de saúde.&lt;br /&gt;
&lt;br /&gt;
Eu particularmente me mantenho cético sobre estas afirmações. Eu gostaria de um maior aprofundamento. Gostaria de entender melhor como se daria essa significativa redução na desigualdade de consumo sem reduzir desigualdade de renda ou riqueza. Lendo superficialmente, não me parece ser uma redução nem que se sustente, e nem o suficiente para alcançar os objetivos propostos pela própria agenda 2030. Pois, por exemplo, mantém intocada a questão da concentração de poder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Imposto sobre riqueza&amp;lt;/b&amp;gt;: Segundo o relatório o imposto sobre propriedade não mitiga diretamente a desigualdade nem de renda e nem de riqueza, mas é a principal fonte de renda para financiar a educação e questões ligadas à segurança pública nos EUA, algo similar ocorre em outros países em desenvolvimento. Em contrapartida, é algo pouco aproveitado em países em desenvolvimento.&lt;br /&gt;
&lt;br /&gt;
Já o imposto sobre riqueza que incide sobre todos ativos reais e financeiros está crescendo em popularidade. Porém, apesar de não deixar claro, acredito que é uma popularidade entre a população. Pois segundo o próprio relatório, menos países adotavam essa forma de tributação em 2017 (apenas 7 países dos membros da OECD) do que nos anos anteriores. Os críticos apontam que tem pouco ganho quando comparado com os custos administrativos, uma vez que é um imposto que poderia facilmente ser evitado ou reduzido através de deduções legais, escondendo os ativos ou os movendo para outros países, e isso levou a eliminação do imposto em alguns países.&lt;br /&gt;
&lt;br /&gt;
A minha perspectiva pessoal é que esta crítica não discute apropriadamente os pontos relevantes, que é o impacto no combate a desigualdade. Me parece mais fruto da pressão política das classes mais altas para diminuir a tributação sobre suas riquezas. Estes problemas indicados, ainda que eu reconheça que existam, me parece que são questões que podem e devem ser solucionadas através do desenvolvimento de políticas públicas mais eficientes, uso de tecnologias modernas e robustas e cooperação internacional. Não concordo com a ideia de que a fatia mais rica da população procurar por meios legais e ilegais de fugir dos impostos seja um boa justificativa para abolir esta forma de imposto.&lt;br /&gt;
&lt;br /&gt;
Por fim, ainda há uma discussão sobre o imposto sobre terra. Este é o imposto considerado mais eficiente de todos, que encontra boa aceitação tanto entre a esquerda quanto entre a direita, apesar disso, continua sendo uma novidade para a maior parte dos países. Seu conceito é bastante simples: uma quantidade significativa da riqueza é capturada no valor das terras em centros urbanos, o valor desta terra aumenta principalmente devido aos investimentos públicos na região e a própria localização do terreno, dessa forma ações individuais do dono da terra não aumentam o valor da mesma. O imposto visa taxar este aumento no valor da terra que é devido ao investimento público, e desta forma 'imerecido' pelo dono da terra.&lt;br /&gt;
&lt;br /&gt;
Podemos pensar então que as políticas públicas pensadas pelo relatório para o combate da desigualdade tem dois momentos: um primeiro de captação de riqueza e um segundo de redistribuição dessa riqueza. Para a captura, o mecanismo proposto é basicamente imposto, ainda que diferentes tipos de impostos. Neste capítulo foi discutido de forma resumida:&lt;br /&gt;
&lt;br /&gt;
* Imposto sobre renda: o imposto progressivo sobre renda seria uma das propostas mais interessantes para um desenvolvimento sustentável, algo que tem sido enfraquecido na maioria dos países.&lt;br /&gt;
* Imposto sobre consumo: a alternativa que os países em desenvolvimento têm adotado, principalmente o VAT (value added tax)&lt;br /&gt;
* Imposto sobre riqueza: Podemos abrir a discussão em três novos tópicos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Imposto sobre propriedade: contribui diretamente mais para financiar o estado do que combate a desigualdade de riqueza ou renda, mas desta forma permite que o estado tenha recursos para implementar políticas públicas.&lt;br /&gt;
* Imposto sobre a riqueza total: aplicado em poucos países, com a justificativa da dificuldade de implementação.&lt;br /&gt;
* Imposto sobre terra: considerado o melhor imposto de todos, porém ainda uma novidade para a maior parte dos países.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eu quero adicionar uma discussão sobre o imposto sobre consumo, pois apesar do relatório apontar como uma medida para diminuir a desigualdade no consumo, tenho dificuldade de enxergar essa forma de tributação como efetiva no combate a desigualdade. A agência Senado em 2021, por exemplo, publicou um texto discutindo porque a fórmula de cobrança de impostos do Brasil piora a desigualdade social.&lt;br /&gt;
&lt;br /&gt;
Vale uma citação:&lt;br /&gt;
  “ Os tributos servem para custear tanto a máquina estatal quanto os serviços públicos, como saúde, educação e segurança. De forma geral, eles incidem sobre três bases: o consumo, a renda e o patrimônio dos cidadãos e das empresas. Em todos os três pilares, existem distorções que beneficiam os ricos e penalizam os pobres.”&lt;br /&gt;
&lt;br /&gt;
Discutindo especificamente o imposto sobre o consumo, é dito:&lt;br /&gt;
“A tributação do consumo é aquela embutida no preço de produtos e serviços. Como os tributos incidentes sobre determinada mercadoria são iguais para qualquer consumidor, quem ganha pouco, na comparação com quem ganha muito, acaba perdendo um pedaço maior da sua renda com esses tributos na hora da compra.”&lt;br /&gt;
&lt;br /&gt;
Segundo o texto, a solução seria ter tributo variável conforme poder aquisitivo do comprador, o que é reconhecidamente como inviável. Outra opção que penso seria tributar apenas o consumo daquilo que é consumido  preferencialmente pelos ricos, e talvez a proposta da ONU seja algo neste sentido, mas me parece ter uma complexidade maior de implementação e uma ineficiência menor do que imposto sobre a renda. A título de curiosidade, o imposto sobre consumo responde a 43% da arrecadação nacional no Brasil em 2021, a média nos países da OCDE é 33%, sendo 23.5% no Canadá e 17.5% nos EUA.&lt;br /&gt;
&lt;br /&gt;
Continuando essa discussão, em 1966 o país parou de tributar sócios e acionistas que recebem lucros e dividendos de empresas. E apesar de ter uma espécie de tributação progressiva, a alíquota máxima é 27.5% e era atingida por alguém que recebesse apenas R$4.665. A tributação sobre grandes fortunas é prevista na constituição mas não havia saído do papel até 2021.&lt;br /&gt;
&lt;br /&gt;
Se fosse tributado patrimônios superiores a R$20 milhões, teria 30 mil contribuintes e a arrecadação seria o suficiente para pagar o bolsa família por mais de um ano. Há ainda mais distorções mas acredito que é o suficiente, quem tiver mais interesse eu recomendo ler o texto completo.&lt;br /&gt;
&lt;br /&gt;
Por fim, o último tópico discute a renda básica universal, que diz respeito sobre o segundo momento: a redistribuição da riqueza arrecadada anteriormente, principalmente através dos impostos. A renda básica universal é uma ideia que existe no mínimo desde o fim do século 18 mas obteve um renascimento no século 21. Ele é definido como um programa que pague a todo indivíduo (independente de qualquer critério) uma quantidade de dinheiro suficiente para suprir as necessidades básicas de todo cidadão.&lt;br /&gt;
&lt;br /&gt;
Por um lado, os proponentes defendem que essa política permite que os indivíduos se neguem a aceitar trabalhos indignos, aumentando o poder de negociação dos trabalhadores dentre outros benefícios. Já os opositores defendem que ela fornece um incentivo negativo, como por exemplo, desencorajar as pessoas a buscarem trabalho.&lt;br /&gt;
&lt;br /&gt;
Pessoalmente eu vejo essa crítica como não muito aprofundada, algo que vemos no Brasil pelos críticos do Bolsa Família, mesmo que isso não tenha nenhuma evidência empírica. Porém é necessário pontuar que a efetividade de um programa dessa magnitude depende de como ele dialoga com um sistema de bem-estar da população mais amplo. Como complementar a outras políticas públicas pode ter um efeito positivo diminuindo a desigualdade, porém como um substituto pode ter um efeito inverso de acentuar a desigualdade. &lt;br /&gt;
&lt;br /&gt;
Para concluir, pode-se destacar que o maior desafio para financiar a RBU (renda básica universal)diz respeito aos recursos necessários, porém a sua eficiência tem sido posta a teste em um teste piloto entre 2017 e 2018 na Finlândia. Os resultados preliminares dizem que não houve efeito nos níveis de desemprego e aumentou a condição física e mental das pessoas, assim como sua confiança nas instituições.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Fonte''':&lt;br /&gt;
* [https://www.un.org/development/desa/dpad/wp-content/uploads/sites/45/publication/SDO2019_Book_Web.pdf] Sustainable Development Outlook 2019: Gathering storms and silver linings&lt;br /&gt;
* [https://www12.senado.leg.br/noticias/infomaterias/2021/05/por-que-a-formula-de-cobranca-de-impostos-do-brasil-piora-a-desigualdade-social] Por que a fórmula de cobrança de impostos do Brasil piora a desigualdade social&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Global_Wealth_Report_2023&amp;diff=9719</id>
		<title>Global Wealth Report 2023</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Global_Wealth_Report_2023&amp;diff=9719"/>
		<updated>2023-10-25T05:41:03Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A UBS e a Credit Suiss elaboraram em conjunto um relatório sobre riqueza global no ano de 2022. Neste relatório, afirmam que esta é a fonte mais atualizada sobre a distribuição de riqueza no mundo, elaborada pelo maior gestor global de riqueza. É um relatório no qual o PDF possui pouco mais de 75 páginas e eu vou tentar até como um exercício de estudo resumi-lo.&lt;br /&gt;
&lt;br /&gt;
=Riqueza Global=&lt;br /&gt;
&lt;br /&gt;
Mantendo a estrutura do relatório, o primeiro capítulo trata do nível de riqueza global.&lt;br /&gt;
&lt;br /&gt;
Em resumo houve uma queda tanto na riqueza global total quanto per capita, essa queda em grande parte pode ser atribuída pela relação entre o dólar e outras moedas. Os países que apresentaram um aumento de riqueza por domicílio têm como um dos motivos deste resultado o suporte financeiro fornecido pelo governo central. Em geral, países ricos que auxiliaram financeiramente a população se saíram melhor que países pobres sem condições de adotarem as mesmas medidas.&lt;br /&gt;
&lt;br /&gt;
A inflação por sua vez tornou mais fácil que fosse atingido o limiar do milhão em dólares (ou seja, a formação de novos milionários) e também encorajou a conversão para ativos não financeiros. É interessante notar que o Brasil apresentou índices relativamente positivos sobre o último ano.&lt;br /&gt;
&lt;br /&gt;
Fazendo alguns recortes de gênero, o relatório traz alguns dados sobre a população dos EUA que me chamam a atenção. Eu destaco dois deles: a mediana da riqueza da população negra é pouco mais de 10% em comparação com os brancos não-hispânicos, os hispânicos são 20% em relação à mesma população. Podemos assumir que o topo da pirâmide da distribuição de riquezas é constituído principalmente de homens brancos, uma vez que as mulheres também uma riqueza que é uma fração dos homens.  Para recorte de gênero os dados são mais escassos, mas em geral as mulheres recebem apenas uma fração do que os homens, entre 65% e 80% nos países altos índices de riqueza, mas podendo chegar a 25% em algumas regiões.&lt;br /&gt;
&lt;br /&gt;
Quando olhamos o recorte de gerações, é interessante notar que existe uma transferência de riqueza entre as gerações, onde as gerações mais velhas perdem riqueza ao passo que as mais novas ganham, um dos possíveis motivos é a transferência dentro da própria família.&lt;br /&gt;
&lt;br /&gt;
A maior parte da crise financeira parece que atingiu em menor intensidade as minorias políticas, isso se deve ao fato que, por exemplo, quando olhamos a população hispânica, a maior parte da sua riqueza está na forma de riqueza não-financeira, isto é, seu próprio domicílio. Brancos que são o recorte da população que possuem tanto a maior riqueza média quanto mediana são o recorte que também possuem a maior parte da sua riqueza na forma de riqueza financeira.&lt;br /&gt;
&lt;br /&gt;
Isso volta a se repetir ao longo do relatório, mas não só entre indivíduos, é visto também  entre países, enquanto a base da pirâmide tem sua riqueza constituída principalmente de ativos não-financeiros (em grande parte a residência), o topo da pirâmide possui uma riqueza predominantemente financeira.&lt;br /&gt;
&lt;br /&gt;
Antes de continuar talvez seja interessante definir alguns termos:&lt;br /&gt;
* Riqueza: é definido como a soma dos ativos financeiros e não-financeiros, descontado as dívidas.&lt;br /&gt;
* Riqueza financeira e não financeira: o primeiro consiste em ativos como ações e títulos, são ativos negociados em bolsas que podem ser comprados e vendidos em qualquer dia útil que a bolsa esteja aberta. O segundo consiste em ativos como casa ou veículo, são ativos mais difíceis de se vender pois necessita que o vendedor encontre um comprador em potencial e negocie um preço de venda.&lt;br /&gt;
&lt;br /&gt;
O relatório também nomeia duas fatias da população: aqueles que têm um patrimônio líquido alto (High-net-worth ou HNW) e aqueles que têm um patrimônio líquido muito alto (Ultra-High-net-worth ou UHNW). Enquanto os primeiros são aqueles que têm um patrimônio entre 1 e 50 milhões de dólares, o segundo são os que possuem acima de 50 milhões.&lt;br /&gt;
&lt;br /&gt;
Esse recorte mostra-se útil, pois o topo da pirâmide da distribuição de riqueza tem um comportamento particularmente diferente do resto da mesma. Como foi dito anteriormente, uma dessas características é a distribuição dos seus ativos, sendo predominantemente financeiro, enquanto o resto da população, principalmente em sua base, tem uma maior predominância de ativos não financeiros. Como consequência disso, crises financeiras atingem de forma diferente os dois grupos. Além disso, um maior patrimônio garante maior segurança e estabilidade para lidar com as crises, o que também resulta em diferentes estratégias e consequências.&lt;br /&gt;
&lt;br /&gt;
Antes de continuar, gostaria de chamar a atenção para algumas observações pessoais. O relatório apesar de se basear em dados, também utiliza estimativas, nem tudo são dados, mas a distribuição das riquezas é feita também através de estimativas. A própria lista de bilionários da Forbes é utilizada para melhorar a estimativa dos milionários e produzir aquilo que o relatório considera como valores plausíveis para o padrão global no topo da pirâmide.&lt;br /&gt;
&lt;br /&gt;
Além deste relatório que inclui discussão, existe o databook, com os dados brutos e uma melhor descrição das estimativas utilizadas. Isto pode interessar aqueles que queiram conhecer o relatório com mais detalhes. Mas arriscando deixar claro minha ignorância, eu não consigo deixar de lado um certo incômodo com algumas das métricas utilizadas. A própria diminuição da riqueza global é em grande parte consequência direta da relação das taxas de câmbio entre as moedas e não da produção ou destruição de bens ou serviços que podem ser usufruídos pela população já me levanta algumas questões sobre qual é a informação real que estamos obtendo através deste índice. A ideia de que eu sendo de dono de uma mesma casa por dois anos seguintes, minha riqueza pode aumentar em diminuir de acordo com a relação entre o real e o dólar, me parece uma camada de abstração na relação real entre as coisas e as pessoas que merecem um estudo mais aprofundado.&lt;br /&gt;
&lt;br /&gt;
Da mesma forma, a definição de limites fixos definidos em dólar mundialmente me levanta questionamentos. O primeiro recorte que aparece é aqueles com riqueza abaixo de $10.000, e um dos últimos é o discutido anteriormente com riqueza superior a $1.000.000. Mas apesar de caírem no mesmo grupo, duas pessoas com o mesmo $50.000 no Brasil e nos EUA, me parece que não estão na mesma situação financeira. Como qualquer relatório e pesquisa, limitações são necessárias, mas chamo atenção para estas pois de certa forma, elas vão se retomar quando discutirmos a desigualdade no mundo.&lt;br /&gt;
&lt;br /&gt;
A seção seguinte discute exatamente a distribuição de riqueza global.&lt;br /&gt;
&lt;br /&gt;
= Distribuição de riqueza global = &lt;br /&gt;
&lt;br /&gt;
Segundo os critérios adotados, o relatório conclui que a desigualdade diminuiu no último ano. Isto se deve principalmente ao crescimento de economias emergentes, com destaque para China e Índia. O motivo disto acontecer é exatamente pela posição em que ocupam na economia mundial, é uma desigualdade que diminui principalmente entre países.&lt;br /&gt;
&lt;br /&gt;
Índia e China possuem uma população combinada de quase 3 bilhões, isso é quase metade da população do mundo, estes são países que historicamente eram pobres, a riqueza média e a mediana da população entra-se abaixo da média e mediana da população mundial. Então a partir do momento que a riqueza total destas populações começa a crescer, mesmo que a desigualdade interna não diminua, os valores absolutos da riqueza média e mediana destas nações vai crescer, se aproximando dos níveis mundiais,  consequentemente contribuindo para uma diminuição da desigualdade a nível mundial. A partir do momento que estas nações ultrapassem a média mundial, podemos encontrar um cenário diferente. E aqui podemos observar que tudo isso pode acontecer sem que haja alteração na desigualdade interna destes países.&lt;br /&gt;
&lt;br /&gt;
A desigualdade é reduzida a duas questões:&lt;br /&gt;
* Quão longe o topo da pirâmide está da média?&lt;br /&gt;
* Quão longe a base da pirâmide está da média?&lt;br /&gt;
&lt;br /&gt;
Para responder estas questões, normalmente são empregados métricas como o coeficiente de Gini e a parcela da riqueza compartilhada pela parcela 1% mais rica da população (outros valores são tipicamente usados também, como 10%).&lt;br /&gt;
&lt;br /&gt;
Podemos começar discutindo alguns números: a parte de baixo da pirâmide, onde os 52.5% mais pobres da população mundial possuem 1.2% apenas de toda riqueza no mundo. Essa base da pirâmide está espalhada em todo o mundo, mas com características diferentes em cada região. Em países pobres até 80% da população está nessa situação em caráter mais permanente, enquanto em países ricos apenas 30% encontra-se aqui, e muitas vezes em caráter transitório apenas.&lt;br /&gt;
&lt;br /&gt;
Já sobre o outro extremo, os 1.1% mais ricos possuem 45.8% de toda riqueza mundial. Os 10% mais ricos possuem 81% da riqueza de todo o mundo. Destaca-se também que eles estão particularmente concentrados em algumas regiões e países. Também compartilham um mesmo estilo de vida e até mesmo de oportunidades, devido a sua boa condição financeira. Conforme discutido anteriormente, é uma parcela da população que tem sua riqueza concentrada principalmente em ativos financeiros.&lt;br /&gt;
&lt;br /&gt;
É notável que os países também encontram-se em diferentes posições perante o sistema econômico internacional. Enquanto alguns países ocupam uma posição no topo concentrando a maior parte da população com as maiores riquezas no mundo, outros constituem a base concentrando principalmente a maior parte da população com um baixo nível de riqueza, formando assim uma periferia em torno dos países centrais.&lt;br /&gt;
&lt;br /&gt;
Quanto à população mundial, é necessário ter $9.000 para estar entre os 50% mais ricos, 16x isso para estar entre os 10% mais ricos e 125x isso para estar entre os 1% mais ricos. Para termos de comparação, se convertermos cada dólar em uma dia de folga, $9.000 corresponde a aproximadamente 1 ano de férias, então quem está nos 10% mais ricos tem aproximadamente 16 anos de férias, e o 1% mais rico tem um pouco menos de 115 anos.&lt;br /&gt;
&lt;br /&gt;
Sobre a desigualdade interna nos países, em geral temos que o 1% mais rico possui entre 30% e 35% do total, assim como os 10% mais ricos possuem entre 60 e 65%. Enquanto um Gini de 70 é relativamente baixo para a média mundial, um Gini acima de 80 é relativamente alto. A desigualdade aumentou em países com políticas liberalizantes e diminuiu na maior parte do mundo devido principalmente ao aumento da importância de ativos não financeiros devido à crise.&lt;br /&gt;
&lt;br /&gt;
Matematicamente temos que mediana é um indicador melhor para entender quanto uma pessoa típica em um país tem.É um indicador melhor que a média, por isso a discussão constantemente volta-se para mediana da riqueza, e não para média. Porém existe uma relação entre a média e a mediana: uma vez que a média costuma ser maior que a mediana devido a distorção causada pela parcela mais rica da sociedade, conforme a mediana se aproxima da média, temos uma diminuição da desigualdade. Por isso a queda da desigualdade é alinhada com os anos em que a mediana está crescendo mais rápido do que a riqueza média.&lt;br /&gt;
&lt;br /&gt;
Pessoas com riquezas próximas ao valor da mediana costumam possuir uma boa proporção de ativos não financeiros, e vão melhor quando estes ativos valorizam mais que ativos financeiros. São estes cidadãos que costumam morar em economias emergentes, com destaque novamente a China, onde conforme discutido previamente a riqueza tem crescido mais rápido que a média global causando a diminuição da desigualdade. Em um curto espaço de tempo, a valorização de ativos não financeiros podem fazer a mediana crescer mais rápido que a média.&lt;br /&gt;
&lt;br /&gt;
Ainda sim, eu chamo a atenção que apesar da afirmação do relatório que a desigualdade está em queda, a variação tanto do Gini quanto da riqueza que o 1% mais rico possui entre 2000 e 2022 é em geral muito baixa. A maior variação registrada do Gini foi de 0.8% na China, e da riqueza compartilhada pelo 1% mais rico, foi de 1.9% também na China, nos dois casos, indicando um incremento na desigualdade. A nível mundial, o Gini e a riqueza compartilhada tanto pelo 5% quanto pelo 10% mais rico parecem ter uma tendência de queda nas últimas duas décadas. Mas não apenas é uma tendência leve onde dificilmente superou os 5% de queda nos últimos 22 anos, mas como o 1% mais rico apesar de estar abaixo dos anos 2000, parece estar oscilando, se está mais baixo que 20 anos atrás, está mais alto que a 10 anos atrás.&lt;br /&gt;
&lt;br /&gt;
Em geral, o relatório aponta que houve um momento em direção a desigualdade em 2020 e em direção a igualdade em 2022, sendo 2021 um ano de transição, algo que novamente, na minha leitura, indica uma dinâmica de oscilação. Algo que chama a atenção no que se refere a desigualdade, é que mudanças na desigualdade, assim como na riqueza média e mediana, estão relacionadas a mudanças  no preço dos ativos e em particular dos ativos financeiros, uma vez que conforme discutido, a parcela mais rica da sociedade prioriza seus investimentos nessa forma de ativo, diferentemente da base da pirâmide. Para a base da pirâmide, os ativos não financeiros são mais que o dobro da própria riqueza, que é equilibrada pela dívida.&lt;br /&gt;
&lt;br /&gt;
O relatório também traz o dado de que o número de milionários sofreu uma queda no último ano, mas tem aumentado, e consequentemente, aumentado a parcela da riqueza total que está em posse dos milionários. Ele lista três critérios que afetam diretamente o número de pessoas milionárias em um país:&lt;br /&gt;
* O tamanho da população adulta;&lt;br /&gt;
* A riqueza média;&lt;br /&gt;
* A desigualdade&lt;br /&gt;
&lt;br /&gt;
Os EUA pontuam alto nos três critérios e é o país que concentra a maior parte dos milionários de forma indiscutível. Além disso, a inflação tem contribuído para o aumento da quantidade de milionários de maneira geral. &lt;br /&gt;
Um último comentário que faço antes de avançar, é que se a queda na desigualdade reportada pelo relatório, segundo o mesmo, se dá em parte devido a crise financeira que aumentou o valor dos ativos não financeiros, a crise financeira poderia ser positiva a curto prazo para a base de pirâmide? Mas e a longo prazo, quais as consequências?&lt;br /&gt;
&lt;br /&gt;
Concluindo nosso relatório sobre a riqueza global, há uma discussão sobre o panorama da riqueza, onde o relatório trata de tentar realizar uma previsão sobre o futuro da riqueza global.&lt;br /&gt;
&lt;br /&gt;
= Futuro =&lt;br /&gt;
&lt;br /&gt;
É esperado que nos próximos 5 anos exista um crescimento da riqueza global, com destaque para os países com os menores níveis de riqueza em primeiro plano, e com as economias emergentes em segundo plano. O relatório também aqui define explicitamente países emergentes como países com uma riqueza intermediária.&lt;br /&gt;
&lt;br /&gt;
O número de milionários também deve aumentar junto do crescimento da riqueza global, porém a projeção da inflação é algo bastante incerto. Entre as predições de alguns países selecionados, o que chama a atenção é a China. Pois em comparação com a história do crescimento da riqueza dos EUA, a China entre os anos 2000 e 2022 cresceu o equivalente a 80 anos da história dos EUA (entre 1925 e 2005). A projeção para os próximos 5 anos é que cresça o equivalente a mais 14 anos, chegando em 2027 com o equivalente a riqueza total dos EUA em 2019, apenas 8 anos atrás. Ainda que o seja esperado uma desaceleração no ritmo de crescimento da riqueza da China, não me parece que seria uma surpresa muito grande se nos 5 anos seguintes viesse a ultrapassá-lo.&lt;br /&gt;
&lt;br /&gt;
Outro dado que chama atenção é a relação entre riquezas financeiras e não-financeiras. Historicamente elas parecem possuírem níveis similares. Desde 2008 a riqueza financeira tem crescido mais rápido que a não financeira, mas em 2022 as riquezas se encontram em níveis semelhantes a nível global após uma queda nos ativos financeiros.&lt;br /&gt;
&lt;br /&gt;
A seção termina com os dados que indicam uma diminuição da população que se encontra no que é caracterizado como classe baixa (abaixo de $10.000), enquanto estas migram para os outros estratos sociais. Em parte pode-se discutir sobre a queda da desigualdade conforme discutimos anteriormente, lembrando do crescimento da riqueza total de países emergentes como China e Índia, mas o crescimento de milionários reflete não apenas que altas inflações tornam mai fácil passar o limiar de 1 milhão de dólares, mas também entendo que torna mais fácil ultrapassar o limiar dos outros grupos socioeconômicos também. Sem maiores dados, eu não posso afirmar que isso implique necessariamente em maior poder de compra ou melhora na qualidade de vida, ou seja, que este dado se reflete em efeitos positivos no bem-estar da população.&lt;br /&gt;
&lt;br /&gt;
E chegamos então no último capítulo onde temos a discussão de experiências individuais, isto é, alguns países foram selecionados para que fossem discutidos individualmente. Para isso foi escolhido países que têm dados oficiais e dado preferência para países que cumpriam os requisitos determinados pelo relatório. Porém, alguns países que não satisfazem também foram incluídos por necessidade, como por exemplo o próprio Brasil. Não dá para avaliar experiências latino-americanas sem levar em conta a maior economia na região.&lt;br /&gt;
&lt;br /&gt;
De maneira geral, a pandemia causou uma devastação na economia em 2020, que se recuperou fortemente em 2021 e gerou inflação em 2022. Isso decorre porque o setor público socorreu o setor privado para garantir um alívio durante a pandemia em  2020 e 2021 através de gastos governamentais, e em 2022 a relação alterada entre o setor público e privado começou a ser revertida. Devido a inflação os países aumentaram as taxas de juros, que tem por consequência diminuir o preço dos ativos financeiros, o que também conforme discutido anteriormente levou a uma diminuição de riquezas em muitos mercados, uma vez que o os países no topo da pirâmide tem grande parte da sua riqueza na forma riqueza financeira. &lt;br /&gt;
&lt;br /&gt;
existe um último capítulo que traz uma avaliação individual dos diferentes paíse. Eu vou deixar este capítulo para o leitor buscar se tiver interesse, acho que neste momento, as informações compiladas ali são de menor interesse quando comparado a questão da desigualdade de maneira global. Apenas vale comentar que a situação do Brasil nos 2022 é de aumento do coeficiente de Gini assim como da riqueza compartilhada pelo 1% mais rico da sociedade.&lt;br /&gt;
&lt;br /&gt;
Mas antes de concluir eu queria trazer um questionamento sobre uma leitura constante no relatório de que a desigualdade no mundo tem uma tendência de queda desde o começo do milênio. Eu acho que essa é uma interpretação que traz um falso otimismo. Já foi discutido anteriormente sobre como isso é um reflexo da ascensão econômica de países emergentes, em especial China e Índia. Mas eu queria reforçar isso relembrando que esses números são mais notáveis quando comparamos a população do mundo inteiro como um grupo só, isto é, quando fazemos uma comparação entre as populações de diferentes países como se fosse uma única população. Temos que, por exemplo, um indivíduo considerado classe baixa na China está mais próximo da riqueza média mundial agora que no passado, mas não implica que necessariamente esteja mais próximo da riqueza média da própria China. Então eu queria também trazer os dados de uma forma diferente. Quando analisamos os diferentes países, o artigo destaca 14 países, há apenas 2 deles que apresentam uma queda na desigualdade nos dois índices adotados pelo relatório (Gini e a fatia de riqueza do 1% mais rico).&lt;br /&gt;
&lt;br /&gt;
Os outros países apresentam uma queda na desigualdade no máximo em um dos dois índices. Além disso, 9 países apresentam um aumento no Gini, o mesmo número apresenta um aumento na riqueza do 1%. Quando olhamos para a situação mundial por região,  a situação é similar: das 7 regiões separadas no relatório, 3 apresentam queda nos dois índices, é o mesmo número 3 apresentam um incremento nos dois índices, uma última região apresenta queda no Gini e aumento na fatia de riqueza do 1%.  Por fim, se calcularmos a média do índice Gini entre as regiões ponderada pela população em cada região, temos um incremento de 0.19%, da mesma forma a fatia da riqueza compartilhada pelo 1% da população mais rica também teve um incremento de 0.36%. E mesmo quando olhamos as variações apontadas pelo próprio relatório, podemos notar que são variações bastante pequenas.&lt;br /&gt;
&lt;br /&gt;
Desta forma, me parece que o cenário que os dados apontam não é convincente para interpretar como uma tendência significativa de queda na desigualdade. Eu gostaria de ver dados que explorassem melhor esta ideia antes de dar suporte a esta ideia.&lt;br /&gt;
&lt;br /&gt;
''' Fonte: '''&lt;br /&gt;
* [https://www.ubs.com/global/en/family-office-uhnw/reports/global-wealth-report-2023.html](Global Wealth Report 2023)&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Sustainable_Development_Outlook_2019:_Gathering_storms_and_silver_linings&amp;diff=9718</id>
		<title>Sustainable Development Outlook 2019: Gathering storms and silver linings</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Sustainable_Development_Outlook_2019:_Gathering_storms_and_silver_linings&amp;diff=9718"/>
		<updated>2023-10-25T05:22:01Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: Criou página com ''''Fonte''': * [https://www.un.org/development/desa/dpad/wp-content/uploads/sites/45/publication/SDO2019_Book_Web.pdf](Sustainable Development Outlook 2019: Gathering storms and silver linings)'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Fonte''':&lt;br /&gt;
* [https://www.un.org/development/desa/dpad/wp-content/uploads/sites/45/publication/SDO2019_Book_Web.pdf](Sustainable Development Outlook 2019: Gathering storms and silver linings)&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Global_Wealth_Report_2023&amp;diff=9717</id>
		<title>Global Wealth Report 2023</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Global_Wealth_Report_2023&amp;diff=9717"/>
		<updated>2023-10-25T05:20:48Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A UBS e a Credit Suiss elaboraram em conjunto um relatório sobre riqueza global no ano de 2022. Neste relatório, afirmam que esta é a fonte mais atualizada sobre a distribuição de riqueza no mundo, elaborada pelo maior gestor global de riqueza. É um relatório no qual o PDF possui pouco mais de 75 páginas e eu vou tentar até como um exercício de estudo resumi-lo.&lt;br /&gt;
&lt;br /&gt;
Mantendo a estrutura do relatório, o primeiro capítulo trata do nível de riqueza global.&lt;br /&gt;
&lt;br /&gt;
Em resumo houve uma queda tanto na riqueza global total quanto per capita, essa queda em grande parte pode ser atribuída pela relação entre o dólar e outras moedas. Os países que apresentaram um aumento de riqueza por domicílio têm como um dos motivos deste resultado o suporte financeiro fornecido pelo governo central. Em geral, países ricos que auxiliaram financeiramente a população se saíram melhor que países pobres sem condições de adotarem as mesmas medidas.&lt;br /&gt;
&lt;br /&gt;
A inflação por sua vez tornou mais fácil que fosse atingido o limiar do milhão em dólares (ou seja, a formação de novos milionários) e também encorajou a conversão para ativos não financeiros. É interessante notar que o Brasil apresentou índices relativamente positivos sobre o último ano.&lt;br /&gt;
&lt;br /&gt;
Fazendo alguns recortes de gênero, o relatório traz alguns dados sobre a população dos EUA que me chamam a atenção. Eu destaco dois deles: a mediana da riqueza da população negra é pouco mais de 10% em comparação com os brancos não-hispânicos, os hispânicos são 20% em relação à mesma população. Podemos assumir que o topo da pirâmide da distribuição de riquezas é constituído principalmente de homens brancos, uma vez que as mulheres também uma riqueza que é uma fração dos homens.  Para recorte de gênero os dados são mais escassos, mas em geral as mulheres recebem apenas uma fração do que os homens, entre 65% e 80% nos países altos índices de riqueza, mas podendo chegar a 25% em algumas regiões.&lt;br /&gt;
&lt;br /&gt;
Quando olhamos o recorte de gerações, é interessante notar que existe uma transferência de riqueza entre as gerações, onde as gerações mais velhas perdem riqueza ao passo que as mais novas ganham, um dos possíveis motivos é a transferência dentro da própria família.&lt;br /&gt;
&lt;br /&gt;
A maior parte da crise financeira parece que atingiu em menor intensidade as minorias políticas, isso se deve ao fato que, por exemplo, quando olhamos a população hispânica, a maior parte da sua riqueza está na forma de riqueza não-financeira, isto é, seu próprio domicílio. Brancos que são o recorte da população que possuem tanto a maior riqueza média quanto mediana são o recorte que também possuem a maior parte da sua riqueza na forma de riqueza financeira.&lt;br /&gt;
&lt;br /&gt;
Isso volta a se repetir ao longo do relatório, mas não só entre indivíduos, é visto também  entre países, enquanto a base da pirâmide tem sua riqueza constituída principalmente de ativos não-financeiros (em grande parte a residência), o topo da pirâmide possui uma riqueza predominantemente financeira.&lt;br /&gt;
&lt;br /&gt;
Antes de continuar talvez seja interessante definir alguns termos:&lt;br /&gt;
* Riqueza: é definido como a soma dos ativos financeiros e não-financeiros, descontado as dívidas.&lt;br /&gt;
* Riqueza financeira e não financeira: o primeiro consiste em ativos como ações e títulos, são ativos negociados em bolsas que podem ser comprados e vendidos em qualquer dia útil que a bolsa esteja aberta. O segundo consiste em ativos como casa ou veículo, são ativos mais difíceis de se vender pois necessita que o vendedor encontre um comprador em potencial e negocie um preço de venda.&lt;br /&gt;
&lt;br /&gt;
O relatório também nomeia duas fatias da população: aqueles que têm um patrimônio líquido alto (High-net-worth ou HNW) e aqueles que têm um patrimônio líquido muito alto (Ultra-High-net-worth ou UHNW). Enquanto os primeiros são aqueles que têm um patrimônio entre 1 e 50 milhões de dólares, o segundo são os que possuem acima de 50 milhões.&lt;br /&gt;
&lt;br /&gt;
Esse recorte mostra-se útil, pois o topo da pirâmide da distribuição de riqueza tem um comportamento particularmente diferente do resto da mesma. Como foi dito anteriormente, uma dessas características é a distribuição dos seus ativos, sendo predominantemente financeiro, enquanto o resto da população, principalmente em sua base, tem uma maior predominância de ativos não financeiros. Como consequência disso, crises financeiras atingem de forma diferente os dois grupos. Além disso, um maior patrimônio garante maior segurança e estabilidade para lidar com as crises, o que também resulta em diferentes estratégias e consequências.&lt;br /&gt;
&lt;br /&gt;
Antes de continuar, gostaria de chamar a atenção para algumas observações pessoais. O relatório apesar de se basear em dados, também utiliza estimativas, nem tudo são dados, mas a distribuição das riquezas é feita também através de estimativas. A própria lista de bilionários da Forbes é utilizada para melhorar a estimativa dos milionários e produzir aquilo que o relatório considera como valores plausíveis para o padrão global no topo da pirâmide.&lt;br /&gt;
&lt;br /&gt;
Além deste relatório que inclui discussão, existe o databook, com os dados brutos e uma melhor descrição das estimativas utilizadas. Isto pode interessar aqueles que queiram conhecer o relatório com mais detalhes. Mas arriscando deixar claro minha ignorância, eu não consigo deixar de lado um certo incômodo com algumas das métricas utilizadas. A própria diminuição da riqueza global é em grande parte consequência direta da relação das taxas de câmbio entre as moedas e não da produção ou destruição de bens ou serviços que podem ser usufruídos pela população já me levanta algumas questões sobre qual é a informação real que estamos obtendo através deste índice. A ideia de que eu sendo de dono de uma mesma casa por dois anos seguintes, minha riqueza pode aumentar em diminuir de acordo com a relação entre o real e o dólar, me parece uma camada de abstração na relação real entre as coisas e as pessoas que merecem um estudo mais aprofundado.&lt;br /&gt;
&lt;br /&gt;
Da mesma forma, a definição de limites fixos definidos em dólar mundialmente me levanta questionamentos. O primeiro recorte que aparece é aqueles com riqueza abaixo de $10.000, e um dos últimos é o discutido anteriormente com riqueza superior a $1.000.000. Mas apesar de caírem no mesmo grupo, duas pessoas com o mesmo $50.000 no Brasil e nos EUA, me parece que não estão na mesma situação financeira. Como qualquer relatório e pesquisa, limitações são necessárias, mas chamo atenção para estas pois de certa forma, elas vão se retomar quando discutirmos a desigualdade no mundo.&lt;br /&gt;
&lt;br /&gt;
A seção seguinte discute exatamente a distribuição de riqueza global.&lt;br /&gt;
&lt;br /&gt;
Segundo os critérios adotados, o relatório conclui que a desigualdade diminuiu no último ano. Isto se deve principalmente ao crescimento de economias emergentes, com destaque para China e Índia. O motivo disto acontecer é exatamente pela posição em que ocupam na economia mundial, é uma desigualdade que diminui principalmente entre países.&lt;br /&gt;
&lt;br /&gt;
Índia e China possuem uma população combinada de quase 3 bilhões, isso é quase metade da população do mundo, estes são países que historicamente eram pobres, a riqueza média e a mediana da população entra-se abaixo da média e mediana da população mundial. Então a partir do momento que a riqueza total destas populações começa a crescer, mesmo que a desigualdade interna não diminua, os valores absolutos da riqueza média e mediana destas nações vai crescer, se aproximando dos níveis mundiais,  consequentemente contribuindo para uma diminuição da desigualdade a nível mundial. A partir do momento que estas nações ultrapassem a média mundial, podemos encontrar um cenário diferente. E aqui podemos observar que tudo isso pode acontecer sem que haja alteração na desigualdade interna destes países.&lt;br /&gt;
&lt;br /&gt;
A desigualdade é reduzida a duas questões:&lt;br /&gt;
* Quão longe o topo da pirâmide está da média?&lt;br /&gt;
* Quão longe a base da pirâmide está da média?&lt;br /&gt;
&lt;br /&gt;
Para responder estas questões, normalmente são empregados métricas como o coeficiente de Gini e a parcela da riqueza compartilhada pela parcela 1% mais rica da população (outros valores são tipicamente usados também, como 10%).&lt;br /&gt;
&lt;br /&gt;
Podemos começar discutindo alguns números: a parte de baixo da pirâmide, onde os 52.5% mais pobres da população mundial possuem 1.2% apenas de toda riqueza no mundo. Essa base da pirâmide está espalhada em todo o mundo, mas com características diferentes em cada região. Em países pobres até 80% da população está nessa situação em caráter mais permanente, enquanto em países ricos apenas 30% encontra-se aqui, e muitas vezes em caráter transitório apenas.&lt;br /&gt;
&lt;br /&gt;
Já sobre o outro extremo, os 1.1% mais ricos possuem 45.8% de toda riqueza mundial. Os 10% mais ricos possuem 81% da riqueza de todo o mundo. Destaca-se também que eles estão particularmente concentrados em algumas regiões e países. Também compartilham um mesmo estilo de vida e até mesmo de oportunidades, devido a sua boa condição financeira. Conforme discutido anteriormente, é uma parcela da população que tem sua riqueza concentrada principalmente em ativos financeiros.&lt;br /&gt;
&lt;br /&gt;
É notável que os países também encontram-se em diferentes posições perante o sistema econômico internacional. Enquanto alguns países ocupam uma posição no topo concentrando a maior parte da população com as maiores riquezas no mundo, outros constituem a base concentrando principalmente a maior parte da população com um baixo nível de riqueza, formando assim uma periferia em torno dos países centrais.&lt;br /&gt;
&lt;br /&gt;
Quanto à população mundial, é necessário ter $9.000 para estar entre os 50% mais ricos, 16x isso para estar entre os 10% mais ricos e 125x isso para estar entre os 1% mais ricos. Para termos de comparação, se convertermos cada dólar em uma dia de folga, $9.000 corresponde a aproximadamente 1 ano de férias, então quem está nos 10% mais ricos tem aproximadamente 16 anos de férias, e o 1% mais rico tem um pouco menos de 115 anos.&lt;br /&gt;
&lt;br /&gt;
Sobre a desigualdade interna nos países, em geral temos que o 1% mais rico possui entre 30% e 35% do total, assim como os 10% mais ricos possuem entre 60 e 65%. Enquanto um Gini de 70 é relativamente baixo para a média mundial, um Gini acima de 80 é relativamente alto. A desigualdade aumentou em países com políticas liberalizantes e diminuiu na maior parte do mundo devido principalmente ao aumento da importância de ativos não financeiros devido à crise.&lt;br /&gt;
&lt;br /&gt;
Matematicamente temos que mediana é um indicador melhor para entender quanto uma pessoa típica em um país tem.É um indicador melhor que a média, por isso a discussão constantemente volta-se para mediana da riqueza, e não para média. Porém existe uma relação entre a média e a mediana: uma vez que a média costuma ser maior que a mediana devido a distorção causada pela parcela mais rica da sociedade, conforme a mediana se aproxima da média, temos uma diminuição da desigualdade. Por isso a queda da desigualdade é alinhada com os anos em que a mediana está crescendo mais rápido do que a riqueza média.&lt;br /&gt;
&lt;br /&gt;
Pessoas com riquezas próximas ao valor da mediana costumam possuir uma boa proporção de ativos não financeiros, e vão melhor quando estes ativos valorizam mais que ativos financeiros. São estes cidadãos que costumam morar em economias emergentes, com destaque novamente a China, onde conforme discutido previamente a riqueza tem crescido mais rápido que a média global causando a diminuição da desigualdade. Em um curto espaço de tempo, a valorização de ativos não financeiros podem fazer a mediana crescer mais rápido que a média.&lt;br /&gt;
&lt;br /&gt;
Ainda sim, eu chamo a atenção que apesar da afirmação do relatório que a desigualdade está em queda, a variação tanto do Gini quanto da riqueza que o 1% mais rico possui entre 2000 e 2022 é em geral muito baixa. A maior variação registrada do Gini foi de 0.8% na China, e da riqueza compartilhada pelo 1% mais rico, foi de 1.9% também na China, nos dois casos, indicando um incremento na desigualdade. A nível mundial, o Gini e a riqueza compartilhada tanto pelo 5% quanto pelo 10% mais rico parecem ter uma tendência de queda nas últimas duas décadas. Mas não apenas é uma tendência leve onde dificilmente superou os 5% de queda nos últimos 22 anos, mas como o 1% mais rico apesar de estar abaixo dos anos 2000, parece estar oscilando, se está mais baixo que 20 anos atrás, está mais alto que a 10 anos atrás.&lt;br /&gt;
&lt;br /&gt;
Em geral, o relatório aponta que houve um momento em direção a desigualdade em 2020 e em direção a igualdade em 2022, sendo 2021 um ano de transição, algo que novamente, na minha leitura, indica uma dinâmica de oscilação. Algo que chama a atenção no que se refere a desigualdade, é que mudanças na desigualdade, assim como na riqueza média e mediana, estão relacionadas a mudanças  no preço dos ativos e em particular dos ativos financeiros, uma vez que conforme discutido, a parcela mais rica da sociedade prioriza seus investimentos nessa forma de ativo, diferentemente da base da pirâmide. Para a base da pirâmide, os ativos não financeiros são mais que o dobro da própria riqueza, que é equilibrada pela dívida.&lt;br /&gt;
&lt;br /&gt;
O relatório também traz o dado de que o número de milionários sofreu uma queda no último ano, mas tem aumentado, e consequentemente, aumentado a parcela da riqueza total que está em posse dos milionários. Ele lista três critérios que afetam diretamente o número de pessoas milionárias em um país:&lt;br /&gt;
* O tamanho da população adulta;&lt;br /&gt;
* A riqueza média;&lt;br /&gt;
* A desigualdade&lt;br /&gt;
&lt;br /&gt;
Os EUA pontuam alto nos três critérios e é o país que concentra a maior parte dos milionários de forma indiscutível. Além disso, a inflação tem contribuído para o aumento da quantidade de milionários de maneira geral. &lt;br /&gt;
Um último comentário que faço antes de avançar, é que se a queda na desigualdade reportada pelo relatório, segundo o mesmo, se dá em parte devido a crise financeira que aumentou o valor dos ativos não financeiros, a crise financeira poderia ser positiva a curto prazo para a base de pirâmide? Mas e a longo prazo, quais as consequências?&lt;br /&gt;
&lt;br /&gt;
Concluindo nosso relatório sobre a riqueza global, há uma discussão sobre o panorama da riqueza, onde o relatório trata de tentar realizar uma previsão sobre o futuro da riqueza global.&lt;br /&gt;
&lt;br /&gt;
É esperado que nos próximos 5 anos exista um crescimento da riqueza global, com destaque para os países com os menores níveis de riqueza em primeiro plano, e com as economias emergentes em segundo plano. O relatório também aqui define explicitamente países emergentes como países com uma riqueza intermediária.&lt;br /&gt;
&lt;br /&gt;
O número de milionários também deve aumentar junto do crescimento da riqueza global, porém a projeção da inflação é algo bastante incerto. Entre as predições de alguns países selecionados, o que chama a atenção é a China. Pois em comparação com a história do crescimento da riqueza dos EUA, a China entre os anos 2000 e 2022 cresceu o equivalente a 80 anos da história dos EUA (entre 1925 e 2005). A projeção para os próximos 5 anos é que cresça o equivalente a mais 14 anos, chegando em 2027 com o equivalente a riqueza total dos EUA em 2019, apenas 8 anos atrás. Ainda que o seja esperado uma desaceleração no ritmo de crescimento da riqueza da China, não me parece que seria uma surpresa muito grande se nos 5 anos seguintes viesse a ultrapassá-lo.&lt;br /&gt;
&lt;br /&gt;
Outro dado que chama atenção é a relação entre riquezas financeiras e não-financeiras. Historicamente elas parecem possuírem níveis similares. Desde 2008 a riqueza financeira tem crescido mais rápido que a não financeira, mas em 2022 as riquezas se encontram em níveis semelhantes a nível global após uma queda nos ativos financeiros.&lt;br /&gt;
&lt;br /&gt;
A seção termina com os dados que indicam uma diminuição da população que se encontra no que é caracterizado como classe baixa (abaixo de $10.000), enquanto estas migram para os outros estratos sociais. Em parte pode-se discutir sobre a queda da desigualdade conforme discutimos anteriormente, lembrando do crescimento da riqueza total de países emergentes como China e Índia, mas o crescimento de milionários reflete não apenas que altas inflações tornam mai fácil passar o limiar de 1 milhão de dólares, mas também entendo que torna mais fácil ultrapassar o limiar dos outros grupos socioeconômicos também. Sem maiores dados, eu não posso afirmar que isso implique necessariamente em maior poder de compra ou melhora na qualidade de vida, ou seja, que este dado se reflete em efeitos positivos no bem-estar da população.&lt;br /&gt;
&lt;br /&gt;
E chegamos então no último capítulo onde temos a discussão de experiências individuais, isto é, alguns países foram selecionados para que fossem discutidos individualmente. Para isso foi escolhido países que têm dados oficiais e dado preferência para países que cumpriam os requisitos determinados pelo relatório. Porém, alguns países que não satisfazem também foram incluídos por necessidade, como por exemplo o próprio Brasil. Não dá para avaliar experiências latino-americanas sem levar em conta a maior economia na região.&lt;br /&gt;
&lt;br /&gt;
De maneira geral, a pandemia causou uma devastação na economia em 2020, que se recuperou fortemente em 2021 e gerou inflação em 2022. Isso decorre porque o setor público socorreu o setor privado para garantir um alívio durante a pandemia em  2020 e 2021 através de gastos governamentais, e em 2022 a relação alterada entre o setor público e privado começou a ser revertida. Devido a inflação os países aumentaram as taxas de juros, que tem por consequência diminuir o preço dos ativos financeiros, o que também conforme discutido anteriormente levou a uma diminuição de riquezas em muitos mercados, uma vez que o os países no topo da pirâmide tem grande parte da sua riqueza na forma riqueza financeira. &lt;br /&gt;
&lt;br /&gt;
A avaliação individual dos diferentes países eu vou deixar para o leitor buscar se tiver interesse, acho que neste momento, as informações compiladas ali são de menor interesse quando comparado a questão da desigualdade de maneira global. Apenas vale comentar que a situação do Brasil nos 2022 é de aumento do coeficiente de Gini assim como da riqueza compartilhada pelo 1% mais rico da sociedade.&lt;br /&gt;
&lt;br /&gt;
Mas antes de concluir eu queria trazer um questionamento sobre uma leitura constante no relatório de que a desigualdade no mundo tem uma tendência de queda desde o começo do milênio. Eu acho que essa é uma interpretação que traz um falso otimismo. Já foi discutido anteriormente sobre como isso é um reflexo da ascensão econômica de países emergentes, em especial China e Índia. Mas eu queria reforçar isso relembrando que esses números são mais notáveis quando comparamos a população do mundo inteiro como um grupo só, isto é, quando fazemos uma comparação entre as populações de diferentes países como se fosse uma única população. Temos que, por exemplo, um indivíduo considerado classe baixa na China está mais próximo da riqueza média mundial agora que no passado, mas não implica que necessariamente esteja mais próximo da riqueza média da própria China. Então eu queria também trazer os dados de uma forma diferente. Quando analisamos os diferentes países, o artigo destaca 14 países, há apenas 2 deles que apresentam uma queda na desigualdade nos dois índices adotados pelo relatório (Gini e a fatia de riqueza do 1% mais rico).&lt;br /&gt;
&lt;br /&gt;
Os outros países apresentam uma queda na desigualdade no máximo em um dos dois índices. Além disso, 9 países apresentam um aumento no Gini, o mesmo número apresenta um aumento na riqueza do 1%. Quando olhamos para a situação mundial por região,  a situação é similar: das 7 regiões separadas no relatório, 3 apresentam queda nos dois índices, é o mesmo número 3 apresentam um incremento nos dois índices, uma última região apresenta queda no Gini e aumento na fatia de riqueza do 1%.  Por fim, se calcularmos a média do índice Gini entre as regiões ponderada pela população em cada região, temos um incremento de 0.19%, da mesma forma a fatia da riqueza compartilhada pelo 1% da população mais rica também teve um incremento de 0.36%. E mesmo quando olhamos as variações apontadas pelo próprio relatório, podemos notar que são variações bastante pequenas.&lt;br /&gt;
&lt;br /&gt;
Desta forma, me parece que o cenário que os dados apontam não é convincente para interpretar como uma tendência significativa de queda na desigualdade. Eu gostaria de ver dados que explorassem melhor esta ideia antes de dar suporte a esta ideia.&lt;br /&gt;
&lt;br /&gt;
''' Fonte: '''&lt;br /&gt;
* [https://www.ubs.com/global/en/family-office-uhnw/reports/global-wealth-report-2023.html](Global Wealth Report 2023)&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Global_Wealth_Report_2023&amp;diff=9716</id>
		<title>Global Wealth Report 2023</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Global_Wealth_Report_2023&amp;diff=9716"/>
		<updated>2023-10-25T05:18:18Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A UBS e a Credit Suiss elaboraram em conjunto um relatório sobre riqueza global no ano de 2022. Neste relatório, afirmam que esta é a fonte mais atualizada sobre a distribuição de riqueza no mundo, elaborada pelo maior gestor global de riqueza. É um relatório no qual o PDF possui pouco mais de 75 páginas e eu vou tentar até como um exercício de estudo resumi-lo.&lt;br /&gt;
&lt;br /&gt;
Mantendo a estrutura do relatório, o primeiro capítulo trata do nível de riqueza global.&lt;br /&gt;
&lt;br /&gt;
Em resumo houve uma queda tanto na riqueza global total quanto per capita, essa queda em grande parte pode ser atribuída pela relação entre o dólar e outras moedas. Os países que apresentaram um aumento de riqueza por domicílio têm como um dos motivos deste resultado o suporte financeiro fornecido pelo governo central. Em geral, países ricos que auxiliaram financeiramente a população se saíram melhor que países pobres sem condições de adotarem as mesmas medidas.&lt;br /&gt;
&lt;br /&gt;
A inflação por sua vez tornou mais fácil que fosse atingido o limiar do milhão em dólares (ou seja, a formação de novos milionários) e também encorajou a conversão para ativos não financeiros. É interessante notar que o Brasil apresentou índices relativamente positivos sobre o último ano.&lt;br /&gt;
&lt;br /&gt;
Fazendo alguns recortes de gênero, o relatório traz alguns dados sobre a população dos EUA que me chamam a atenção. Eu destaco dois deles: a mediana da riqueza da população negra é pouco mais de 10% em comparação com os brancos não-hispânicos, os hispânicos são 20% em relação à mesma população. Podemos assumir que o topo da pirâmide da distribuição de riquezas é constituído principalmente de homens brancos, uma vez que as mulheres também uma riqueza que é uma fração dos homens.  Para recorte de gênero os dados são mais escassos, mas em geral as mulheres recebem apenas uma fração do que os homens, entre 65% e 80% nos países altos índices de riqueza, mas podendo chegar a 25% em algumas regiões.&lt;br /&gt;
&lt;br /&gt;
Quando olhamos o recorte de gerações, é interessante notar que existe uma transferência de riqueza entre as gerações, onde as gerações mais velhas perdem riqueza ao passo que as mais novas ganham, um dos possíveis motivos é a transferência dentro da própria família.&lt;br /&gt;
&lt;br /&gt;
A maior parte da crise financeira parece que atingiu em menor intensidade as minorias políticas, isso se deve ao fato que, por exemplo, quando olhamos a população hispânica, a maior parte da sua riqueza está na forma de riqueza não-financeira, isto é, seu próprio domicílio. Brancos que são o recorte da população que possuem tanto a maior riqueza média quanto mediana são o recorte que também possuem a maior parte da sua riqueza na forma de riqueza financeira.&lt;br /&gt;
&lt;br /&gt;
Isso volta a se repetir ao longo do relatório, mas não só entre indivíduos, é visto também  entre países, enquanto a base da pirâmide tem sua riqueza constituída principalmente de ativos não-financeiros (em grande parte a residência), o topo da pirâmide possui uma riqueza predominantemente financeira.&lt;br /&gt;
&lt;br /&gt;
Antes de continuar talvez seja interessante definir alguns termos:&lt;br /&gt;
* Riqueza: é definido como a soma dos ativos financeiros e não-financeiros, descontado as dívidas.&lt;br /&gt;
* Riqueza financeira e não financeira: o primeiro consiste em ativos como ações e títulos, são ativos negociados em bolsas que podem ser comprados e vendidos em qualquer dia útil que a bolsa esteja aberta. O segundo consiste em ativos como casa ou veículo, são ativos mais difíceis de se vender pois necessita que o vendedor encontre um comprador em potencial e negocie um preço de venda.&lt;br /&gt;
&lt;br /&gt;
O relatório também nomeia duas fatias da população: aqueles que têm um patrimônio líquido alto (High-net-worth ou HNW) e aqueles que têm um patrimônio líquido muito alto (Ultra-High-net-worth ou UHNW). Enquanto os primeiros são aqueles que têm um patrimônio entre 1 e 50 milhões de dólares, o segundo são os que possuem acima de 50 milhões.&lt;br /&gt;
&lt;br /&gt;
Esse recorte mostra-se útil, pois o topo da pirâmide da distribuição de riqueza tem um comportamento particularmente diferente do resto da mesma. Como foi dito anteriormente, uma dessas características é a distribuição dos seus ativos, sendo predominantemente financeiro, enquanto o resto da população, principalmente em sua base, tem uma maior predominância de ativos não financeiros. Como consequência disso, crises financeiras atingem de forma diferente os dois grupos. Além disso, um maior patrimônio garante maior segurança e estabilidade para lidar com as crises, o que também resulta em diferentes estratégias e consequências.&lt;br /&gt;
&lt;br /&gt;
Antes de continuar, gostaria de chamar a atenção para algumas observações pessoais. O relatório apesar de se basear em dados, também utiliza estimativas, nem tudo são dados, mas a distribuição das riquezas é feita também através de estimativas. A própria lista de bilionários da Forbes é utilizada para melhorar a estimativa dos milionários e produzir aquilo que o relatório considera como valores plausíveis para o padrão global no topo da pirâmide.&lt;br /&gt;
&lt;br /&gt;
Além deste relatório que inclui discussão, existe o databook, com os dados brutos e uma melhor descrição das estimativas utilizadas. Isto pode interessar aqueles que queiram conhecer o relatório com mais detalhes. Mas arriscando deixar claro minha ignorância, eu não consigo deixar de lado um certo incômodo com algumas das métricas utilizadas. A própria diminuição da riqueza global é em grande parte consequência direta da relação das taxas de câmbio entre as moedas e não da produção ou destruição de bens ou serviços que podem ser usufruídos pela população já me levanta algumas questões sobre qual é a informação real que estamos obtendo através deste índice. A ideia de que eu sendo de dono de uma mesma casa por dois anos seguintes, minha riqueza pode aumentar em diminuir de acordo com a relação entre o real e o dólar, me parece uma camada de abstração na relação real entre as coisas e as pessoas que merecem um estudo mais aprofundado.&lt;br /&gt;
&lt;br /&gt;
Da mesma forma, a definição de limites fixos definidos em dólar mundialmente me levanta questionamentos. O primeiro recorte que aparece é aqueles com riqueza abaixo de $10.000, e um dos últimos é o discutido anteriormente com riqueza superior a $1.000.000. Mas apesar de caírem no mesmo grupo, duas pessoas com o mesmo $50.000 no Brasil e nos EUA, me parece que não estão na mesma situação financeira. Como qualquer relatório e pesquisa, limitações são necessárias, mas chamo atenção para estas pois de certa forma, elas vão se retomar quando discutirmos a desigualdade no mundo.&lt;br /&gt;
&lt;br /&gt;
A seção seguinte discute exatamente a distribuição de riqueza global.&lt;br /&gt;
&lt;br /&gt;
Segundo os critérios adotados, o relatório conclui que a desigualdade diminuiu no último ano. Isto se deve principalmente ao crescimento de economias emergentes, com destaque para China e Índia. O motivo disto acontecer é exatamente pela posição em que ocupam na economia mundial, é uma desigualdade que diminui principalmente entre países.&lt;br /&gt;
&lt;br /&gt;
Índia e China possuem uma população combinada de quase 3 bilhões, isso é quase metade da população do mundo, estes são países que historicamente eram pobres, a riqueza média e a mediana da população entra-se abaixo da média e mediana da população mundial. Então a partir do momento que a riqueza total destas populações começa a crescer, mesmo que a desigualdade interna não diminua, os valores absolutos da riqueza média e mediana destas nações vai crescer, se aproximando dos níveis mundiais,  consequentemente contribuindo para uma diminuição da desigualdade a nível mundial. A partir do momento que estas nações ultrapassem a média mundial, podemos encontrar um cenário diferente. E aqui podemos observar que tudo isso pode acontecer sem que haja alteração na desigualdade interna destes países.&lt;br /&gt;
&lt;br /&gt;
A desigualdade é reduzida a duas questões:&lt;br /&gt;
* Quão longe o topo da pirâmide está da média?&lt;br /&gt;
* Quão longe a base da pirâmide está da média?&lt;br /&gt;
&lt;br /&gt;
Para responder estas questões, normalmente são empregados métricas como o coeficiente de Gini e a parcela da riqueza compartilhada pela parcela 1% mais rica da população (outros valores são tipicamente usados também, como 10%).&lt;br /&gt;
&lt;br /&gt;
Podemos começar discutindo alguns números: a parte de baixo da pirâmide, onde os 52.5% mais pobres da população mundial possuem 1.2% apenas de toda riqueza no mundo. Essa base da pirâmide está espalhada em todo o mundo, mas com características diferentes em cada região. Em países pobres até 80% da população está nessa situação em caráter mais permanente, enquanto em países ricos apenas 30% encontra-se aqui, e muitas vezes em caráter transitório apenas.&lt;br /&gt;
&lt;br /&gt;
Já sobre o outro extremo, os 1.1% mais ricos possuem 45.8% de toda riqueza mundial. Os 10% mais ricos possuem 81% da riqueza de todo o mundo. Destaca-se também que eles estão particularmente concentrados em algumas regiões e países. Também compartilham um mesmo estilo de vida e até mesmo de oportunidades, devido a sua boa condição financeira. Conforme discutido anteriormente, é uma parcela da população que tem sua riqueza concentrada principalmente em ativos financeiros.&lt;br /&gt;
&lt;br /&gt;
É notável que os países também encontram-se em diferentes posições perante o sistema econômico internacional. Enquanto alguns países ocupam uma posição no topo concentrando a maior parte da população com as maiores riquezas no mundo, outros constituem a base concentrando principalmente a maior parte da população com um baixo nível de riqueza, formando assim uma periferia em torno dos países centrais.&lt;br /&gt;
&lt;br /&gt;
Quanto à população mundial, é necessário ter $9.000 para estar entre os 50% mais ricos, 16x isso para estar entre os 10% mais ricos e 125x isso para estar entre os 1% mais ricos. Para termos de comparação, se convertermos cada dólar em uma dia de folga, $9.000 corresponde a aproximadamente 1 ano de férias, então quem está nos 10% mais ricos tem aproximadamente 16 anos de férias, e o 1% mais rico tem um pouco menos de 115 anos.&lt;br /&gt;
&lt;br /&gt;
Sobre a desigualdade interna nos países, em geral temos que o 1% mais rico possui entre 30% e 35% do total, assim como os 10% mais ricos possuem entre 60 e 65%. Enquanto um Gini de 70 é relativamente baixo para a média mundial, um Gini acima de 80 é relativamente alto. A desigualdade aumentou em países com políticas liberalizantes e diminuiu na maior parte do mundo devido principalmente ao aumento da importância de ativos não financeiros devido à crise.&lt;br /&gt;
&lt;br /&gt;
Matematicamente temos que mediana é um indicador melhor para entender quanto uma pessoa típica em um país tem.É um indicador melhor que a média, por isso a discussão constantemente volta-se para mediana da riqueza, e não para média. Porém existe uma relação entre a média e a mediana: uma vez que a média costuma ser maior que a mediana devido a distorção causada pela parcela mais rica da sociedade, conforme a mediana se aproxima da média, temos uma diminuição da desigualdade. Por isso a queda da desigualdade é alinhada com os anos em que a mediana está crescendo mais rápido do que a riqueza média.&lt;br /&gt;
&lt;br /&gt;
Pessoas com riquezas próximas ao valor da mediana costumam possuir uma boa proporção de ativos não financeiros, e vão melhor quando estes ativos valorizam mais que ativos financeiros. São estes cidadãos que costumam morar em economias emergentes, com destaque novamente a China, onde conforme discutido previamente a riqueza tem crescido mais rápido que a média global causando a diminuição da desigualdade. Em um curto espaço de tempo, a valorização de ativos não financeiros podem fazer a mediana crescer mais rápido que a média.&lt;br /&gt;
&lt;br /&gt;
Ainda sim, eu chamo a atenção que apesar da afirmação do relatório que a desigualdade está em queda, a variação tanto do Gini quanto da riqueza que o 1% mais rico possui entre 2000 e 2022 é em geral muito baixa. A maior variação registrada do Gini foi de 0.8% na China, e da riqueza compartilhada pelo 1% mais rico, foi de 1.9% também na China, nos dois casos, indicando um incremento na desigualdade. A nível mundial, o Gini e a riqueza compartilhada tanto pelo 5% quanto pelo 10% mais rico parecem ter uma tendência de queda nas últimas duas décadas. Mas não apenas é uma tendência leve onde dificilmente superou os 5% de queda nos últimos 22 anos, mas como o 1% mais rico apesar de estar abaixo dos anos 2000, parece estar oscilando, se está mais baixo que 20 anos atrás, está mais alto que a 10 anos atrás.&lt;br /&gt;
&lt;br /&gt;
Em geral, o relatório aponta que houve um momento em direção a desigualdade em 2020 e em direção a igualdade em 2022, sendo 2021 um ano de transição, algo que novamente, na minha leitura, indica uma dinâmica de oscilação. Algo que chama a atenção no que se refere a desigualdade, é que mudanças na desigualdade, assim como na riqueza média e mediana, estão relacionadas a mudanças  no preço dos ativos e em particular dos ativos financeiros, uma vez que conforme discutido, a parcela mais rica da sociedade prioriza seus investimentos nessa forma de ativo, diferentemente da base da pirâmide. Para a base da pirâmide, os ativos não financeiros são mais que o dobro da própria riqueza, que é equilibrada pela dívida.&lt;br /&gt;
&lt;br /&gt;
O relatório também traz o dado de que o número de milionários sofreu uma queda no último ano, mas tem aumentado, e consequentemente, aumentado a parcela da riqueza total que está em posse dos milionários. Ele lista três critérios que afetam diretamente o número de pessoas milionárias em um país:&lt;br /&gt;
* O tamanho da população adulta;&lt;br /&gt;
* A riqueza média;&lt;br /&gt;
* A desigualdade&lt;br /&gt;
&lt;br /&gt;
Os EUA pontuam alto nos três critérios e é o país que concentra a maior parte dos milionários de forma indiscutível. Além disso, a inflação tem contribuído para o aumento da quantidade de milionários de maneira geral. &lt;br /&gt;
Um último comentário que faço antes de avançar, é que se a queda na desigualdade reportada pelo relatório, segundo o mesmo, se dá em parte devido a crise financeira que aumentou o valor dos ativos não financeiros, a crise financeira poderia ser positiva a curto prazo para a base de pirâmide? Mas e a longo prazo, quais as consequências?&lt;br /&gt;
&lt;br /&gt;
Concluindo nosso relatório sobre a riqueza global, há uma discussão sobre o panorama da riqueza, onde o relatório trata de tentar realizar uma previsão sobre o futuro da riqueza global.&lt;br /&gt;
&lt;br /&gt;
É esperado que nos próximos 5 anos exista um crescimento da riqueza global, com destaque para os países com os menores níveis de riqueza em primeiro plano, e com as economias emergentes em segundo plano. O relatório também aqui define explicitamente países emergentes como países com uma riqueza intermediária.&lt;br /&gt;
&lt;br /&gt;
O número de milionários também deve aumentar junto do crescimento da riqueza global, porém a projeção da inflação é algo bastante incerto. Entre as predições de alguns países selecionados, o que chama a atenção é a China. Pois em comparação com a história do crescimento da riqueza dos EUA, a China entre os anos 2000 e 2022 cresceu o equivalente a 80 anos da história dos EUA (entre 1925 e 2005). A projeção para os próximos 5 anos é que cresça o equivalente a mais 14 anos, chegando em 2027 com o equivalente a riqueza total dos EUA em 2019, apenas 8 anos atrás. Ainda que o seja esperado uma desaceleração no ritmo de crescimento da riqueza da China, não me parece que seria uma surpresa muito grande se nos 5 anos seguintes viesse a ultrapassá-lo.&lt;br /&gt;
&lt;br /&gt;
Outro dado que chama atenção é a relação entre riquezas financeiras e não-financeiras. Historicamente elas parecem possuírem níveis similares. Desde 2008 a riqueza financeira tem crescido mais rápido que a não financeira, mas em 2022 as riquezas se encontram em níveis semelhantes a nível global após uma queda nos ativos financeiros.&lt;br /&gt;
&lt;br /&gt;
A seção termina com os dados que indicam uma diminuição da população que se encontra no que é caracterizado como classe baixa (abaixo de $10.000), enquanto estas migram para os outros estratos sociais. Em parte pode-se discutir sobre a queda da desigualdade conforme discutimos anteriormente, lembrando do crescimento da riqueza total de países emergentes como China e Índia, mas o crescimento de milionários reflete não apenas que altas inflações tornam mai fácil passar o limiar de 1 milhão de dólares, mas também entendo que torna mais fácil ultrapassar o limiar dos outros grupos socioeconômicos também. Sem maiores dados, eu não posso afirmar que isso implique necessariamente em maior poder de compra ou melhora na qualidade de vida, ou seja, que este dado se reflete em efeitos positivos no bem-estar da população.&lt;br /&gt;
&lt;br /&gt;
E chegamos então no último capítulo onde temos a discussão de experiências individuais, isto é, alguns países foram selecionados para que fossem discutidos individualmente. Para isso foi escolhido países que têm dados oficiais e dado preferência para países que cumpriam os requisitos determinados pelo relatório. Porém, alguns países que não satisfazem também foram incluídos por necessidade, como por exemplo o próprio Brasil. Não dá para avaliar experiências latino-americanas sem levar em conta a maior economia na região.&lt;br /&gt;
&lt;br /&gt;
De maneira geral, a pandemia causou uma devastação na economia em 2020, que se recuperou fortemente em 2021 e gerou inflação em 2022. Isso decorre porque o setor público socorreu o setor privado para garantir um alívio durante a pandemia em  2020 e 2021 através de gastos governamentais, e em 2022 a relação alterada entre o setor público e privado começou a ser revertida. Devido a inflação os países aumentaram as taxas de juros, que tem por consequência diminuir o preço dos ativos financeiros, o que também conforme discutido anteriormente levou a uma diminuição de riquezas em muitos mercados, uma vez que o os países no topo da pirâmide tem grande parte da sua riqueza na forma riqueza financeira. &lt;br /&gt;
&lt;br /&gt;
A avaliação individual dos diferentes países eu vou deixar para o leitor buscar se tiver interesse, acho que neste momento, as informações compiladas ali são de menor interesse quando comparado a questão da desigualdade de maneira global. Apenas vale comentar que a situação do Brasil nos 2022 é de aumento do coeficiente de Gini assim como da riqueza compartilhada pelo 1% mais rico da sociedade.&lt;br /&gt;
&lt;br /&gt;
Mas antes de concluir eu queria trazer um questionamento sobre uma leitura constante no relatório de que a desigualdade no mundo tem uma tendência de queda desde o começo do milênio. Eu acho que essa é uma interpretação que traz um falso otimismo. Já foi discutido anteriormente sobre como isso é um reflexo da ascensão econômica de países emergentes, em especial China e Índia. Mas eu queria reforçar isso relembrando que esses números são mais notáveis quando comparamos a população do mundo inteiro como um grupo só, isto é, quando fazemos uma comparação entre as populações de diferentes países como se fosse uma única população. Temos que, por exemplo, um indivíduo considerado classe baixa na China está mais próximo da riqueza média mundial agora que no passado, mas não implica que necessariamente esteja mais próximo da riqueza média da própria China. Então eu queria também trazer os dados de uma forma diferente. Quando analisamos os diferentes países, o artigo destaca 14 países, há apenas 2 deles que apresentam uma queda na desigualdade nos dois índices adotados pelo relatório (Gini e a fatia de riqueza do 1% mais rico).&lt;br /&gt;
&lt;br /&gt;
Os outros países apresentam uma queda na desigualdade no máximo em um dos dois índices. Além disso, 9 países apresentam um aumento no Gini, o mesmo número apresenta um aumento na riqueza do 1%. Quando olhamos para a situação mundial por região,  a situação é similar: das 7 regiões separadas no relatório, 3 apresentam queda nos dois índices, é o mesmo número 3 apresentam um incremento nos dois índices, uma última região apresenta queda no Gini e aumento na fatia de riqueza do 1%.  Por fim, se calcularmos a média do índice Gini entre as regiões ponderada pela população em cada região, temos um incremento de 0.19%, da mesma forma a fatia da riqueza compartilhada pelo 1% da população mais rica também teve um incremento de 0.36%. E mesmo quando olhamos as variações apontadas pelo próprio relatório, podemos notar que são variações bastante pequenas.&lt;br /&gt;
&lt;br /&gt;
Desta forma, me parece que o cenário que os dados apontam não é convincente para interpretar como uma tendência significativa de queda na desigualdade. Eu gostaria de ver dados que explorassem melhor esta ideia antes de dar suporte a esta ideia.&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Global_Wealth_Report_2023&amp;diff=9715</id>
		<title>Global Wealth Report 2023</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Global_Wealth_Report_2023&amp;diff=9715"/>
		<updated>2023-10-25T04:57:50Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: Criou página com 'A UBS e a Credit Suiss elaboraram em conjunto um relatório sobre riqueza global no ano de 2022. Neste relatório, afirmam que esta é a fonte mais atualizada sobre a distribuição de riqueza no mundo, elaborada pelo maior gestor global de riqueza. É um relatório no qual o PDF possui pouco mais de 75 páginas e eu vou tentar até como um exercício de estudo resumi-lo.  Mantendo a estrutura do relatório, o primeiro capítulo trata do nível de riqueza global.  Em res...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A UBS e a Credit Suiss elaboraram em conjunto um relatório sobre riqueza global no ano de 2022. Neste relatório, afirmam que esta é a fonte mais atualizada sobre a distribuição de riqueza no mundo, elaborada pelo maior gestor global de riqueza. É um relatório no qual o PDF possui pouco mais de 75 páginas e eu vou tentar até como um exercício de estudo resumi-lo.&lt;br /&gt;
&lt;br /&gt;
Mantendo a estrutura do relatório, o primeiro capítulo trata do nível de riqueza global.&lt;br /&gt;
&lt;br /&gt;
Em resumo houve uma queda tanto na riqueza global total quanto per capita, essa queda em grande parte pode ser atribuída pela relação entre o dólar e outras moedas. Os países que apresentaram um aumento de riqueza por domicílio têm como um dos motivos deste resultado o suporte financeiro fornecido pelo governo central. Em geral, países ricos que auxiliaram financeiramente a população se saíram melhor que países pobres sem condições de adotarem as mesmas medidas.&lt;br /&gt;
&lt;br /&gt;
A inflação por sua vez tornou mais fácil que fosse atingido o limiar do milhão em dólares (ou seja, a formação de novos milionários) e também encorajou a conversão para ativos não financeiros. É interessante notar que o Brasil apresentou índices relativamente positivos sobre o último ano.&lt;br /&gt;
&lt;br /&gt;
Fazendo alguns recortes de gênero, o relatório traz alguns dados sobre a população dos EUA que me chamam a atenção. Eu destaco dois deles: a mediana da riqueza da população negra é pouco mais de 10% em comparação com os brancos não-hispânicos, os hispânicos são 20% em relação à mesma população. Podemos assumir que o topo da pirâmide da distribuição de riquezas é constituído principalmente de homens brancos, uma vez que as mulheres também uma riqueza que é uma fração dos homens.  Para recorte de gênero os dados são mais escassos, mas em geral as mulheres recebem apenas uma fração do que os homens, entre 65% e 80% nos países altos índices de riqueza, mas podendo chegar a 25% em algumas regiões.&lt;br /&gt;
&lt;br /&gt;
Quando olhamos o recorte de gerações, é interessante notar que existe uma transferência de riqueza entre as gerações, onde as gerações mais velhas perdem riqueza ao passo que as mais novas ganham, um dos possíveis motivos é a transferência dentro da própria família.&lt;br /&gt;
&lt;br /&gt;
A maior parte da crise financeira parece que atingiu em menor intensidade as minorias políticas, isso se deve ao fato que, por exemplo, quando olhamos a população hispânica, a maior parte da sua riqueza está na forma de riqueza não-financeira, isto é, seu próprio domicílio. Brancos que são o recorte da população que possuem tanto a maior riqueza média quanto mediana são o recorte que também possuem a maior parte da sua riqueza na forma de riqueza financeira.&lt;br /&gt;
&lt;br /&gt;
Isso volta a se repetir ao longo do relatório, mas não só entre indivíduos, é visto também  entre países, enquanto a base da pirâmide tem sua riqueza constituída principalmente de ativos não-financeiros (em grande parte a residência), o topo da pirâmide possui uma riqueza predominantemente financeira.&lt;br /&gt;
&lt;br /&gt;
Antes de continuar talvez seja interessante definir alguns termos:&lt;br /&gt;
* Riqueza: é definido como a soma dos ativos financeiros e não-financeiros, descontado as dívidas.&lt;br /&gt;
* Riqueza financeira e não financeira: o primeiro consiste em ativos como ações e títulos, são ativos negociados em bolsas que podem ser comprados e vendidos em qualquer dia útil que a bolsa esteja aberta. O segundo consiste em ativos como casa ou veículo, são ativos mais difíceis de se vender pois necessita que o vendedor encontre um comprador em potencial e negocie um preço de venda.&lt;br /&gt;
&lt;br /&gt;
O relatório também nomeia duas fatias da população: aqueles que têm um patrimônio líquido alto (High-net-worth ou HNW) e aqueles que têm um patrimônio líquido muito alto (Ultra-High-net-worth ou UHNW). Enquanto os primeiros são aqueles que têm um patrimônio entre 1 e 50 milhões de dólares, o segundo são os que possuem acima de 50 milhões.&lt;br /&gt;
&lt;br /&gt;
Esse recorte mostra-se útil, pois o topo da pirâmide da distribuição de riqueza tem um comportamento particularmente diferente do resto da mesma. Como foi dito anteriormente, uma dessas características é a distribuição dos seus ativos, sendo predominantemente financeiro, enquanto o resto da população, principalmente em sua base, tem uma maior predominância de ativos não financeiros. Como consequência disso, crises financeiras atingem de forma diferente os dois grupos. Além disso, um maior patrimônio garante maior segurança e estabilidade para lidar com as crises, o que também resulta em diferentes estratégias e consequências.&lt;br /&gt;
&lt;br /&gt;
Antes de continuar, gostaria de chamar a atenção para algumas observações pessoais. O relatório apesar de se basear em dados, também utiliza estimativas, nem tudo são dados, mas a distribuição das riquezas é feita também através de estimativas. A própria lista de bilionários da Forbes é utilizada para melhorar a estimativa dos milionários e produzir aquilo que o relatório considera como valores plausíveis para o padrão global no topo da pirâmide.&lt;br /&gt;
&lt;br /&gt;
Além deste relatório que inclui discussão, existe o databook, com os dados brutos e uma melhor descrição das estimativas utilizadas. Isto pode interessar aqueles que queiram conhecer o relatório com mais detalhes. Mas arriscando deixar claro minha ignorância, eu não consigo deixar de lado um certo incômodo com algumas das métricas utilizadas. A própria diminuição da riqueza global é em grande parte consequência direta da relação das taxas de câmbio entre as moedas e não da produção ou destruição de bens ou serviços que podem ser usufruídos pela população já me levanta algumas questões sobre qual é a informação real que estamos obtendo através deste índice. A ideia de que eu sendo de dono de uma mesma casa por dois anos seguintes, minha riqueza pode aumentar em diminuir de acordo com a relação entre o real e o dólar, me parece uma camada de abstração na relação real entre as coisas e as pessoas que merecem um estudo mais aprofundado.&lt;br /&gt;
&lt;br /&gt;
Da mesma forma, a definição de limites fixos definidos em dólar mundialmente me levanta questionamentos. O primeiro recorte que aparece é aqueles com riqueza abaixo de $10.000, e um dos últimos é o discutido anteriormente com riqueza superior a $1.000.000. Mas apesar de caírem no mesmo grupo, duas pessoas com o mesmo $50.000 no Brasil e nos EUA, me parece que não estão na mesma situação financeira. Como qualquer relatório e pesquisa, limitações são necessárias, mas chamo atenção para estas pois de certa forma, elas vão se retomar quando discutirmos a desigualdade no mundo.&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Econof%C3%ADsica&amp;diff=9714</id>
		<title>Econofísica</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Econof%C3%ADsica&amp;diff=9714"/>
		<updated>2023-10-25T04:14:37Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Integrantes'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Professores IF: &lt;br /&gt;
''José Roberto Iglesias, Sebastián Gonçalves''&lt;br /&gt;
&lt;br /&gt;
Alunos: &lt;br /&gt;
''Ben-Hur Francisco Cardoso''&lt;br /&gt;
&lt;br /&gt;
Colaboradores externos: &lt;br /&gt;
''Guillermo Abramson e Marcelo Kuperman (CAB-Bariloche, Argentina),''&lt;br /&gt;
&lt;br /&gt;
''Cristian Fernando Moukarzel (Mexico)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Estudamos modelos ''microscópicos'' entre  agentes que intercambiam uma fração de seu capital&lt;br /&gt;
de acordo a diferentes regras. Por simulação observamos a dinâmica e o estado final do sistema &lt;br /&gt;
caracterizado pela distribuição de renda, o que identifica as diferentes ''economias'' possíveis.&lt;br /&gt;
Os parâmetros que entram nos modelos são: poupança (save) ou aversão ao risco, proteção dos pobres (p ou f dependendo do modelo).&lt;br /&gt;
Os modelos também podem considerar dois tipos de agentes (cooperadores e não-cooperadores) ou interações por classes (parâmetro u)&lt;br /&gt;
Esses modelos e os resultados são separados a continuação por aluno:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tobias'''&lt;br /&gt;
&lt;br /&gt;
* [[Distribuição de Renda e Cooperação (Tobias)]]&lt;br /&gt;
&lt;br /&gt;
* [[Figuras para o artigo]]&lt;br /&gt;
&lt;br /&gt;
'''Gaspar'''&lt;br /&gt;
&lt;br /&gt;
* [[Comparação entre regra do mínimo e regra do perdedor (Gaspar)]]&lt;br /&gt;
--última atualização: 03/09/2006&lt;br /&gt;
&lt;br /&gt;
* [[Gini vs time]]&lt;br /&gt;
teste de gaspar&lt;br /&gt;
&lt;br /&gt;
* [[Investigações posteriores sobre autocorrelação (Gaspar)]]&lt;br /&gt;
--última atualização: 21/08/2006&lt;br /&gt;
&lt;br /&gt;
* [[Variação de &amp;quot;w&amp;quot; na regra do mínimo (Gaspar)]]&lt;br /&gt;
--última atualização: 30/08/2006&lt;br /&gt;
&lt;br /&gt;
* [[Distribuição de riquezas em função da aversão ao risco e capital inicial]]&lt;br /&gt;
--última atualização: 24/04/2007&lt;br /&gt;
&lt;br /&gt;
* [[Modelo de gráfico em Gnuplot]]&lt;br /&gt;
--última atualização: 01/05/2007&lt;br /&gt;
&lt;br /&gt;
* [[Cálculo do valor inicial do índice Gini (Gaspar)]]&lt;br /&gt;
--última atualização: 22/05/2007&lt;br /&gt;
&lt;br /&gt;
* Agenda&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;s&amp;gt;Traçar cortes na superfície que relaciona a riqueza final em função de riqueza inicial e risco&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;s&amp;gt;Capital final x Risco: Fazer curva suave para 0.5&amp;lt;f&amp;lt;0.2 promediado sobre capitais inicias e juntar numa figura&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;s&amp;gt;Melhorar estatística nos casos f&amp;lt;0.2&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Que grandezas representar em funçaõ de f?&lt;br /&gt;
  risco ótimo, risco corte, ...&lt;br /&gt;
&lt;br /&gt;
- A correleação entre riquezas final e inicial é TRANSIENTE, porem os efeitos de MEMORIA dependen do f&lt;br /&gt;
  Então é razoável mostrar evolução temporal (do que??) para f diferentes &lt;br /&gt;
&lt;br /&gt;
- Simular regra do mínimo com um risco mínimo não-nulo (sugestão: risco mínimo de 0.3)&lt;br /&gt;
&lt;br /&gt;
- Implementar reposição de agentes quando houver bancarrota&lt;br /&gt;
&lt;br /&gt;
- Perturbação na evolução temporal: alteração de &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; no meio da simulação para reacomodação do sistema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* [[Uma análise de auto-correlação temporal (Gaspar)]]&lt;br /&gt;
--última atualização: --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tiago'''&lt;br /&gt;
&lt;br /&gt;
Evolução da distribuição de riquezas:&lt;br /&gt;
*[[histogramas]]&lt;br /&gt;
&lt;br /&gt;
'''Jhordan'''&lt;br /&gt;
* [[Global Wealth Report 2023]]&lt;br /&gt;
* [[Sustainable Development Outlook 2019: Gathering storms and silver linings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;analytics uacct=&amp;quot;UA-379257-2&amp;quot;&amp;gt;&amp;lt;/analytics&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=9184</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=9184"/>
		<updated>2022-11-10T03:44:55Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba¹'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[AC: Jogo da Vida | Jogo da Vida e PCAEGOL]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |0/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Dinâmica de flora&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logístico: simples e com atraso]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido: &amp;lt;br&amp;gt; tradicional e adimensional]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 - Principal responsável pelo conteúdo produzido. Em caso de identificação de algum erro, contatar sbjhordan @ gmail.com&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Lotka-Volterra&amp;diff=9183</id>
		<title>Modelo de Lotka-Volterra</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Lotka-Volterra&amp;diff=9183"/>
		<updated>2022-11-10T03:42:37Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: /* Versão adimensional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[AC: Jogo da Vida | Jogo da Vida]]|[[Modelo de Lotka-Volterra amortecido]]}}&lt;br /&gt;
&lt;br /&gt;
== Versão tradicional ==&lt;br /&gt;
&lt;br /&gt;
No modelo de Lotka-Volterra temos as seguintes considerações:&lt;br /&gt;
&lt;br /&gt;
*Na ausência de predadores, a população de presas aumenta a uma taxa proporcional à população atual;&lt;br /&gt;
*Na ausência de presas, os predadores irão à extinção;&lt;br /&gt;
*O número de encontro entre presas e predadores é proporcional a produto das duas populações. &lt;br /&gt;
**Estes encontros beneficiam os predadores em detrimento das presas.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, as equações são:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dt}=x\left(a-\alpha y\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dy}{dt}=y\left(-c+\gamma x\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a:&amp;lt;/math&amp;gt; taxa de crescimento de presas sem predadores;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha:&amp;lt;/math&amp;gt;taxa de decréscimo da população de presas devido a predação;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c:&amp;lt;/math&amp;gt; taxa de mortalidade da população de predadores sem presas;&lt;br /&gt;
*'''&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\gamma&amp;lt;/math&amp;gt;''': taxa de crescimento de predadores devido a predação.&lt;br /&gt;
&lt;br /&gt;
=== Separação de variáveis ===&lt;br /&gt;
Utilizando a separação de variáveis, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dt}\frac{dt}{dx}=\frac{y\left(-c+\gamma x\right)}{x\left(a-\alpha y\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dx}=\frac{y\left(-c+\gamma x\right)}{x\left(a-\alpha y\right)}&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{\left(a-\alpha y\right)}{y}dy=\frac{\left(-c+\gamma x\right)}{x}dx&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\frac{a}{y}-\alpha\right)dy=\left(-\frac{c}{x}+\gamma\right)dx&amp;lt;/math&amp;gt;Integrando ambos os lados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;a\ln y-\alpha y=-c\ln x+\gamma x+C&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;a\ln y-\alpha y+c\ln x-\gamma x=C&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;C&amp;lt;/math&amp;gt; é uma constante de integração. Para plotarmos um gráfico, considerando apenas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a=\alpha=\gamma=c=1&amp;lt;/math&amp;gt; Temos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\ln y+\ln x-\left(x+y\right)=C&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um ponto de equilíbrio fora da origem é obtido quando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dx}{dt}=x\left(a-\alpha y\right)=0\rightarrow y=\frac{a}{\alpha}=1&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dt}=y\left(-c+\gamma x\right)=0\rightarrow x=\frac{c}{\gamma}=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então neste caso, o sistema oscila em torno de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(1,1\right)&amp;lt;/math&amp;gt;  e a constante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;C&amp;lt;/math&amp;gt; é definida pelas condições iniciais &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{0},y_{0}\right)&amp;lt;/math&amp;gt;. Para a condição em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{0}=y_{0}=1&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\ln1+\ln1-\left(1+1\right)=C&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;-2=C&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então para este conjunto de parâmetros e condições iniciais: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\ln y+\ln x-\left(x+y\right)+2=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neste caso o sistema vai permanecer no ponto de equilíbrio. Para outras condições iniciais, o sistema vai oscilar em torno do ponto de equilíbrio. Obviamente além do ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(1,1\right)&amp;lt;/math&amp;gt;, temos um ponto de equilíbrio em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt;. Vamos analisar a dinâmica na vizinhança dos pontos através de um processo simples de linearização. &lt;br /&gt;
&lt;br /&gt;
[[Ficheiro:Plot Lotka-Volterra.png|borda|miniaturadaimagem|&amp;lt;math&amp;gt;f\left(x,y\right)=\ln y+\ln x-\left(x+y\right)-C&amp;lt;/math&amp;gt; com as condições  &amp;lt;math&amp;gt;a=\alpha=c=\gamma=1&amp;lt;/math&amp;gt;  e condição inicial arbitrária, plotado no [https://www.geogebra.org/ GeoGebra].|alt=]]&lt;br /&gt;
=== Linearização em torno do ponto de equilíbrio ===&lt;br /&gt;
Primeiro podemos perceber que o sistema é quase-linear em torno de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt;, verificando que satisfaz:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}\left[\frac{\text{parte não linear}}{\text{parte linear}}\right]=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então lembrando as equações:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dt}=\left[xa\right]-\left(\alpha xy\right)=\left[\text{linear}\right]-\left(\text{não linear}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dy}{dt}=-\left[yc\right]+\left(\gamma yx\right)=-\left[\text{linear}\right]+\left(\text{não linear}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\alpha xy}{xa}=\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\alpha}{a}y=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\gamma xy}{cy}=\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\gamma}{c}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desprezando então os termos não lineares podemos escrever o seguinte sistema linearizado em torno da origem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\begin{array}{c}&lt;br /&gt;
\dot{x}\\&lt;br /&gt;
\dot{y}&lt;br /&gt;
\end{array}\right)=\left(\begin{array}{cc}&lt;br /&gt;
a &amp;amp; 0\\&lt;br /&gt;
0 &amp;amp; -c&lt;br /&gt;
\end{array}\right)\left(\begin{array}{c}&lt;br /&gt;
x\\&lt;br /&gt;
y&lt;br /&gt;
\end{array}\right)&amp;lt;/math&amp;gt;Calculando os autovalores da matriz, obtemos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;-\left(a-\lambda\right)\left(-c-\lambda\right)=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(a-\lambda\right)\left(c+\lambda\right)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
os seguintes autovalores &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda=\left\{ a,-c\right\}&amp;lt;/math&amp;gt;. Como um dos valores tem parte real positiva, então é um ponto instável, especificamente devido aos sinais opostos é um ponto de sela. Como é instável significa que se a condição inicial for próxima de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt;, a evolução do sistema vai se afastar do ponto de equilíbrio. Essa aproximação também indica que próximo do ponto de equilíbrio, a dinâmica pode ser descrita tanto pelo conjunto de equações não lineares, como pelo sistema linear.&lt;br /&gt;
&lt;br /&gt;
Agora o segundo ponto de equilíbrio, de maneira geral é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;. Primeiro reescrevemos o sistema em torno do ponto de equilíbrio, isto é, fazemos um deslocamento &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=x-\frac{c}{\gamma}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v=y-\frac{a}{\alpha}&amp;lt;/math&amp;gt;. Então temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dx=du&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dv=dy&amp;lt;/math&amp;gt; e substituindo, para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{x}&amp;lt;/math&amp;gt;:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=\left(u+\frac{c}{\gamma}\right)a-\alpha\left(u+\frac{c}{\gamma}\right)\left(v+\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=ua+\frac{c}{\gamma}a-\alpha uv-\frac{\alpha c}{\gamma}v-ua-\frac{ca}{\gamma}&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=-\alpha uv-\frac{\alpha c}{\gamma}v&amp;lt;/math&amp;gt;E para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{y}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dv}{dt}=-\left(v+\frac{a}{\alpha}\right)c+\gamma\left(v+\frac{a}{\alpha}\right)\left(u+\frac{c}{\gamma}\right)&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dv}{dt}=-cv-\frac{ca}{\alpha}+\gamma vu+\frac{\gamma a}{\alpha}u+cv+\frac{ca}{\alpha}&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dv}{dt}=\gamma vu+\frac{\gamma a}{\alpha}u&amp;lt;/math&amp;gt;Podemos analisar o comportamento em torno do ponto de equilíbrio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}-\frac{\alpha uv}{\frac{\alpha vc}{\gamma}}=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}-\frac{\gamma}{c}u=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\frac{\gamma vu}{\frac{\gamma au}{\alpha}}=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\frac{\alpha}{a}v=0&amp;lt;/math&amp;gt;Desprezando os termos não lineares então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\begin{array}{c}&lt;br /&gt;
\dot{u}\\&lt;br /&gt;
\dot{v}&lt;br /&gt;
\end{array}\right)=\left(\begin{array}{cc}&lt;br /&gt;
0 &amp;amp; -\frac{\alpha c}{\gamma}\\&lt;br /&gt;
\frac{\gamma a}{\alpha} &amp;amp; 0&lt;br /&gt;
\end{array}\right)\left(\begin{array}{c}&lt;br /&gt;
u\\&lt;br /&gt;
v&lt;br /&gt;
\end{array}\right)&amp;lt;/math&amp;gt;Então os autovalores correspondentes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;-\lambda^{2}-\frac{\gamma a}{\alpha}\frac{\alpha c}{\gamma}=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lambda=\pm\sqrt{-ac}=\pm\sqrt{ac}i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como temos raízes puramente imaginárias e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda_{1}=\lambda_{2}^{*}&amp;lt;/math&amp;gt;, temos um centro, ponto de estabilidade. Isto é, se a condição inicial for próxima de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt; o sistema evoluirá de forma que o estado do sistema permanecerá próximo do ponto de equilíbrio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:Tabela de autovaloes.png|miniaturadaimagem|Classificação dos pontos de estabilidade de acordo com os autovalores&amp;lt;ref&amp;gt;[http://www.sel.eesc.usp.br/lac/disciplinas/sels/arquivos/sel364/private/aula1a2cnl.pdf Análise de sistemas não-lineares] (Vilma A. Oliveira e José Ricardo Rosolen, USP)&amp;lt;/ref&amp;gt;.|300x300px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Segundo método de Lyapunov ===&lt;br /&gt;
Para avaliar o ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{1},y_{1}\right)=\left(0,0\right)&amp;lt;/math&amp;gt;, podemos usar de maneira análoga ao [[Métodos de Lyapunov|exemplo do segundo critério de Lyapunov]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)=\frac{x^{2}}{\alpha}-\frac{y^{2}}{\gamma}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como já discutimos  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}_{0}\right)=0&amp;lt;/math&amp;gt; e a região &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}\left\{ \left(x,y\right)|\left|x\right|&amp;gt;\left|y\right|\right\}&amp;lt;/math&amp;gt; onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt; para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}\neq\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; , sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; um ponto de acumulação em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;&amp;lt;ref&amp;gt;[http://www.dii.unimo.it/~zanasi/didattica/Teoria_dei_Sistemi/Luc_TDS_ING_2016_Stability_Analysis_of_Nonlinear_Systems.pdf Stability Analysis of Nonlinear Systems] (Roberto Zanasi, Universidade de Módena e Reggio Emília)&amp;lt;/ref&amp;gt;. Então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{V}\left(\boldsymbol{x}\right) &amp;amp; =\left[\nabla V\right]\cdot\left[\boldsymbol{f}\left(\boldsymbol{x}\right)\right]\\&lt;br /&gt;
 &amp;amp; =\left(\frac{2x}{\alpha},-\frac{2y}{\gamma}\right)\left(\dot{x},\dot{y}\right)\\&lt;br /&gt;
 &amp;amp; =2x^{2}\frac{a}{\alpha}-2x^{2}y+2y^{2}\frac{c}{\gamma}-2y^{2}x\\&lt;br /&gt;
 &amp;amp; =2x^{2}\left(\frac{a}{\alpha}-y\right)+2y^{2}\left(\frac{c}{\gamma}-x\right)\end{align}&amp;lt;/math&amp;gt;Lembrando do nosso segundo ponto de equilíbrio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{2},y_{2}\right)=\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)=2x^{2}\left(y_{2}-y\right)+2y^{2}\left(x_{2}-x\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Então se estamos próximos suficiente do ponto de equilíbrio em análise &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{1},y_{1}\right)=\left(0,0\right)&amp;lt;/math&amp;gt;, temos então uma instabilidade local pois &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt; é positivo definido em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;,  uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left|y\right|&amp;lt;\left|y_{2}\right|&amp;lt;/math&amp;gt; , &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left|x\right|&amp;lt;\left|x_{2}\right|&amp;lt;/math&amp;gt;.  Olhando o segundo ponto de equilíbrio, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{2},y_{2}\right)=\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;, podemos manipular as equações da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dt}=x\left(a-\alpha y\right)=x\alpha\left(\frac{a}{\alpha}-y\right)=x\alpha\left(y_{2}-y\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dy}{dt}=y\left(-c+\gamma x\right)=y\gamma\left(-\frac{c}{\gamma}+x\right)=y\gamma\left(-x_{2}+x\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definindo então a seguinte função de Lyapunov:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;V\left(x,y\right)=x-x_{2}\left[1+\ln\left(\frac{x}{x_{2}}\right)\right]+\frac{\alpha}{\gamma}\left(y-y_{2}\left[1+\ln\left(\frac{y}{y_{2}}\right)\right]\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando no ponto de e equilíbrio, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
V\left(x_{2},y_{2}\right) &amp;amp; =x_{2}-x_{2}\left[1+\ln\left(\frac{x_{2}}{x_{2}}\right)\right]+\frac{\alpha}{\gamma}\left(y_{2}-y_{2}\left[1+\ln\left(\frac{y_{2}}{y_{2}}\right)\right]\right)\\&lt;br /&gt;
 &amp;amp; =x_{2}-x_{2}+\frac{\alpha}{\gamma}\left(y_{2}-y_{2}\right)\\&lt;br /&gt;
 &amp;amp; =0\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora precisamos que para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x,y\right)\neq0&amp;lt;/math&amp;gt; tenhamos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V&amp;gt;0&amp;lt;/math&amp;gt;, na região próxima ao ponto de equilíbrio. Separando em dois termos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
V\left(x,y\right) &amp;amp; =\left[x-x_{2}\left(1+\ln\left(\frac{x}{x_{2}}\right)\right)\right]+\frac{\alpha}{\gamma}\left[y-y_{2}\left(1+\ln\left(\frac{y}{y_{2}}\right)\right)\right]\\&lt;br /&gt;
 &amp;amp; =V\left(x\right)+\frac{\alpha}{\gamma}V\left(y\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De forma geral temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(z\right)=z-z_{2}\left(1+\ln\left(\frac{z}{z_{2}}\right)\right)&amp;lt;/math&amp;gt;, e precisamos que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(z\right)&amp;gt;0&amp;lt;/math&amp;gt; quando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z\neq z_{2}&amp;lt;/math&amp;gt;. Além de ser facilmente visto via gráfico para todos os valores aceitáveis &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z,z_{2}\in\left[0,1\right]&amp;lt;/math&amp;gt;, também podemos analisar a seguinte desigualdade:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
z-z_{2}\left(1+\ln\left(\frac{z}{z_{2}}\right)\right) &amp;amp; &amp;gt;0\\&lt;br /&gt;
z &amp;amp; &amp;gt;z_{2}\left(1+\ln\left(\frac{z}{z_{2}}\right)\right)\\&lt;br /&gt;
\frac{z}{z_{2}} &amp;amp; &amp;gt;1+\ln\left(\frac{z}{z_{2}}\right)\\&lt;br /&gt;
e^{\frac{z}{z_{2}}} &amp;amp; &amp;gt;e\frac{z}{z_{2}}\\&lt;br /&gt;
e^{u} &amp;amp; &amp;gt;eu\end{align}&amp;lt;/math&amp;gt;Podemos ver quer a desigualdade desigualdade é válida exceto se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x=1&amp;lt;/math&amp;gt;. Mas como fizemos a seguinte substituição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=\frac{z}{z_{2}}&amp;lt;/math&amp;gt; então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=1\rightarrow z=z_{2}&amp;lt;/math&amp;gt;, e de fato que queremos que seja positiva definida fora do ponto de equilíbrio. Uma vez que sabemos que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(x,y\right)&amp;lt;/math&amp;gt; é positivo definido, calculamos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{V}\left(\boldsymbol{x}\right) &amp;amp; =\left[\nabla V\right]\cdot\left[\boldsymbol{f}\left(\boldsymbol{x}\right)\right]\\&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp; =\left[\frac{\partial V\left(x\right)}{\partial x},\frac{\alpha}{\gamma}\frac{\partial V\left(y\right)}{\partial y}\right]\cdot\left[x\alpha\left(y_{2}-y\right),y\gamma\left(-x_{2}+x\right)\right] \\&lt;br /&gt;
 &amp;amp; =\left[1-\frac{x_{2}}{x},\frac{\alpha}{\gamma}\left(1-\frac{y_{2}}{y}\right)\right]\cdot\left[x\alpha\left(y_{2}-y\right),y\gamma\left(-x_{2}+x\right)\right]\\&lt;br /&gt;
 &amp;amp; =\left(\frac{x-x_{2}}{x}\right)\left(x\alpha\left(y_{2}-y\right)\right)+\frac{\alpha}{\gamma}\left(\frac{y-y_{2}}{y}\right)\left(y\gamma\left(-x_{2}+x\right)\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)=\alpha\left(x-x_{2}\right)\left(y_{2}-y\right)-\alpha\left(y_{2}-y\right)\left(x-x_{2}\right)=0&amp;lt;/math&amp;gt;Temos então a condição de estabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\leq0&amp;lt;/math&amp;gt; concordando como que já havíamos obtidos anteriormente.&lt;br /&gt;
&lt;br /&gt;
=== Solução numérica ===&lt;br /&gt;
&lt;br /&gt;
Um exemplo resolvido numericamente pode ser visto em [[Modelo de Lotka-Volterra amortecido]], onde foi aproveitado os códigos desenvolvidos para este mesmo.&lt;br /&gt;
&lt;br /&gt;
== Versão adimensional ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Originalmente temos 4 parâmetros, mas podemos realizar uma série de manipulações visando uma redução da quantidade de parâmetros. Escrevendo o sistema como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dN}{dt} &amp;amp; =aN-bNP\\&lt;br /&gt;
\frac{dP}{dt} &amp;amp; =cPN-dP&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos definir então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\widehat{t}=at&amp;lt;/math&amp;gt;. Multiplicando ambas equações por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1/a&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{1}{a}\frac{dN}{dt} &amp;amp; =N-\frac{b}{a}NP\\&lt;br /&gt;
\frac{1}{a}\frac{dP}{dt} &amp;amp; =\frac{c}{a}PN-\frac{d}{a}P&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se definimos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p=\left(b/a\right)P&amp;lt;/math&amp;gt; e multiplicamos a segunda equação por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b/a&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dN}{d\widehat{t}} &amp;amp; =N-Np\\&lt;br /&gt;
\frac{d}{d\widehat{t}}\left(\frac{bP}{a}\right) &amp;amp; =\frac{c}{a}\left(\frac{b}{a}P\right)N-\frac{d}{a}\left(\frac{b}{a}P\right)&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora se multiplicamos a primeira linha e definimos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n=\left(c/d\right)N&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{d}{d\widehat{t}}\left(\frac{c}{d}N\right) &amp;amp; =\frac{c}{d}N-\left(\frac{c}{d}N\right)p\\&lt;br /&gt;
\frac{dp}{d\widehat{t}} &amp;amp; =\frac{c}{a}pN-\frac{d}{a}p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definindo então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha=\frac{d}{a}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{d n}{d\widehat{t}} &amp;amp; =n-np\\&lt;br /&gt;
\frac{dp}{d\widehat{t}} &amp;amp; =\frac{c}{a}\frac{d}{c}pn-\alpha p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou então, ficamos apenas com um único parâmetro.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dn}{d\widehat{t}} &amp;amp; =n\left(1-p\right)\\&lt;br /&gt;
\frac{dp}{d\widehat{t}} &amp;amp; =\alpha p\left(n-1\right)&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Separação de variáveis ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aplicando a separação de variáveis, temos então: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dp}{dn} &amp;amp; =\frac{\alpha p\left(n-1\right)}{n\left(1-p\right)}\\&lt;br /&gt;
\frac{\left(1-p\right)}{p}dp &amp;amp; =\alpha\frac{\left(n-1\right)}{n}dn\\&lt;br /&gt;
\left(\frac{1}{p}-1\right)dp &amp;amp; =\alpha\left(1-\frac{1}{n}\right)dn\\&lt;br /&gt;
\ln p-p+K &amp;amp; =\alpha\left(n-\ln\left(n\right)\right)\\&lt;br /&gt;
K &amp;amp; =\alpha n+p-\alpha\ln\left(n\right)-\ln p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou ainda, apenas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;K=\alpha n+p+\ln\left(n^{\alpha}p\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
=== Principais materiais utilizados ===&lt;br /&gt;
&lt;br /&gt;
# [http://www.math.nthu.edu.tw/~sbhsu/0416.pdf A survey of constructing Lyapunov functions for mathematical models in population biology] (Sze-Bi, Revista Taiwanesa de Matemática  )&lt;br /&gt;
# [https://repositorio.unesp.br/bitstream/handle/11449/134026/000856864.pdf?sequence=1||Estabilidade Estabilidade de pontos de equilíbrio e existência de soluções periódicas em alguns modelos bidimensionais] (Salvador Tavares de Oliveira, UNESP)&lt;br /&gt;
# [https://arxiv.org/ftp/arxiv/papers/1504/1504.06244.pdf||Modelagem Modelagem Matemática e estabilidade de sistemas predador-presa]  (Paulo Laerte Natti e outros, UEL)&lt;br /&gt;
# [https://guri.unipampa.edu.br/uploads/evt/arq_trabalhos/12356/seer_12356.pdf||Modelo Modelo de Lotka-Volterra: a dinâmica predador-presa] (Rafael Biasi Pata e Elisa Regina Cara, UNIPAMPA)&lt;br /&gt;
&lt;br /&gt;
=== Citações ===&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{Ecologia| [[AC: Jogo da Vida | Jogo da Vida]]|[[Modelo de Lotka-Volterra amortecido]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Lotka-Volterra&amp;diff=9182</id>
		<title>Modelo de Lotka-Volterra</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Lotka-Volterra&amp;diff=9182"/>
		<updated>2022-11-10T03:41:38Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[AC: Jogo da Vida | Jogo da Vida]]|[[Modelo de Lotka-Volterra amortecido]]}}&lt;br /&gt;
&lt;br /&gt;
== Versão tradicional ==&lt;br /&gt;
&lt;br /&gt;
No modelo de Lotka-Volterra temos as seguintes considerações:&lt;br /&gt;
&lt;br /&gt;
*Na ausência de predadores, a população de presas aumenta a uma taxa proporcional à população atual;&lt;br /&gt;
*Na ausência de presas, os predadores irão à extinção;&lt;br /&gt;
*O número de encontro entre presas e predadores é proporcional a produto das duas populações. &lt;br /&gt;
**Estes encontros beneficiam os predadores em detrimento das presas.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, as equações são:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dt}=x\left(a-\alpha y\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dy}{dt}=y\left(-c+\gamma x\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a:&amp;lt;/math&amp;gt; taxa de crescimento de presas sem predadores;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha:&amp;lt;/math&amp;gt;taxa de decréscimo da população de presas devido a predação;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c:&amp;lt;/math&amp;gt; taxa de mortalidade da população de predadores sem presas;&lt;br /&gt;
*'''&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\gamma&amp;lt;/math&amp;gt;''': taxa de crescimento de predadores devido a predação.&lt;br /&gt;
&lt;br /&gt;
=== Separação de variáveis ===&lt;br /&gt;
Utilizando a separação de variáveis, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dt}\frac{dt}{dx}=\frac{y\left(-c+\gamma x\right)}{x\left(a-\alpha y\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dx}=\frac{y\left(-c+\gamma x\right)}{x\left(a-\alpha y\right)}&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{\left(a-\alpha y\right)}{y}dy=\frac{\left(-c+\gamma x\right)}{x}dx&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\frac{a}{y}-\alpha\right)dy=\left(-\frac{c}{x}+\gamma\right)dx&amp;lt;/math&amp;gt;Integrando ambos os lados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;a\ln y-\alpha y=-c\ln x+\gamma x+C&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;a\ln y-\alpha y+c\ln x-\gamma x=C&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;C&amp;lt;/math&amp;gt; é uma constante de integração. Para plotarmos um gráfico, considerando apenas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a=\alpha=\gamma=c=1&amp;lt;/math&amp;gt; Temos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\ln y+\ln x-\left(x+y\right)=C&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um ponto de equilíbrio fora da origem é obtido quando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dx}{dt}=x\left(a-\alpha y\right)=0\rightarrow y=\frac{a}{\alpha}=1&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dt}=y\left(-c+\gamma x\right)=0\rightarrow x=\frac{c}{\gamma}=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então neste caso, o sistema oscila em torno de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(1,1\right)&amp;lt;/math&amp;gt;  e a constante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;C&amp;lt;/math&amp;gt; é definida pelas condições iniciais &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{0},y_{0}\right)&amp;lt;/math&amp;gt;. Para a condição em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{0}=y_{0}=1&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\ln1+\ln1-\left(1+1\right)=C&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;-2=C&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então para este conjunto de parâmetros e condições iniciais: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\ln y+\ln x-\left(x+y\right)+2=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neste caso o sistema vai permanecer no ponto de equilíbrio. Para outras condições iniciais, o sistema vai oscilar em torno do ponto de equilíbrio. Obviamente além do ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(1,1\right)&amp;lt;/math&amp;gt;, temos um ponto de equilíbrio em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt;. Vamos analisar a dinâmica na vizinhança dos pontos através de um processo simples de linearização. &lt;br /&gt;
&lt;br /&gt;
[[Ficheiro:Plot Lotka-Volterra.png|borda|miniaturadaimagem|&amp;lt;math&amp;gt;f\left(x,y\right)=\ln y+\ln x-\left(x+y\right)-C&amp;lt;/math&amp;gt; com as condições  &amp;lt;math&amp;gt;a=\alpha=c=\gamma=1&amp;lt;/math&amp;gt;  e condição inicial arbitrária, plotado no [https://www.geogebra.org/ GeoGebra].|alt=]]&lt;br /&gt;
=== Linearização em torno do ponto de equilíbrio ===&lt;br /&gt;
Primeiro podemos perceber que o sistema é quase-linear em torno de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt;, verificando que satisfaz:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}\left[\frac{\text{parte não linear}}{\text{parte linear}}\right]=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então lembrando as equações:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dt}=\left[xa\right]-\left(\alpha xy\right)=\left[\text{linear}\right]-\left(\text{não linear}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dy}{dt}=-\left[yc\right]+\left(\gamma yx\right)=-\left[\text{linear}\right]+\left(\text{não linear}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\alpha xy}{xa}=\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\alpha}{a}y=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\gamma xy}{cy}=\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\gamma}{c}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desprezando então os termos não lineares podemos escrever o seguinte sistema linearizado em torno da origem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\begin{array}{c}&lt;br /&gt;
\dot{x}\\&lt;br /&gt;
\dot{y}&lt;br /&gt;
\end{array}\right)=\left(\begin{array}{cc}&lt;br /&gt;
a &amp;amp; 0\\&lt;br /&gt;
0 &amp;amp; -c&lt;br /&gt;
\end{array}\right)\left(\begin{array}{c}&lt;br /&gt;
x\\&lt;br /&gt;
y&lt;br /&gt;
\end{array}\right)&amp;lt;/math&amp;gt;Calculando os autovalores da matriz, obtemos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;-\left(a-\lambda\right)\left(-c-\lambda\right)=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(a-\lambda\right)\left(c+\lambda\right)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
os seguintes autovalores &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda=\left\{ a,-c\right\}&amp;lt;/math&amp;gt;. Como um dos valores tem parte real positiva, então é um ponto instável, especificamente devido aos sinais opostos é um ponto de sela. Como é instável significa que se a condição inicial for próxima de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt;, a evolução do sistema vai se afastar do ponto de equilíbrio. Essa aproximação também indica que próximo do ponto de equilíbrio, a dinâmica pode ser descrita tanto pelo conjunto de equações não lineares, como pelo sistema linear.&lt;br /&gt;
&lt;br /&gt;
Agora o segundo ponto de equilíbrio, de maneira geral é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;. Primeiro reescrevemos o sistema em torno do ponto de equilíbrio, isto é, fazemos um deslocamento &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=x-\frac{c}{\gamma}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v=y-\frac{a}{\alpha}&amp;lt;/math&amp;gt;. Então temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dx=du&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dv=dy&amp;lt;/math&amp;gt; e substituindo, para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{x}&amp;lt;/math&amp;gt;:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=\left(u+\frac{c}{\gamma}\right)a-\alpha\left(u+\frac{c}{\gamma}\right)\left(v+\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=ua+\frac{c}{\gamma}a-\alpha uv-\frac{\alpha c}{\gamma}v-ua-\frac{ca}{\gamma}&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=-\alpha uv-\frac{\alpha c}{\gamma}v&amp;lt;/math&amp;gt;E para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{y}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dv}{dt}=-\left(v+\frac{a}{\alpha}\right)c+\gamma\left(v+\frac{a}{\alpha}\right)\left(u+\frac{c}{\gamma}\right)&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dv}{dt}=-cv-\frac{ca}{\alpha}+\gamma vu+\frac{\gamma a}{\alpha}u+cv+\frac{ca}{\alpha}&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dv}{dt}=\gamma vu+\frac{\gamma a}{\alpha}u&amp;lt;/math&amp;gt;Podemos analisar o comportamento em torno do ponto de equilíbrio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}-\frac{\alpha uv}{\frac{\alpha vc}{\gamma}}=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}-\frac{\gamma}{c}u=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\frac{\gamma vu}{\frac{\gamma au}{\alpha}}=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\frac{\alpha}{a}v=0&amp;lt;/math&amp;gt;Desprezando os termos não lineares então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\begin{array}{c}&lt;br /&gt;
\dot{u}\\&lt;br /&gt;
\dot{v}&lt;br /&gt;
\end{array}\right)=\left(\begin{array}{cc}&lt;br /&gt;
0 &amp;amp; -\frac{\alpha c}{\gamma}\\&lt;br /&gt;
\frac{\gamma a}{\alpha} &amp;amp; 0&lt;br /&gt;
\end{array}\right)\left(\begin{array}{c}&lt;br /&gt;
u\\&lt;br /&gt;
v&lt;br /&gt;
\end{array}\right)&amp;lt;/math&amp;gt;Então os autovalores correspondentes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;-\lambda^{2}-\frac{\gamma a}{\alpha}\frac{\alpha c}{\gamma}=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lambda=\pm\sqrt{-ac}=\pm\sqrt{ac}i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como temos raízes puramente imaginárias e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda_{1}=\lambda_{2}^{*}&amp;lt;/math&amp;gt;, temos um centro, ponto de estabilidade. Isto é, se a condição inicial for próxima de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt; o sistema evoluirá de forma que o estado do sistema permanecerá próximo do ponto de equilíbrio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:Tabela de autovaloes.png|miniaturadaimagem|Classificação dos pontos de estabilidade de acordo com os autovalores&amp;lt;ref&amp;gt;[http://www.sel.eesc.usp.br/lac/disciplinas/sels/arquivos/sel364/private/aula1a2cnl.pdf Análise de sistemas não-lineares] (Vilma A. Oliveira e José Ricardo Rosolen, USP)&amp;lt;/ref&amp;gt;.|300x300px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Segundo método de Lyapunov ===&lt;br /&gt;
Para avaliar o ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{1},y_{1}\right)=\left(0,0\right)&amp;lt;/math&amp;gt;, podemos usar de maneira análoga ao [[Métodos de Lyapunov|exemplo do segundo critério de Lyapunov]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)=\frac{x^{2}}{\alpha}-\frac{y^{2}}{\gamma}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como já discutimos  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}_{0}\right)=0&amp;lt;/math&amp;gt; e a região &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}\left\{ \left(x,y\right)|\left|x\right|&amp;gt;\left|y\right|\right\}&amp;lt;/math&amp;gt; onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt; para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}\neq\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; , sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; um ponto de acumulação em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;&amp;lt;ref&amp;gt;[http://www.dii.unimo.it/~zanasi/didattica/Teoria_dei_Sistemi/Luc_TDS_ING_2016_Stability_Analysis_of_Nonlinear_Systems.pdf Stability Analysis of Nonlinear Systems] (Roberto Zanasi, Universidade de Módena e Reggio Emília)&amp;lt;/ref&amp;gt;. Então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{V}\left(\boldsymbol{x}\right) &amp;amp; =\left[\nabla V\right]\cdot\left[\boldsymbol{f}\left(\boldsymbol{x}\right)\right]\\&lt;br /&gt;
 &amp;amp; =\left(\frac{2x}{\alpha},-\frac{2y}{\gamma}\right)\left(\dot{x},\dot{y}\right)\\&lt;br /&gt;
 &amp;amp; =2x^{2}\frac{a}{\alpha}-2x^{2}y+2y^{2}\frac{c}{\gamma}-2y^{2}x\\&lt;br /&gt;
 &amp;amp; =2x^{2}\left(\frac{a}{\alpha}-y\right)+2y^{2}\left(\frac{c}{\gamma}-x\right)\end{align}&amp;lt;/math&amp;gt;Lembrando do nosso segundo ponto de equilíbrio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{2},y_{2}\right)=\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)=2x^{2}\left(y_{2}-y\right)+2y^{2}\left(x_{2}-x\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Então se estamos próximos suficiente do ponto de equilíbrio em análise &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{1},y_{1}\right)=\left(0,0\right)&amp;lt;/math&amp;gt;, temos então uma instabilidade local pois &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt; é positivo definido em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;,  uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left|y\right|&amp;lt;\left|y_{2}\right|&amp;lt;/math&amp;gt; , &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left|x\right|&amp;lt;\left|x_{2}\right|&amp;lt;/math&amp;gt;.  Olhando o segundo ponto de equilíbrio, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{2},y_{2}\right)=\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;, podemos manipular as equações da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dt}=x\left(a-\alpha y\right)=x\alpha\left(\frac{a}{\alpha}-y\right)=x\alpha\left(y_{2}-y\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dy}{dt}=y\left(-c+\gamma x\right)=y\gamma\left(-\frac{c}{\gamma}+x\right)=y\gamma\left(-x_{2}+x\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definindo então a seguinte função de Lyapunov:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;V\left(x,y\right)=x-x_{2}\left[1+\ln\left(\frac{x}{x_{2}}\right)\right]+\frac{\alpha}{\gamma}\left(y-y_{2}\left[1+\ln\left(\frac{y}{y_{2}}\right)\right]\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando no ponto de e equilíbrio, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
V\left(x_{2},y_{2}\right) &amp;amp; =x_{2}-x_{2}\left[1+\ln\left(\frac{x_{2}}{x_{2}}\right)\right]+\frac{\alpha}{\gamma}\left(y_{2}-y_{2}\left[1+\ln\left(\frac{y_{2}}{y_{2}}\right)\right]\right)\\&lt;br /&gt;
 &amp;amp; =x_{2}-x_{2}+\frac{\alpha}{\gamma}\left(y_{2}-y_{2}\right)\\&lt;br /&gt;
 &amp;amp; =0\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora precisamos que para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x,y\right)\neq0&amp;lt;/math&amp;gt; tenhamos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V&amp;gt;0&amp;lt;/math&amp;gt;, na região próxima ao ponto de equilíbrio. Separando em dois termos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
V\left(x,y\right) &amp;amp; =\left[x-x_{2}\left(1+\ln\left(\frac{x}{x_{2}}\right)\right)\right]+\frac{\alpha}{\gamma}\left[y-y_{2}\left(1+\ln\left(\frac{y}{y_{2}}\right)\right)\right]\\&lt;br /&gt;
 &amp;amp; =V\left(x\right)+\frac{\alpha}{\gamma}V\left(y\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De forma geral temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(z\right)=z-z_{2}\left(1+\ln\left(\frac{z}{z_{2}}\right)\right)&amp;lt;/math&amp;gt;, e precisamos que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(z\right)&amp;gt;0&amp;lt;/math&amp;gt; quando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z\neq z_{2}&amp;lt;/math&amp;gt;. Além de ser facilmente visto via gráfico para todos os valores aceitáveis &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z,z_{2}\in\left[0,1\right]&amp;lt;/math&amp;gt;, também podemos analisar a seguinte desigualdade:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
z-z_{2}\left(1+\ln\left(\frac{z}{z_{2}}\right)\right) &amp;amp; &amp;gt;0\\&lt;br /&gt;
z &amp;amp; &amp;gt;z_{2}\left(1+\ln\left(\frac{z}{z_{2}}\right)\right)\\&lt;br /&gt;
\frac{z}{z_{2}} &amp;amp; &amp;gt;1+\ln\left(\frac{z}{z_{2}}\right)\\&lt;br /&gt;
e^{\frac{z}{z_{2}}} &amp;amp; &amp;gt;e\frac{z}{z_{2}}\\&lt;br /&gt;
e^{u} &amp;amp; &amp;gt;eu\end{align}&amp;lt;/math&amp;gt;Podemos ver quer a desigualdade desigualdade é válida exceto se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x=1&amp;lt;/math&amp;gt;. Mas como fizemos a seguinte substituição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=\frac{z}{z_{2}}&amp;lt;/math&amp;gt; então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=1\rightarrow z=z_{2}&amp;lt;/math&amp;gt;, e de fato que queremos que seja positiva definida fora do ponto de equilíbrio. Uma vez que sabemos que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(x,y\right)&amp;lt;/math&amp;gt; é positivo definido, calculamos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{V}\left(\boldsymbol{x}\right) &amp;amp; =\left[\nabla V\right]\cdot\left[\boldsymbol{f}\left(\boldsymbol{x}\right)\right]\\&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp; =\left[\frac{\partial V\left(x\right)}{\partial x},\frac{\alpha}{\gamma}\frac{\partial V\left(y\right)}{\partial y}\right]\cdot\left[x\alpha\left(y_{2}-y\right),y\gamma\left(-x_{2}+x\right)\right] \\&lt;br /&gt;
 &amp;amp; =\left[1-\frac{x_{2}}{x},\frac{\alpha}{\gamma}\left(1-\frac{y_{2}}{y}\right)\right]\cdot\left[x\alpha\left(y_{2}-y\right),y\gamma\left(-x_{2}+x\right)\right]\\&lt;br /&gt;
 &amp;amp; =\left(\frac{x-x_{2}}{x}\right)\left(x\alpha\left(y_{2}-y\right)\right)+\frac{\alpha}{\gamma}\left(\frac{y-y_{2}}{y}\right)\left(y\gamma\left(-x_{2}+x\right)\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)=\alpha\left(x-x_{2}\right)\left(y_{2}-y\right)-\alpha\left(y_{2}-y\right)\left(x-x_{2}\right)=0&amp;lt;/math&amp;gt;Temos então a condição de estabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\leq0&amp;lt;/math&amp;gt; concordando como que já havíamos obtidos anteriormente.&lt;br /&gt;
&lt;br /&gt;
=== Solução numérica ===&lt;br /&gt;
&lt;br /&gt;
Um exemplo resolvido numericamente pode ser visto em [[Modelo de Lotka-Volterra amortecido]], onde foi aproveitado os códigos desenvolvidos para este mesmo.&lt;br /&gt;
&lt;br /&gt;
== Versão adimensional ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Originalmente temos 4 parâmetros, mas podemos realizar uma série de manipulações visando uma redução da quantidade de parâmetros. Escrevendo o sistema como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dN}{dt} &amp;amp; =aN-bNP\\&lt;br /&gt;
\frac{dP}{dt} &amp;amp; =cPN-dP&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos definir então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\widehat{t}=at&amp;lt;/math&amp;gt;. Multiplicando ambas equações por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1/a&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{1}{a}\frac{dN}{dt} &amp;amp; =N-\frac{b}{a}NP\\&lt;br /&gt;
\frac{1}{a}\frac{dP}{dt} &amp;amp; =\frac{c}{a}PN-\frac{d}{a}P&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se definimos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p=\left(b/a\right)P&amp;lt;/math&amp;gt; e multiplicamos a segunda equação por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b/a&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dN}{d\widehat{t}} &amp;amp; =N-Np\\&lt;br /&gt;
\frac{d}{d\widehat{t}}\left(\frac{bP}{a}\right) &amp;amp; =\frac{c}{a}\left(\frac{b}{a}P\right)N-\frac{d}{a}\left(\frac{b}{a}P\right)&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora se multiplicamos a primeira linha e definimos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n=\left(c/d\right)N&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{d}{d\widehat{t}}\left(\frac{c}{d}N\right) &amp;amp; =\frac{c}{d}N-\left(\frac{c}{d}N\right)p\\&lt;br /&gt;
\frac{dp}{d\widehat{t}} &amp;amp; =\frac{c}{a}pN-\frac{d}{a}p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definindo então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha=\frac{d}{a}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{d}{d\widehat{t}}n &amp;amp; =n-np\\&lt;br /&gt;
\frac{dp}{d\widehat{t}} &amp;amp; =\frac{c}{a}\frac{d}{c}pn-\alpha p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou então, ficamos apenas com um único parâmetro.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dn}{d\widehat{t}} &amp;amp; =n\left(1-p\right)\\&lt;br /&gt;
\frac{dp}{d\widehat{t}} &amp;amp; =\alpha p\left(n-1\right)&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Separação de variáveis ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aplicando a separação de variáveis, temos então: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dp}{dn} &amp;amp; =\frac{\alpha p\left(n-1\right)}{n\left(1-p\right)}\\&lt;br /&gt;
\frac{\left(1-p\right)}{p}dp &amp;amp; =\alpha\frac{\left(n-1\right)}{n}dn\\&lt;br /&gt;
\left(\frac{1}{p}-1\right)dp &amp;amp; =\alpha\left(1-\frac{1}{n}\right)dn\\&lt;br /&gt;
\ln p-p+K &amp;amp; =\alpha\left(n-\ln\left(n\right)\right)\\&lt;br /&gt;
K &amp;amp; =\alpha n+p-\alpha\ln\left(n\right)-\ln p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou ainda, apenas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;K=\alpha n+p+\ln\left(n^{\alpha}p\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
&lt;br /&gt;
=== Principais materiais utilizados ===&lt;br /&gt;
&lt;br /&gt;
# [http://www.math.nthu.edu.tw/~sbhsu/0416.pdf A survey of constructing Lyapunov functions for mathematical models in population biology] (Sze-Bi, Revista Taiwanesa de Matemática  )&lt;br /&gt;
# [https://repositorio.unesp.br/bitstream/handle/11449/134026/000856864.pdf?sequence=1||Estabilidade Estabilidade de pontos de equilíbrio e existência de soluções periódicas em alguns modelos bidimensionais] (Salvador Tavares de Oliveira, UNESP)&lt;br /&gt;
# [https://arxiv.org/ftp/arxiv/papers/1504/1504.06244.pdf||Modelagem Modelagem Matemática e estabilidade de sistemas predador-presa]  (Paulo Laerte Natti e outros, UEL)&lt;br /&gt;
# [https://guri.unipampa.edu.br/uploads/evt/arq_trabalhos/12356/seer_12356.pdf||Modelo Modelo de Lotka-Volterra: a dinâmica predador-presa] (Rafael Biasi Pata e Elisa Regina Cara, UNIPAMPA)&lt;br /&gt;
&lt;br /&gt;
=== Citações ===&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{Ecologia| [[AC: Jogo da Vida | Jogo da Vida]]|[[Modelo de Lotka-Volterra amortecido]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=9181</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=9181"/>
		<updated>2022-11-10T02:44:09Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[AC: Jogo da Vida | Jogo da Vida e PCAEGOL]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |0/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Dinâmica de flora&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logístico: simples e com atraso]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido: &amp;lt;br&amp;gt; tradicional e adimensional]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=9180</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=9180"/>
		<updated>2022-11-10T02:42:35Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[AC: Jogo da Vida | Jogo da Vida e PCAEGOL]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |0/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Dinâmica de flora&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logístico: simples e com atraso]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido: &amp;lt;br&amp;gt; completo e reduzido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_de_Lyapunov&amp;diff=9179</id>
		<title>Métodos de Lyapunov</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_de_Lyapunov&amp;diff=9179"/>
		<updated>2022-11-10T02:39:15Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Linearização de sistemas de equações não lineares]] |[[Introdução à equações diferenciais com atraso]]}}&lt;br /&gt;
&lt;br /&gt;
Os critérios de Lyapunov para analisar a estabilidade em sistemas não lineares são:&lt;br /&gt;
*Primeiro critério de Lyapunov (método reduzido, método indireto ou teorema da linearização): a análise de estabilidade de um ponto de equilíbrio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; é feito estudando a estabilidade do sistema linearizado correspondente na vizinhança deste ponto de equilíbrio.&lt;br /&gt;
*Segundo critério de Lyapunov (método direto): a análise de estabilidade de um ponto de equilíbrio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; é feito usando funções escalares apropriadas definidas no espaço de estados.&lt;br /&gt;
&lt;br /&gt;
====== Primeiro critério ======&lt;br /&gt;
Considerando uma função contínua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{\boldsymbol{x}}=\boldsymbol{f}\left(\boldsymbol{x},\boldsymbol{u}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando a vizinhança do ponto de equilíbrio na origem &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{0},u_{0}\right)&amp;lt;/math&amp;gt; (qualquer ponto pode ser transladado para a origem), temos o seguinte correspondente sistema linearizado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\boldsymbol{f}\left(\boldsymbol{x},\boldsymbol{u}\right)=A\tilde{\boldsymbol{x}}\left(t\right)+B\tilde{\boldsymbol{u}}\left(t\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Se todos os autovalores da matriz &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;A&amp;lt;/math&amp;gt; tem parte real negativa o ponto de equilíbrio é assintoticamente estável;&lt;br /&gt;
*Se ao menos um dos auto valores da matriz da matriz &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;A&amp;lt;/math&amp;gt; tem parte real positiva então o ponto instável;&lt;br /&gt;
*Se um dos autovalores está localizado no eixo imaginário, isto é, tem parte real nula, mas todos os outros autovalores são negativos (não há autovalor positivo e nem todos são negativos), não é possível concluir nada sobre a estabilidade do ponto.&lt;br /&gt;
**Para 2 dimensões se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda_{1}=\lambda_{2}^{*}&amp;lt;/math&amp;gt; temos uma estabilidade não assintótica e se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda_{1}=\lambda_{2}&amp;lt;/math&amp;gt; temos um caso degenerado.&lt;br /&gt;
Olhando um exemplo simples para entendermos melhor, vamos considerar um sistema autônomo em duas dimensões. Especificamente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\begin{array}{c}&lt;br /&gt;
\dot{x}\\&lt;br /&gt;
\dot{y}&lt;br /&gt;
\end{array}\right)=\left(\begin{array}{cc}&lt;br /&gt;
\lambda_1 &amp;amp; 0\\&lt;br /&gt;
0 &amp;amp; \lambda_2&lt;br /&gt;
\end{array}\right)\left(\begin{array}{c}&lt;br /&gt;
x\\&lt;br /&gt;
y&lt;br /&gt;
\end{array}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando que os autovalores sejam números reais, a magnitude não é a característica mais importante dos autovalores, mas sim o sinal. Se ambos os autovalores tem sinal positivo, então o sistema vai se afastar da origem. Por exemplo, se o sistema está em um ponto  &amp;lt;math&amp;gt;\left(1,-1\right)&amp;lt;/math&amp;gt;  do espaço de estados vai sofrer uma variação positiva na coordenada x, e negativa na coordenada y. Agora se ambos os autovalores são negativos temos um deslocamento no sentido contrário, ou seja, o sistema vai se aproximar da origem. E por fim, se o sistema tem um autovalor com cada sinal, então significa que em um eixo ele se aproxima e no outro se afasta (ponto de sela). &lt;br /&gt;
&lt;br /&gt;
Olhando para os autovetores da nossa matriz, eles apontam exatamente na direção dos eixos (&amp;lt;math&amp;gt;\left\{ \left(1,0\right),\left(0,1\right)\right\} &amp;lt;/math&amp;gt;), que foram as direções em que discutimos o comportamento do sistema. De maneira geral,  tivéssemos uma matriz qualquer, analisaríamos então o comportamento do sistema na direção dos autovetores. Por exemplo para o sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\begin{array}{c}&lt;br /&gt;
\dot{x}\\&lt;br /&gt;
\dot{y}&lt;br /&gt;
\end{array}\right)=\left(\begin{array}{cc}&lt;br /&gt;
1 &amp;amp; 2\\&lt;br /&gt;
3 &amp;amp; 4&lt;br /&gt;
\end{array}\right)\left(\begin{array}{c}&lt;br /&gt;
x\\&lt;br /&gt;
y&lt;br /&gt;
\end{array}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Temos os seguintes autovalores &amp;lt;math&amp;gt;\left\{ -0.37,5.37\right\} &amp;lt;/math&amp;gt; com os seguintes autovetores correspondentes &amp;lt;math&amp;gt;\left\{ \left(1,-0.69\right),\left(1,2.19\right)\right\} &amp;lt;/math&amp;gt;. Então significa que na direção &amp;lt;math&amp;gt;\left(1,-0.69\right)&amp;lt;/math&amp;gt; o sistema evolui de forma a se aproximar da origem (autovalor negativo) e na direção &amp;lt;math&amp;gt;\left(1,2.19\right)&amp;lt;/math&amp;gt; se afasta da da origem (autovalor positivo).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ou ainda em uma explicação mais geral, uma matriz &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; qualquer que tenha os autovalores &amp;lt;math&amp;gt;\lambda_{i}&amp;lt;/math&amp;gt; associado aos autovetores &amp;lt;math&amp;gt;\left|\lambda_{i}\right\rangle&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;A=\sum_{i}\lambda_{i}\left|\lambda_{i}\right\rangle \left\langle \lambda_{i}\right|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então escrevendo nosso sistema linear de equações diferenciais como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left|\dot{x}\right\rangle =A\left|x\right\rangle &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou ainda:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display =&amp;quot;block&amp;quot;&amp;gt; \left|\dot{x}\right\rangle =\sum_{i}\lambda_{i}\left|\lambda_{i}\right\rangle \left\langle \lambda_{i}|x\right\rangle &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos pensar então que o termo &amp;lt;math&amp;gt;\left\langle \lambda_{i}|x\right\rangle&amp;lt;/math&amp;gt;  nos dá uma medida de ortogonalidade entre nosso ponto atual &amp;lt;math&amp;gt; \left|x\right\rangle  &amp;lt;/math&amp;gt; e o autovetor &amp;lt;math&amp;gt;\left|\lambda_{i}\right\rangle&amp;lt;/math&amp;gt; , o que implica em 'quanto' nosso sistema vai se mover na direção apontada pelo autovalor. Como um extremo, podemos ver que se forem perpendiculares entre si, então &amp;lt;math&amp;gt;\left\langle \lambda_{i}|x\right\rangle =0 &amp;lt;/math&amp;gt; logo o termo inteiro do somatório é zerado. Uma vez que &amp;lt;math&amp;gt;\left\langle \lambda_{i}|x\right\rangle \neq0&amp;lt;/math&amp;gt;, então resta o vetor &amp;lt;math&amp;gt;\left|\lambda_{i}\right\rangle&amp;lt;/math&amp;gt;, que vai dar efetivamente a direção no qual o ponto vai se mover. E ainda por fim, temos &amp;lt;math&amp;gt;\lambda_{i}&amp;lt;/math&amp;gt; que vai regular o sentido no qual o sistema vai se 'mover'. Podemos perceber aqui, para valores reais, a necessidade de que todos os autovalores sejam negativos para termos um sistema estável, assim como o motivo de que os autovalores reais positivos configuram um sistema instável. &lt;br /&gt;
&lt;br /&gt;
Obs. Esta é uma notação emprestada da mecânica quântica, a notação de dirac. Onde &amp;lt;math&amp;gt;\left\langle \lambda_{i}\right|&amp;lt;/math&amp;gt; é o transposto conjugado de &amp;lt;math&amp;gt;\left|\lambda_{i}\right\rangle&amp;lt;/math&amp;gt;  e &amp;lt;math&amp;gt;\left\langle \lambda_{i}|\lambda_{j}\right\rangle&amp;lt;/math&amp;gt;  denota o produto interno entre os vetores &amp;lt;math&amp;gt;\left|\lambda_{i}\right\rangle&amp;lt;/math&amp;gt;  e &amp;lt;math&amp;gt;\left|\lambda_{j}\right\rangle&amp;lt;/math&amp;gt;.&lt;br /&gt;
[[Ficheiro:Wolfafa.gif|miniaturadaimagem|Diagrama de fase gerado no [https://www.wolframalpha.com/input/?i=StreamPlot%5B+%7Bx%2B2y%2C3x%2B4y%7D+%2C%7Bx%2C-1%2C1%7D%2C%7By%2C-0.69%2C2.19%7D%5D WolframAlpha] para o sistema formado por &amp;lt;math&amp;gt;\dot{x}=x+2y&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\dot{y}=3+4y&amp;lt;/math&amp;gt;.|alt=]]&lt;br /&gt;
&lt;br /&gt;
====== Segundo critério ======&lt;br /&gt;
O segundo critério de Lyapunov geralmente é utilizando quando não podemos utilizar o primeiro (com autovalores negativos). Precisamos de algumas definições adicionais para estudá-lo, sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W&amp;lt;/math&amp;gt; um subconjunto aberto de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mathcal{R}^{n}&amp;lt;/math&amp;gt; contendo a origem (qualquer ponto de equilíbrio pode ser transladado para a origem), então uma função &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;V:W\rightarrow \mathcal{R}\text{ tal que }\boldsymbol{x}\mapsto V\left(\boldsymbol{x}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É &amp;lt;span&amp;gt;[&amp;lt;/span&amp;gt;semi&amp;lt;span&amp;gt;]&amp;lt;/span&amp;gt;positiva definida em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W&amp;lt;/math&amp;gt; se:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}_{0}\right)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt; &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left[V\left(\boldsymbol{x}\right)\geq0\right]&amp;lt;/math&amp;gt;, sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}\neq\boldsymbol{x}_{0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E &amp;lt;span&amp;gt;[&amp;lt;/span&amp;gt;semi&amp;lt;span&amp;gt;]&amp;lt;/span&amp;gt;definida negativa se:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}_{0}\right)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;lt;0&amp;lt;/math&amp;gt; &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left[V\left(\boldsymbol{x}\right)\leq0\right]&amp;lt;/math&amp;gt;, sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}\neq\boldsymbol{x}_{0}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Vale a pena um olhar especial para funções quadráticas.&lt;br /&gt;
&lt;br /&gt;
*1 variável: &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;f\left(x_{1}\right)=a_{11}x_{1}^{2}=x_{1}a_{11}x_{1}&amp;lt;/math&amp;gt;&lt;br /&gt;
*2 variáveis: &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;f\left(x_{1},x_{2}\right)=x_{1}a_{11}x_{1}+x_{1}a_{12}x_{2}+x_{2}a_{21}x_{1}+x_{2}a_{22}x_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
*N-variáveis: &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;f\left(x_{1},\dots,x_{n}\right)=\sum_{i,j}^{n}x_{i}a_{ij}x_{j}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De forma que podemos representá-la matricialmente como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;f\left(\boldsymbol{x}\right)=\boldsymbol{x}^{T}P\boldsymbol{x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\boldsymbol{x}=\left(x_{1},\dots,x_{n}\right),\qquad P=\left(\begin{array}{ccc}&lt;br /&gt;
a_{11} &amp;amp; \dots &amp;amp; a_{1n}\\&lt;br /&gt;
\vdots &amp;amp; \ddots &amp;amp; \vdots\\&lt;br /&gt;
a_{n1} &amp;amp; \dots &amp;amp; a_{nn}&lt;br /&gt;
\end{array}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Além disso, qualquer forma quadrática pode ser representada por uma matriz simétrica&amp;lt;ref&amp;gt;[http://www.rmi.ge/~kade/LecturesT.Kadeishvili/MathEconomics/Term3/Week3QuadraticLEC.pdf Quadratic Forms] (Tornike Kadeishvili, Universidade Estatal de Tbilisi)&amp;lt;/ref&amp;gt;, substituindo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a_{ij}^{s}=a_{ji}^{s}=\frac{a_{ji}+a_{ij}}{2}&amp;lt;/math&amp;gt; para quando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a_{ij}\neq a_{ji}&amp;lt;/math&amp;gt;. Ou de maneira genérica:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;P^{s}=\frac{P+P^{T}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então só precisamos nos preocupar com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;P&amp;lt;/math&amp;gt; para classificar a função quadrática. Se os [https://pt.wikipedia.org/wiki/Menor_(%C3%A1lgebra_linear) menores] principais líderes são maiores que zero, temos um positivo definido. Isto é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left|D_{1}\right|=\left|a_{11}\right|&amp;gt;0,\left|D_{2}\right|=\left|\begin{array}{cc}&lt;br /&gt;
a_{11} &amp;amp; a_{12}\\&lt;br /&gt;
a_{21} &amp;amp; a_{22}&lt;br /&gt;
\end{array}\right|&amp;gt;0,\dots,\left|D_{n}\right|=\left|\begin{array}{ccc}&lt;br /&gt;
a_{11} &amp;amp; \dots &amp;amp; a_{1n}\\&lt;br /&gt;
\vdots &amp;amp; \ddots &amp;amp; \vdots\\&lt;br /&gt;
a_{n1} &amp;amp; \dots &amp;amp; a_{nn}&lt;br /&gt;
\end{array}\right|&amp;gt;0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lembrando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left|M\right|&amp;lt;/math&amp;gt; denota o determinante da matriz &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;M&amp;lt;/math&amp;gt;. Para um positivo semidefinido, precisamos levar em conta todos os menores. Isto é, quando a matriz que obtemos não corresponde necessariamente ao quadrante superior esquerdo da matriz. Neste caso se todos os menores principais &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;D_{j}&amp;lt;/math&amp;gt; são maiores ou iguais a &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;lt;/math&amp;gt; (&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;D_{j}\geq0&amp;lt;/math&amp;gt;) temos uma função semidefinida positiva. &lt;br /&gt;
&lt;br /&gt;
Já para o negativo definido, temos a seguinte condição para os menores principais líderes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left|D_{1}\right|&amp;lt;0,\left|D_{2}\right|&amp;gt;0,\left|D_{3}\right|&amp;lt;0,\dots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou seja uma alternância de sinal começando com negativo. Para o negativo semidefinido temos algo análogo porém  com todas as matrizes menores, as ímpares são &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\leq0&amp;lt;/math&amp;gt; e as pares &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\geq0&amp;lt;/math&amp;gt;. Uma forma mais fácil de classificarmos a matriz é olhando para seus autovalores. Se todos os autovalores da matriz são:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda_{i}&amp;gt;0&amp;lt;/math&amp;gt;: positivo definido&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda_{i}&amp;lt;0&amp;lt;/math&amp;gt;: negativo definido&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda_{i}\geq0&amp;lt;/math&amp;gt;: positivo semidefinido&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda_{i}\leq0&amp;lt;/math&amp;gt;: negativo semidefinido&lt;br /&gt;
&lt;br /&gt;
Retornando ao sistema não linear:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{\boldsymbol{x}}=\boldsymbol{f}\left(\boldsymbol{x}\left(t\right),\boldsymbol{u}_{0}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considerando um sistema autônomo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{\boldsymbol{x}}=\boldsymbol{f}\left(\boldsymbol{x}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pelo segundo critério de Lyapunov, se na vizinhança &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W&amp;lt;/math&amp;gt; de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; existe uma função &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right):W\rightarrow\mathcal{R}&amp;lt;/math&amp;gt; positiva definida e:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\leq0&amp;lt;/math&amp;gt; , então o ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; é estável;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}&amp;lt;/math&amp;gt; for negativo definido, o ponto é assintoticamente estável;&lt;br /&gt;
**Ainda há um ’refinamento’ para determinar estabilidade assintótica quando Lyapunov garante apena estabilidade (critério de La Salle-Krasowski).&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}&amp;lt;/math&amp;gt; for positivo definido, o ponto é instável.&lt;br /&gt;
**Se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; for um ponto de acumulação para um conjunto de pontos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}\in W&amp;lt;/math&amp;gt; em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt;, o critério também pode ser usado se a função &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;lt;/math&amp;gt; não for positiva definida em todo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W&amp;lt;/math&amp;gt;.&lt;br /&gt;
Aqui talvez vale a pena fazer uma breve discussão sobre o que é ser um ponto de acumulação e alguns conceitos relacionado.&lt;br /&gt;
&lt;br /&gt;
*[https://www.mathemania.com/lesson/accumulation-point-of-a-set/ Ponto de acumulação]: Um ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}&amp;lt;/math&amp;gt; é um ponto de acumulação do conjunto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}\subseteq W&amp;lt;/math&amp;gt; se todas as suas vizinhanças abertas contém ao menos um ponto de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt; distinto de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}&amp;lt;/math&amp;gt;.&lt;br /&gt;
*Vizinhança aberta: a vizinhança aberta de um ponto é todo conjunto aberto que contém o ponto.&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Open_set Conjunto aberto:]&lt;br /&gt;
**Uma bola aberta é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;K\left(x,r\right)=\left\{ y\in R^{n}:d\left(x,y\right)&amp;lt;r\right\}&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;d\left(x,y\right)&amp;lt;/math&amp;gt; é a distância entre dois pontos. Então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;K\left(x,r\right)&amp;lt;/math&amp;gt; é uma bola aberta centrada em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; com raio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;lt;/math&amp;gt;.&lt;br /&gt;
**Um conjunto aberto é uma união de bolas abertas. Ou seja um conjunto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}\subseteq \mathcal{R}^{n}&amp;lt;/math&amp;gt; é um conjunto aberto se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\forall x\in W^{+}\right)\left(\exists r&amp;gt;0\right)K\left(x,r\right)\subseteq W^{+}&amp;lt;/math&amp;gt;, em palavras, para todo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}&amp;lt;/math&amp;gt; que pertence a &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;, existe um raio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;lt;/math&amp;gt; maior que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;lt;/math&amp;gt; em que temos uma bola aberta centrada em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; com raio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;lt;/math&amp;gt; que é um subconjunto de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;.&lt;br /&gt;
**Conjunto aberto é uma generalização de intervalos abertos.&lt;br /&gt;
**Como exemplo de conjunto aberto, podemos citar o interior de um disco com a fronteira delimitada por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x^{2}+y^{2}=r^{2}&amp;lt;/math&amp;gt;. Este conjunto de pontos que satisfazem &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x^{2}+y^{2}&amp;lt;r^{2}&amp;lt;/math&amp;gt;  é um conjunto aberto.&lt;br /&gt;
&lt;br /&gt;
Para compreender melhor o critério, devemos lembrar que o segundo método de Lyapunov é uma generalização baseada em dois princípios físicos básicos:&lt;br /&gt;
&lt;br /&gt;
* Um sistema conservativo é estável somente se sua energia potencial  tem um mínimo local no ponto de equilíbrio;&lt;br /&gt;
* A energia total de um sistema conservativo é constante durante a evolução do sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Então podemos voltar a física clássica e encarar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x},t\right)&amp;lt;/math&amp;gt; como uma energia potencial, logo  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x},t\right)&amp;lt;/math&amp;gt; é a variação da energia potencial ao longo do tempo. Ou melhor, se considerarmos um sistema mecânico em que a energia é total dada pela soma da potencial e a cinética, então se tivermos uma energia cinética inicial nula,  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}_0,t_0\right)&amp;lt;/math&amp;gt; representa a energia inicial total do sistema.&lt;br /&gt;
&lt;br /&gt;
Podemos pensar em um poço potencial em 2 dimensões, potencial em formato de uma &amp;quot;bacia&amp;quot; por exemplo, caso o sistema seja conservativo (não retiramos nem acrescentarmos energia ao sistema), se largarmos uma bolinha em um ponto qualquer, ela ficará oscilando oscilando em torno da origem, que é um ponto de equilíbrio estável. Se tivermos &amp;lt;math&amp;gt;V\left(x,y\right)=x^{2}+y^{2}&amp;lt;/math&amp;gt;, podemos ver facilmente que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{0}\right)=0&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt; se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x} \neq \boldsymbol{0}&amp;lt;/math&amp;gt;. Nesse caso a força que atuando sobre a bolinha é &amp;lt;math&amp;gt;\boldsymbol{F}=-\nabla V=-2\left(x,y\right)&amp;lt;/math&amp;gt;. Então analisando por exemplo sobre o eixo x (&amp;lt;math&amp;gt;y=0&amp;lt;/math&amp;gt;), se estiver no sentido positivo (negativo) de x, vai sentir uma força em direção a origem, isto é &lt;br /&gt;
&lt;br /&gt;
negativa (positiva), uma força restaurativa, neste caso também temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\left(x,y\right)=0&amp;lt;/math&amp;gt;.  Para uma dimensão temos &amp;lt;math&amp;gt;\ddot{x}+\frac{2}{m}x=0&amp;lt;/math&amp;gt;, esta é uma [https://pt.wikipedia.org/wiki/Equa%C3%A7%C3%A3o_da_onda equação da onda] e tem como [https://www.wolframalpha.com/input/?i=x%27%27%28t%29%2B2*x%28t%29%2F%28m%29%3D0 solução] uma soma de senos e cossenos, ou seja periódica.                                &lt;br /&gt;
&lt;br /&gt;
Porém se o sistema estiver perdendo energia, então o estado do sistema vai se aproximar do ponto de equilíbrio uma vez que ele seja um mínimo local. Nesta situação temos um ponto de equilíbrio assintoticamente estável. No caso da bolinha poderia ser representado por exemplo pelo atrito que retira energia do sistema, porém ele retira energia cinética. Vamos usar uma analogia diferente: um sistema massa mola em uma dimensão. Neste caso temos  &amp;lt;math&amp;gt;F=-kx&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;V\left(x\right)=\frac{kx^{2}}{2}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; é a constante da mola,  onde quanto maior a constante, maior a força restauradora e maior a energia potencial. Se consideramos que a mola &amp;quot;cansa&amp;quot; com o tempo, e utilizarmos por exemplo &amp;lt;math&amp;gt;k=\frac{2}{t}&amp;lt;/math&amp;gt;, ficamos com  &amp;lt;math&amp;gt;F=-\frac{2x}{t}&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;V\left(x,t\right)=\frac{x^{2}}{t}&amp;lt;/math&amp;gt;. Podemos ver que ainda temos as condições satisfeitas para a função de Lyapunov ( &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(0,t\right)=0&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(x,t\right)&amp;gt;0&amp;lt;/math&amp;gt; se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x,t\right) \neq \boldsymbol{0}&amp;lt;/math&amp;gt;), porém agora temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\left(x,t\right)&amp;lt;0&amp;lt;/math&amp;gt;. Isso acontece pois o sistema está perdendo energia na forma de uma diminuição na energia potencial do sistema como um todo. Observando quando a bolinha se desloca entre um extremo e o ponto de origem, temos que a energia potencial está parte sendo convertida em energia cinética, mas parte está simplesmente sendo retirada do sistema. A cada oscilação o ponto extremo ponto possui uma energia cada vez menor  e consequentemente uma força restaurativa também cada vez menor. Até que a massa atinge o equilíbrio. O sistema físico em questão, &amp;lt;math&amp;gt;\ddot{x}+\left(\frac{2}{mt}\right)x=0&amp;lt;/math&amp;gt;, temo como [https://www.wolframalpha.com/input/?i=x%27%27%28t%29%2B2*x%28t%29%2F%28m*t%29%3D0 solução] [https://en.wikipedia.org/wiki/Bessel_function funções de Bessel]. Estas funções tem  comportamento similares a funções senos (ou cossenos) amortecidas&amp;lt;ref&amp;gt;[https://www.scirp.org/pdf/jamp_2014031310562629.pdf Bessel Function and Damped Simple Harmonic Motion] (Masoud Asadi-Zeydabadi, Revista de Física e Matemática Aplicada)&amp;lt;/ref&amp;gt;.                                &lt;br /&gt;
&lt;br /&gt;
Antes de avançar para a discussão da instabilidade, vamos lembrar que quando queremos demonstrar que um ponto de equilíbrio é estável, precisamos analisar toda a vizinhança do ponto de equilíbrio, pois precisamos garantir que em qualquer estado inicial próximo ao ponto de equilíbrio, o sistema não se afaste do mesmo. Porém para o critério de instabilidade, não temos a mesma exigência, uma vez que se ele se afastar em um eixo, é o suficiente para ser classificado como um ponto instável. E agora também temos que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\left(x,y\right)&amp;gt;0&amp;lt;/math&amp;gt;, isto é, o  sistema está recebendo energia, o que permite que se afaste do ponto de equilíbrio. Fisicamente isso pode ser, por exemplo, um sistema que aumente a energia potencial de acordo com a temperatura, e colocamos o sistema sobre o fogo.     &lt;br /&gt;
&lt;br /&gt;
Para ilustrar esse último exemplo, vamos utilizar um potencial &amp;lt;math&amp;gt;V\left(x,y,t\right)=t\left(x^{2}-y^{2}\right)&amp;lt;/math&amp;gt;, podemos notar que se não fosse explicitamente dependente do tempo, teríamos &amp;lt;math&amp;gt;\dot{V}\left(x,t\right)=0&amp;lt;/math&amp;gt;, porém o potencial não é positivo definido na vizinhança da origem, dessa forma, não podemos garantir a estabilidade. Temos então novamente satisfeito &amp;lt;math&amp;gt;V\left(0,0,t\right)=0&amp;lt;/math&amp;gt; porém agora temos apenas um subconjunto &amp;lt;math&amp;gt;W^+&amp;lt;/math&amp;gt;  de pontos  em que &amp;lt;math&amp;gt;V\left(0,0,t\right)&amp;gt;0&amp;lt;/math&amp;gt;, especificamente quando  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left|x\right|&amp;gt;\left|y\right|&amp;lt;/math&amp;gt; . E a variação de energia neste ponto é &amp;lt;math&amp;gt;\dot{V}\left(x,y,t\right)&amp;gt;0&amp;lt;/math&amp;gt;, então temos um ponto de instabilidade. Podemos observar ainda que &amp;lt;math&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt; é um ponto de sela para a função &amp;lt;math&amp;gt;f(x,y)=x^{2}-y^{2}&amp;lt;/math&amp;gt;,  para &amp;lt;math&amp;gt;y=0&amp;lt;/math&amp;gt; se reduz a &amp;lt;math&amp;gt;f(x)=x^{2}&amp;lt;/math&amp;gt;, então se reduzíssemos o problema a uma dimensão sobre o eixo x, o potencial poderia ser classificado como uma função positiva definida. Resolvendo o sistema físico sobre em uma dimensão, temos &amp;lt;math&amp;gt;\ddot{x}+\left(\frac{2t}{m}\right)x=0&amp;lt;/math&amp;gt;, a [https://www.wolframalpha.com/input/?i=x%27%27%28t%29%2B2*t*x%28t%29%2F%28m%29%3D0 solução] deste sistema é escrita em termos de [https://en.wikipedia.org/wiki/Airy_function funções de Airy], e tende a infinito quando a variável independente tende a infinito.                    &lt;br /&gt;
&lt;br /&gt;
Sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;lt;/math&amp;gt;  uma função de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}\left(t\right)&amp;lt;/math&amp;gt;, então temos:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{V}\left(\boldsymbol{x}\right) &amp;amp; =\frac{\partial V}{\partial x_{1}}\frac{\partial x_{1}}{\partial t}+\dots+\frac{\partial V}{\partial x_{n}}\frac{\partial x_{n}}{\partial t}\\&lt;br /&gt;
 &amp;amp; =\left[\frac{\partial V}{\partial x_{1}},\dots,\frac{\partial V}{\partial x_{n}}\right]\cdot\left[\dot{x}_{1},\dots,\dot{x}_{n}\right]\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\nabla V=\left[\frac{\partial V}{\partial x_{1}},\dots,\frac{\partial V}{\partial x_{n}}\right]&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{\boldsymbol{x}}=\left[\dot{x}_{1},\dots,\dot{x}_{n}\right]&amp;lt;/math&amp;gt;, reescrevemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)=\left[\nabla V\right]\cdot\left[\boldsymbol{f}\left(\boldsymbol{x}\right)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como exemplo, se temos o seguinte sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{x}_{1} &amp;amp; =+x_{1}-x_{1}x_{2}\\&lt;br /&gt;
\dot{x}_{2} &amp;amp; =-x_{2}+x_{1}x_{2}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um ponto de equilíbrio é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}=0&amp;lt;/math&amp;gt;. Considerando a seguinte função de Lyapunov:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)=x_{1}^{2}-x_{2}^{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}_{0}\right)=0&amp;lt;/math&amp;gt;. além disso temos um conjunto de pontos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt; em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt; quando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left|x_{1}\right|&amp;gt;\left|x_{2}\right|&amp;lt;/math&amp;gt;  e  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; é um ponto de acumulação de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;. Então calculando a derivada da função de Lyapunov:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{V}\left(\boldsymbol{x}\right) &amp;amp; =\left[\nabla V\right]\cdot\left[\boldsymbol{f}\left(\boldsymbol{x}\right)\right]\\&lt;br /&gt;
 &amp;amp; =\left(2x_{1},-2x_{2}\right)\left(+x_{1}-x_{1}x_{2},-x_{2}+x_{1}x_{2}\right)\\&lt;br /&gt;
 &amp;amp; =2x_{1}^{2}-2x_{1}^{2}x_{2}+2x_{2}^{2}-2x_{1}x_{2}^{2}\\&lt;br /&gt;
 &amp;amp; =2x_{1}^{2}\left(1-x_{2}\right)+2x_{2}^{2}\left(1-x_{1}\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como estamos avaliando a região  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt; próxima ao ponto do equilíbrio, que neste caso está localizado na origem, podemos assumir que há uma região em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{1},x_{2}&amp;lt;1&amp;lt;/math&amp;gt; e logo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt;  é positivo definido em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;. Sendo assim, temos um ponto de instabilidade.&lt;br /&gt;
&lt;br /&gt;
====== Principais materiais utilizados ======&lt;br /&gt;
&lt;br /&gt;
* [https://def.fe.up.pt/textos.html Dinâmica e Sistemas Dinâmicos] (Jaime E. Villate, Universidade do Porto)&lt;br /&gt;
* [http://arrow.utias.utoronto.ca/~damaren/s2.pdf Lyapunov stability] (Christopher J. Damaren, Universidade de Toronto)&lt;br /&gt;
* [https://ocw.mit.edu/courses/mathematics/18-03sc-differential-equations-fall-2011/unit-iv-first-order-systems/linearization-near-critical-points/MIT18_03SCF11_s37_1text.pdf Sketching Non-Linear Systems] (Instituto de Tecnologia de Massachusetts)&lt;br /&gt;
* [http://www.dii.unimo.it/~zanasi/didattica/Teoria_dei_Sistemi/Luc_TDS_ING_2016_Stability_Analysis_of_Nonlinear_Systems.pdf Stability Analysis of Nonlinear Systems] (Roberto Zanasi, Universidade de Módena e Reggio Emília)&lt;br /&gt;
&lt;br /&gt;
====== Citações ======&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Linearização de sistemas de equações não lineares]] |[[Introdução à equações diferenciais com atraso]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7874</id>
		<title>MBA: Gás simples</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7874"/>
		<updated>2022-08-09T23:54:00Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;br /&gt;
&lt;br /&gt;
= Colisão entre  partículas =&lt;br /&gt;
&lt;br /&gt;
Considerando um modelo simples de gás ideal, não há força atuando sob as partículas, então a interação que ocorre entre as partículas se dá apenas por meio de colisões. Assim é necessário calcular a variação na velocidade de cada partícula após a colisão. Começando em uma dimensão, precisamos garantir a conservação do momento: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;m_{1}v_{1}'+m_{2}v_{2}'=m_{1}v_{1}''+m_{2}v_{2}''&lt;br /&gt;
&amp;lt;/math&amp;gt;E da energia cinética: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{1}{2}m_{1}v_{1}'^{2}+\frac{1}{2}m_{2}v_{2}'^{2}=\frac{1}{2}m_{1}v_{1}''^{2}+\frac{1}{2}m_{2}v_{2}''^{2}&amp;lt;/math&amp;gt;Colocando o referencial de forma que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'=0&amp;lt;/math&amp;gt;, então as velocidades no novo referencial podem ser escritas como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i=v_i-v_2'&amp;lt;/math&amp;gt;, de forma que da conservação do momento ficamos com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}u_{2}'', \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt; Elevando ao quadrado: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''^{2}=u_{1}'^{2}-\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''&amp;lt;/math&amp;gt; Substituindo na equação de conservação de energia, podemos encontrar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_2''&amp;lt;/math&amp;gt;: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}''^{2}+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}\left[u_{1}'{}^{2}+\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''\right]+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}'{}^{2}+\frac{m_{2}^{2}}{m_{1}}u_{2}''^{2}-2m_{2}u_{1}'u_{2}''+m_{2}u_{2}''^{2}\\&lt;br /&gt;
0=\left(\frac{m_{2}^{2}}{m_{1}}+m_{2}\right)u_{2}''^{2}+\left(-2m_{2}u_{1}'\right)u_{2}''\\&lt;br /&gt;
0=\left(\frac{m_{2}+m_{1}}{m_{1}}\right)u_{2}''^{2}+\left(-2u_{1}'\right)u_{2}''&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Calculando as raízes do segundo grau, temos: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2u_{1}'\pm\sqrt{4u_{1}'^{2}}}{2\left(\frac{m_{2}+m_{1}}{m_{1}}\right)}=\frac{m_{1}}{m_{2}+m_{1}}\left(u_{1}'\pm u_{1}'\right)&amp;lt;/math&amp;gt;E como uma solução é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'=0&amp;lt;/math&amp;gt;, mas queremos a situação em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'\neq0&amp;lt;/math&amp;gt;, logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Substituindo em '''(1)''', temos: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}\left(\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\right)\\&lt;br /&gt;
u_{1}''=\left(1-\frac{2m_{2}}{m_{2}+m_{1}}\right)u_{1}\\&lt;br /&gt;
u_{1}''=\left(\frac{m_{2}+m_{1}-2m_{2}}{m_{2}+m_{1}}\right)u_{1}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Ou seja: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Retornando ao referencial original, sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_i=u_i+v_2'&amp;lt;/math&amp;gt;, temos então para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_1'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{1}''-v_{2}'=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\frac{2m_{2}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;E de maneira análoga para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{2}''-v_{2}'=\frac{2m_{1}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{2m_{1}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\frac{m_{2}-m_{1}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Um caso especial ocorre se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2, \qquad (2)&amp;lt;/math&amp;gt; então temos simplesmente: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
v_1''=v_2',\qquad \text{e} \qquad v_2''=v_1'&amp;lt;/math&amp;gt;Em duas dimensões, podemos reduzir o problema a uma dimensão, considerando que toda a alteração na velocidade devido a colisão entre partículas ocorre apenas na componente paralela a reta que liga o centro das duas esferas. Considerando que a posição de cada partícula é dada por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{r}_{i}&amp;lt;/math&amp;gt;, então um vetor entre as partículas pode ser escrito como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}&amp;lt;/math&amp;gt;. Podemos projetar ambas as velocidades então fazendo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;{u}_{i}'=\frac{\overrightarrow{v}_{i}\cdot\overrightarrow{d}}{\left|\overrightarrow{d}\right|}=\overrightarrow{v}_{i}\cdot\widehat{d}&amp;lt;/math&amp;gt;Obtemos o módulo da velocidade da partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; na direção &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt; e podemos trabalhar em uma única dimensão para encontrarmos a velocidade de ambas partículas após a colisão nesta dimensão. Ao fim podemos decompor novamente a velocidade final &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i''&amp;lt;/math&amp;gt; em ambos os eixos mantendo a mesma direção utilizando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\theta=\arctan\left(\frac{\Delta{y}}{\Delta x}\right)&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\Delta z = z_2 - z_1&amp;lt;/math&amp;gt; é a diferença entre a posição das partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;2&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; na componente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso vale lembrar que há a componente da velocidade perpendicular a &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt;, que vamos denotar como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{w}_i=\overrightarrow{v}_i-u_{i}'\left(\cos\theta,\sin\theta\right)&amp;lt;/math&amp;gt;. Esta componente perpendicular permanece inalterada e pode ser visualizada na figura ao lado.&lt;br /&gt;
&lt;br /&gt;
[[File:Mba_gas.png|esquerda|miniaturadaimagem|300x300px|alt=Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt;. |Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula 1. ]]&lt;br /&gt;
&lt;br /&gt;
Sendo assim, a velocidade final é dada por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\left(u_{i}''\cos\theta,u_{i}''\sin\theta\right)+\overrightarrow{w}_{i}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=u_{i}''\left(\cos\theta,\sin\theta\right)+\overrightarrow{v}_{i}-u_{i}'\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\overrightarrow{a}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}&amp;lt;/math&amp;gt; é um vetor unitário que nos dá a direção entre os centros das partículas. Utilizando ad identidades: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\cos\left(\arctan\left(x\right)\right)=\frac{1}{\sqrt{1+x^{2}}}, \qquad \sin\left(\arctan\left(x\right)\right)=\frac{x}{\sqrt{1+x^{2}}}&amp;lt;/math&amp;gt; ficamos então com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{a}=\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\cos\arctan\left(\frac{\Delta y}{\Delta x}\right),\sin\arctan\left(\frac{\Delta y}{\Delta x}\right)\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}},\frac{\left(\frac{\Delta y}{\Delta x}\right)}{\sqrt{1+\left(\frac{\Delta y}{\Delta x}\right)^{2}}}\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\Delta x}\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}}\left(\Delta x,\Delta y\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\frac{\Delta x}{\Delta x}}\frac{1}{\sqrt{\Delta x^{2}+\Delta y^{2}}}\left(\Delta x,\Delta y\right)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{a}  =\frac{\left(\Delta x,\Delta y\right)}{\sqrt{\Delta x^{2}+\Delta y^{2}}}&amp;lt;/math&amp;gt; E uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}=\left(x_{2}-x_{1},y_{2}-y_{1}\right)=\left(\Delta x,\Delta y\right)&amp;lt;/math&amp;gt;, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}= \overrightarrow{d}/\left|d\right|= \widehat{d}&amp;lt;/math&amp;gt;. Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\widehat{d}&amp;lt;/math&amp;gt;Ou ainda mais explícito, se fizermos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2&amp;lt;/math&amp;gt;, sendo as partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;j&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i\neq j&amp;lt;/math&amp;gt;, usando '''(2)''': &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{cc}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(u_{j}'-u_{i}'\right)\widehat{d}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(\overrightarrow{v}_{j}\cdot\widehat{d}-\overrightarrow{v}_{i}\cdot\widehat{d}\right)\widehat{d}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Temos então que: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} =\overrightarrow{v}_{i}+\left[\left(\overrightarrow{v}_{j}-\overrightarrow{v}_{i}\right)\cdot\widehat{d}\right]\widehat{d}&amp;lt;/math&amp;gt;Todo o cálculo exibido foi para uma partícula, para a segunda partícula, o cálculo é análogo.&lt;br /&gt;
&lt;br /&gt;
= Distribuição de velocidades para um gás a certa temperatura =&lt;br /&gt;
&lt;br /&gt;
A distribuição das velocidades das moléculas de um gás é dada pela distribuição de Maxwell-Boltzmann &amp;lt;ref&amp;gt;[https://edisciplinas.usp.br/pluginfile.php/48089/course/section/16461/qsp_chapter4-kineticTheory.pdf The Kinetic Theory of Gases]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt; f\left(v\right)=\left(\frac{m}{2\pi kT}\right)^{3/2}4\pi v^{2}\exp\left(-\frac{mv^{2}}{kT}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Foi realizado uma simulação com 100 partículas por 500.000 de passos em uma grade 100x100 com fronteira toroidal, o resultado encontra-se na figura abaixo assim como o código. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:mba_colisao.png|centro|miniaturadaimagem|750x750px|Resultado da simulação com a distribuição de Maxwell-Boltmann para kT=0.7  e m=1.]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Código =&lt;br /&gt;
&lt;br /&gt;
Aqui chamamos a atenção que a principal diferença do código discutido para autômatos celulares é que agora não temos mais uma grade, mas um modelo contínuo. Também temos a possibilidade de configuração se as fronteiras serão toroidais (extremidades conectadas) ou não. Quanto aos resultados, precisamos considerar que é um modelo simplificado. O Calculo foi realizado para uma colisão entre duas partículas se dentro do mesmo passo deveria ocorrer mais de uma colisão, ou com mais de uma partícula simultaneamente o código falha, para remediar isso, o ideal é utilizar passos de tempo pequenos e/ou uma caixa relativamente grande em relação a quantidade de partículas. Além disso ao optarmos por uma fronteira toroidal ou não, estamos considerando uma caixa fechada ou não, ao considerarmos precisamos considerar a colisão com as fronteira também. Nesse último caso, uma simplificação simples é considerar que esta colisão ocorre primeiro. Novamente o problema surge se houver duas colisões no mesmo passo (agora podendo colidir com a fronteira), logo a recomendação é a mesma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Agendador simultâneo&lt;br /&gt;
from mesa.space import ContinuousSpace                             #Malha multigrid&lt;br /&gt;
import random                                                      #Número aleatórios&lt;br /&gt;
from mesa.datacollection import DataCollector                      #Importamos um coletor de dados&lt;br /&gt;
import matplotlib.pyplot as plt                                    #Plotar gráicos             &lt;br /&gt;
#from IPython.display import clear_output                           #Configurações de saída do Colab         &lt;br /&gt;
import numpy as np    &lt;br /&gt;
&lt;br /&gt;
#AGENTE---------------------------------------------------------------------------------&lt;br /&gt;
class Agente(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Classe do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, modelo,largura,altura):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Bibliotecas necessárias&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #modelo     - Modelo que ao qual o agente pertence&lt;br /&gt;
        super().__init__(self, modelo)        #Necessário para funcionar o modelo&lt;br /&gt;
        self.ppos     = (0,0)                 #Poição que irá se mover&lt;br /&gt;
        self.rai= 0.2                         #Raio&lt;br /&gt;
        self.lim=(largura,altura)             #Limites da caixa&lt;br /&gt;
        v=1                                   #Módulo da velocidade inicial&lt;br /&gt;
        ang = 2*random.random()*np.pi&lt;br /&gt;
        self.vel      = (v*np.cos(ang),v*np.sin(ang)) #Velocidade decomposta&lt;br /&gt;
        self.colisao=False&lt;br /&gt;
        self.ac=False&lt;br /&gt;
                &lt;br /&gt;
    def prox_pos(self):&lt;br /&gt;
      dt=0.01&lt;br /&gt;
      nx=self.pos[0]+self.vel[0]*0.01&lt;br /&gt;
      ny=self.pos[1]+self.vel[1]*0.01&lt;br /&gt;
      #Testar os limites&lt;br /&gt;
      if (nx &amp;lt; 0):&lt;br /&gt;
        nx = - nx; self.vel=(-self.vel[0],self.vel[1])&lt;br /&gt;
      if (nx &amp;gt; self.lim[0]):&lt;br /&gt;
        nx = 2*self.lim[0] - nx; self.vel=(-self.vel[0],self.vel[1])&lt;br /&gt;
      if (ny &amp;lt; 0):&lt;br /&gt;
        ny = - ny; self.vel=(self.vel[0], - self.vel[1])&lt;br /&gt;
      if (ny &amp;gt; self.lim[1]):&lt;br /&gt;
        ny = 2*self.lim[1] - ny;self.vel=(self.vel[0], - self.vel[1])&lt;br /&gt;
&lt;br /&gt;
      return((nx,ny))&lt;br /&gt;
    &lt;br /&gt;
    def prox_vel(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Movimentação dos animais&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #Checamos se há colisão com outro animal:&lt;br /&gt;
        agentes = self.model.continuous.get_neighbors(pos=self.ppos, radius = 3*self.rai, include_center=True)&lt;br /&gt;
        for a in agentes:                                         #Percorremos a lista&lt;br /&gt;
          if (a.unique_id!=self.unique_id): &lt;br /&gt;
              d=np.sqrt((a.ppos[0]-self.ppos[0])**2+(a.ppos[1]-self.ppos[1])**2)&lt;br /&gt;
              if (d&amp;lt;=2*self.rai):&lt;br /&gt;
                #Direção da colisão&lt;br /&gt;
                d=(a.ppos[0]-self.ppos[0],a.ppos[1]-self.ppos[1])/np.sqrt((a.ppos[0]-self.ppos[0])**2+(a.ppos[1]-self.ppos[1])**2)&lt;br /&gt;
                #Partícula 1&lt;br /&gt;
                u1=(a.vel[0]-self.vel[0])*d[0]+(a.vel[1]-self.vel[1])*d[1]&lt;br /&gt;
                nvel1=(self.vel[0]+u1*d[0],self.vel[1]+u1*d[1])&lt;br /&gt;
                #partícula 2,pela conservação de momento:&lt;br /&gt;
                nvel2=(self.vel[0]+a.vel[0]-nvel1[0],self.vel[1]+a.vel[1]-nvel1[1])   &lt;br /&gt;
                #Se nenhuma partícula tinha se colidido&lt;br /&gt;
                if (self.colisao==False and a.colisao==False):          &lt;br /&gt;
                  #Atualiza as velocidades&lt;br /&gt;
                  self.vel=nvel1; a.vel=nvel2&lt;br /&gt;
                  self.ac=True;a.ac=True   &lt;br /&gt;
                #Registra a colisão&lt;br /&gt;
                self.colisao=True; a.colisao=True       &lt;br /&gt;
                break&lt;br /&gt;
        return ()                                          &lt;br /&gt;
&lt;br /&gt;
    def movimento(self):&lt;br /&gt;
      if(self.colisao):&lt;br /&gt;
        return (self.pos)&lt;br /&gt;
      else:&lt;br /&gt;
        return(self.ppos)&lt;br /&gt;
    &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que prepara as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.ppos = self.prox_pos()&lt;br /&gt;
             &lt;br /&gt;
    def advance(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que aplica as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.prox_vel()&lt;br /&gt;
        self.model.continuous.move_agent(self, self.movimento())&lt;br /&gt;
&lt;br /&gt;
#MODELO&lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def gerar_particulas(self,N,largura,altura):&lt;br /&gt;
      &amp;quot;&amp;quot;&amp;quot;Função para gerar animais iniciais&amp;quot;&amp;quot;&amp;quot;    &lt;br /&gt;
      #N        - Número de animais&lt;br /&gt;
      #largura  - Largura da grade&lt;br /&gt;
      #altura   - Altura da grade&lt;br /&gt;
      for n in range(N):&lt;br /&gt;
          con=True&lt;br /&gt;
          while(con):&lt;br /&gt;
            con=False&lt;br /&gt;
            a = Agente(self,largura,altura)&lt;br /&gt;
            X= largura*random.random()&lt;br /&gt;
            Y= altura*random.random()&lt;br /&gt;
            if (len(self.schedule.agents)==0):&lt;br /&gt;
              self.schedule.add(a)&lt;br /&gt;
              self.continuous.place_agent(a, (X, Y))&lt;br /&gt;
            else:&lt;br /&gt;
              agentes = self.continuous.get_neighbors(pos=(X,Y), radius = 2*a.rai, include_center=True)&lt;br /&gt;
              for viz in agentes:&lt;br /&gt;
                con = (True) if (len(agentes)==0) else (con)  #Precisamos checar se nasceu no mesmo lugar de outro animal&lt;br /&gt;
              if(con==False):&lt;br /&gt;
                self.schedule.add(a)&lt;br /&gt;
                self.continuous.place_agent(a, (X, Y))&lt;br /&gt;
      return()&lt;br /&gt;
&lt;br /&gt;
    def __init__(self, modelo,N,seed=None):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função chamada quando o modelo é inicializazdo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # Modelo   - Dicionário com especificações do modelo&lt;br /&gt;
        # N        - Número de partículas&lt;br /&gt;
        # seed     - Seed dos números aleatórios do modelo do mesa&lt;br /&gt;
        &lt;br /&gt;
        # Desempacotar o dicionário&lt;br /&gt;
        largura = modelo[&amp;quot;Largura&amp;quot;];altura=modelo[&amp;quot;Altura&amp;quot;]; random.seed(modelo[&amp;quot;Seed&amp;quot;])                     &lt;br /&gt;
        self.continuous = ContinuousSpace(x_max= largura, y_max=altura, torus= True, x_min=0, y_min= 0) #Configura a grade&lt;br /&gt;
        self.schedule   = SimultaneousActivation(self)            #Configura o agendador&lt;br /&gt;
        self.running   = True                                     #Condiçao para seguir executando o modelo&lt;br /&gt;
        self.gerar_particulas(N,largura,altura)    #Distribuir as ovelhas&lt;br /&gt;
           &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Avançar um passo do modelo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.schedule.step()                              #Avançamos os agentes&lt;br /&gt;
        #Limpamos as colisões&lt;br /&gt;
        for a in self.schedule.agents:                    #Vamos percorrer os agentes&lt;br /&gt;
          a.colisao=False&lt;br /&gt;
#Parâmetros&lt;br /&gt;
MAX =1000000&lt;br /&gt;
N=100&lt;br /&gt;
modelo  =  {&amp;quot;Largura&amp;quot;:100     ,&amp;quot;Altura&amp;quot;:100      ,&amp;quot;Seed&amp;quot;:1} &lt;br /&gt;
M = Modelo(modelo,N)&lt;br /&gt;
for i in range(MAX):&lt;br /&gt;
    M.step()&lt;br /&gt;
    if ((i+1)%(MAX/100)==0):&lt;br /&gt;
      #clear_output() &lt;br /&gt;
      print(str(100*(1+i)/MAX)+&amp;quot;%&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
vel=[]&lt;br /&gt;
E=0&lt;br /&gt;
for a in M.schedule.agents:&lt;br /&gt;
    vel.append(np.sqrt(a.vel[0]**2+a.vel[1]**2))&lt;br /&gt;
    E+=a.vel[0]**2+a.vel[1]**2&lt;br /&gt;
print(E)&lt;br /&gt;
with open('velocidades0.2R100K1000.txt', 'w') as f:&lt;br /&gt;
    f.write(str(vel))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para plotar o gráfico, podemos então usar simplesmente:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
a,b,c=plt.hist(vel,8, density=True, facecolor='g', alpha=0.75)&lt;br /&gt;
m=1&lt;br /&gt;
K=0.7&lt;br /&gt;
x=np.arange(0,2.5, 0.00001)&lt;br /&gt;
y = (4/np.sqrt(np.pi))*((m/K)**(3/2))*(x**2)*np.exp(-m*(x**2)/K)&lt;br /&gt;
plt.plot(x,y)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Citações ===&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7873</id>
		<title>MBA: Gás simples</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7873"/>
		<updated>2022-08-09T23:53:07Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;br /&gt;
&lt;br /&gt;
= Colisão entre  partículas =&lt;br /&gt;
&lt;br /&gt;
Considerando um modelo simples de gás ideal, não há força atuando sob as partículas, então a interação que ocorre entre as partículas se dá apenas por meio de colisões. Assim é necessário calcular a variação na velocidade de cada partícula após a colisão. Começando em uma dimensão, precisamos garantir a conservação do momento: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;m_{1}v_{1}'+m_{2}v_{2}'=m_{1}v_{1}''+m_{2}v_{2}''&lt;br /&gt;
&amp;lt;/math&amp;gt;E da energia cinética: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{1}{2}m_{1}v_{1}'^{2}+\frac{1}{2}m_{2}v_{2}'^{2}=\frac{1}{2}m_{1}v_{1}''^{2}+\frac{1}{2}m_{2}v_{2}''^{2}&amp;lt;/math&amp;gt;Colocando o referencial de forma que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'=0&amp;lt;/math&amp;gt;, então as velocidades no novo referencial podem ser escritas como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i=v_i-v_2'&amp;lt;/math&amp;gt;, de forma que da conservação do momento ficamos com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}u_{2}'', \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt; Elevando ao quadrado: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''^{2}=u_{1}'^{2}-\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''&amp;lt;/math&amp;gt; Substituindo na equação de conservação de energia, podemos encontrar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_2''&amp;lt;/math&amp;gt;: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}''^{2}+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}\left[u_{1}'{}^{2}+\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''\right]+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}'{}^{2}+\frac{m_{2}^{2}}{m_{1}}u_{2}''^{2}-2m_{2}u_{1}'u_{2}''+m_{2}u_{2}''^{2}\\&lt;br /&gt;
0=\left(\frac{m_{2}^{2}}{m_{1}}+m_{2}\right)u_{2}''^{2}+\left(-2m_{2}u_{1}'\right)u_{2}''\\&lt;br /&gt;
0=\left(\frac{m_{2}+m_{1}}{m_{1}}\right)u_{2}''^{2}+\left(-2u_{1}'\right)u_{2}''&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Calculando as raízes do segundo grau, temos: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2u_{1}'\pm\sqrt{4u_{1}'^{2}}}{2\left(\frac{m_{2}+m_{1}}{m_{1}}\right)}=\frac{m_{1}}{m_{2}+m_{1}}\left(u_{1}'\pm u_{1}'\right)&amp;lt;/math&amp;gt;E como uma solução é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'=0&amp;lt;/math&amp;gt;, mas queremos a situação em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'\neq0&amp;lt;/math&amp;gt;, logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Substituindo em '''(1)''', temos: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}\left(\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\right)\\&lt;br /&gt;
u_{1}''=\left(1-\frac{2m_{2}}{m_{2}+m_{1}}\right)u_{1}\\&lt;br /&gt;
u_{1}''=\left(\frac{m_{2}+m_{1}-2m_{2}}{m_{2}+m_{1}}\right)u_{1}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Ou seja: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Retornando ao referencial original, sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_i=u_i+v_2'&amp;lt;/math&amp;gt;, temos então para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_1'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{1}''-v_{2}'=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\frac{2m_{2}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;E de maneira análoga para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{2}''-v_{2}'=\frac{2m_{1}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{2m_{1}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\frac{m_{2}-m_{1}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Um caso especial ocorre se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2, \qquad (2)&amp;lt;/math&amp;gt; então temos simplesmente: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
v_1''=v_2',\qquad \text{e} \qquad v_2''=v_1'&amp;lt;/math&amp;gt;Em duas dimensões, podemos reduzir o problema a uma dimensão, considerando que toda a alteração na velocidade devido a colisão entre partículas ocorre apenas na componente paralela a reta que liga o centro das duas esferas. Considerando que a posição de cada partícula é dada por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{r}_{i}&amp;lt;/math&amp;gt;, então um vetor entre as partículas pode ser escrito como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}&amp;lt;/math&amp;gt;. Podemos projetar ambas as velocidades então fazendo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;{u}_{i}'=\frac{\overrightarrow{v}_{i}\cdot\overrightarrow{d}}{\left|\overrightarrow{d}\right|}=\overrightarrow{v}_{i}\cdot\widehat{d}&amp;lt;/math&amp;gt;Obtemos o módulo da velocidade da partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; na direção &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt; e podemos trabalhar em uma única dimensão para encontrarmos a velocidade de ambas partículas após a colisão nesta dimensão. Ao fim podemos decompor novamente a velocidade final &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i''&amp;lt;/math&amp;gt; em ambos os eixos mantendo a mesma direção utilizando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\theta=\arctan\left(\frac{\Delta{y}}{\Delta x}\right)&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\Delta z = z_2 - z_1&amp;lt;/math&amp;gt; é a diferença entre a posição das partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;2&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; na componente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso vale lembrar que há a componente da velocidade perpendicular a &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt;, que vamos denotar como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{w}_i=\overrightarrow{v}_i-u_{i}'\left(\cos\theta,\sin\theta\right)&amp;lt;/math&amp;gt;. Esta componente perpendicular permanece inalterada e pode ser visualizada na figura ao lado.&lt;br /&gt;
&lt;br /&gt;
[[File:Mba_gas.png|esquerda|miniaturadaimagem|300x300px|alt=Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt;. |Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula 1. ]]&lt;br /&gt;
&lt;br /&gt;
Sendo assim, a velocidade final é dada por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\left(u_{i}''\cos\theta,u_{i}''\sin\theta\right)+\overrightarrow{w}_{i}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=u_{i}''\left(\cos\theta,\sin\theta\right)+\overrightarrow{v}_{i}-u_{i}'\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\overrightarrow{a}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}&amp;lt;/math&amp;gt; é um vetor unitário que nos dá a direção entre os centros das partículas. Utilizando ad identidades: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\cos\left(\arctan\left(x\right)\right)=\frac{1}{\sqrt{1+x^{2}}}, \qquad \sin\left(\arctan\left(x\right)\right)=\frac{x}{\sqrt{1+x^{2}}}&amp;lt;/math&amp;gt; ficamos então com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{a}=\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\cos\arctan\left(\frac{\Delta y}{\Delta x}\right),\sin\arctan\left(\frac{\Delta y}{\Delta x}\right)\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}},\frac{\left(\frac{\Delta y}{\Delta x}\right)}{\sqrt{1+\left(\frac{\Delta y}{\Delta x}\right)^{2}}}\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\Delta x}\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}}\left(\Delta x,\Delta y\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\frac{\Delta x}{\Delta x}}\frac{1}{\sqrt{\Delta x^{2}+\Delta y^{2}}}\left(\Delta x,\Delta y\right)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{a}  =\frac{\left(\Delta x,\Delta y\right)}{\sqrt{\Delta x^{2}+\Delta y^{2}}}&amp;lt;/math&amp;gt; E uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}=\left(x_{2}-x_{1},y_{2}-y_{1}\right)=\left(\Delta x,\Delta y\right)&amp;lt;/math&amp;gt;, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}= \overrightarrow{d}/\left|d\right|= \widehat{d}&amp;lt;/math&amp;gt;. Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\widehat{d}&amp;lt;/math&amp;gt;Ou ainda mais explícito, se fizermos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2&amp;lt;/math&amp;gt;, sendo as partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;j&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i\neq j&amp;lt;/math&amp;gt;, usando '''(2)''': &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{cc}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(u_{j}'-u_{i}'\right)\widehat{d}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(\overrightarrow{v}_{j}\cdot\widehat{d}-\overrightarrow{v}_{i}\cdot\widehat{d}\right)\widehat{d}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Temos então que: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} =\overrightarrow{v}_{i}+\left[\left(\overrightarrow{v}_{j}-\overrightarrow{v}_{i}\right)\cdot\widehat{d}\right]\widehat{d}&amp;lt;/math&amp;gt;Todo o cálculo exibido foi para uma partícula, para a segunda partícula, o cálculo é análogo.&lt;br /&gt;
&lt;br /&gt;
= Distribuição de velocidades para um gás a certa temperatura =&lt;br /&gt;
&lt;br /&gt;
A distribuição das velocidads das molécula de um gá é dada pela distribuição de Maxwell-Boltzmann &amp;lt;ref&amp;gt;[https://edisciplinas.usp.br/pluginfile.php/48089/course/section/16461/qsp_chapter4-kineticTheory.pdf The Kinetic Theory of Gases]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt; f\left(v\right)=\left(\frac{m}{2\pi kT}\right)^{3/2}4\pi v^{2}\exp\left(-\frac{mv^{2}}{kT}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Foi realizado uma simulação com 100 partículas por 500.000 de passos em uma grade 100x100 com fronteira toroidal, o resultado encontra-se na figura abaixo assim como o código. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:mba_colisao.png|centro|miniaturadaimagem|750x750px|Resultado da simulação com a distribuição de Maxwell-Boltmann para kT=0.7  e m=1.]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Código =&lt;br /&gt;
&lt;br /&gt;
Aqui chamamos a atenção que a principal diferença do código discutido para autômatos celulares é que agora não temos mais uma grade, mas um modelo contínuo. Também temos a possibilidade de configuração se as fronteiras serão toroidais (extremidades conectadas) ou não. Quanto aos resultados, precisamos considerar que é um modelo simplificado. O Calculo foi realizado para uma colisão entre duas partículas se dentro do mesmo passo deveria ocorrer mais de uma colisão, ou com mais de uma partícula simultaneamente o código falha, para remediar isso, o ideal é utilizar passos de tempo pequenos e/ou uma caixa relativamente grande em relação a quantidade de partículas. Além disso ao optarmos por uma fronteira toroidal ou não, estamos considerando uma caixa fechada ou não, ao considerarmos precisamos considerar a colisão com as fronteira também. Nesse último caso, uma simplificação simples é considerar que esta colisão ocorre primeiro. Novamente o problema surge se houver duas colisões no mesmo passo (agora podendo colidir com a fronteira), logo a recomendação é a mesma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Agendador simultâneo&lt;br /&gt;
from mesa.space import ContinuousSpace                             #Malha multigrid&lt;br /&gt;
import random                                                      #Número aleatórios&lt;br /&gt;
from mesa.datacollection import DataCollector                      #Importamos um coletor de dados&lt;br /&gt;
import matplotlib.pyplot as plt                                    #Plotar gráicos             &lt;br /&gt;
#from IPython.display import clear_output                           #Configurações de saída do Colab         &lt;br /&gt;
import numpy as np    &lt;br /&gt;
&lt;br /&gt;
#AGENTE---------------------------------------------------------------------------------&lt;br /&gt;
class Agente(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Classe do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, modelo,largura,altura):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Bibliotecas necessárias&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #modelo     - Modelo que ao qual o agente pertence&lt;br /&gt;
        super().__init__(self, modelo)        #Necessário para funcionar o modelo&lt;br /&gt;
        self.ppos     = (0,0)                 #Poição que irá se mover&lt;br /&gt;
        self.rai= 0.2                         #Raio&lt;br /&gt;
        self.lim=(largura,altura)             #Limites da caixa&lt;br /&gt;
        v=1                                   #Módulo da velocidade inicial&lt;br /&gt;
        ang = 2*random.random()*np.pi&lt;br /&gt;
        self.vel      = (v*np.cos(ang),v*np.sin(ang)) #Velocidade decomposta&lt;br /&gt;
        self.colisao=False&lt;br /&gt;
        self.ac=False&lt;br /&gt;
                &lt;br /&gt;
    def prox_pos(self):&lt;br /&gt;
      dt=0.01&lt;br /&gt;
      nx=self.pos[0]+self.vel[0]*0.01&lt;br /&gt;
      ny=self.pos[1]+self.vel[1]*0.01&lt;br /&gt;
      #Testar os limites&lt;br /&gt;
      if (nx &amp;lt; 0):&lt;br /&gt;
        nx = - nx; self.vel=(-self.vel[0],self.vel[1])&lt;br /&gt;
      if (nx &amp;gt; self.lim[0]):&lt;br /&gt;
        nx = 2*self.lim[0] - nx; self.vel=(-self.vel[0],self.vel[1])&lt;br /&gt;
      if (ny &amp;lt; 0):&lt;br /&gt;
        ny = - ny; self.vel=(self.vel[0], - self.vel[1])&lt;br /&gt;
      if (ny &amp;gt; self.lim[1]):&lt;br /&gt;
        ny = 2*self.lim[1] - ny;self.vel=(self.vel[0], - self.vel[1])&lt;br /&gt;
&lt;br /&gt;
      return((nx,ny))&lt;br /&gt;
    &lt;br /&gt;
    def prox_vel(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Movimentação dos animais&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #Checamos se há colisão com outro animal:&lt;br /&gt;
        agentes = self.model.continuous.get_neighbors(pos=self.ppos, radius = 3*self.rai, include_center=True)&lt;br /&gt;
        for a in agentes:                                         #Percorremos a lista&lt;br /&gt;
          if (a.unique_id!=self.unique_id): &lt;br /&gt;
              d=np.sqrt((a.ppos[0]-self.ppos[0])**2+(a.ppos[1]-self.ppos[1])**2)&lt;br /&gt;
              if (d&amp;lt;=2*self.rai):&lt;br /&gt;
                #Direção da colisão&lt;br /&gt;
                d=(a.ppos[0]-self.ppos[0],a.ppos[1]-self.ppos[1])/np.sqrt((a.ppos[0]-self.ppos[0])**2+(a.ppos[1]-self.ppos[1])**2)&lt;br /&gt;
                #Partícula 1&lt;br /&gt;
                u1=(a.vel[0]-self.vel[0])*d[0]+(a.vel[1]-self.vel[1])*d[1]&lt;br /&gt;
                nvel1=(self.vel[0]+u1*d[0],self.vel[1]+u1*d[1])&lt;br /&gt;
                #partícula 2,pela conservação de momento:&lt;br /&gt;
                nvel2=(self.vel[0]+a.vel[0]-nvel1[0],self.vel[1]+a.vel[1]-nvel1[1])   &lt;br /&gt;
                #Se nenhuma partícula tinha se colidido&lt;br /&gt;
                if (self.colisao==False and a.colisao==False):          &lt;br /&gt;
                  #Atualiza as velocidades&lt;br /&gt;
                  self.vel=nvel1; a.vel=nvel2&lt;br /&gt;
                  self.ac=True;a.ac=True   &lt;br /&gt;
                #Registra a colisão&lt;br /&gt;
                self.colisao=True; a.colisao=True       &lt;br /&gt;
                break&lt;br /&gt;
        return ()                                          &lt;br /&gt;
&lt;br /&gt;
    def movimento(self):&lt;br /&gt;
      if(self.colisao):&lt;br /&gt;
        return (self.pos)&lt;br /&gt;
      else:&lt;br /&gt;
        return(self.ppos)&lt;br /&gt;
    &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que prepara as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.ppos = self.prox_pos()&lt;br /&gt;
             &lt;br /&gt;
    def advance(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que aplica as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.prox_vel()&lt;br /&gt;
        self.model.continuous.move_agent(self, self.movimento())&lt;br /&gt;
&lt;br /&gt;
#MODELO&lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def gerar_particulas(self,N,largura,altura):&lt;br /&gt;
      &amp;quot;&amp;quot;&amp;quot;Função para gerar animais iniciais&amp;quot;&amp;quot;&amp;quot;    &lt;br /&gt;
      #N        - Número de animais&lt;br /&gt;
      #largura  - Largura da grade&lt;br /&gt;
      #altura   - Altura da grade&lt;br /&gt;
      for n in range(N):&lt;br /&gt;
          con=True&lt;br /&gt;
          while(con):&lt;br /&gt;
            con=False&lt;br /&gt;
            a = Agente(self,largura,altura)&lt;br /&gt;
            X= largura*random.random()&lt;br /&gt;
            Y= altura*random.random()&lt;br /&gt;
            if (len(self.schedule.agents)==0):&lt;br /&gt;
              self.schedule.add(a)&lt;br /&gt;
              self.continuous.place_agent(a, (X, Y))&lt;br /&gt;
            else:&lt;br /&gt;
              agentes = self.continuous.get_neighbors(pos=(X,Y), radius = 2*a.rai, include_center=True)&lt;br /&gt;
              for viz in agentes:&lt;br /&gt;
                con = (True) if (len(agentes)==0) else (con)  #Precisamos checar se nasceu no mesmo lugar de outro animal&lt;br /&gt;
              if(con==False):&lt;br /&gt;
                self.schedule.add(a)&lt;br /&gt;
                self.continuous.place_agent(a, (X, Y))&lt;br /&gt;
      return()&lt;br /&gt;
&lt;br /&gt;
    def __init__(self, modelo,N,seed=None):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função chamada quando o modelo é inicializazdo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # Modelo   - Dicionário com especificações do modelo&lt;br /&gt;
        # N        - Número de partículas&lt;br /&gt;
        # seed     - Seed dos números aleatórios do modelo do mesa&lt;br /&gt;
        &lt;br /&gt;
        # Desempacotar o dicionário&lt;br /&gt;
        largura = modelo[&amp;quot;Largura&amp;quot;];altura=modelo[&amp;quot;Altura&amp;quot;]; random.seed(modelo[&amp;quot;Seed&amp;quot;])                     &lt;br /&gt;
        self.continuous = ContinuousSpace(x_max= largura, y_max=altura, torus= True, x_min=0, y_min= 0) #Configura a grade&lt;br /&gt;
        self.schedule   = SimultaneousActivation(self)            #Configura o agendador&lt;br /&gt;
        self.running   = True                                     #Condiçao para seguir executando o modelo&lt;br /&gt;
        self.gerar_particulas(N,largura,altura)    #Distribuir as ovelhas&lt;br /&gt;
           &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Avançar um passo do modelo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.schedule.step()                              #Avançamos os agentes&lt;br /&gt;
        #Limpamos as colisões&lt;br /&gt;
        for a in self.schedule.agents:                    #Vamos percorrer os agentes&lt;br /&gt;
          a.colisao=False&lt;br /&gt;
#Parâmetros&lt;br /&gt;
MAX =1000000&lt;br /&gt;
N=100&lt;br /&gt;
modelo  =  {&amp;quot;Largura&amp;quot;:100     ,&amp;quot;Altura&amp;quot;:100      ,&amp;quot;Seed&amp;quot;:1} &lt;br /&gt;
M = Modelo(modelo,N)&lt;br /&gt;
for i in range(MAX):&lt;br /&gt;
    M.step()&lt;br /&gt;
    if ((i+1)%(MAX/100)==0):&lt;br /&gt;
      #clear_output() &lt;br /&gt;
      print(str(100*(1+i)/MAX)+&amp;quot;%&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
vel=[]&lt;br /&gt;
E=0&lt;br /&gt;
for a in M.schedule.agents:&lt;br /&gt;
    vel.append(np.sqrt(a.vel[0]**2+a.vel[1]**2))&lt;br /&gt;
    E+=a.vel[0]**2+a.vel[1]**2&lt;br /&gt;
print(E)&lt;br /&gt;
with open('velocidades0.2R100K1000.txt', 'w') as f:&lt;br /&gt;
    f.write(str(vel))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para plotar o gráfico, podemos então usar simplesmente:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
a,b,c=plt.hist(vel,8, density=True, facecolor='g', alpha=0.75)&lt;br /&gt;
m=1&lt;br /&gt;
K=0.7&lt;br /&gt;
x=np.arange(0,2.5, 0.00001)&lt;br /&gt;
y = (4/np.sqrt(np.pi))*((m/K)**(3/2))*(x**2)*np.exp(-m*(x**2)/K)&lt;br /&gt;
plt.plot(x,y)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Citações ===&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7872</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7872"/>
		<updated>2022-07-22T11:24:05Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[AC: Jogo da Vida | Jogo da Vida e PCAEGOL]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |0/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Dinâmica de flora&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logístico: simples e com atraso]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra Reduzido|Lotka-Volterra Reduzido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7871</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7871"/>
		<updated>2022-07-22T11:23:29Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[AC: Jogo da Vida | Jogo da Vida e PCAEGOL]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |0/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Dinâmica de flora&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logísticos com e sem atraso]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra Reduzido|Lotka-Volterra Reduzido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7870</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7870"/>
		<updated>2022-07-22T11:22:31Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[AC: Jogo da Vida | Jogo da Vida e PCAEGOL]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |0/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Dinâmica de flora&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logísticos]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra Reduzido|Lotka-Volterra Reduzido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7869</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7869"/>
		<updated>2022-07-22T11:16:38Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[AC: Jogo da Vida | Jogo da Vida e PCAEGOL]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |0/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Dinâmica de flora&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logísticos]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7868</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7868"/>
		<updated>2022-07-22T11:15:06Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logísticos]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[AC: Jogo da Vida | Jogo da Vida e PCAEGOL]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |0/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Dinâmica de flora&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Por_que_usar_e_o_que_s%C3%A3o_modelos_baseados_em_indiv%C3%ADduos&amp;diff=7867</id>
		<title>Por que usar e o que são modelos baseados em indivíduos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Por_que_usar_e_o_que_s%C3%A3o_modelos_baseados_em_indiv%C3%ADduos&amp;diff=7867"/>
		<updated>2022-07-22T11:13:42Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Autômato celular e modelo baseado em indivíduos]] |[[MBA: Gás simples]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Uma breve descrição do que é modelagem baseada em indivíduos:&lt;br /&gt;
&lt;br /&gt;
* Agente: indivíduo computacional autônomo.&lt;br /&gt;
* Modelagem baseada em agentes: forma de modelagem computação no qual um fenômeno é modelado em termos dos agentes e suas interações.&lt;br /&gt;
&lt;br /&gt;
Representações bseadas em agentes são mais fáceis de entender que representações matemáticas dos mesmos problemas, pois a língua e conceitos usados nestas modelagens é mais próximas da linguagem natural e nossa forma natural de pensar qundo comparado com modelagens matemáticas.&lt;br /&gt;
&lt;br /&gt;
Alguns conceito interessantes:&lt;br /&gt;
&lt;br /&gt;
* Estruturação: A codificação do conhecimento em um domínio como uma função da infraestrutura representacional usada para expressar o conhecimento. Ex.: Números romanos.&lt;br /&gt;
* Reestruturação: uma mudanção de uma estruturação para outra. Ex.: Mudança de números romanos para hindu-arábicos&lt;br /&gt;
* Inercia estruturacional: resistenência à reestruturação.&lt;br /&gt;
&lt;br /&gt;
=== Entendendo sistemas complexos e emergência ===&lt;br /&gt;
&lt;br /&gt;
Emergência é definido como o surgimento de estruturas, padrões e propriedades novas e coerentes através da interação de múltiplos agentes distribuíbos. Algumas característica da emergência são:&lt;br /&gt;
&lt;br /&gt;
* As estruturas emergentes não podem ser deduzidas apenas a partir das propriedades dos elementos, elas surgem da interação dos elementos e são propriedades do sistema.&lt;br /&gt;
* Auto-organização: um padrão global surge espontaneamente sem a presença de um coordenador central.&lt;br /&gt;
* A emergência também pode ser visto como um processo mantendo a estrutura no lugar ao invés de uma entidade.&lt;br /&gt;
&lt;br /&gt;
Há dois desafios distintos:&lt;br /&gt;
&lt;br /&gt;
* Entendimento integrativo: uma vez que sabemos como cada indivíduo age, como descobrir o padrão?&lt;br /&gt;
* Entendimento diferencial: conhecendo o padrão, como descobrir o comportamento dos elementos que geram o padrão?&lt;br /&gt;
&lt;br /&gt;
Pesquisas indicaram a existência de um padrão cognitivo determinista e centralizado. Isto é, a maioria dos participantes envolvidos nesta pesquisa não acreditam que elementos aleatórios possam ser uma força construtiva para a formação de um padrão, pelo contrário, acreditam que seja destrutivo (determinista). Além disso também acreditam que os padrões surgem da ações de um controlador (centralizado). Um obstáculo para a melhor compreensão deste fenômenos é a dificuldade em ’pensar em níveis’. Pois fenômenos emergentes existem em dois níves: o nível dos agentes individualmente e o nível do sistema, onde os padrões são observados.&lt;br /&gt;
&lt;br /&gt;
Pensando em um grupo de pássaros voando na formação, a formação consistente de aparentemente estabilidade leva as pessoas a a concluir que os elementos individualmente do bando também são estáveis e possuem um lugar consistente, transferindo uma propriedade do sistema para os indivíduos.&lt;br /&gt;
&lt;br /&gt;
Pensando em um engarrafamento, estamos acostumados a pensar como o indivíduo no carro, parando o caro em frente à um acidente e se movendo quando não há carro, então quando se defrontado com um engarrafemto é fácil pensar em todo engarrafament se movendo quando possível e parando em frente à um acidente por exemplo, ao invés de pensar que há algo retrocedendo, que é um comportamento observado frequentemente nos engarrafamentos. Desta vez o que ocorre é transferir uma propriedade dos indivíduos para o sistema.&lt;br /&gt;
&lt;br /&gt;
=== Reestruturação ===&lt;br /&gt;
&lt;br /&gt;
Da mesma forma que houve uma reestruturação na substituição dos números romanos para os árabes, é possível que a representação computacional ajude a reestruturar o conhecimento em muitos domínios, onde tradicionalmente era utilizado técnicas matemáicas, agora podemos utilizar simuação computacional para estudar estes fenômenos.&lt;br /&gt;
&lt;br /&gt;
Como o nome sugere, agentes são entidades com propriedades (variáveis de estado, valores) , se o agente é uma ovelha, poder ter propriedades como posição, idade, velocidade, etc... Agentes podem ter uma representação gráfica que o permita ser visualizado, também possuem regras de comportamento, como por exemplo comer grama. Em modelagem baseada em agentes imaginamos um relógio universal, quando o relógio faz ’tic’, todos os agentes invocam suas regras, se as condições são satisfeitas (se há grama próxima por exemplo) então o comporamento é executado.&lt;br /&gt;
&lt;br /&gt;
O objetivo da modelagem é é criar agentes e regras que gerem o comportamento desejado, estes sistemas podem ser usandos para obter um melhor entendimento de um fenômeno através da experimentação das regras e propriedades.&lt;br /&gt;
&lt;br /&gt;
Uma hipótese por teóricos da representação, é de que tudo que é percebido como difícil pode ser mais com compreensível por uma representação mais adequada. Alguns autores afirmam que a modelagem baseada em agentes (ABM) permite a reestruturação da área de sistemas complexos de forma que a compreensão destes sistemas podem ser democratizadas e a ciência possa avançar. Os modelos servem tanto como um objeto para se pensar a respeito do fenômeno modelado, como uma ferramenta para testar diferentes hipóteses.&lt;br /&gt;
&lt;br /&gt;
=== Exemplo conceitual: Modelo de formigas ===&lt;br /&gt;
&lt;br /&gt;
Mais alguns conceitos:&lt;br /&gt;
&lt;br /&gt;
* Modelo: uma descrição abstrata de um processo, objeto, ou evento.&lt;br /&gt;
* Modelo computacional: um modelo que recebe certos valores de entrada, manipula estas entradas de uma forma algorítmica e gera saídas.&lt;br /&gt;
* Implementação de modelo: processo de transformaçãoum modelo conceitual em uma simulação computacional que funciona (um código).&lt;br /&gt;
&lt;br /&gt;
Em uma modelagem baseada em agentes de formigas, cada agente é uma formiga no qual impomos regras básicas de exploração e coleta de alimentos individualmente, assim como liberação de feronômios. Especificamente, do ponto de vista de cada formiga individual, podemos definir as seguintes regras:&lt;br /&gt;
&lt;br /&gt;
# Se eu não estou carregando comida, checo se tem comida aqui. Se tem, eu a pego, se não tem, eu tento seguir a trilha de feronômios mais próxima. Se eu encontro uma, eu viro em direção à este gradiente de feronômio.&lt;br /&gt;
# Se estou carregando comida, eu viro em direção ao ninho liberando feronômio no chão atrá de mim.&lt;br /&gt;
# Eu ando uma quantidade pequena e aleatória de distância para frente.&lt;br /&gt;
&lt;br /&gt;
Como resultado da simulação, o sistema forma “trilhas” que levam as formigas às fontes de comida, exibindo comportamento “ótimo” que as fazem explorar primeiro os recursos mais próximos e hainda “balanço” entre exploração do ambiente e exploração dos seus recursos. Estes três fenômenos não foram codificados nas formigas, são um fenômeno emergente do modelo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O que é então a modelagem e simulação baseada em agentes? == &lt;br /&gt;
&lt;br /&gt;
Um modelo qualquer é sempre uma abstração da realidade, ou seja, uma representação simplificada que preserva uma equivalência adequada para determinadas situações de forma que pode ser vista como uma visão substitutiva da realidade para facilitar o raciocínio. &lt;br /&gt;
&lt;br /&gt;
Modelagem baseada em agentes (''agent based model'' - ABM) é uma forma de modelagem computacional na qual a dinâmica de um sistema complexo (social, biológico, etc) é representada em termos dos agentes e suas interações. Os agentes por suas vezes são indivíduos computacionais autônomos que possuem propriedades e regras de comportamento que regem sua interação com outros agentes e com o ambiente.&lt;br /&gt;
&lt;br /&gt;
A ideia central da modelagem baseada em agentes é que a maioria dos fenômenos do mundo real podem ser efetivamente modelados com agentes, um ambiente e uma descrição das interações agente-agente e agente-ambiente. O objetivo deste tipo de modelagem é criar agentes e regras que gerem o comportamento desejado. Uma vez criado, estes sistemas podem então serem usados para obter um melhor entendimento do fenômeno modelado através da experimentação de diferentes regras e propriedades visando testar diferentes hipóteses.&lt;br /&gt;
&lt;br /&gt;
Há principalmente 8 usos principal para um modelo baseado em agentes:&lt;br /&gt;
&lt;br /&gt;
# Descrição: um modelo desreve um sistema do mundo real, apesar de ser uma simplificação que não contém todos os seus detalhes, ainda sim é uma descrição grosseira da realidade, caso contrário é um modelo inútil. Pois se incorpora todo os aspectos do fenômeno real, é mais fácil observar a realidade, e se não a descreve de nenhuma forma não há motivos para observar.&lt;br /&gt;
# Esclarecimento: os modelos apontam os principais mecanismos em um fenômeno, funcionando então como prova de que um conceito é possível.&lt;br /&gt;
# Experimentação: modelos podem ser executados repetidamente, onde podemos variar os parâmetros para ver seus efeitos no comportamento e na saída.&lt;br /&gt;
# Prever fontes de analogia: podemos encontrar similaridades com outras simplificações, ainda que modelem fenômeno aparanetemente muito diferentes.&lt;br /&gt;
# Comunicação/educação: os modelos podem ser usados para permitir que pessoas explorem e entendam melhor determinados fenômenos, facilitando o aprendizado.&lt;br /&gt;
# Prover peças centrais para o diálogo científico: também chamado de ’um objeto com que pensar’, basicamente se apresenta como uma vantagem em comparação a outros modelos, por exemplo comparando com modelos textuais, elimina amgibuidades de como o leitor pode interpretar a descrição. Possibilitando discutir quais mecanismos são importantes para gerar determinando comportamento removendo ou adicionando novos mecanismos.&lt;br /&gt;
# Experimento mental: não necessariamente representam um fenômeno do mundo real, mas também podem ser experimentos mentais apenas.&lt;br /&gt;
# Predição: um dos propósitos que as pessoas comumente atribuem a modelagem computacional é a predição, de fato pode ter o propóito de pensar sobre futuros cenários utilizando a modelagem como uma ferramenta nesta discussão. Porém há a observação que que a acurácia da predição depende dos dados de entrada, e é difícil avaliar a acurácia de uum modelo para prever eventos que não ocorrem ainda. O que de fato é feito é '''descrever''' padrões passados e com isso '''explicar''' padrões futuros que possam surgir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sistemas complexos são definidos como sistemas compostos de múltiplos elementos individuais que interagem entre si e apresentam um comportamento que não pode ser previsto a partir dos próprios elementos. Como resultado das interações entre os elementos distribuídos surge então um ``fenômeno emergente&amp;quot;, característico de sistemas complexos. Por sua vez, o fenômeno emergente possui duas características essenciais: A primeira é que as estruturas que emergem não podem ser deduzidas apenas das propriedades dos elementos, pois surgem da interação entre eles, ou seja, são propriedades do sistema e não dos elementos que o compõe. E a segunda característica é a auto-organização, isto é,  o fenômeno surge espontaneamente sem a presença de um coordenador central. A emergência pode ser compreendida como o processo que mantém esta estrutura.&lt;br /&gt;
&lt;br /&gt;
A eficiência de um modelo depende da correta tradução da realidade para o modelo no ato de modelar, que por sua vez, é exatamente o ato de simular a realidade através de modelos. É por isto que é importante pensar no modelo antes do próprio ato de modelagem começar, identificar as variáveis relevantes para o problema que será abordado e definir a linguagem que será utilizada, pois a elaboração do modelo depende destes pontos cruciais.  Como um modelo é uma simplificação da realidade, é possível que uma mesma realidade seja modelada de diferentes formas, já que nenhum modelo é a própria realidade, em si, temos como exemplo a forma mais tradicional de modelagem científica de processos dinâmicos: equações diferenciais (''equation based modeling'' - EBM). &lt;br /&gt;
&lt;br /&gt;
Resulta por tanto ser natural comparamos ambas ambas estratégias de modelagem, EBM e ABM. Uma diferença importante é que  ABM pode modelar populações heterogêneas com facilidade enquanto EBM parte geralmente da hipótese de homogeneidade (''mean field''), e em muitas áreas a heterogeneidade possui um papel central. Da mesma forma que o ABM pode ser utilizada para modelar interações complexas entre agentes, também pode ser utilizado para modelar interações complexas entre agentes e o ambiente onde o ambiente é representado por agentes estacionários, assim, além da ABM ser indicada para situações em que temos heterogeneidade entre os agentes, também é indicada quando há um ambiente heterogêneo.&lt;br /&gt;
&lt;br /&gt;
Outra vantagem é que enquanto para modelar com equações precisamos ter um bom conhecimento fenomenológico dos mecanismos internos do sistema de interesse, em ABM precisamos apenas das regras a nível de indivíduos, o que geralmente é mais direto de se obter. Um grande risco no processo de modelagem como um todo é modelarmos os efeitos e não as causas, pela natureza de abordagem mais direta a nível individual da ABM, partimos exatamente da ideia de modelar estas interações para que o fenômeno emergente de nosso interessa seja então o resultado do nosso sistema, permitindo então que naturalmente nos foquemos na causa para entendermos o efeito.  Os resultados do ABM também são mais detalhados uma vez que as saídas não são apenas a nível do sistema, mas também a nível individual. Outra diferença bastante obvia é que ABM representa resultados com indivíduos de forma naturalmente discreta e frequentemente com flutuações (quando se inclui probabilidades) em quanto EBM fornece uma representação contĩnua e sem ruido do mesmo sistema.&lt;br /&gt;
&lt;br /&gt;
A modelagem baseada em agentes também possui uma concepção de tempo mais rica quando comparado com outras técnicas de modelagem, pois nos permite observar os indivíduos interagindo ao longo do tempo. Porém como qualquer modelo, há situações em que o custo de construir uma ABM excede seus benefícios. De maneira geral se o problema envolve um largo número de agentes homogêneos, será possível obter uma solução mais acurada e em menor tempo usando uma solução como campo médio, logo podemos considerar melhor modelado por esta categoria de modelos.&lt;br /&gt;
&lt;br /&gt;
Quanto ao custo computacional em si, há uma relação de custo benefício semelhante a outras formas de modelagem: resultados mais detalhados são obtidos com modelos mais detalhados que exigem maior poder de processamento. Porém, de maneira geral ABM é computacionalmente mais pesado do que EBM, uma vez que estes últimos são relativamente simples, pois frequentemente consistem de um pequeno conjunto de equações. &lt;br /&gt;
&lt;br /&gt;
Por fim, vale-se destacar que a modelagem baseada em agentes permite manter um histórico de interação entre os agentes, e este histórico pode servir para que o agente altere seus comportamentos e estratégias baseadas em eventos passados. Isto o torna uma ferramenta muito útil quando se modela interações complexas de agentes adaptativos. Devido a forma em que os ABM são construídos, novas regras de interação podem ser adicionadas, removidas ou alteradas com relativa facilidade.&lt;br /&gt;
&lt;br /&gt;
Como pode-se perceber, modelagem baseada em agentes é mais um conceito para a construção de um modelo que uma `receita'. De maneira geral, pode-se dizer que a modelagem baseada em agentes é uma modelagem que utiliza agentes, que por sua vez são um tipo de inteligência artificial, de forma que é importante ter um pouco de familiaridade com estes conceitos e outros correlatos.&lt;br /&gt;
&lt;br /&gt;
Inteligência artificial é o único campo a tentar construir sistemas que funcionarão de forma autônoma em ambientes complexos, assim podemos definir inteligência artificial como o estudo de sistemas que recebem entradas do ambiente e executam ações para retornar alguma saída de forma autônoma. Entre teorias existentes que são utilizadas dentro de inteligência artificial, podemos mencionar especialmente o aprendizado de máquina e o algoritmo genético, tópicos que serão discutidos com um pouco mais de detalhes nas próximas seções.&lt;br /&gt;
&lt;br /&gt;
Agentes autônomos são uma abordagem no estudo de IA fortemente inspirado pela biologia. Um agente nada mais é que um sistema que através de sensores consegue perceber o ambiente e agir sob o mesmo, e é autônomo uma vez que suas operações são realizadas sem a interferência do usuário. O sistema que forma o agente de maneira geral pode ser constituído de ''software'' e ''hardware'' permitindo que o sistema manipule um ambiente real.&lt;br /&gt;
&lt;br /&gt;
E por fim, temos que um sistema multiagente (''multiagent sytem'' - MAS) é uma aplicação de agentes, onde tem-se vários agentes, do mesmo ou diferentes tipos, que trabalham de forma colaborativa pra completar uma tarefa ou resolver um problema. Uma característica importante é que compartilham de um mesmo ambiente, sendo necessário então um ''framework'' que permita a comunicação e coordenação entre os agentes.&lt;br /&gt;
&lt;br /&gt;
Uma simulação construída através da ABM  (ainda chamado de ''agent based modelling and simulation'' - ABMS) é um sistema multiagente em um ambiente simulado com um tempo virtual.  Dessa forma dentro da nossa modelagem o sistema do agente é constituído apenas de ''software'', sendo apenas um programa, um agente de existência virtual que percebe e opera sobre um ambiente igualmente virtual. Aqui podemos destacar ainda que apesar de se sobreporem muitas vezes, MAS e ABMS tradicionalmente são discutido na literatura sob diferentes enfoques.  O objetivo da ABM  costumeiramente é entender alguma propriedade emergente que surge do comportamento coletivo do agentes, sendo mais usado em ciências, enquanto MAS tem o objetivo de resolver algum problema em particular sendo mais comumente utilizado nas engenharias. Devido a enorme variedade de aplicações, na literatura ainda podemos encontrar outros nomes para modelos construídos através da ABM dependendo muitas vezes do enfoque como por exemplo ''agent-based simulation'' e ''agent-based systems'' que possuem a mesma abreviatura (ABS), ''agent-based social simulation'' (ABSS) que ainda é sub-dividido em três categorias -  ''social aspects of agent systems''(SAAS), ''multi-agent based simulation'' (MABS) e ''social simulation'' (SocSim)-  além do próprio MAS que aparece também como sinônimo em parte da literatura.&lt;br /&gt;
&lt;br /&gt;
Ainda vale destacar a importância do conhecimento de alguns princípios  básicos para uma boa modelagem. No nosso modelo evidentemente é necessário conhecimento matemático, pois para uma modelagem computacional precisamos abstrair matematicamente. Princípios físicos básicos devem ser considerados  mesmo em simulações básicas, pois por exemplo os animais devem ter uma movimentação plausível, além de outros fenômenos naturais complexos que podem serem adicionados a depender da modelagem. E evidentemente, se faz necessário ter conhecimento de princípios biológico, uma vez que estamos tentando modelar um fenômeno de natureza biológica, particularmente de natureza ecológica no nosso caso. %Uma vez que o cientista responsável pela modelagem precisa trabalhar com observações da natureza que fogem do seu domínio principal, como este é o caso, passa-se a ser obrigatório apoiar-se em modelos já consolidado e consultar a literatura.&lt;br /&gt;
&lt;br /&gt;
Uma vez que construímos um modelo satisfatório, um dos papeis mais importantes da modelagem é a simulação. Pois é através desta que podemos determinar o quanto ela se aproxima da realidade. A partir então do momento que temos um grau de fidelidade aceitável no aspecto que o modelo se propõe a modelar, podemos criar situações que são difíceis de serem observadas e estudadas no mundo, cumprindo então o objetivo de que o modelo possa a ser utilizada como ferramenta de tomada de decisão.&lt;br /&gt;
&lt;br /&gt;
== Principais materiais utilizados: ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.jstor.org/stable/j.ctt17kk851 An Introduction to Agent-Based Modeling Modeling Natural, Social, and Engineered Complex Systems with NetLogo]. (Wilensky U. e Rand W.)&lt;br /&gt;
* [https://www.lume.ufrgs.br/handle/10183/12181 Em busca da aplicabilidade de sociedades articiais em informática educativa] (Henrique Oliveira da Silva, Doutorando da UFRGS)&lt;br /&gt;
* [https://www.intechopen.com/chapters/56573 Introductory Chapter: Multi-Agent Systems](Jorge Rocha, Inês Boavida-Portugal e Eduardo Gomes, Universidade de Lisboa)&lt;br /&gt;
* [https://www.inf.ufrgs.br/~bazzan/downloads/mas_ppsn.pdf Multiagent Systems and Agent-based Modeling and Simulation](Ana L. C. Bazzan, UFRGS)&lt;br /&gt;
{{Ecologia| [[Autômato celular e modelo baseado em indivíduos]] |[[MBA: Gás simples]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Aut%C3%B4mato_celular_e_modelo_baseado_em_indiv%C3%ADduos&amp;diff=7866</id>
		<title>Autômato celular e modelo baseado em indivíduos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Aut%C3%B4mato_celular_e_modelo_baseado_em_indiv%C3%ADduos&amp;diff=7866"/>
		<updated>2022-07-22T11:13:28Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Simulação e modelo de campo médio ]] |[[Por que usar e o que são modelos baseados em indivíduos]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Artificial_society Sociedades artificiais] são modelos da sociologia computacional que são utilizados em análises sociais utilizando simulações computacionais, é um tema bastante conectado à sistemas complexos, desta forma se aproxima dos nossos modelos ecológicos.&lt;br /&gt;
&lt;br /&gt;
Dentre as simulações computacionais utilizadas temos: algoritmos evolucionários (''evolutionary algorithms'' - EA), algoritmos genéticos (''genetic algorithms'' - GA), programação genética ''(genetic programming'' - GP), programação memetica (memetic programming - MP), modelos baseados em agentes (''agent based model'' - ABMs) e ''autômatos celulares'' (cellular automata - CA). Estes dois últimos são de especial interesse para nós.&lt;br /&gt;
&lt;br /&gt;
==Autômatos celulares==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cellular_automaton Autômatos celulares] consistem em uma grade de células, onde cada uma está em um estado possível dentro de um conjunto finito de estados. Utilizando como exemplo para discussões posteriores o [[Modelo espacialmente explícito para 2 espécies|modelo de 2 herbívoros com dinâmica de destruição do sistema]], os possíveis estados de cada célula são:&lt;br /&gt;
&lt;br /&gt;
#D - Destruído&lt;br /&gt;
#L - Livre&lt;br /&gt;
#O - Ocupado por ovelha&lt;br /&gt;
#G - Ocupado por guanaco&lt;br /&gt;
#OG - Ocupado por ovelhas e guanacos&lt;br /&gt;
&lt;br /&gt;
Associado a cada célula temos um conjunto de células que são definidas em relação à esta célula específica, este conjunto recebe o nome de vizinhança. No nosso exemplo definimos como os 4 primeiros vizinhos da célula. Definimos um estado inicial &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t=0&amp;lt;/math&amp;gt; para todas as células e temos uma nova geração em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t+1&amp;lt;/math&amp;gt; onde aplicamos uma regra de transição que determina o novo estado de um célula baseada em seu próprio estado atual e no estado das células vizinhas. Em geral as regras para atualização são as mesmas para cada células durante toda a simulação e é aplicado em toda a grade simultaneamente (síncrono). Algumas coisas que podem ser interessantes é mencionar que para o autômato celular, o espaço, o tempo e os estados são todos discretizados. Podemos comparar com outros sistemas dinâmicos espacialmente estendidos em termos da discretização destes três elementos&amp;lt;ref&amp;gt;[http://www.scholarpedia.org/article/Coupled_maps Coupled maps] (Kunihiko Kaneko e Tatsuo Yanagita, Scholarpedia)&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Espaço&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tempo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Estado&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Rede de mapas acoplados (CML)&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação diferenciais ordinárias acopladas&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação diferencial parcial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | C&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Onde D significa que é discreto e C que é contínuo, CML significa ''coupled map lattices''.Também é interessante de se destacar aqui, é que matemática e ciência computacional são disciplinas básicas para o autômato celular, então estamos efetivamente utilizando estes conjuntos de conhecimentos como ferramentas e expandindo um pouco nossos recursos disponíveis. Utilizando não mais apenas a matemática tradicional, mas também a ciência da computação. O que explica um pouco alguns problemas de nomenclatura e definições de termos que podem ser encontrados ao longo dos textos, aos poucos estes devem ser corrigidos conforme o próprio conhecimento vai sendo amadurecido.&lt;br /&gt;
&lt;br /&gt;
Investigações teóricas de CA geralmente consistem em pegar uma dada regra e descobrir propriedades matemáticas relacionadas. Mas a maior parte das aplicações em ciências naturais seguem uma aproximação inversa, ou seja, busca-se descobrir a regra que reproduz as propriedades conhecidas que governam o fenômeno estudado.&lt;br /&gt;
&lt;br /&gt;
Além disto, as regras de transições podem ser determinísticas ou estocásticas. Como os termos sugerem, no caso determinístico o novo estado de cada célula é determinado rigidamente baseado no estado presente da própria célula e no estado das células vizinhas. No caso estocástico (também chamado de autômato celular probabilístico) a seleção do estado da célula em cada tempo é sujeita a uma função probabilística, esta regra de transição oferece uma melhor analogia a sistemas naturais e também é o caso do nosso exemplo.&lt;br /&gt;
&lt;br /&gt;
Além disso classicamente se discute quatro classes de comportamentos que podem ser reproduzidos por um autômato celular elementar, eles são qualitativamente caracterizados como:&lt;br /&gt;
&lt;br /&gt;
*Classe 1: a evolução leva a um estado homogêneo; depois de um certo tempo, todas as células possuem um estado similar, independente do estado inicial.&lt;br /&gt;
*Classe 2: a evolução leva a um conjunto de estruturas separadas simples ou periódicas; uma organização espacial surge com distintos domínios espaciais que podem ser homogêneos e estáveis ou periódico com alteração dos estados.&lt;br /&gt;
*Classe 3: evolução leva a um padrão caótico; independente das condições iniciais o autômato celular leva a padrões aperiódicos em que não podem ser identificados qual foi o padrão inicial&lt;br /&gt;
*Classe 4: evolução leva a estruturas complexas, algumas vezes com tempo de vida; nessa classe surge alguns padrões espaciais complexos que podem durar por um tempo específico, esses padrões possuem propagação espacial enquanto mantém uma conservação do seu formato.&lt;br /&gt;
&lt;br /&gt;
Sem realizar análises detalhadas, aparentemente o exemplo que escolhemos pertence à classe 2. Claro que esta classificação é que com os parâmetros utilizados no artigo que levam o sistema à um regime oscilatório. Com outros parâmetros que levaria o sistema à uma extinção total por exemplo, teríamos uma classe 1.&lt;br /&gt;
&lt;br /&gt;
A literatura ecológica que lida com autômatos celulares em sua maioria está de alguma forma relacionado à questão da heterogeneidade espacial. Alguns trabalhos buscam responder como os processos biológicos respondem a uma heterogeneidade preexistente. Pensando no outro [[Modelo espacialmente explícito|modelo com a destruição fixa]],  este tinha como objetivo estudar como o sistema evolui a partir de uma distribuição fixa das células destruídas no início. Outra classe de trabalhos busca a resposta inversa: como os processos biológicos podem criar heterogeneidade. Neste caso, podemos lembrar do próprio exemplo, onde estuda-se como a dinâmica produz as ondas de desertificação.&lt;br /&gt;
&lt;br /&gt;
Além disso vale destacar que as interações em um CA são de curto alcance, o que é negligenciado em modelos de campo médio por exemplo. Outras características importantes e interessantes de um modelo de autômato celular são as capacidades de auto-manutenção e auto-organização.&lt;br /&gt;
&lt;br /&gt;
Em todas aplicação de CA na ecologia, cada célula é considerado um espaço para um indivíduo biológico. No nosso exemplo cada ’indivíduo biológico’ ganha a interpretação de uma metapopulação de cada espécie, isto pode representar um indivíduo ou uma manada, não há distinções do tamanho desta metapopulação. Desta forma cada célula tem nos seus estados a informação, como comentamos anteriormente, apenas se ela está ocupada ou não por aquela espécie, mas não admite uma variação de indivíduos dentro da mesma célula, isto é, não admite variar o tamanho da metapopulação que ocupa cada célula. Não é claro como o CA determinístico poderia incorporar esta variação individual, mas é perfeitamente concebível utilizando uma regra de transição estocástica. Isto poderia ser feito por exemplo, variando a probabilidade de adotar determinado estado, desta forma um modelo de CA pode ser utilizado com o objetivo de construir um modelo baseado em indivíduos. Esta é uma alternativa.&lt;br /&gt;
&lt;br /&gt;
==Modelos baseados em agentes==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Agent-based_model Modelos baseados em agentes] são modelos computacionais para simular ações e interações entre agentes autônomos, estes modelos são mais intuitivos que modelos matemáticos ou estatísticos, uma vez que representam objetos como nós vemos: coisas individuais no mundo. Os exemplos mais familiares para muitas pessoas são os jogos The SIMS ou SIMCity.&lt;br /&gt;
&lt;br /&gt;
Na ecologia estes modelos também são chamados de modelos baseados em indivíduos (''individual-based models'' - IBMs), modelo baseado em entidades ou simulações baseadas em indivíduos/entidades/agentes. Além disso há uma discussão sem nenhuma resposta conclusiva na literatura e entre profissionais envolvidos se modelos baseados em agentes são a mesma coisa que sistemas multi-agentes (''multi-agent system'' - MAS), ou se não são, então onde começaria um e terminaria outro, algumas autores ainda consideram IBMs como modelos pertencente à classe de modelos MAS. Para o resto do texto, se necessário vou considerar sistema de multi-agentes apenas como outro nome para modelo baseado em indivíduo&amp;lt;ref&amp;gt;[https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30440-3_13 Encyclopedia of Complexity and Systems Science] (Editor: Robert A. Meyers). Artigo: Agent Based Modeling andSimulation, Introduction to (Cilipo Castiglione, Conselho Nacional de Pesquisa da Itália)&amp;lt;/ref&amp;gt;. Porém parece que MAS é um termo predominantemente das áreas baseadas em ciência computacionais e normalmente possui o propósito de resolver um problema real ou completar uma tarefa, um exemplo são redes de telecomunicação. Enquanto IBMs normalmente estão relacionados a ciências naturais como ecologia e ciência sociais, sendo predominantemente pesquisas sobre sistemas naturais em que a simulação tem por objetivo observar o comportamento coletivo dos agentes, mais que resolver um problema em específico&amp;lt;ref&amp;gt;[https://www.researchgate.net/post/How_to_differentiate_between_multi-agent_systems_and_agent-based_models Discussão aberta no Research Gate]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://arxiv.org/ftp/arxiv/papers/1708/1708.05872.pdf Agent-based computing from multi-agent systems to agent-based models: a visual survey] (Niazi Muaz e Amir Hussain, Scientometrics)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os modelos baseados em indivíduos historicamente evoluíram a partir dos autômatos celulares. Ainda explorando um pouco sua história nos anos 1990 houve uma grande expansão nas ciências sociais, e um os primeiros modelos úteis de autômatos celulares foi proposto por um cientista social e reimplementado muitas vezes em modelos IBM. Há três ideias centrais nos IBMs: agentes, [https://en.wikipedia.org/wiki/Emergence emergencia] e [https://en.wikipedia.org/wiki/Complexity complexidade].&lt;br /&gt;
&lt;br /&gt;
*Agentes são os objetos que interagem seguindo algumas regras, tipicamente estão situados no espaço e residem em uma rede ou uma vizinhança tipo grade. Em alguns casos, como na ecologia, os agentes podem ser considerados como inteligentes e/ou com propósitos.&lt;br /&gt;
* Emergencia ocorre quando uma entidade observada possui propriedades que suas partes não possuem. Então esta propriedade emerge somente quando as partes que constituem esta entidade interagem entre si, de forma simples, é algo que não pode ser obtido apenas como uma soma de suas partes.&lt;br /&gt;
*A complexidade caracteriza o comportamento de um modelo em que seus componentes interagem de múltiplas formas e seguem regras locais.&lt;br /&gt;
&lt;br /&gt;
Modelos baseados em agente são então simulações baseadas em consequências globais de interações locais dos membros de uma população. Neste tipo de modelo as características de cada indivíduo é rastreada através do tempo, em contraste com técnicas que caracterizam a população baseado em uma média, como os modelos de campo médio.&lt;br /&gt;
&lt;br /&gt;
Alguns modelos baseados em indivíduos podem ser especialmente explícitos, isto é, os indivíduos estão associados a uma localização em um espaço geométrico, neste caso também podem (mas não necessariamente) exibir mobilidade através do ambiente.&lt;br /&gt;
&lt;br /&gt;
Lembrando do exemplo que escolhemos para exemplificar características dos autômatos celulares, pensando na questão da mobilidade, se lembrarmos dos conceitos de meta-população originalmente proposto no modelo de Levins, não há mobilidade. Cada meta-população vive em determinado fragmento, o que ocorre na colonização é que uma nova geração coloniza um nova célula, mas não se desloca para ela. Na proposta original, a meta-população não possui mobilidade, ainda que o fenômeno de colonização de uma nova célula e extinção local produza um efeito análogo. Os modelos espacialmente explícitos ainda podem ser contínuos (valores reais) ou discreto (valores inteiros, tipo grade). Este último é o que se aproxima do nosso exemplo. Além disso os modelos também não precisam ser espacialmente explícitos, como uma rede de computadores por exemplo, onde as conexões entre os agentes não precisam estar relacionados a nenhuma localização espacial.&lt;br /&gt;
&lt;br /&gt;
Conforme pode-se perceber, há uma relação entre modelos baseados em indivíduos e autômatos celulares. Conforme discutido enquanto uma célula de um autômato celular assume um estado que basicamente informa se a célula está ocupado ou não por uma espécie, em um modelo baseado em indivíduos podemos ter mais indivíduos ocupando o mesmo fragmento do ambiente e variando a população local de uma mesma espécie em um mesmo fragmento. É claro que podemos adicionar mais estados finitos no autômato celular, ou ainda conforme discutido adaptar as regras estocásticas de transição, mas talvez a diferença mais significativa seja se o loop da simulação procede célula por célula, ou indivíduo por indivíduo.&lt;br /&gt;
&lt;br /&gt;
Mas a verdade é que muitos modelos estão entre CAs e IBMs, em geral uma das principais distinções dos modelos é exatamente se os agentes se movem ou simplesmente parecem se mover porque série de células mudam de estado, a exemplo da discussão que realizamos sobre nosso modelo baseado em autômatos, onde há apenas este movimento aparente. Já em IBMs os agentes que são os objetos no mundo tem posição conhecida e podem efetivamente se mover carregando propriedades auxiliares com eles. Dessa forma uma das vantagens chaves dos IBMs é que o conhecimento interno do agente é mantido com a entidade quando ela se move, enquanto no CA o conhecimento associado não se move. Como os agentes carregam conhecimento consigo, ele pode utilizar o conhecimento e a história para explorar novas áreas e conhecer outros agentes.&lt;br /&gt;
&lt;br /&gt;
Com o desenvolvimento da programação orientada a objetos (''Object Orientated Programming - OOP'') que de certa forma lembra os conceitos dos IBMs, se tornou razoavelmente mais simples de implementar este tipo de modelo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introdução à modelos baseados em indivíduos===&lt;br /&gt;
&lt;br /&gt;
Uma coisa interessante sobre os MBIs (modelos baseados em indivíduos) é quão longe podemos ir com relativa simplicidade devido a ascensão da programação orientada a objetos (''Object Orientated Programming'' - OOP ). OOP é uma forma de programar em que o código é dividido em objetos nos quais possuem um trabalho específico para fazer, estes objetos por sua vez são baseados em um modelo chamado “classe”. Essa forma de programar claramente lembra modelos baseados em indivíduos, onde por exemplo, podemos definir uma classe “Agente” e usar para construir múltiplos agentes.&lt;br /&gt;
&lt;br /&gt;
Um ABM clássico usualmente é baseado no seguinte:&lt;br /&gt;
&lt;br /&gt;
* '''Agente''': Uma classe que contém as variáveis (fields em C#) associadas aos agentes e representando seus estados (nome, idade, localização, etc ) e mais um bloco (ou mais) de códigos que regram a interação com outros agentes. Esse bloco de código é isolado e chamado de procedimentos (métodos em C#), normalmente possui um nome específico com que pode ser chamado para que o agente execute determinadas ações, como por exemplo “mover”.&lt;br /&gt;
*'''Model''': Uma classe que chama os métodos dos agentes para fazê-los agir. É comum que os agentes ajam por um número fixo de vezes e então são interrompidos para que olhemos os estados dos agentes. Ou ainda pode-se definir uma condição de para para que os agentes ajam até que o objetivo seja atingido.&lt;br /&gt;
&lt;br /&gt;
Isso é o suficiente pra construir um modelo simples baseado em agentes, onde os agentes agem baseado nos seus estados internos, mas nesse momento eles não possuem nada para interagir. Por isso, na maioria dos ABM existe algum tipo de ambiente que todos os agentes conhecem. É comum também que cada agente tenha uma lista com todos os agentes com que pode interagir, por exemplos outros agentes que estão próximos do agente em questão. Estas condições do ambiente podem ser incorporadas na classe Model, que muitas vezes também é chamada de “''environment''” (ambiente).&lt;br /&gt;
&lt;br /&gt;
Quanto a escolha das regras comportamentais que regem a interação dos agentes, podem ser de vários tipos. O ideal é ter uma espécie de inteligência artificial com a tomada de decisão embutida, isto é, algo que tenha a tomada de decisão embutida em um modelo de pensamento e existência mais amplo. E por fim, ainda precisamos equilibrar a complexidade do modelo com a velocidade de processamento.&lt;br /&gt;
&lt;br /&gt;
===Modelo de crença-desejo-intenção===&lt;br /&gt;
&lt;br /&gt;
Um dos modelos mais famoso é baseado nestes três pilares:&lt;br /&gt;
&lt;br /&gt;
#Crenças: fatos sobre o mundo (que podem aparecer no formato de regras).&lt;br /&gt;
#Desejos: coisas que os agentes querem fazer ou que aconteça.&lt;br /&gt;
#Intenção: ações que o agente escolhe, geralmente a partir de um conjunto de planos.&lt;br /&gt;
&lt;br /&gt;
Sobre o processo de tomada de decisão pode ser implementado de várias formas. Uma vez que os desejos são objetivos, as decisões poderiam ser tomadas por exemplo:&lt;br /&gt;
&lt;br /&gt;
* Priorizando o desejo mais importante;&lt;br /&gt;
*Priorizando o plano que permite realizar mais desejos;&lt;br /&gt;
* Priorizando o plano que tem mais chance de dar certo;&lt;br /&gt;
* Seguindo o que a comunidade decidir (através de votação por exemplo);&lt;br /&gt;
* Etc.&lt;br /&gt;
&lt;br /&gt;
===Considerações===&lt;br /&gt;
&lt;br /&gt;
Evidentemente, há muitas coisas que precisam ser consideradas durante a construção de um modelo baseado em indivíduos, abaixo discutirei algumas destas coisas.&lt;br /&gt;
&lt;br /&gt;
'''Hardware''': Como são modelos computacionais, uma das preocupações naturalmente é sobre onde os modelos vão ser executados. Os modelos variam muito no processamento exigido, sendo necessário desde minutos a dias. Da mesma forma há também uma variação na quantidade de espaço de armazenamento que é necessário. Uma solução que pode ser implementada principalmente para lidar com o poder computacional que é necessário é a paralelização. Neste caso ainda há uma nova questão que precisa ser respondida: como o modelo pode ser dividido? Se os agentes fossem estáticos poderiam ser divididos em fragmentos geográficos, se os agentes não se comunicassem a divisão poderia ser por agentes. Mas na maioria dos modelos os agentes tanto se movem quanto se comunicam, então em algum momento será necessário permitir que os agentes se movimentem entre os fragmentos e/ou se comuniquem com agentes de outros nós.&lt;br /&gt;
&lt;br /&gt;
'''Espaço''': O modelo é uma abstração da realidade, portanto não é inesperado que uma questão importante seja como esta abstração será feita. Isto é uma questão que começa desde a decisão sobre o tipo de fronteira que o modelo vai incorporar (infinitas, limitadas, etc), passa pela organização interna do próprio espaço (contínuo, em grade, rede, etc), e vai até sobre como a vizinhança é organizada. Pra citar alguns exemplos, nos nossos modelos baseados em autômatos celulares, foi escolhido uma vizinhança do tipo Von Neumann (diamante), mas poderia ser do tipo Moore (quadrado). Em um modelo contínuo poderia ser baseado na distância euclidiana dada por:&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;D\left(x,y\right)=\sqrt{\sum_{i=1}^{n}\left(x_{i}-y_{i}\right)^{2}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sincronização''': Discutindo sobre execução da simulação em si, uma preocupação que surge é a questão de sincronização, isto é, em que ordem os os agentes devem agir e quando. Sobre quando agir a opção mais simples é agir a cada intervalo específico de tempo. Apesar desta opção ser a mais simples, quando temos muitos agentes inativos pode ser pouco eficiente, desta forma outra opção é baseado em eventos específicos (por exemplo, quando é tocado por outro agente). Sobre a ordem uma opção usual é randomizar a ordem.&lt;br /&gt;
&lt;br /&gt;
'''Calibração''': Tendo já resolvido os problemas relacionados ao hardware necessário e a modelagem do próprio modelo, o modelo precisa então ser calibrado. Isto é, é necessário encontrar a melhor combinação de valores que descrevem a realidade para os parâmetros presente no modelo. A primeira opção que surge naturalmente é utilizar o conhecimento de especialistas, porém nem sempre isto é o suficiente. Outras opções que podem ser exploradas são experimentar muitos diferentes valores (o que se torna mais difícil a medida que a quantidade de parâmetros aumenta) e/ou utilizar técnicas de inteligência artificial para obter os melhores parâmetros automaticamente (por exemplo algoritmo genético).&lt;br /&gt;
&lt;br /&gt;
'''Validação''': Por fim então nos resta apenas validar, isto é, saber se o modelo funciona. Isto comumente implica em saber se é possível replicar quantitativamente algum dado ou padrão conhecido, logo, é importante saber exatamente no que estamos interessados em olhar.&lt;br /&gt;
&lt;br /&gt;
Nesta etapa então podem ser utilizando alguns métodos para comparar os erros quantitativos dos dados obtidos através contra dados reais. Isto pode ser feito por exemplo simplesmente calculando diretamente a diferença absoluta entre ambos os valores ou utilizando técnicas estatísticas mais robustas. Pode-se utilizar matrizes de confusão, estatística difusa, análise multiescala, etc...&lt;br /&gt;
&lt;br /&gt;
Pode-se por exemplo comparar as predições corretas obtidas a partir do modelo com predições corretas caso estas fossem feitas aleatoriamente. Desta forma podemos comparar se conseguimos fazer uma previsão melhor através do nosso modelo, do que se fosse feita aleatoriamente. Porém esta não parece uma comparação justa uma vez que os modelos foram iniciados com dados reais e um padrão real, então outra alternativa é pegar um estado passado e tratar como uma previsão, se nosso modelo não consegue fazer melhor que isso, temos um problema.&lt;br /&gt;
&lt;br /&gt;
'''Erros''': Apesar de tudo, os erros não necessariamente são frutos apenas de erros do modelo. É possível também que existam erros nos dados do mundo real. Mas de toda forma, é necessário sabermos se o modelo é uma versão razoável da realidade para a variável que queremos observar. Também precisamos saber como o sistema responde para pequenos erros nos dados de entrada. Pois precisamos ter certeza se o modelo não é razoável para apenas um conjunto de dados de entrada.&lt;br /&gt;
&lt;br /&gt;
Então podemos por exemplo causar pequenas variações nas principais variáveis e observar como o modelo responde. Ele pode ser ergodico, isto é, insensível para as condições iniciais após a simulação ser executada por tempo suficiente, ou responder fortemente às condições iniciais. Nestes último caso precisamos saber se é assim que o sistema real responde ou apenas um artefato do modelo. Se responde fortemente, talvez a predição seja comprometida caso os dados de entrada não sejam perfeitamente acurados e pode ser preciso analisar se a propagação do erro é um problema.&lt;br /&gt;
&lt;br /&gt;
Para entender melhor a gama de respostas a diferentes entradas, podemos utilizar alguma randomização. Em geral isto é feito utilizando entradas aleatórias e então é feito uma amostragem ponderada pela distribuição chamada amostragem de Monte-Carlo (''Monte Carlo Sampling''). Executando o modelo múltiplas vezes é possível obter uma distribuição de saída probabilística.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span&amp;gt;Análise:&amp;lt;/span&amp;gt;&lt;br /&gt;
:Por fim, os modelos não são apenas para realizar predições. Podem ser utilizados também para experimentar e testar ideias preexistentes, assim como também para obter novas ideias.&lt;br /&gt;
&lt;br /&gt;
===Modelo de crime===&lt;br /&gt;
&lt;br /&gt;
Esse é um modelo de ’polícia e ladrão’, onde os ladrões andam aleatoriamente no espaço procurando por bancos para roubarem e também roubam uns aos outros, e os policiais andam aleatoriamente tomando o ouro dos ladrões e os removendo da simulação, isto é, prendendo. Um modelo mais sofisticado poderia ter decisões mais elaborados de quem e quando roubar porém este modelo serve como inspiração à esta introdução. Tanto a introdução à modelo baseado em indivíduos, quanto este modelo foram inspirados no texto ''Agent Based Modelling: Introduction'', que possui uma versão em Java deste modelo.&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Exemplo de modelo baseado em indivíduos&lt;br /&gt;
Autor:           Jhordan Silveira de Borba&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
using System;               //Namespace padrão System&lt;br /&gt;
using System.Collections.Generic; //Para usar listas&lt;br /&gt;
&lt;br /&gt;
namespace Vida_selvagem_e_Pecuária&lt;br /&gt;
{&lt;br /&gt;
    class Agente&lt;br /&gt;
    {&lt;br /&gt;
        public int ID;                                    //Identificação&lt;br /&gt;
        public int x;                                     //Coordenadas espaciais&lt;br /&gt;
        public int y;&lt;br /&gt;
        public int ouro;                                  //Dinheiro&lt;br /&gt;
        public string nome;                               //Que tipo de agente é&lt;br /&gt;
        public List&amp;lt;Agente&amp;gt; Agentes = new List&amp;lt;Agente&amp;gt;(); //Lista de todos os agentes&lt;br /&gt;
        public int[,] ambiente;                           //Configuraçõe do ambiente&lt;br /&gt;
        public int largura;&lt;br /&gt;
        public int altura;&lt;br /&gt;
        public bool serRemovido = false;                 //Se o a gente foi preso&lt;br /&gt;
        public Random rnd;&lt;br /&gt;
&lt;br /&gt;
        //Método para mover o agente&lt;br /&gt;
        public void Mover()&lt;br /&gt;
        {&lt;br /&gt;
            x += (rnd.NextDouble() &amp;lt; 0.5) ? -1 : 1; //Mover aleatoriamente para os lados&lt;br /&gt;
            y += (rnd.NextDouble() &amp;lt; 0.5) ? -1 : 1; //Mover aleatoriamente para cima e baixo&lt;br /&gt;
            //Obs.: Ele se move mais rápido na diagonal, pois o desloamento tem módulo maior que 1&lt;br /&gt;
            //Checar as fronteiras&lt;br /&gt;
            x = (x &amp;lt; 0) ? 0 : x;&lt;br /&gt;
            x = (x &amp;gt;= largura) ? largura - 1 : x;&lt;br /&gt;
            y = (y &amp;lt; 0) ? 0 : y;&lt;br /&gt;
            y = (y &amp;gt;= altura) ? altura - 1 : y;&lt;br /&gt;
            &lt;br /&gt;
        }&lt;br /&gt;
        //Método para roubar&lt;br /&gt;
        public void Agir()&lt;br /&gt;
        {&lt;br /&gt;
            if (serRemovido == true) { return; } //Se o agentee está sendo removido, nao faz nada&lt;br /&gt;
            if (nome == &amp;quot;ladrao&amp;quot;)                //Interação com ambiente: se o agente atual é ladrão, checa a posição por ouro para roubar&lt;br /&gt;
            {&lt;br /&gt;
                if (ambiente[x, y] &amp;gt; 0)&lt;br /&gt;
                {&lt;br /&gt;
                    ouro += ambiente[x, y];&lt;br /&gt;
                    ambiente[x, y] = 0;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            foreach (Agente A in Agentes)       //Interação com outros agentes: &lt;br /&gt;
            {&lt;br /&gt;
                if (A.ID == ID) { continue; }   //Se for o prórprio agente&lt;br /&gt;
                if ((A.x == x) &amp;amp;&amp;amp; (A.y == y))&lt;br /&gt;
                {&lt;br /&gt;
                    if (A.nome == &amp;quot;ladrao&amp;quot;)     //Se o outro agente não é policial, toma dinheiro dele&lt;br /&gt;
                    {&lt;br /&gt;
                        ouro = ouro + A.ouro;&lt;br /&gt;
                        A.ouro = 0;&lt;br /&gt;
                    }&lt;br /&gt;
                    //Se o atual agente é policial e o outro é ladrão, deve ser removido&lt;br /&gt;
                    A.serRemovido = (nome == &amp;quot;policial&amp;quot; &amp;amp;&amp;amp; A.nome == &amp;quot;ladrao&amp;quot;) ? true : false;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class Modelo&lt;br /&gt;
    {&lt;br /&gt;
        private int nagentes = 100; //Número de agentes&lt;br /&gt;
        private int it = 100;        // Número de iterações&lt;br /&gt;
        private double ppol = 0.1;  //Probabilidade de ser gerado um policial&lt;br /&gt;
        private double pbanco = 0.1;//Probabilidade de ser gerado um banco&lt;br /&gt;
        private int dbanco = 10;    //Dinheiro no banco&lt;br /&gt;
        private int largura = 100;  //Largura do espaço&lt;br /&gt;
        private int altura = 100;   //altura o espaço&lt;br /&gt;
        private int cont = 0;       //Contador de agentes&lt;br /&gt;
        private Random rnd;&lt;br /&gt;
        List&amp;lt;Agente&amp;gt; Agentes = new List&amp;lt;Agente&amp;gt;();&lt;br /&gt;
        public Modelo() //Construto&lt;br /&gt;
        {&lt;br /&gt;
            rnd = new Random();                   //Números aleatórios&lt;br /&gt;
            int[,] ambiente = new int[largura, altura];  //Criar os bancos&lt;br /&gt;
            for (int i = 0; i &amp;lt; largura; i++)&lt;br /&gt;
            {&lt;br /&gt;
                for (int j = 0; j &amp;lt; altura; j++)&lt;br /&gt;
                {&lt;br /&gt;
                    ambiente[i, j] = (rnd.NextDouble() &amp;lt; pbanco) ? dbanco : 0;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            for (int i = 0; i &amp;lt; nagentes; i++)                                  //Criar os agentes&lt;br /&gt;
            {&lt;br /&gt;
                Agente ag = new Agente() { ID = cont };&lt;br /&gt;
                cont       += 1;&lt;br /&gt;
                ag.x        = (int)(rnd.NextDouble() * largura);                //Posição inicial aleatória&lt;br /&gt;
                ag.y        = (int)(rnd.NextDouble() *  altura);&lt;br /&gt;
                ag.ambiente = ambiente;                                         //Configura o ambiente&lt;br /&gt;
                ag.largura  = largura;&lt;br /&gt;
                ag.altura   = altura;&lt;br /&gt;
                ag.Agentes  = Agentes;                                           //Conhece outros agentes&lt;br /&gt;
                ag.nome     = (rnd.NextDouble() &amp;lt; ppol) ? &amp;quot;policial&amp;quot; : &amp;quot;ladrao&amp;quot;; //Policia ou Ladrão&lt;br /&gt;
                ag.rnd      = rnd;&lt;br /&gt;
                Agentes.Add(ag);                                                 //Adiciona à lista&lt;br /&gt;
            }&lt;br /&gt;
            for (int i = 0; i &amp;lt; it; i++)                //Roda a simulação&lt;br /&gt;
            {&lt;br /&gt;
                foreach (Agente A in Agentes)            //Move cada agente&lt;br /&gt;
                {&lt;br /&gt;
                    A.Mover();&lt;br /&gt;
                }&lt;br /&gt;
                foreach (Agente A in Agentes)&lt;br /&gt;
                { A.Agir(); }                            //Cada agente age&lt;br /&gt;
                //Expressão lambda: um método anônimo. Exemplo:  x =&amp;gt; x + 1, basicamente recebe x, e retorna x+1&lt;br /&gt;
                //Predicado: Recebe um parâmetro e retorna verdadeiro ou falso. Exemplo: Predicate&amp;lt;int&amp;gt; isOne = x =&amp;gt; x == 1, recebe x e retorna verdadeiro se x==1&lt;br /&gt;
                //Predicate&amp;lt;Agente&amp;gt; pred = (Agente obj) =&amp;gt; obj.serRemovido == true;   //Removemos os agentes fora do foreach, pra não acessar elemento que não existes&lt;br /&gt;
                Agentes.RemoveAll((Agente obj) =&amp;gt; obj.serRemovido == true);           //Removemos os agentes&lt;br /&gt;
            }&lt;br /&gt;
            //Estatísticas&lt;br /&gt;
            int cpol = 0;   //Quantos policiais tem&lt;br /&gt;
            int dpol = 0;   //Quanto dinheiro os policiais acumularam&lt;br /&gt;
            int clad = 0;   //Quantos ladroes tem&lt;br /&gt;
            int dlad = 0;   //Quanto dinheiro os ladrões acumularam&lt;br /&gt;
            foreach (Agente A in Agentes)&lt;br /&gt;
            {&lt;br /&gt;
            if (A.nome==&amp;quot;policial&amp;quot;)&lt;br /&gt;
                {&lt;br /&gt;
                    cpol += 1;&lt;br /&gt;
                    dpol += A.ouro;&lt;br /&gt;
                }&lt;br /&gt;
            else&lt;br /&gt;
                {&lt;br /&gt;
                    clad += 1;&lt;br /&gt;
                    dlad += A.ouro;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            Console.Write(&amp;quot;Após &amp;quot; + it + &amp;quot; interações, há &amp;quot;);&lt;br /&gt;
            Console.Write(cpol + &amp;quot; policiais com &amp;quot; + dpol + &amp;quot; ouro e &amp;quot;);&lt;br /&gt;
            Console.Write(clad + &amp;quot; ladroes com &amp;quot; + dlad + &amp;quot; ouro.\n&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main()&lt;br /&gt;
        {&lt;br /&gt;
           new Modelo();       //Inicia o modelo&lt;br /&gt;
           //Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências utilizadas ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
== Principal material utilizado ==&lt;br /&gt;
&lt;br /&gt;
# [https://www.geog.leeds.ac.uk/courses/other/crime/abm/general-modelling/index.html Agent Based Modelling: Introduction] (Nick Malleson e Andy Evans ,Universidade de Leeds)&lt;br /&gt;
# [http://wgbis.ces.iisc.ac.in/energy/HC270799/ibm.html Individual-Based Models] (Craig Reynolds, Instituto Indiano de Ciências)&lt;br /&gt;
# [https://www.researchgate.net/publication/263746066_Individual-based_models_in_ecology_after_four_decades Individual-Basd Models and Approaches on Ecology] ( Editores: DonaldL. DeAngelis e Louis J. Gross). Artigo: From Local to Global: The Lesson of Cellular Automata (M.J.Phipps , Universidade de Ottawa)&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Simulação e modelo de campo médio ]] |[[Por que usar e o que são modelos baseados em indivíduos]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=AC:_Jogo_da_Vida&amp;diff=7865</id>
		<title>AC: Jogo da Vida</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=AC:_Jogo_da_Vida&amp;diff=7865"/>
		<updated>2022-07-22T11:12:35Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Modelos Logísticos]] |[[Modelo de Lotka-Volterra]]}}&lt;br /&gt;
&lt;br /&gt;
= Modelos conceituais =&lt;br /&gt;
&lt;br /&gt;
O &amp;quot;Jogo da Vida&amp;quot; é um jogo criado em 1970 pelo matemático Horton Conway usando autômatos celulares. Na proposta original o jogo da vida é composto por uma grade de células quaradas, onde cada célula pode estar morta ou viva, e seu estado é atualizado a cada passo finito de tempo baseado no estado atual da própria célula e das 8 células vizinhas (vizinhança de Moore). Estas regras podem ser enunciadas da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
* Reprodução: Qualquer célula morta com exatamente três vizinhos vivos será uma célula viva no próximo passo.&lt;br /&gt;
* Sobrevivência: Qualquer célula viva com 2 ou 3 vizinhos  vivos permanece vivo no próximo passo.&lt;br /&gt;
* Subpopulação: A célula morre se tiver menos de 2 vizinhos vivos na vizinhança.&lt;br /&gt;
* Superpopulação: A célula morre se tiver mais de 3 vizinhos na vizinhança.&lt;br /&gt;
&lt;br /&gt;
Um autômato celular probabilístico foi proposto como uma extensão no jogo da vida. A intenção é possuir um modelo mais flexível com a possibilidade de alterar os limites do Jogo da Vida clássico. A ideia básica do PCAEGOL (''Probabilistic Cellular Automata, Extension of the Game Of Life'') é que os estados das células vizinhas de uma dada célula não são conhecidos com exatidão, dessa forma o estado resultante  não é determinístico e há uma certa probabilidade de uma célula que teria determinado resultado deterministicamente, agora tenha outro. A ideia é que o sistema nem sempre se comporte conforme é esperado. As probabilidades podem ser definidas individualmente para cada célula vizinha de uma determinada célula. Por exemplo, tendo a célula central C0  e chamando as 8 células vizinhas de Ci (onde i=1,2,...,8),  então temos os vetores:&lt;br /&gt;
&lt;br /&gt;
* pl = (pl0,pl1,...,pl8), onde pli é a probabilidade da célula Ci ser considerada viva quando está viva.&lt;br /&gt;
* pd = (pd0,pd1,...,pd8), onde pdi é a probabilidade da célula Ci ser considerada viva quando está morta.&lt;br /&gt;
&lt;br /&gt;
Podemos recuperar o jogo da vida facilmente fazendo pli=1$ e pdi=0.  Além disso as regras clássicas do jogo da vida podem ser estendidas fazendo:&lt;br /&gt;
&lt;br /&gt;
* MAXO = Número máximo de células vizinhas vivas para que não ocorre superpopulação&lt;br /&gt;
* MINU = Número máximo de células vizinhas vivas para que não ocorre superpopulação&lt;br /&gt;
* MAXB = Número máximo de células vizinhas vivas para que a célula nasça no próximo passo&lt;br /&gt;
* MINB = Número mínimo de células vizinhas vivas para que a célula nasça no próximo passo&lt;br /&gt;
&lt;br /&gt;
Novamente podemos recuperar o Jogo da Vida clássico fazendo MAXO=3,MINU=2, MAXB=3 e  MINB=3.&lt;br /&gt;
&lt;br /&gt;
= Código do Jogo da Vida =&lt;br /&gt;
[https://mesa.readthedocs.io/en/latest/ Mesa]  é um ''framework''  em Python para desenvolvimento de modelos baseados em agentes, porém também podemos simular autômatos celulares e visualizar o resultado, por isto o mesmo foi utilizado para desenvolver ambos os códigos a seguir. Algun tutoriais podem ser consultados aqui e aqui.&lt;br /&gt;
&lt;br /&gt;
Para começar, precisamos definir duas classes: a de cada agent (no nosso caso cada célula) e a própria do modelo. Cada classe tem algumas obrigatórias relacionadas a forma com que avançamos o modelo. Como é assíncrono, o agente tem uma função para preparar as mudanças (step) e outra para aplicar as mudanças (advance). Além disso precisamos passar algumas informações para o modelo: que as células estão distribuídas em grade, a largura e altura da grade, e que as alterações ocorrem de forma assíncrona.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Importamos as classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Importamos o agendador por ordem aleatória&lt;br /&gt;
from mesa.space import MultiGrid                                   #Importamos a malha&lt;br /&gt;
from mesa.visualization.modules import CanvasGrid                  #Gerar o JSON&lt;br /&gt;
from mesa.visualization.ModularVisualization import ModularServer  #Ler o JSON&lt;br /&gt;
import random                                                      #Biblioteca para números aleatórios&lt;br /&gt;
&lt;br /&gt;
#O Modelo em si&lt;br /&gt;
&lt;br /&gt;
class Planta(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Dinâmica da planta inspirada no jogo da vida&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, ide, modelo,frac):&lt;br /&gt;
        super().__init__(ide, modelo)       #Requisito da biblioteca&lt;br /&gt;
        self.vivo = random.random() &amp;lt; frac  #Guardar o estado atual&lt;br /&gt;
        self.passo=self.vivo                #Guardar o próximo estado&lt;br /&gt;
&lt;br /&gt;
    def step(self):                         # Método que aplica as mudanças a cada passo&lt;br /&gt;
        #Pegamos a coordenada da vizinhança&lt;br /&gt;
        vizinhos = self.model.grid.get_neighborhood(self.pos,moore=True,include_center=False)&lt;br /&gt;
        nviz=0     &lt;br /&gt;
        agentes = self.model.grid.get_cell_list_contents(vizinhos) #E o conteúdo de cada célula&lt;br /&gt;
        for planta in agentes:&lt;br /&gt;
            if (planta.vivo==True):&lt;br /&gt;
                nviz+=1&lt;br /&gt;
        if (self.vivo==True):&lt;br /&gt;
            if   (nviz&amp;lt;2 or nviz&amp;gt;3):&lt;br /&gt;
                self.passo = False&lt;br /&gt;
        elif (nviz==3):&lt;br /&gt;
                self.passo=True&lt;br /&gt;
&lt;br /&gt;
    def advance(self): #E no simultâneo precisa de um método avance() que é o que aplica as mudanças assíncronas&lt;br /&gt;
        self.vivo=self.passo&lt;br /&gt;
                &lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, frac, largura, altura):&lt;br /&gt;
        self.frac = frac&lt;br /&gt;
        self.grid = MultiGrid(largura, altura, True)    #Grade&lt;br /&gt;
        self.schedule = SimultaneousActivation(self)    #Assíncrono&lt;br /&gt;
        self.running = True                             #Sem codições de parada&lt;br /&gt;
        # Criar agentes&lt;br /&gt;
        i=0&lt;br /&gt;
        for X in range(largura):&lt;br /&gt;
            for Y in range(altura):&lt;br /&gt;
                a = Planta(i, self,self.frac)&lt;br /&gt;
                self.schedule.add(a)&lt;br /&gt;
                self.grid.place_agent(a, (X, Y))&lt;br /&gt;
                i+=1&lt;br /&gt;
&lt;br /&gt;
    def step(self):                                    #Avança o modelo&lt;br /&gt;
        self.schedule.step()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para exibir a simulação na tela, ainda precisamos definir como gerar o JSON em que especificamos como cada célula deve ser exibida na tela. No caso omo retângulos 1x1 onde a cor depende se a célula esta viva ou morta.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Define como gerar esse JSON&lt;br /&gt;
def retrato(planta):         &lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Definir o retrato do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    portrayal = {&amp;quot;Shape&amp;quot;: &amp;quot;rect&amp;quot;,&amp;quot;Filled&amp;quot;: &amp;quot;true&amp;quot;,&amp;quot;h&amp;quot;: 1.0,&amp;quot;w&amp;quot;:1.0,&amp;quot;Layer&amp;quot;:1}    &lt;br /&gt;
    if (planta.vivo == True):&lt;br /&gt;
        portrayal[&amp;quot;Color&amp;quot;] = &amp;quot;green&amp;quot; &lt;br /&gt;
    else:&lt;br /&gt;
        portrayal[&amp;quot;Color&amp;quot;] = &amp;quot;grey&amp;quot;&lt;br /&gt;
    return portrayal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definimos então a grade para exibir na tela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Definimos uma grade de 10x10 células e 500x500 píxeis&lt;br /&gt;
grade = CanvasGrid(retrato, 10, 10, 500, 500)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E lançamos o servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Lançamo o servidor&lt;br /&gt;
servidor = ModularServer(Modelo, [grade], &amp;quot;Jogo da Vida&amp;quot;,{&amp;quot;frac&amp;quot;:0.1, &amp;quot;largura&amp;quot;:10, &amp;quot;altura&amp;quot;:10}) &lt;br /&gt;
servidor.port = 8521                                        &lt;br /&gt;
servidor.launch()                                              #Lançamos o servidor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Código do PCAEGOL =&lt;br /&gt;
O código do PCAEGL segue a mesma ideia do anterior, com as alterações pertinentes devido às diferenças de modelo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Agendador simultâneo&lt;br /&gt;
from mesa.space import MultiGrid                                   #Malha multigrid&lt;br /&gt;
from mesa.visualization.modules import CanvasGrid                  #Gerar o JSON&lt;br /&gt;
from mesa.visualization.ModularVisualization import ModularServer  #Ler o JSON&lt;br /&gt;
import random                                                      #Número aleatórios&lt;br /&gt;
&lt;br /&gt;
#Classe do agente&lt;br /&gt;
class Agente(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Classe do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, ide, modelo):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função incializadora&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        super().__init__(ide, modelo)     #Necessário para funcionar o modelo&lt;br /&gt;
        F = 0.5                           #Fração de plantas vivas&lt;br /&gt;
        self.vivo  = random.random() &amp;lt; F  #Definimos o estado inicial da planta&lt;br /&gt;
        self.passo = self.vivo            #E já definimos a situação no próximo estado&lt;br /&gt;
&lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que prepara as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #pl = 1;pd = 0;MAXO=3;MINU=2;MAXB=3;MINB=3&lt;br /&gt;
        pl = 1;pd = 0;MAXO=6;MINU=2;MAXB=3;MINB=3                                                    #Parâmetros do PCAEGOL&lt;br /&gt;
        vizinhos = self.model.grid.get_neighborhood(self.pos,moore=True,include_center=False)        #Coordenada da vizinhança&lt;br /&gt;
        nviz=0                                                                                       #Contador de vizinhos&lt;br /&gt;
        agentes = self.model.grid.get_cell_list_contents(vizinhos)                                   #Agentes na vizinhança&lt;br /&gt;
        for planta in agentes:                                                                       #Percorre o agentes&lt;br /&gt;
            estado = (random.random() &amp;lt;pl) if (planta.vivo) else (random.random() &amp;lt;pd)               #Se está vivo ou não&lt;br /&gt;
            nviz = (nviz+1) if (estado) else (nviz)                                                  #Soma o mais um vizinho&lt;br /&gt;
        estado = (random.random() &amp;lt;pl) if (self.vivo) else (random.random() &amp;lt;pd)&lt;br /&gt;
        if (estado):&lt;br /&gt;
            if (nviz&amp;lt;MINU or nviz&amp;gt;MAXO):                                                             #Sub ou super população&lt;br /&gt;
                self.passo = False&lt;br /&gt;
        elif (nviz &amp;gt;= MINB and nviz&amp;lt;=MAXB):                                                          #Reprodução&lt;br /&gt;
                self.passo = True&lt;br /&gt;
                &lt;br /&gt;
    def advance(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que aplica as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.vivo=self.passo   #Aplica as mudanças&lt;br /&gt;
                &lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, largura, altura):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função chamada quando o modelo é inicializazdo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.grid     = MultiGrid(largura, altura, True)         #Configura a grade&lt;br /&gt;
        self.schedule = SimultaneousActivation(self)             #Configura o agendador&lt;br /&gt;
        self.running = True                                      #Condiçao para seguir executando o modelo&lt;br /&gt;
        # Distribuir agentes em toda grade &lt;br /&gt;
        i=0&lt;br /&gt;
        for X in range(largura):&lt;br /&gt;
            for Y in range(altura):&lt;br /&gt;
                a = Agente(i, self)&lt;br /&gt;
                self.schedule.add(a)&lt;br /&gt;
                self.grid.place_agent(a, (X, Y))&lt;br /&gt;
                i+=1&lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Avançar um passo do modelo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.schedule.step()&lt;br /&gt;
&lt;br /&gt;
#Define como gerar esse JSON&lt;br /&gt;
def retrato(agente):         &lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Definir o retrato do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    portrayal = {&amp;quot;Shape&amp;quot;: &amp;quot;rect&amp;quot;,&amp;quot;Filled&amp;quot;: &amp;quot;true&amp;quot;,&amp;quot;h&amp;quot;: 1.0,&amp;quot;w&amp;quot;:1.0,&amp;quot;Layer&amp;quot;:1}    &lt;br /&gt;
    if (agente.vivo == True):&lt;br /&gt;
        portrayal[&amp;quot;Color&amp;quot;] = &amp;quot;green&amp;quot; &lt;br /&gt;
    else:&lt;br /&gt;
        portrayal[&amp;quot;Color&amp;quot;] = &amp;quot;grey&amp;quot;&lt;br /&gt;
    return portrayal&lt;br /&gt;
&lt;br /&gt;
#Lançamo o servidor&lt;br /&gt;
grade = CanvasGrid(retrato, 20, 20, 500, 500)&lt;br /&gt;
servidor = ModularServer(Modelo, [grade], &amp;quot;Jogo da Vida&amp;quot;,{&amp;quot;largura&amp;quot;:20, &amp;quot;altura&amp;quot;:20}) &lt;br /&gt;
servidor.port = 8521 &lt;br /&gt;
servidor.launch()      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Principal material utilizado =&lt;br /&gt;
[https://link.springer.com/article/10.1007/s10444-019-09696-8 A probabilistic extension to Conway’s Game of Life] (Gabriel Aguilera-Venegas e outros,)&lt;br /&gt;
{{Ecologia| [[Modelos Logísticos]] |[[Modelo de Lotka-Volterra]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Lotka-Volterra&amp;diff=7864</id>
		<title>Modelo de Lotka-Volterra</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelo_de_Lotka-Volterra&amp;diff=7864"/>
		<updated>2022-07-22T11:11:48Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[AC: Jogo da Vida | Jogo da Vida]]|[[Modelo de Lotka-Volterra amortecido]]}}&lt;br /&gt;
&lt;br /&gt;
No modelo de Lotka-Volterra temos as seguintes considerações:&lt;br /&gt;
&lt;br /&gt;
*Na ausência de predadores, a população de presas aumenta a uma taxa proporcional à população atual;&lt;br /&gt;
*Na ausência de presas, os predadores irão à extinção;&lt;br /&gt;
*O número de encontro entre presas e predadores é proporcional a produto das duas populações. &lt;br /&gt;
**Estes encontros beneficiam os predadores em detrimento das presas.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, as equações são:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dt}=x\left(a-\alpha y\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dy}{dt}=y\left(-c+\gamma x\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a:&amp;lt;/math&amp;gt; taxa de crescimento de presas sem predadores;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha:&amp;lt;/math&amp;gt;taxa de decréscimo da população de presas devido a predação;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c:&amp;lt;/math&amp;gt; taxa de mortalidade da população de predadores sem presas;&lt;br /&gt;
*'''&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\gamma&amp;lt;/math&amp;gt;''': taxa de crescimento de predadores devido a predação.&lt;br /&gt;
&lt;br /&gt;
=== Separação de variáveis ===&lt;br /&gt;
Utilizando a separação de variáveis, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dt}\frac{dt}{dx}=\frac{y\left(-c+\gamma x\right)}{x\left(a-\alpha y\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dx}=\frac{y\left(-c+\gamma x\right)}{x\left(a-\alpha y\right)}&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{\left(a-\alpha y\right)}{y}dy=\frac{\left(-c+\gamma x\right)}{x}dx&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\frac{a}{y}-\alpha\right)dy=\left(-\frac{c}{x}+\gamma\right)dx&amp;lt;/math&amp;gt;Integrando ambos os lados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;a\ln y-\alpha y=-c\ln x+\gamma x+C&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;a\ln y-\alpha y+c\ln x-\gamma x=C&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;C&amp;lt;/math&amp;gt; é uma constante de integração. Para plotarmos um gráfico, considerando apenas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a=\alpha=\gamma=c=1&amp;lt;/math&amp;gt; Temos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\ln y+\ln x-\left(x+y\right)=C&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um ponto de equilíbrio fora da origem é obtido quando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dx}{dt}=x\left(a-\alpha y\right)=0\rightarrow y=\frac{a}{\alpha}=1&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dt}=y\left(-c+\gamma x\right)=0\rightarrow x=\frac{c}{\gamma}=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então neste caso, o sistema oscila em torno de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(1,1\right)&amp;lt;/math&amp;gt;  e a constante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;C&amp;lt;/math&amp;gt; é definida pelas condições iniciais &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{0},y_{0}\right)&amp;lt;/math&amp;gt;. Para a condição em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{0}=y_{0}=1&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\ln1+\ln1-\left(1+1\right)=C&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;-2=C&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então para este conjunto de parâmetros e condições iniciais: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\ln y+\ln x-\left(x+y\right)+2=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neste caso o sistema vai permanecer no ponto de equilíbrio. Para outras condições iniciais, o sistema vai oscilar em torno do ponto de equilíbrio. Obviamente além do ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(1,1\right)&amp;lt;/math&amp;gt;, temos um ponto de equilíbrio em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt;. Vamos analisar a dinâmica na vizinhança dos pontos através de um processo simples de linearização. &lt;br /&gt;
&lt;br /&gt;
[[Ficheiro:Plot Lotka-Volterra.png|borda|miniaturadaimagem|&amp;lt;math&amp;gt;f\left(x,y\right)=\ln y+\ln x-\left(x+y\right)-C&amp;lt;/math&amp;gt; com as condições  &amp;lt;math&amp;gt;a=\alpha=c=\gamma=1&amp;lt;/math&amp;gt;  e condição inicial arbitrária, plotado no [https://www.geogebra.org/ GeoGebra].|alt=]]&lt;br /&gt;
=== Linearização em torno do ponto de equilíbrio ===&lt;br /&gt;
Primeiro podemos perceber que o sistema é quase-linear em torno de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt;, verificando que satisfaz:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}\left[\frac{\text{parte não linear}}{\text{parte linear}}\right]=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então lembrando as equações:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dt}=\left[xa\right]-\left(\alpha xy\right)=\left[\text{linear}\right]-\left(\text{não linear}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dy}{dt}=-\left[yc\right]+\left(\gamma yx\right)=-\left[\text{linear}\right]+\left(\text{não linear}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\alpha xy}{xa}=\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\alpha}{a}y=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\gamma xy}{cy}=\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\gamma}{c}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desprezando então os termos não lineares podemos escrever o seguinte sistema linearizado em torno da origem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\begin{array}{c}&lt;br /&gt;
\dot{x}\\&lt;br /&gt;
\dot{y}&lt;br /&gt;
\end{array}\right)=\left(\begin{array}{cc}&lt;br /&gt;
a &amp;amp; 0\\&lt;br /&gt;
0 &amp;amp; -c&lt;br /&gt;
\end{array}\right)\left(\begin{array}{c}&lt;br /&gt;
x\\&lt;br /&gt;
y&lt;br /&gt;
\end{array}\right)&amp;lt;/math&amp;gt;Calculando os autovalores da matriz, obtemos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;-\left(a-\lambda\right)\left(-c-\lambda\right)=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(a-\lambda\right)\left(c+\lambda\right)=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
os seguintes autovalores &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda=\left\{ a,-c\right\}&amp;lt;/math&amp;gt;. Como um dos valores tem parte real positiva, então é um ponto instável, especificamente devido aos sinais opostos é um ponto de sela. Como é instável significa que se a condição inicial for próxima de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(0,0\right)&amp;lt;/math&amp;gt;, a evolução do sistema vai se afastar do ponto de equilíbrio. Essa aproximação também indica que próximo do ponto de equilíbrio, a dinâmica pode ser descrita tanto pelo conjunto de equações não lineares, como pelo sistema linear.&lt;br /&gt;
&lt;br /&gt;
Agora o segundo ponto de equilíbrio, de maneira geral é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;. Primeiro reescrevemos o sistema em torno do ponto de equilíbrio, isto é, fazemos um deslocamento &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=x-\frac{c}{\gamma}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v=y-\frac{a}{\alpha}&amp;lt;/math&amp;gt;. Então temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dx=du&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dv=dy&amp;lt;/math&amp;gt; e substituindo, para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{x}&amp;lt;/math&amp;gt;:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=\left(u+\frac{c}{\gamma}\right)a-\alpha\left(u+\frac{c}{\gamma}\right)\left(v+\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=ua+\frac{c}{\gamma}a-\alpha uv-\frac{\alpha c}{\gamma}v-ua-\frac{ca}{\gamma}&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=-\alpha uv-\frac{\alpha c}{\gamma}v&amp;lt;/math&amp;gt;E para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{y}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dv}{dt}=-\left(v+\frac{a}{\alpha}\right)c+\gamma\left(v+\frac{a}{\alpha}\right)\left(u+\frac{c}{\gamma}\right)&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dv}{dt}=-cv-\frac{ca}{\alpha}+\gamma vu+\frac{\gamma a}{\alpha}u+cv+\frac{ca}{\alpha}&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dv}{dt}=\gamma vu+\frac{\gamma a}{\alpha}u&amp;lt;/math&amp;gt;Podemos analisar o comportamento em torno do ponto de equilíbrio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}-\frac{\alpha uv}{\frac{\alpha vc}{\gamma}}=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}-\frac{\gamma}{c}u=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\frac{\gamma vu}{\frac{\gamma au}{\alpha}}=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\frac{\alpha}{a}v=0&amp;lt;/math&amp;gt;Desprezando os termos não lineares então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(\begin{array}{c}&lt;br /&gt;
\dot{u}\\&lt;br /&gt;
\dot{v}&lt;br /&gt;
\end{array}\right)=\left(\begin{array}{cc}&lt;br /&gt;
0 &amp;amp; -\frac{\alpha c}{\gamma}\\&lt;br /&gt;
\frac{\gamma a}{\alpha} &amp;amp; 0&lt;br /&gt;
\end{array}\right)\left(\begin{array}{c}&lt;br /&gt;
u\\&lt;br /&gt;
v&lt;br /&gt;
\end{array}\right)&amp;lt;/math&amp;gt;Então os autovalores correspondentes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;-\lambda^{2}-\frac{\gamma a}{\alpha}\frac{\alpha c}{\gamma}=0&amp;lt;/math&amp;gt;&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lambda=\pm\sqrt{-ac}=\pm\sqrt{ac}i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como temos raízes puramente imaginárias e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda_{1}=\lambda_{2}^{*}&amp;lt;/math&amp;gt;, temos um centro, ponto de estabilidade. Isto é, se a condição inicial for próxima de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt; o sistema evoluirá de forma que o estado do sistema permanecerá próximo do ponto de equilíbrio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:Tabela de autovaloes.png|miniaturadaimagem|Classificação dos pontos de estabilidade de acordo com os autovalores&amp;lt;ref&amp;gt;[http://www.sel.eesc.usp.br/lac/disciplinas/sels/arquivos/sel364/private/aula1a2cnl.pdf Análise de sistemas não-lineares] (Vilma A. Oliveira e José Ricardo Rosolen, USP)&amp;lt;/ref&amp;gt;.|300x300px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Segundo método de Lyapunov ===&lt;br /&gt;
Para avaliar o ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{1},y_{1}\right)=\left(0,0\right)&amp;lt;/math&amp;gt;, podemos usar de maneira análoga ao [[Métodos de Lyapunov|exemplo do segundo critério de Lyapunov]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)=\frac{x^{2}}{\alpha}-\frac{y^{2}}{\gamma}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como já discutimos  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}_{0}\right)=0&amp;lt;/math&amp;gt; e a região &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}\left\{ \left(x,y\right)|\left|x\right|&amp;gt;\left|y\right|\right\}&amp;lt;/math&amp;gt; onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt; para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}\neq\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; , sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\boldsymbol{x}_{0}&amp;lt;/math&amp;gt; um ponto de acumulação em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;&amp;lt;ref&amp;gt;[http://www.dii.unimo.it/~zanasi/didattica/Teoria_dei_Sistemi/Luc_TDS_ING_2016_Stability_Analysis_of_Nonlinear_Systems.pdf Stability Analysis of Nonlinear Systems] (Roberto Zanasi, Universidade de Módena e Reggio Emília)&amp;lt;/ref&amp;gt;. Então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{V}\left(\boldsymbol{x}\right) &amp;amp; =\left[\nabla V\right]\cdot\left[\boldsymbol{f}\left(\boldsymbol{x}\right)\right]\\&lt;br /&gt;
 &amp;amp; =\left(\frac{2x}{\alpha},-\frac{2y}{\gamma}\right)\left(\dot{x},\dot{y}\right)\\&lt;br /&gt;
 &amp;amp; =2x^{2}\frac{a}{\alpha}-2x^{2}y+2y^{2}\frac{c}{\gamma}-2y^{2}x\\&lt;br /&gt;
 &amp;amp; =2x^{2}\left(\frac{a}{\alpha}-y\right)+2y^{2}\left(\frac{c}{\gamma}-x\right)\end{align}&amp;lt;/math&amp;gt;Lembrando do nosso segundo ponto de equilíbrio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{2},y_{2}\right)=\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)=2x^{2}\left(y_{2}-y\right)+2y^{2}\left(x_{2}-x\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Então se estamos próximos suficiente do ponto de equilíbrio em análise &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{1},y_{1}\right)=\left(0,0\right)&amp;lt;/math&amp;gt;, temos então uma instabilidade local pois &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)&amp;gt;0&amp;lt;/math&amp;gt; é positivo definido em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{+}&amp;lt;/math&amp;gt;,  uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left|y\right|&amp;lt;\left|y_{2}\right|&amp;lt;/math&amp;gt; , &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left|x\right|&amp;lt;\left|x_{2}\right|&amp;lt;/math&amp;gt;.  Olhando o segundo ponto de equilíbrio, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x_{2},y_{2}\right)=\left(\frac{c}{\gamma},\frac{a}{\alpha}\right)&amp;lt;/math&amp;gt;, podemos manipular as equações da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dt}=x\left(a-\alpha y\right)=x\alpha\left(\frac{a}{\alpha}-y\right)=x\alpha\left(y_{2}-y\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dy}{dt}=y\left(-c+\gamma x\right)=y\gamma\left(-\frac{c}{\gamma}+x\right)=y\gamma\left(-x_{2}+x\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definindo então a seguinte função de Lyapunov:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;V\left(x,y\right)=x-x_{2}\left[1+\ln\left(\frac{x}{x_{2}}\right)\right]+\frac{\alpha}{\gamma}\left(y-y_{2}\left[1+\ln\left(\frac{y}{y_{2}}\right)\right]\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analisando no ponto de e equilíbrio, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
V\left(x_{2},y_{2}\right) &amp;amp; =x_{2}-x_{2}\left[1+\ln\left(\frac{x_{2}}{x_{2}}\right)\right]+\frac{\alpha}{\gamma}\left(y_{2}-y_{2}\left[1+\ln\left(\frac{y_{2}}{y_{2}}\right)\right]\right)\\&lt;br /&gt;
 &amp;amp; =x_{2}-x_{2}+\frac{\alpha}{\gamma}\left(y_{2}-y_{2}\right)\\&lt;br /&gt;
 &amp;amp; =0\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora precisamos que para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(x,y\right)\neq0&amp;lt;/math&amp;gt; tenhamos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V&amp;gt;0&amp;lt;/math&amp;gt;, na região próxima ao ponto de equilíbrio. Separando em dois termos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
V\left(x,y\right) &amp;amp; =\left[x-x_{2}\left(1+\ln\left(\frac{x}{x_{2}}\right)\right)\right]+\frac{\alpha}{\gamma}\left[y-y_{2}\left(1+\ln\left(\frac{y}{y_{2}}\right)\right)\right]\\&lt;br /&gt;
 &amp;amp; =V\left(x\right)+\frac{\alpha}{\gamma}V\left(y\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De forma geral temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(z\right)=z-z_{2}\left(1+\ln\left(\frac{z}{z_{2}}\right)\right)&amp;lt;/math&amp;gt;, e precisamos que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(z\right)&amp;gt;0&amp;lt;/math&amp;gt; quando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z\neq z_{2}&amp;lt;/math&amp;gt;. Além de ser facilmente visto via gráfico para todos os valores aceitáveis &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z,z_{2}\in\left[0,1\right]&amp;lt;/math&amp;gt;, também podemos analisar a seguinte desigualdade:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
z-z_{2}\left(1+\ln\left(\frac{z}{z_{2}}\right)\right) &amp;amp; &amp;gt;0\\&lt;br /&gt;
z &amp;amp; &amp;gt;z_{2}\left(1+\ln\left(\frac{z}{z_{2}}\right)\right)\\&lt;br /&gt;
\frac{z}{z_{2}} &amp;amp; &amp;gt;1+\ln\left(\frac{z}{z_{2}}\right)\\&lt;br /&gt;
e^{\frac{z}{z_{2}}} &amp;amp; &amp;gt;e\frac{z}{z_{2}}\\&lt;br /&gt;
e^{u} &amp;amp; &amp;gt;eu\end{align}&amp;lt;/math&amp;gt;Podemos ver quer a desigualdade desigualdade é válida exceto se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x=1&amp;lt;/math&amp;gt;. Mas como fizemos a seguinte substituição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=\frac{z}{z_{2}}&amp;lt;/math&amp;gt; então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=1\rightarrow z=z_{2}&amp;lt;/math&amp;gt;, e de fato que queremos que seja positiva definida fora do ponto de equilíbrio. Uma vez que sabemos que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;V\left(x,y\right)&amp;lt;/math&amp;gt; é positivo definido, calculamos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{V}\left(\boldsymbol{x}\right) &amp;amp; =\left[\nabla V\right]\cdot\left[\boldsymbol{f}\left(\boldsymbol{x}\right)\right]\\&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp; =\left[\frac{\partial V\left(x\right)}{\partial x},\frac{\alpha}{\gamma}\frac{\partial V\left(y\right)}{\partial y}\right]\cdot\left[x\alpha\left(y_{2}-y\right),y\gamma\left(-x_{2}+x\right)\right] \\&lt;br /&gt;
 &amp;amp; =\left[1-\frac{x_{2}}{x},\frac{\alpha}{\gamma}\left(1-\frac{y_{2}}{y}\right)\right]\cdot\left[x\alpha\left(y_{2}-y\right),y\gamma\left(-x_{2}+x\right)\right]\\&lt;br /&gt;
 &amp;amp; =\left(\frac{x-x_{2}}{x}\right)\left(x\alpha\left(y_{2}-y\right)\right)+\frac{\alpha}{\gamma}\left(\frac{y-y_{2}}{y}\right)\left(y\gamma\left(-x_{2}+x\right)\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{V}\left(\boldsymbol{x}\right)=\alpha\left(x-x_{2}\right)\left(y_{2}-y\right)-\alpha\left(y_{2}-y\right)\left(x-x_{2}\right)=0&amp;lt;/math&amp;gt;Temos então a condição de estabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\dot{V}\leq0&amp;lt;/math&amp;gt; concordando como que já havíamos obtidos anteriormente.&lt;br /&gt;
&lt;br /&gt;
=== Solução numérica ===&lt;br /&gt;
&lt;br /&gt;
Um exemplo resolvido numericamente pode ser visto em [[Modelo de Lotka-Volterra amortecido]], onde foi aproveitado os códigos desenvolvidos para este mesmo.&lt;br /&gt;
&lt;br /&gt;
=== Principais materiais utilizados ===&lt;br /&gt;
&lt;br /&gt;
# [http://www.math.nthu.edu.tw/~sbhsu/0416.pdf A survey of constructing Lyapunov functions for mathematical models in population biology] (Sze-Bi, Revista Taiwanesa de Matemática  )&lt;br /&gt;
# [https://repositorio.unesp.br/bitstream/handle/11449/134026/000856864.pdf?sequence=1||Estabilidade Estabilidade de pontos de equilíbrio e existência de soluções periódicas em alguns modelos bidimensionais] (Salvador Tavares de Oliveira, UNESP)&lt;br /&gt;
# [https://arxiv.org/ftp/arxiv/papers/1504/1504.06244.pdf||Modelagem Modelagem Matemática e estabilidade de sistemas predador-presa]  (Paulo Laerte Natti e outros, UEL)&lt;br /&gt;
# [https://guri.unipampa.edu.br/uploads/evt/arq_trabalhos/12356/seer_12356.pdf||Modelo Modelo de Lotka-Volterra: a dinâmica predador-presa] (Rafael Biasi Pata e Elisa Regina Cara, UNIPAMPA)&lt;br /&gt;
&lt;br /&gt;
=== Citações ===&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{Ecologia| [[AC: Jogo da Vida | Jogo da Vida]]|[[Modelo de Lotka-Volterra amortecido]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Log%C3%ADsticos&amp;diff=7863</id>
		<title>Modelos Logísticos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Log%C3%ADsticos&amp;diff=7863"/>
		<updated>2022-07-22T11:11:10Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Modelo de Levins]] |[[AC: Jogo da Vida | Jogo da Vida]]}}&lt;br /&gt;
&lt;br /&gt;
==Modelo logístico simples==&lt;br /&gt;
&lt;br /&gt;
A equação logística pode ser escrita da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dN}{dt}=rN\left[1-\frac{N}{K}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;K&amp;lt;/math&amp;gt; são as constantes de crescimento e de  suporte respectivamente, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; é a densidade populacional que tem como variável independente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t&amp;lt;/math&amp;gt;. Há dois estados de equilíbrio: &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N_{1}=0&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;,N_{2}=K&amp;lt;/math&amp;gt;. Linearizando o sistema próximo do primeiro ponto de equilíbrio conforme pode ser visto em [[Linearização de sistemas de equações não lineares]], calculando o único termo da matriz jacobiana:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{d\dot{N}}{dN}|_{N=0}=r&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo o sistema linearizado próximo ao ponto de equilíbrio é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{N} &amp;amp; =\left(\frac{d\dot{N}}{dN}|_{N=0}\right)\left(N\right)\\&lt;br /&gt;
 &amp;amp; =rN\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Temos simplesmente que se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;gt;0&amp;lt;/math&amp;gt;, então é um ponto de equilíbrio instável. Realizando o mesmo procedimento para analisar na vizinhança do segundo ponto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{N} &amp;amp; =\left(\frac{d\dot{N}}{dN}|_{N=K}\right)\left(N\right)\\&lt;br /&gt;
 &amp;amp; =-rN\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;gt;0&amp;lt;/math&amp;gt;, este ponto é estável.  Como usa-se uma constante de crescimento &amp;lt;math&amp;gt;r&amp;gt;0&amp;lt;/math&amp;gt;, o sistema evolui até atingir o ponto de equilíbrio de saturação &amp;lt;math&amp;gt;N=K&amp;lt;/math&amp;gt;. A solução pode ser obtida através do uso do [https://www.wolfram.com/mathematica/index.html.pt-br?footer=lang Mathematica]:&lt;br /&gt;
 parametros = Rationalize[{r -&amp;gt; 1, k -&amp;gt; 1}];&lt;br /&gt;
 sol = NDSolve[{n'[t] == r*n[t]*(1 - n[t]/k) /. parametros,&lt;br /&gt;
       n[0] == 0.5}, n, {t, 0, tmax}];&lt;br /&gt;
 Plot[n[t] /. sol, {t, 0, tmax}]&lt;br /&gt;
&lt;br /&gt;
==Modelo logístico atrasado==&lt;br /&gt;
&lt;br /&gt;
A equação logística assume que a taxa de variação da população dos organismos depende instantaneamente das variações no tamanho da população, porém em muitos casos, pode haver um atraso. Por exemplo, populações que armazenam nutrientes, podem não sofrer imediatamente os efeitos, mesmo se a população se tornar muito grande para a quantidade de recursos disponíveis. Por isso a equação logística pode incorporar um atraso na sua taxa de variação da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dN\left(t\right)}{dt}=rN\left(t\right)\left(1-\frac{N\left(t-\tau\right)}{K}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau&amp;lt;/math&amp;gt; é o Atraso. Para facilitar, denotando então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=N\left(t\right)&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N_{\tau}=N\left(1-\tau\right)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{N}=rN\left(1-\frac{N_{\tau}}{K}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observação: As constantes poderiam ser simplificadas realizando a substituição  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\left(t\right)=\frac{N\left(t\right)}{K}&amp;lt;/math&amp;gt; , de forma que restaria apenas a constante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha\equiv r\tau&amp;lt;/math&amp;gt;.  Vale a pena ressaltar que esta equação exige que para as condições iniciais  seja especificado o valor de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; sobre todo o intervalo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left[0,\tau\right]&amp;lt;/math&amp;gt;. Frequentemente isso é feito considerando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; é constante no intervalo, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=N_{0}&amp;lt;/math&amp;gt; para todo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t\in\left[0,\tau\right]&amp;lt;/math&amp;gt;. Para encontrar o equilíbrio analiticamente, tem-se então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=N_{\tau}&amp;lt;/math&amp;gt;, uma vez que no equilíbrio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; não deve variar no tempo, dessa maneira o valor para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt;  deve ser o mesmo, com ou sem atraso. Então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;0=rN\left(1-\frac{N}{K}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os mesmos pontos de equilíbrio discutidos anteriormente são recuperados: &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N_{1}=0&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N_{2}=K&amp;lt;/math&amp;gt;.  Plotando para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;k=\tau=1&amp;lt;/math&amp;gt;, e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=1.5&amp;lt;/math&amp;gt;  e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=1.6&amp;lt;/math&amp;gt; tem-se:&lt;br /&gt;
&lt;br /&gt;
[[Ficheiro:logistica.png|centro|miniaturadaimagem|549x317px|Soluções numéricas do sistema. Na esquerda superior a solução para a equação logística simples com &amp;lt;math&amp;gt;K=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;r&amp;gt;0&amp;lt;/math&amp;gt;, na direita superior a solução para a equação logística com atraso para &amp;lt;math&amp;gt;K=\tau=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;r=1.5&amp;lt;/math&amp;gt;. E embaixo também a equação logística com atraso porém para &amp;lt;math&amp;gt;r=1.6&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Verifica-se a existência de uma [https://en.wikipedia.org/wiki/Hopf_bifurcation bifurcação de Hopf] entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=1.5&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=1.6&amp;lt;/math&amp;gt;, isto é, um ponto crítico no qual a estabilidade do sistema sofre uma mudança e uma solução periódica surge. Então um modelo de população com uma única espécie ainda pode ter um comportamento oscilatório.  Para analisar o ponto de equilíbrio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=K&amp;lt;/math&amp;gt;, pode-se introduzir uma pequena perturbação &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u&amp;lt;/math&amp;gt; e verificar se o ponto no espaço de fase retorna ao ponto de equilíbrio. Então sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N\left(t\right)=K+u\left(t\right)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{N} &amp;amp; =rN\left(1-\frac{N_{\tau}}{K}\right)\\&lt;br /&gt;
\dot{u} &amp;amp; =r\left(K+u\right)\left(1-\frac{\left(K+u_{\tau}\right)}{K}\right)\\&lt;br /&gt;
 &amp;amp; =-r\left(K+u\right)\frac{u_{\tau}}{K}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para pequenas perturbações &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;K+u\approx K&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=-ru_{\tau}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha=-r&amp;lt;/math&amp;gt;, é exatamente a questão discutida anteriormente ([[Análise de estabilidade de equações diferenciais lineares atrasadas]]), quando &amp;lt;math&amp;gt;\tau=1&amp;lt;/math&amp;gt;. Então há um ponto de equilíbrio estável em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=0&amp;lt;/math&amp;gt; se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;-\frac{\pi}{2}&amp;lt;\alpha&amp;lt;0&amp;lt;/math&amp;gt;. Ou seja, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=K&amp;lt;/math&amp;gt; é um ponto de equilíbrio estável para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;gt;r&amp;gt;\frac{\pi}{2}&amp;lt;/math&amp;gt;. O que significa que em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=\frac{\pi}{2}&amp;lt;/math&amp;gt; o sistema perde a estabilidade, é o ponto no qual um autovalor complexo passa a ter sua parte real positiva. A bifurcação de Hopf está em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=\frac{\pi}{2}&amp;lt;/math&amp;gt;, exatamente neste ponto não há partes reais dos autovalores, apenas a parte imaginária do autovalor complexo e o sistema oscila em torno do ponto de equilíbrio. Para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;gt;\frac{\pi}{2}&amp;lt;/math&amp;gt; o sistema tem uma solução estável periódica, uma vez que ainda que o sistema se afaste do ponto de equilíbrio, eventualmente ele volta a se aproximar, permanecendo assim em um comportamento periódico.  A discussão foi feita com &amp;lt;math&amp;gt;\tau=1&amp;lt;/math&amp;gt;, mas mas pode ser facilmente replicada para outro valores de interesse.&lt;br /&gt;
&lt;br /&gt;
A solução numérica também pode ser obtida computacionalmente via Mathematica:&lt;br /&gt;
 parametros = Rationalize[{r -&amp;gt; 1, k -&amp;gt; 1, tau -&amp;gt; 1}]; &lt;br /&gt;
 sol = NDSolve[{n'[t] == r*n[t]*(1 - n[t - tau]/k), &lt;br /&gt;
       n[t /; t &amp;lt;= tau] == 0.5} /. parametros, n, {t, 0, 20}]; &lt;br /&gt;
 Plot[n[t] /. sol, {t, 0, 20}, PlotRange -&amp;gt; Full]&lt;br /&gt;
&lt;br /&gt;
====== Principais materiais utilizados ======&lt;br /&gt;
&lt;br /&gt;
# [https://www.math.fsu.edu/~bertram/lectures/delay.pdf Delay-Differential Equations] (Richard Bertram, Universidade Estadual da Flórida)&lt;br /&gt;
{{Ecologia| [[Modelo de Levins]] |[[AC: Jogo da Vida | Jogo da Vida]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Log%C3%ADsticos&amp;diff=7862</id>
		<title>Modelos Logísticos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Modelos_Log%C3%ADsticos&amp;diff=7862"/>
		<updated>2022-07-22T11:10:44Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Modelo de Levins]] |[[AC: Jogo da Vida]]}}&lt;br /&gt;
&lt;br /&gt;
==Modelo logístico simples==&lt;br /&gt;
&lt;br /&gt;
A equação logística pode ser escrita da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dN}{dt}=rN\left[1-\frac{N}{K}\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;K&amp;lt;/math&amp;gt; são as constantes de crescimento e de  suporte respectivamente, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; é a densidade populacional que tem como variável independente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t&amp;lt;/math&amp;gt;. Há dois estados de equilíbrio: &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N_{1}=0&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;,N_{2}=K&amp;lt;/math&amp;gt;. Linearizando o sistema próximo do primeiro ponto de equilíbrio conforme pode ser visto em [[Linearização de sistemas de equações não lineares]], calculando o único termo da matriz jacobiana:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{d\dot{N}}{dN}|_{N=0}=r&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo o sistema linearizado próximo ao ponto de equilíbrio é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{N} &amp;amp; =\left(\frac{d\dot{N}}{dN}|_{N=0}\right)\left(N\right)\\&lt;br /&gt;
 &amp;amp; =rN\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Temos simplesmente que se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;gt;0&amp;lt;/math&amp;gt;, então é um ponto de equilíbrio instável. Realizando o mesmo procedimento para analisar na vizinhança do segundo ponto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{N} &amp;amp; =\left(\frac{d\dot{N}}{dN}|_{N=K}\right)\left(N\right)\\&lt;br /&gt;
 &amp;amp; =-rN\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;gt;0&amp;lt;/math&amp;gt;, este ponto é estável.  Como usa-se uma constante de crescimento &amp;lt;math&amp;gt;r&amp;gt;0&amp;lt;/math&amp;gt;, o sistema evolui até atingir o ponto de equilíbrio de saturação &amp;lt;math&amp;gt;N=K&amp;lt;/math&amp;gt;. A solução pode ser obtida através do uso do [https://www.wolfram.com/mathematica/index.html.pt-br?footer=lang Mathematica]:&lt;br /&gt;
 parametros = Rationalize[{r -&amp;gt; 1, k -&amp;gt; 1}];&lt;br /&gt;
 sol = NDSolve[{n'[t] == r*n[t]*(1 - n[t]/k) /. parametros,&lt;br /&gt;
       n[0] == 0.5}, n, {t, 0, tmax}];&lt;br /&gt;
 Plot[n[t] /. sol, {t, 0, tmax}]&lt;br /&gt;
&lt;br /&gt;
==Modelo logístico atrasado==&lt;br /&gt;
&lt;br /&gt;
A equação logística assume que a taxa de variação da população dos organismos depende instantaneamente das variações no tamanho da população, porém em muitos casos, pode haver um atraso. Por exemplo, populações que armazenam nutrientes, podem não sofrer imediatamente os efeitos, mesmo se a população se tornar muito grande para a quantidade de recursos disponíveis. Por isso a equação logística pode incorporar um atraso na sua taxa de variação da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dN\left(t\right)}{dt}=rN\left(t\right)\left(1-\frac{N\left(t-\tau\right)}{K}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau&amp;lt;/math&amp;gt; é o Atraso. Para facilitar, denotando então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=N\left(t\right)&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N_{\tau}=N\left(1-\tau\right)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\dot{N}=rN\left(1-\frac{N_{\tau}}{K}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observação: As constantes poderiam ser simplificadas realizando a substituição  &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\left(t\right)=\frac{N\left(t\right)}{K}&amp;lt;/math&amp;gt; , de forma que restaria apenas a constante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha\equiv r\tau&amp;lt;/math&amp;gt;.  Vale a pena ressaltar que esta equação exige que para as condições iniciais  seja especificado o valor de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; sobre todo o intervalo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left[0,\tau\right]&amp;lt;/math&amp;gt;. Frequentemente isso é feito considerando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; é constante no intervalo, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=N_{0}&amp;lt;/math&amp;gt; para todo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t\in\left[0,\tau\right]&amp;lt;/math&amp;gt;. Para encontrar o equilíbrio analiticamente, tem-se então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=N_{\tau}&amp;lt;/math&amp;gt;, uma vez que no equilíbrio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; não deve variar no tempo, dessa maneira o valor para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt;  deve ser o mesmo, com ou sem atraso. Então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;0=rN\left(1-\frac{N}{K}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os mesmos pontos de equilíbrio discutidos anteriormente são recuperados: &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N_{1}=0&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N_{2}=K&amp;lt;/math&amp;gt;.  Plotando para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;k=\tau=1&amp;lt;/math&amp;gt;, e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=1.5&amp;lt;/math&amp;gt;  e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=1.6&amp;lt;/math&amp;gt; tem-se:&lt;br /&gt;
&lt;br /&gt;
[[Ficheiro:logistica.png|centro|miniaturadaimagem|549x317px|Soluções numéricas do sistema. Na esquerda superior a solução para a equação logística simples com &amp;lt;math&amp;gt;K=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;r&amp;gt;0&amp;lt;/math&amp;gt;, na direita superior a solução para a equação logística com atraso para &amp;lt;math&amp;gt;K=\tau=1&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;r=1.5&amp;lt;/math&amp;gt;. E embaixo também a equação logística com atraso porém para &amp;lt;math&amp;gt;r=1.6&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Verifica-se a existência de uma [https://en.wikipedia.org/wiki/Hopf_bifurcation bifurcação de Hopf] entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=1.5&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=1.6&amp;lt;/math&amp;gt;, isto é, um ponto crítico no qual a estabilidade do sistema sofre uma mudança e uma solução periódica surge. Então um modelo de população com uma única espécie ainda pode ter um comportamento oscilatório.  Para analisar o ponto de equilíbrio &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=K&amp;lt;/math&amp;gt;, pode-se introduzir uma pequena perturbação &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u&amp;lt;/math&amp;gt; e verificar se o ponto no espaço de fase retorna ao ponto de equilíbrio. Então sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N\left(t\right)=K+u\left(t\right)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{N} &amp;amp; =rN\left(1-\frac{N_{\tau}}{K}\right)\\&lt;br /&gt;
\dot{u} &amp;amp; =r\left(K+u\right)\left(1-\frac{\left(K+u_{\tau}\right)}{K}\right)\\&lt;br /&gt;
 &amp;amp; =-r\left(K+u\right)\frac{u_{\tau}}{K}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para pequenas perturbações &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;K+u\approx K&amp;lt;/math&amp;gt;, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{du}{dt}=-ru_{\tau}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha=-r&amp;lt;/math&amp;gt;, é exatamente a questão discutida anteriormente ([[Análise de estabilidade de equações diferenciais lineares atrasadas]]), quando &amp;lt;math&amp;gt;\tau=1&amp;lt;/math&amp;gt;. Então há um ponto de equilíbrio estável em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u=0&amp;lt;/math&amp;gt; se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;-\frac{\pi}{2}&amp;lt;\alpha&amp;lt;0&amp;lt;/math&amp;gt;. Ou seja, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=K&amp;lt;/math&amp;gt; é um ponto de equilíbrio estável para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;gt;r&amp;gt;\frac{\pi}{2}&amp;lt;/math&amp;gt;. O que significa que em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=\frac{\pi}{2}&amp;lt;/math&amp;gt; o sistema perde a estabilidade, é o ponto no qual um autovalor complexo passa a ter sua parte real positiva. A bifurcação de Hopf está em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r=\frac{\pi}{2}&amp;lt;/math&amp;gt;, exatamente neste ponto não há partes reais dos autovalores, apenas a parte imaginária do autovalor complexo e o sistema oscila em torno do ponto de equilíbrio. Para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;gt;\frac{\pi}{2}&amp;lt;/math&amp;gt; o sistema tem uma solução estável periódica, uma vez que ainda que o sistema se afaste do ponto de equilíbrio, eventualmente ele volta a se aproximar, permanecendo assim em um comportamento periódico.  A discussão foi feita com &amp;lt;math&amp;gt;\tau=1&amp;lt;/math&amp;gt;, mas mas pode ser facilmente replicada para outro valores de interesse.&lt;br /&gt;
&lt;br /&gt;
A solução numérica também pode ser obtida computacionalmente via Mathematica:&lt;br /&gt;
 parametros = Rationalize[{r -&amp;gt; 1, k -&amp;gt; 1, tau -&amp;gt; 1}]; &lt;br /&gt;
 sol = NDSolve[{n'[t] == r*n[t]*(1 - n[t - tau]/k), &lt;br /&gt;
       n[t /; t &amp;lt;= tau] == 0.5} /. parametros, n, {t, 0, 20}]; &lt;br /&gt;
 Plot[n[t] /. sol, {t, 0, 20}, PlotRange -&amp;gt; Full]&lt;br /&gt;
&lt;br /&gt;
====== Principais materiais utilizados ======&lt;br /&gt;
&lt;br /&gt;
# [https://www.math.fsu.edu/~bertram/lectures/delay.pdf Delay-Differential Equations] (Richard Bertram, Universidade Estadual da Flórida)&lt;br /&gt;
{{Ecologia| [[Modelo de Levins]] |[[AC: Jogo da Vida]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7861</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7861"/>
		<updated>2022-07-22T11:09:43Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logísticos]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[AC: Jogo da Vida | Jogo da Vida]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |0/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Dinâmica de flora&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7860</id>
		<title>MBA: Gás simples</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7860"/>
		<updated>2022-07-22T10:47:45Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;br /&gt;
&lt;br /&gt;
= Colisão entre  partículas =&lt;br /&gt;
&lt;br /&gt;
Considerando um modelo simples de gás ideal, não há força atuando sob as partículas, então a interação que ocorre entre as partículas se dá apenas por meio de colisões. Assim é necessário calcular a variação na velocidade de cada partícula após a colisão. Começando em uma dimensão, precisamos garantir a conservação do momento: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;m_{1}v_{1}'+m_{2}v_{2}'=m_{1}v_{1}''+m_{2}v_{2}''&lt;br /&gt;
&amp;lt;/math&amp;gt;E da energia cinética: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{1}{2}m_{1}v_{1}'^{2}+\frac{1}{2}m_{2}v_{2}'^{2}=\frac{1}{2}m_{1}v_{1}''^{2}+\frac{1}{2}m_{2}v_{2}''^{2}&amp;lt;/math&amp;gt;Colocando o referencial de forma que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'=0&amp;lt;/math&amp;gt;, então as velocidades no novo referencial podem ser escritas como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i=v_i-v_2'&amp;lt;/math&amp;gt;, de forma que da conservação do momento ficamos com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}u_{2}'', \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt; Elevando ao quadrado: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''^{2}=u_{1}'^{2}-\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''&amp;lt;/math&amp;gt; Substituindo na equação de conservação de energia, podemos encontrar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_2''&amp;lt;/math&amp;gt;: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}''^{2}+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}\left[u_{1}'{}^{2}+\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''\right]+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}'{}^{2}+\frac{m_{2}^{2}}{m_{1}}u_{2}''^{2}-2m_{2}u_{1}'u_{2}''+m_{2}u_{2}''^{2}\\&lt;br /&gt;
0=\left(\frac{m_{2}^{2}}{m_{1}}+m_{2}\right)u_{2}''^{2}+\left(-2m_{2}u_{1}'\right)u_{2}''\\&lt;br /&gt;
0=\left(\frac{m_{2}+m_{1}}{m_{1}}\right)u_{2}''^{2}+\left(-2u_{1}'\right)u_{2}''&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Calculando as raízes do segundo grau, temos: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2u_{1}'\pm\sqrt{4u_{1}'^{2}}}{2\left(\frac{m_{2}+m_{1}}{m_{1}}\right)}=\frac{m_{1}}{m_{2}+m_{1}}\left(u_{1}'\pm u_{1}'\right)&amp;lt;/math&amp;gt;E como uma solução é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'=0&amp;lt;/math&amp;gt;, mas queremos a situação em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'\neq0&amp;lt;/math&amp;gt;, logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Substituindo em '''(1)''', temos: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}\left(\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\right)\\&lt;br /&gt;
u_{1}''=\left(1-\frac{2m_{2}}{m_{2}+m_{1}}\right)u_{1}\\&lt;br /&gt;
u_{1}''=\left(\frac{m_{2}+m_{1}-2m_{2}}{m_{2}+m_{1}}\right)u_{1}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Ou seja: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Retornando ao referencial original, sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_i=u_i+v_2'&amp;lt;/math&amp;gt;, temos então para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_1'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{1}''-v_{2}'=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\frac{2m_{2}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;E de maneira análoga para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{2}''-v_{2}'=\frac{2m_{1}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{2m_{1}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\frac{m_{2}-m_{1}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Um caso especial ocorre se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2, \qquad (2)&amp;lt;/math&amp;gt; então temos simplesmente: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
v_1''=v_2',\qquad \text{e} \qquad v_2''=v_1'&amp;lt;/math&amp;gt;Em duas dimensões, podemos reduzir o problema a uma dimensão, considerando que toda a alteração na velocidade devido a colisão entre partículas ocorre apenas na componente paralela a reta que liga o centro das duas esferas. Considerando que a posição de cada partícula é dada por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{r}_{i}&amp;lt;/math&amp;gt;, então um vetor entre as partículas pode ser escrito como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}&amp;lt;/math&amp;gt;. Podemos projetar ambas as velocidades então fazendo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;{u}_{i}'=\frac{\overrightarrow{v}_{i}\cdot\overrightarrow{d}}{\left|\overrightarrow{d}\right|}=\overrightarrow{v}_{i}\cdot\widehat{d}&amp;lt;/math&amp;gt;Obtemos o módulo da velocidade da partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; na direção &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt; e podemos trabalhar em uma única dimensão para encontrarmos a velocidade de ambas partículas após a colisão nesta dimensão. Ao fim podemos decompor novamente a velocidade final &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i''&amp;lt;/math&amp;gt; em ambos os eixos mantendo a mesma direção utilizando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\theta=\arctan\left(\frac{\Delta{y}}{\Delta x}\right)&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\Delta z = z_2 - z_1&amp;lt;/math&amp;gt; é a diferença entre a posição das partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;2&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; na componente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso vale lembrar que há a componente da velocidade perpendicular a &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt;, que vamos denotar como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{w}_i=\overrightarrow{v}_i-u_{i}'\left(\cos\theta,\sin\theta\right)&amp;lt;/math&amp;gt;. Esta componente perpendicular permanece inalterada e pode ser visualizada na figura ao lado.&lt;br /&gt;
&lt;br /&gt;
[[File:Mba_gas.png|esquerda|miniaturadaimagem|300x300px|alt=Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt;. |Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula 1. ]]&lt;br /&gt;
&lt;br /&gt;
Sendo assim, a velocidade final é dada por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\left(u_{i}''\cos\theta,u_{i}''\sin\theta\right)+\overrightarrow{w}_{i}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=u_{i}''\left(\cos\theta,\sin\theta\right)+\overrightarrow{v}_{i}-u_{i}'\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\overrightarrow{a}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}&amp;lt;/math&amp;gt; é um vetor unitário que nos dá a direção entre os centros das partículas. Utilizando ad identidades: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\cos\left(\arctan\left(x\right)\right)=\frac{1}{\sqrt{1+x^{2}}}, \qquad \sin\left(\arctan\left(x\right)\right)=\frac{x}{\sqrt{1+x^{2}}}&amp;lt;/math&amp;gt; ficamos então com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{a}=\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\cos\arctan\left(\frac{\Delta y}{\Delta x}\right),\sin\arctan\left(\frac{\Delta y}{\Delta x}\right)\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}},\frac{\left(\frac{\Delta y}{\Delta x}\right)}{\sqrt{1+\left(\frac{\Delta y}{\Delta x}\right)^{2}}}\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\Delta x}\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}}\left(\Delta x,\Delta y\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\frac{\Delta x}{\Delta x}}\frac{1}{\sqrt{\Delta x^{2}+\Delta y^{2}}}\left(\Delta x,\Delta y\right)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{a}  =\frac{\left(\Delta x,\Delta y\right)}{\sqrt{\Delta x^{2}+\Delta y^{2}}}&amp;lt;/math&amp;gt; E uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}=\left(x_{2}-x_{1},y_{2}-y_{1}\right)=\left(\Delta x,\Delta y\right)&amp;lt;/math&amp;gt;, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}= \overrightarrow{d}/\left|d\right|= \widehat{d}&amp;lt;/math&amp;gt;. Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\widehat{d}&amp;lt;/math&amp;gt;Ou ainda mais explícito, se fizermos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2&amp;lt;/math&amp;gt;, sendo as partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;j&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i\neq j&amp;lt;/math&amp;gt;, usando '''(2)''': &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{cc}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(u_{j}'-u_{i}'\right)\widehat{d}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(\overrightarrow{v}_{j}\cdot\widehat{d}-\overrightarrow{v}_{i}\cdot\widehat{d}\right)\widehat{d}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Temos então que: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} =\overrightarrow{v}_{i}+\left[\left(\overrightarrow{v}_{j}-\overrightarrow{v}_{i}\right)\cdot\widehat{d}\right]\widehat{d}&amp;lt;/math&amp;gt;Todo o cálculo exibido foi para uma partícula, para a segunda partícula, o cálculo é análogo.&lt;br /&gt;
&lt;br /&gt;
= Distribuição de velocidades para um gás a certa temperatura =&lt;br /&gt;
&lt;br /&gt;
A distribuição das velocidads das molécula de um gá é dada pela distribuição de Maxwell-Boltmann &amp;lt;ref&amp;gt;[https://edisciplinas.usp.br/pluginfile.php/48089/course/section/16461/qsp_chapter4-kineticTheory.pdf The Kinetic Theory of Gases]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt; f\left(v\right)=\left(\frac{m}{2\pi kT}\right)^{3/2}4\pi v^{2}\exp\left(-\frac{mv^{2}}{kT}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Foi realizado uma simulação com 100 partículas por 500.000 de passos em uma grade 100x100 com fronteira toroidal, o resultado encontra-se na figura abaixo assim como o código. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:mba_colisao.png|centro|miniaturadaimagem|750x750px|Resultado da simulação com a distribuição de Maxwell-Boltmann para kT=0.7  e m=1.]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Código =&lt;br /&gt;
&lt;br /&gt;
Aqui chamamos a atenção que a principal diferença do código discutido para autômatos celulares é que agora não temos mais uma grade, mas um modelo contínuo. Também temos a possibilidade de configuração se as fronteiras serão toroidais (extremidades conectadas) ou não. Quanto aos resultados, precisamos considerar que é um modelo simplificado. O Calculo foi realizado para uma colisão entre duas partículas se dentro do mesmo passo deveria ocorrer mais de uma colisão, ou com mais de uma partícula simultaneamente o código falha, para remediar isso, o ideal é utilizar passos de tempo pequenos e/ou uma caixa relativamente grande em relação a quantidade de partículas. Além disso ao optarmos por uma fronteira toroidal ou não, estamos considerando uma caixa fechada ou não, ao considerarmos precisamos considerar a colisão com as fronteira também. Nesse último caso, uma simplificação simples é considerar que esta colisão ocorre primeiro. Novamente o problema surge se houver duas colisões no mesmo passo (agora podendo colidir com a fronteira), logo a recomendação é a mesma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Agendador simultâneo&lt;br /&gt;
from mesa.space import ContinuousSpace                             #Malha multigrid&lt;br /&gt;
import random                                                      #Número aleatórios&lt;br /&gt;
from mesa.datacollection import DataCollector                      #Importamos um coletor de dados&lt;br /&gt;
import matplotlib.pyplot as plt                                    #Plotar gráicos             &lt;br /&gt;
#from IPython.display import clear_output                           #Configurações de saída do Colab         &lt;br /&gt;
import numpy as np    &lt;br /&gt;
&lt;br /&gt;
#AGENTE---------------------------------------------------------------------------------&lt;br /&gt;
class Agente(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Classe do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, modelo,largura,altura):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Bibliotecas necessárias&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #modelo     - Modelo que ao qual o agente pertence&lt;br /&gt;
        super().__init__(self, modelo)        #Necessário para funcionar o modelo&lt;br /&gt;
        self.ppos     = (0,0)                 #Poição que irá se mover&lt;br /&gt;
        self.rai= 0.2                         #Raio&lt;br /&gt;
        self.lim=(largura,altura)             #Limites da caixa&lt;br /&gt;
        v=1                                   #Módulo da velocidade inicial&lt;br /&gt;
        ang = 2*random.random()*np.pi&lt;br /&gt;
        self.vel      = (v*np.cos(ang),v*np.sin(ang)) #Velocidade decomposta&lt;br /&gt;
        self.colisao=False&lt;br /&gt;
        self.ac=False&lt;br /&gt;
                &lt;br /&gt;
    def prox_pos(self):&lt;br /&gt;
      dt=0.01&lt;br /&gt;
      nx=self.pos[0]+self.vel[0]*0.01&lt;br /&gt;
      ny=self.pos[1]+self.vel[1]*0.01&lt;br /&gt;
      #Testar os limites&lt;br /&gt;
      if (nx &amp;lt; 0):&lt;br /&gt;
        nx = - nx; self.vel=(-self.vel[0],self.vel[1])&lt;br /&gt;
      if (nx &amp;gt; self.lim[0]):&lt;br /&gt;
        nx = 2*self.lim[0] - nx; self.vel=(-self.vel[0],self.vel[1])&lt;br /&gt;
      if (ny &amp;lt; 0):&lt;br /&gt;
        ny = - ny; self.vel=(self.vel[0], - self.vel[1])&lt;br /&gt;
      if (ny &amp;gt; self.lim[1]):&lt;br /&gt;
        ny = 2*self.lim[1] - ny;self.vel=(self.vel[0], - self.vel[1])&lt;br /&gt;
&lt;br /&gt;
      return((nx,ny))&lt;br /&gt;
    &lt;br /&gt;
    def prox_vel(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Movimentação dos animais&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #Checamos se há colisão com outro animal:&lt;br /&gt;
        agentes = self.model.continuous.get_neighbors(pos=self.ppos, radius = 3*self.rai, include_center=True)&lt;br /&gt;
        for a in agentes:                                         #Percorremos a lista&lt;br /&gt;
          if (a.unique_id!=self.unique_id): &lt;br /&gt;
              d=np.sqrt((a.ppos[0]-self.ppos[0])**2+(a.ppos[1]-self.ppos[1])**2)&lt;br /&gt;
              if (d&amp;lt;=2*self.rai):&lt;br /&gt;
                #Direção da colisão&lt;br /&gt;
                d=(a.ppos[0]-self.ppos[0],a.ppos[1]-self.ppos[1])/np.sqrt((a.ppos[0]-self.ppos[0])**2+(a.ppos[1]-self.ppos[1])**2)&lt;br /&gt;
                #Partícula 1&lt;br /&gt;
                u1=(a.vel[0]-self.vel[0])*d[0]+(a.vel[1]-self.vel[1])*d[1]&lt;br /&gt;
                nvel1=(self.vel[0]+u1*d[0],self.vel[1]+u1*d[1])&lt;br /&gt;
                #partícula 2,pela conservação de momento:&lt;br /&gt;
                nvel2=(self.vel[0]+a.vel[0]-nvel1[0],self.vel[1]+a.vel[1]-nvel1[1])   &lt;br /&gt;
                #Se nenhuma partícula tinha se colidido&lt;br /&gt;
                if (self.colisao==False and a.colisao==False):          &lt;br /&gt;
                  #Atualiza as velocidades&lt;br /&gt;
                  self.vel=nvel1; a.vel=nvel2&lt;br /&gt;
                  self.ac=True;a.ac=True   &lt;br /&gt;
                #Registra a colisão&lt;br /&gt;
                self.colisao=True; a.colisao=True       &lt;br /&gt;
                break&lt;br /&gt;
        return ()                                          &lt;br /&gt;
&lt;br /&gt;
    def movimento(self):&lt;br /&gt;
      if(self.colisao):&lt;br /&gt;
        return (self.pos)&lt;br /&gt;
      else:&lt;br /&gt;
        return(self.ppos)&lt;br /&gt;
    &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que prepara as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.ppos = self.prox_pos()&lt;br /&gt;
             &lt;br /&gt;
    def advance(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que aplica as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.prox_vel()&lt;br /&gt;
        self.model.continuous.move_agent(self, self.movimento())&lt;br /&gt;
&lt;br /&gt;
#MODELO&lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def gerar_particulas(self,N,largura,altura):&lt;br /&gt;
      &amp;quot;&amp;quot;&amp;quot;Função para gerar animais iniciais&amp;quot;&amp;quot;&amp;quot;    &lt;br /&gt;
      #N        - Número de animais&lt;br /&gt;
      #largura  - Largura da grade&lt;br /&gt;
      #altura   - Altura da grade&lt;br /&gt;
      for n in range(N):&lt;br /&gt;
          con=True&lt;br /&gt;
          while(con):&lt;br /&gt;
            con=False&lt;br /&gt;
            a = Agente(self,largura,altura)&lt;br /&gt;
            X= largura*random.random()&lt;br /&gt;
            Y= altura*random.random()&lt;br /&gt;
            if (len(self.schedule.agents)==0):&lt;br /&gt;
              self.schedule.add(a)&lt;br /&gt;
              self.continuous.place_agent(a, (X, Y))&lt;br /&gt;
            else:&lt;br /&gt;
              agentes = self.continuous.get_neighbors(pos=(X,Y), radius = 2*a.rai, include_center=True)&lt;br /&gt;
              for viz in agentes:&lt;br /&gt;
                con = (True) if (len(agentes)==0) else (con)  #Precisamos checar se nasceu no mesmo lugar de outro animal&lt;br /&gt;
              if(con==False):&lt;br /&gt;
                self.schedule.add(a)&lt;br /&gt;
                self.continuous.place_agent(a, (X, Y))&lt;br /&gt;
      return()&lt;br /&gt;
&lt;br /&gt;
    def __init__(self, modelo,N,seed=None):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função chamada quando o modelo é inicializazdo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # Modelo   - Dicionário com especificações do modelo&lt;br /&gt;
        # N        - Número de partículas&lt;br /&gt;
        # seed     - Seed dos números aleatórios do modelo do mesa&lt;br /&gt;
        &lt;br /&gt;
        # Desempacotar o dicionário&lt;br /&gt;
        largura = modelo[&amp;quot;Largura&amp;quot;];altura=modelo[&amp;quot;Altura&amp;quot;]; random.seed(modelo[&amp;quot;Seed&amp;quot;])                     &lt;br /&gt;
        self.continuous = ContinuousSpace(x_max= largura, y_max=altura, torus= True, x_min=0, y_min= 0) #Configura a grade&lt;br /&gt;
        self.schedule   = SimultaneousActivation(self)            #Configura o agendador&lt;br /&gt;
        self.running   = True                                     #Condiçao para seguir executando o modelo&lt;br /&gt;
        self.gerar_particulas(N,largura,altura)    #Distribuir as ovelhas&lt;br /&gt;
           &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Avançar um passo do modelo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.schedule.step()                              #Avançamos os agentes&lt;br /&gt;
        #Limpamos as colisões&lt;br /&gt;
        for a in self.schedule.agents:                    #Vamos percorrer os agentes&lt;br /&gt;
          a.colisao=False&lt;br /&gt;
#Parâmetros&lt;br /&gt;
MAX =1000000&lt;br /&gt;
N=100&lt;br /&gt;
modelo  =  {&amp;quot;Largura&amp;quot;:100     ,&amp;quot;Altura&amp;quot;:100      ,&amp;quot;Seed&amp;quot;:1} &lt;br /&gt;
M = Modelo(modelo,N)&lt;br /&gt;
for i in range(MAX):&lt;br /&gt;
    M.step()&lt;br /&gt;
    if ((i+1)%(MAX/100)==0):&lt;br /&gt;
      #clear_output() &lt;br /&gt;
      print(str(100*(1+i)/MAX)+&amp;quot;%&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
vel=[]&lt;br /&gt;
E=0&lt;br /&gt;
for a in M.schedule.agents:&lt;br /&gt;
    vel.append(np.sqrt(a.vel[0]**2+a.vel[1]**2))&lt;br /&gt;
    E+=a.vel[0]**2+a.vel[1]**2&lt;br /&gt;
print(E)&lt;br /&gt;
with open('velocidades0.2R100K1000.txt', 'w') as f:&lt;br /&gt;
    f.write(str(vel))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para plotar o gráfico, podemos então usar simplesmente:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
a,b,c=plt.hist(vel,8, density=True, facecolor='g', alpha=0.75)&lt;br /&gt;
m=1&lt;br /&gt;
K=0.7&lt;br /&gt;
x=np.arange(0,2.5, 0.00001)&lt;br /&gt;
y = (4/np.sqrt(np.pi))*((m/K)**(3/2))*(x**2)*np.exp(-m*(x**2)/K)&lt;br /&gt;
plt.plot(x,y)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Citações ===&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mba_colisao.png&amp;diff=7859</id>
		<title>Arquivo:Mba colisao.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mba_colisao.png&amp;diff=7859"/>
		<updated>2022-07-22T10:46:30Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7858</id>
		<title>MBA: Gás simples</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7858"/>
		<updated>2022-07-21T07:16:26Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;br /&gt;
&lt;br /&gt;
= Colisão entre  partículas =&lt;br /&gt;
&lt;br /&gt;
Considerando um modelo simples de gás ideal, não há força atuando sob as partículas, então a interação que ocorre entre as partículas se dá apenas por meio de colisões. Assim é necessário calcular a variação na velocidade de cada partícula após a colisão. Começando em uma dimensão, precisamos garantir a conservação do momento: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;m_{1}v_{1}'+m_{2}v_{2}'=m_{1}v_{1}''+m_{2}v_{2}''&lt;br /&gt;
&amp;lt;/math&amp;gt;E da energia cinética: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{1}{2}m_{1}v_{1}'^{2}+\frac{1}{2}m_{2}v_{2}'^{2}=\frac{1}{2}m_{1}v_{1}''^{2}+\frac{1}{2}m_{2}v_{2}''^{2}&amp;lt;/math&amp;gt;Colocando o referencial de forma que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'=0&amp;lt;/math&amp;gt;, então as velocidades no novo referencial podem ser escritas como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i=v_i-v_2'&amp;lt;/math&amp;gt;, de forma que da conservação do momento ficamos com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}u_{2}'', \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt; Elevando ao quadrado: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''^{2}=u_{1}'^{2}-\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''&amp;lt;/math&amp;gt; Substituindo na equação de conservação de energia, podemos encontrar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_2''&amp;lt;/math&amp;gt;: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}''^{2}+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}\left[u_{1}'{}^{2}+\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''\right]+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}'{}^{2}+\frac{m_{2}^{2}}{m_{1}}u_{2}''^{2}-2m_{2}u_{1}'u_{2}''+m_{2}u_{2}''^{2}\\&lt;br /&gt;
0=\left(\frac{m_{2}^{2}}{m_{1}}+m_{2}\right)u_{2}''^{2}+\left(-2m_{2}u_{1}'\right)u_{2}''\\&lt;br /&gt;
0=\left(\frac{m_{2}+m_{1}}{m_{1}}\right)u_{2}''^{2}+\left(-2u_{1}'\right)u_{2}''&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Calculando as raízes do segundo grau, temos: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2u_{1}'\pm\sqrt{4u_{1}'^{2}}}{2\left(\frac{m_{2}+m_{1}}{m_{1}}\right)}=\frac{m_{1}}{m_{2}+m_{1}}\left(u_{1}'\pm u_{1}'\right)&amp;lt;/math&amp;gt;E como uma solução é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'=0&amp;lt;/math&amp;gt;, mas queremos a situação em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'\neq0&amp;lt;/math&amp;gt;, logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Substituindo em '''(1)''', temos: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}\left(\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\right)\\&lt;br /&gt;
u_{1}''=\left(1-\frac{2m_{2}}{m_{2}+m_{1}}\right)u_{1}\\&lt;br /&gt;
u_{1}''=\left(\frac{m_{2}+m_{1}-2m_{2}}{m_{2}+m_{1}}\right)u_{1}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Ou seja: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Retornando ao referencial original, sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_i=u_i+v_2'&amp;lt;/math&amp;gt;, temos então para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_1'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{1}''-v_{2}'=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\frac{2m_{2}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;E de maneira análoga para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{2}''-v_{2}'=\frac{2m_{1}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{2m_{1}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\frac{m_{2}-m_{1}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Um caso especial ocorre se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2, \qquad (2)&amp;lt;/math&amp;gt; então temos simplesmente: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
v_1''=v_2',\qquad \text{e} \qquad v_2''=v_1'&amp;lt;/math&amp;gt;Em duas dimensões, podemos reduzir o problema a uma dimensão, considerando que toda a alteração na velocidade devido a colisão entre partículas ocorre apenas na componente paralela a reta que liga o centro das duas esferas. Considerando que a posição de cada partícula é dada por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{r}_{i}&amp;lt;/math&amp;gt;, então um vetor entre as partículas pode ser escrito como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}&amp;lt;/math&amp;gt;. Podemos projetar ambas as velocidades então fazendo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;{u}_{i}'=\frac{\overrightarrow{v}_{i}\cdot\overrightarrow{d}}{\left|\overrightarrow{d}\right|}=\overrightarrow{v}_{i}\cdot\widehat{d}&amp;lt;/math&amp;gt;Obtemos o módulo da velocidade da partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; na direção &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt; e podemos trabalhar em uma única dimensão para encontrarmos a velocidade de ambas partículas após a colisão nesta dimensão. Ao fim podemos decompor novamente a velocidade final &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i''&amp;lt;/math&amp;gt; em ambos os eixos mantendo a mesma direção utilizando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\theta=\arctan\left(\frac{\Delta{y}}{\Delta x}\right)&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\Delta z = z_2 - z_1&amp;lt;/math&amp;gt; é a diferença entre a posição das partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;2&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; na componente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso vale lembrar que há a componente da velocidade perpendicular a &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt;, que vamos denotar como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{w}_i=\overrightarrow{v}_i-u_{i}'\left(\cos\theta,\sin\theta\right)&amp;lt;/math&amp;gt;. Esta componente perpendicular permanece inalterada e pode ser visualizada na figura ao lado.&lt;br /&gt;
&lt;br /&gt;
[[File:Mba_gas.png|esquerda|miniaturadaimagem|300x300px|alt=Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt;. |Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula 1. ]]&lt;br /&gt;
&lt;br /&gt;
Sendo assim, a velocidade final é dada por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\left(u_{i}''\cos\theta,u_{i}''\sin\theta\right)+\overrightarrow{w}_{i}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=u_{i}''\left(\cos\theta,\sin\theta\right)+\overrightarrow{v}_{i}-u_{i}'\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\overrightarrow{a}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}&amp;lt;/math&amp;gt; é um vetor unitário que nos dá a direção entre os centros das partículas. Utilizando ad identidades: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\cos\left(\arctan\left(x\right)\right)=\frac{1}{\sqrt{1+x^{2}}}, \qquad \sin\left(\arctan\left(x\right)\right)=\frac{x}{\sqrt{1+x^{2}}}&amp;lt;/math&amp;gt; ficamos então com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{a}=\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\cos\arctan\left(\frac{\Delta y}{\Delta x}\right),\sin\arctan\left(\frac{\Delta y}{\Delta x}\right)\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}},\frac{\left(\frac{\Delta y}{\Delta x}\right)}{\sqrt{1+\left(\frac{\Delta y}{\Delta x}\right)^{2}}}\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\Delta x}\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}}\left(\Delta x,\Delta y\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\frac{\Delta x}{\Delta x}}\frac{1}{\sqrt{\Delta x^{2}+\Delta y^{2}}}\left(\Delta x,\Delta y\right)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{a}  =\frac{\left(\Delta x,\Delta y\right)}{\sqrt{\Delta x^{2}+\Delta y^{2}}}&amp;lt;/math&amp;gt; E uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}=\left(x_{2}-x_{1},y_{2}-y_{1}\right)=\left(\Delta x,\Delta y\right)&amp;lt;/math&amp;gt;, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}= \overrightarrow{d}/\left|d\right|= \widehat{d}&amp;lt;/math&amp;gt;. Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\widehat{d}&amp;lt;/math&amp;gt;Ou ainda mais explícito, se fizermos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2&amp;lt;/math&amp;gt;, sendo as partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;j&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i\neq j&amp;lt;/math&amp;gt;, usando '''(2)''': &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{cc}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(u_{j}'-u_{i}'\right)\widehat{d}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(\overrightarrow{v}_{j}\cdot\widehat{d}-\overrightarrow{v}_{i}\cdot\widehat{d}\right)\widehat{d}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Temos então que: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} =\overrightarrow{v}_{i}+\left[\left(\overrightarrow{v}_{j}-\overrightarrow{v}_{i}\right)\cdot\widehat{d}\right]\widehat{d}&amp;lt;/math&amp;gt;Todo o cálculo exibido foi para uma partícula, para a segunda partícula, o cálculo é análogo.&lt;br /&gt;
&lt;br /&gt;
= Distribuição de velocidades para um gás a certa temperatura =&lt;br /&gt;
&lt;br /&gt;
A distribuição das velocidads das molécula de um gá é dada pela distribuição de Maxwell-Boltmann &amp;lt;ref&amp;gt;[https://edisciplinas.usp.br/pluginfile.php/48089/course/section/16461/qsp_chapter4-kineticTheory.pdf The Kinetic Theory of Gases]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt; f\left(v\right)=\left(\frac{m}{2\pi kT}\right)^{3/2}4\pi v^{2}\exp\left(-\frac{mv^{2}}{kT}\right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Foi realizado uma simulação com 100 partículas por 1.000.000 de passos e o resultado encontra-se na figura abaixo assim como o código. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:mba_colisao.png|centro|miniaturadaimagem|750x750px|Resultado da simulação com a distribuição de Maxwell-Boltmann para kT=0.7  e m=1.]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Código =&lt;br /&gt;
&lt;br /&gt;
Aqui chamamos a atenção que a principal diferença do código discutido para autômatos celulares é que agora não temos mais uma grade, mas um modelo contínuo. Também temos a possibilidade de configuração se as fronteiras serão toroidais (extremidades conectadas) ou não. Quanto aos resultados, precisamos considerar que é um modelo simplificado. O Calculo foi realizado para uma colisão entre duas partículas se dentro do mesmo passo deveria ocorrer mais de uma colisão, ou com mais de uma partícula simultaneamente o código falha, para remediar isso, o ideal é utilizar passos de tempo pequenos e/ou uma caixa relativamente grande em relação a quantidade de partículas. Além disso ao optarmos por uma fronteira toroidal ou não, estamos considerando uma caixa fechada ou não, ao considerarmos precisamos considerar a colisão com as fronteira também. Nesse último caso, uma simplificação simples é considerar que esta colisão ocorre primeiro. Novamente o problema surge se houver duas colisões no mesmo passo (agora podendo colidir com a fronteira), logo a recomendação é a mesma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Agendador simultâneo&lt;br /&gt;
from mesa.space import ContinuousSpace                             #Malha multigrid&lt;br /&gt;
import random                                                      #Número aleatórios&lt;br /&gt;
from mesa.datacollection import DataCollector                      #Importamos um coletor de dados&lt;br /&gt;
import matplotlib.pyplot as plt                                    #Plotar gráicos             &lt;br /&gt;
#from IPython.display import clear_output                           #Configurações de saída do Colab         &lt;br /&gt;
import numpy as np    &lt;br /&gt;
&lt;br /&gt;
#AGENTE---------------------------------------------------------------------------------&lt;br /&gt;
class Agente(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Classe do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, modelo,largura,altura):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Bibliotecas necessárias&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #modelo     - Modelo que ao qual o agente pertence&lt;br /&gt;
        super().__init__(self, modelo)        #Necessário para funcionar o modelo&lt;br /&gt;
        self.ppos     = (0,0)                 #Poição que irá se mover&lt;br /&gt;
        self.rai= 0.2                         #Raio&lt;br /&gt;
        self.lim=(largura,altura)             #Limites da caixa&lt;br /&gt;
        v=1                                   #Módulo da velocidade inicial&lt;br /&gt;
        ang = 2*random.random()*np.pi&lt;br /&gt;
        self.vel      = (v*np.cos(ang),v*np.sin(ang)) #Velocidade decomposta&lt;br /&gt;
        self.colisao=False&lt;br /&gt;
                &lt;br /&gt;
    def prox_pos(self):&lt;br /&gt;
      dt=0.01&lt;br /&gt;
      nx=self.pos[0]+self.vel[0]*0.01&lt;br /&gt;
      ny=self.pos[1]+self.vel[1]*0.01&lt;br /&gt;
      #Testar os limites&lt;br /&gt;
      if (nx &amp;lt; 0):&lt;br /&gt;
        nx = - nx; self.vel=(-self.vel[0],self.vel[1])&lt;br /&gt;
      if (nx &amp;gt; self.lim[0]):&lt;br /&gt;
        nx = 2*self.lim[0] - nx; self.vel=(-self.vel[0],self.vel[1])&lt;br /&gt;
      if (ny &amp;lt; 0):&lt;br /&gt;
        ny = - ny; self.vel=(self.vel[0], - self.vel[1])&lt;br /&gt;
      if (ny &amp;gt; self.lim[1]):&lt;br /&gt;
        ny = 2*self.lim[1] - ny;self.vel=(self.vel[0], - self.vel[1])&lt;br /&gt;
&lt;br /&gt;
      return((nx,ny))&lt;br /&gt;
    &lt;br /&gt;
    def prox_vel(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Movimentação dos animais&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #Checamos se há colisão com outro animal:&lt;br /&gt;
        agentes = self.model.continuous.get_neighbors(pos=self.ppos, radius = 3*self.rai, include_center=True)&lt;br /&gt;
        for a in agentes:                                         #Percorremos a lista&lt;br /&gt;
          if (a.unique_id!=self.unique_id): &lt;br /&gt;
              d=np.sqrt((a.ppos[0]-self.ppos[0])**2+(a.ppos[1]-self.ppos[1])**2)&lt;br /&gt;
              if (d&amp;lt;=2*self.rai):&lt;br /&gt;
                #Direção da colisão&lt;br /&gt;
                d=(a.ppos[0]-self.ppos[0],a.ppos[1]-self.ppos[1])/np.sqrt((a.ppos[0]-self.ppos[0])**2+(a.ppos[1]-self.ppos[1])**2)&lt;br /&gt;
                #Partícula 1&lt;br /&gt;
                u1=(a.vel[0]-self.vel[0])*d[0]+(a.vel[1]-self.vel[1])*d[1]&lt;br /&gt;
                nvel1=(self.vel[0]+u1*d[0],self.vel[1]+u1*d[1])&lt;br /&gt;
                #partícula 2,pela conservação de momento:&lt;br /&gt;
                nvel2=(self.vel[0]+a.vel[0]-nvel1[0],self.vel[1]+a.vel[1]-nvel1[1])&lt;br /&gt;
                #Atualiza as velocidades&lt;br /&gt;
                self.vel=nvel1; a.vel=nvel2&lt;br /&gt;
                #Registra a colisão&lt;br /&gt;
                self.colisao=True; a.colisao=True             &lt;br /&gt;
                break&lt;br /&gt;
        return ()                                          &lt;br /&gt;
&lt;br /&gt;
    def movimento(self):&lt;br /&gt;
      if(self.colisao):&lt;br /&gt;
        self.colisao=False&lt;br /&gt;
        return (self.pos)&lt;br /&gt;
      else:&lt;br /&gt;
        return(self.ppos)&lt;br /&gt;
    &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que prepara as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.ppos = self.prox_pos()&lt;br /&gt;
             &lt;br /&gt;
    def advance(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que aplica as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.prox_vel()&lt;br /&gt;
        self.model.continuous.move_agent(self, self.movimento())&lt;br /&gt;
&lt;br /&gt;
#MODELO&lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def gerar_particulas(self,N,largura,altura):&lt;br /&gt;
      &amp;quot;&amp;quot;&amp;quot;Função para gerar animais iniciais&amp;quot;&amp;quot;&amp;quot;    &lt;br /&gt;
      #N        - Número de animais&lt;br /&gt;
      #largura  - Largura da grade&lt;br /&gt;
      #altura   - Altura da grade&lt;br /&gt;
      for n in range(N):&lt;br /&gt;
          con=True&lt;br /&gt;
          while(con):&lt;br /&gt;
            con=False&lt;br /&gt;
            a = Agente(self,largura,altura)&lt;br /&gt;
            X= largura*random.random()&lt;br /&gt;
            Y= altura*random.random()&lt;br /&gt;
            if (len(self.schedule.agents)==0):&lt;br /&gt;
              self.schedule.add(a)&lt;br /&gt;
              self.continuous.place_agent(a, (X, Y))&lt;br /&gt;
            else:&lt;br /&gt;
              agentes = self.continuous.get_neighbors(pos=(X,Y), radius = 2*a.rai, include_center=True)&lt;br /&gt;
              for viz in agentes:&lt;br /&gt;
                con = (True) if (len(agentes)==0) else (con)  #Precisamos checar se nasceu no mesmo lugar de outro animal&lt;br /&gt;
              if(con==False):&lt;br /&gt;
                self.schedule.add(a)&lt;br /&gt;
                self.continuous.place_agent(a, (X, Y))&lt;br /&gt;
      return()&lt;br /&gt;
&lt;br /&gt;
    def __init__(self, modelo,N,seed=None):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função chamada quando o modelo é inicializazdo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # Modelo   - Dicionário com especificações do modelo&lt;br /&gt;
        # N        - Número de partículas&lt;br /&gt;
        # seed     - Seed dos números aleatórios do modelo do mesa&lt;br /&gt;
        &lt;br /&gt;
        # Desempacotar o dicionário&lt;br /&gt;
        largura = modelo[&amp;quot;Largura&amp;quot;];altura=modelo[&amp;quot;Altura&amp;quot;]; random.seed(modelo[&amp;quot;Seed&amp;quot;])                     &lt;br /&gt;
        self.continuous = ContinuousSpace(x_max= largura, y_max=altura, torus= True, x_min=0, y_min= 0) #Configura a grade&lt;br /&gt;
        self.schedule   = SimultaneousActivation(self)            #Configura o agendador&lt;br /&gt;
        self.running   = True                                     #Condiçao para seguir executando o modelo&lt;br /&gt;
        self.gerar_particulas(N,largura,altura)    #Distribuir as ovelhas&lt;br /&gt;
           &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Avançar um passo do modelo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.schedule.step()                              #Avançamos os agentes&lt;br /&gt;
&lt;br /&gt;
#Parâmetros&lt;br /&gt;
MAX =100000&lt;br /&gt;
N=100&lt;br /&gt;
modelo  =  {&amp;quot;Largura&amp;quot;:10     ,&amp;quot;Altura&amp;quot;:10      ,&amp;quot;Seed&amp;quot;:1} &lt;br /&gt;
M = Modelo(modelo,N)&lt;br /&gt;
for i in range(MAX):&lt;br /&gt;
    M.step()&lt;br /&gt;
    if ((i+1)%(MAX/100)==0):&lt;br /&gt;
      #clear_output() &lt;br /&gt;
      print(str(100*(1+i)/MAX)+&amp;quot;%&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para visualizar os resultados, podemos usar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
vel=[]&lt;br /&gt;
E=0&lt;br /&gt;
for a in M.schedule.agents:&lt;br /&gt;
    vel.append(np.sqrt(a.vel[0]**2+a.vel[1]**2))&lt;br /&gt;
    E+=a.vel[0]**2+a.vel[1]**2&lt;br /&gt;
print(E)&lt;br /&gt;
a,b,c=plt.hist(vel,10, density=False, facecolor='g', alpha=0.75)&lt;br /&gt;
m=1&lt;br /&gt;
K=0.7&lt;br /&gt;
x=np.arange(0,2, 0.00001)&lt;br /&gt;
y = (4/np.sqrt(np.pi))*((m/K)**(3/2))*(x**2)*np.exp(-m*(x**2)/K)&lt;br /&gt;
plt.plot(x,y)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Citações ===&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=MBA:_Caminhante_aleat%C3%B3rio&amp;diff=7857</id>
		<title>MBA: Caminhante aleatório</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=MBA:_Caminhante_aleat%C3%B3rio&amp;diff=7857"/>
		<updated>2022-07-21T06:14:16Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[MBA: Gás simples]] |[[Contexto]]}}&lt;br /&gt;
= Caminhante aleatório =&lt;br /&gt;
O problema do caminhante aleatório pode ser definido da seguinte forma: Um homem começa de um ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;lt;/math&amp;gt; e caminha 1 metro em uma linha reta, então ele vira um ângulo qualquer e anda outro &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; metro em uma linha reta. Ele repete esse processo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; vezes, qual é a probabilidade de após estes &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos que o homem esteja a uma distância entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r+\delta r&amp;lt;/math&amp;gt; da origem.&lt;br /&gt;
&lt;br /&gt;
Inspirado por este problema, propõe-se uma situação bidimensional similar. A principal diferença constitui-se no fato de que o ângulo não é mais aleatório. Reescrevendo o problema, agora em cada um dos eixos, nos quais o homem se move de maneira independe, há uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p&amp;lt;/math&amp;gt; de se mover &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; metro em um sentido e uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;q=1-p&amp;lt;/math&amp;gt; de se mover no sentido contrário.&lt;br /&gt;
&lt;br /&gt;
Trabalhando inicialmente apenas com uma dimensão, executando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos, um caminho possível para o homem terminar a simulação em uma posição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=n_1-n_2&amp;lt;/math&amp;gt; tendo dado &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_1&amp;lt;/math&amp;gt; passos à direita e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_2&amp;lt;/math&amp;gt; passos à esquerda, é dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p^{n_{1}}q^{n_{2}}=p^{\frac{N+m}{2}}q^{\frac{N-m}{2}}&amp;lt;/math&amp;gt;Pois sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=n_1+n_2&amp;lt;/math&amp;gt; podemo escrever: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;n_{1}=\frac{N+m}{2},\qquad n_{2}=\frac{N-m}{2}&amp;lt;/math&amp;gt;Porém, está é a probabilidade de obtermos apenas um dos caminhos que leva o homem a &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m&amp;lt;/math&amp;gt;. O número total de caminhos indistinguíveis com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_1&amp;lt;/math&amp;gt; passos à direita e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_2&amp;lt;/math&amp;gt; passos a esquerda é dado por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{N!}{n_{1}!n_{2}!}=\frac{N!}{n_{1}!\left(N-n_{1}\right)!}=\frac{N!}{\left(\frac{N+m}{2}\right)!\left(\frac{N-m}{2}\right)!}&amp;lt;/math&amp;gt; Temos então que a probabilidade estar na posição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m&amp;lt;/math&amp;gt; após &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos é dado por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(m,N\right)=\frac{N!}{\left(\frac{N+m}{2}\right)!\left(\frac{N-m}{2}\right)!}p^{\frac{N+m}{2}}q^{\frac{N-m}{2}}&amp;lt;/math&amp;gt; Ou reescrevendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}=n&amp;lt;/math&amp;gt; para facilitar, e lembrando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}=\frac{N+m}{2}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=n_{1}+n_{2}&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(n\right)=\frac{N!}{n!\left(N-n\right)!}p^{n}q^{N-n}=\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)p^{n}q^{N-n}&amp;lt;/math&amp;gt; Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\begin{array}{c}N\\n \end{array}\right)=C_{n}^{N}&amp;lt;/math&amp;gt; também é chamado de combinatória. Utilizando o binômio de Newton: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(x+y\right)^{n}=\sum_{k=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
n\\&lt;br /&gt;
k&lt;br /&gt;
\end{array}\right)x^{n-k}y^{k}&amp;lt;/math&amp;gt;Temos a normalização: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sum_{n=0}^{n}p\left(n\right)=\sum_{n=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}=\left(p+q\right)^{N}=1&amp;lt;/math&amp;gt;Uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p+q=1&amp;lt;/math&amp;gt;. E lembrando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(n\right)&amp;lt;/math&amp;gt; é a probabilidade de estar em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=2n-N&amp;lt;/math&amp;gt;, ou seja de obtermos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; vezes passo a direita em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos no total, então o valor médio de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; pode ser dado por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left\langle n\right\rangle =\sum_{n=0}^{N}np\left(n\right)&amp;lt;/math&amp;gt;Derivando o binômio de Newton: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
p\frac{d}{dp}\left(p+q\right)^{N}=pN\left(p+q\right)^{N-1}=pN\end{array}&amp;lt;/math&amp;gt;E também: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
p\frac{d}{dp}\left(p+q\right)^{N} &amp;amp; =p\frac{d}{dp}\left[\sum_{n=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}\right]\\&lt;br /&gt;
 &amp;amp; =p\sum_{n=0}^{n}n\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n-1}\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{n}n\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{n}np\left(n\right)\end{align}&amp;lt;/math&amp;gt;Então: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;pN=\sum_{n=0}^{n}np\left(n\right)=\left\langle n\right\rangle&amp;lt;/math&amp;gt;E com isso podemos obter a posição final média &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle m\right\rangle&amp;lt;/math&amp;gt;. Utilizando a notação anterior posição final exata é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=n_1-n_2&amp;lt;/math&amp;gt;, ou ainda podemos rescrever como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=2n-N&amp;lt;/math&amp;gt;, pois: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;n_{1}-n_{2}=n_{1}-\left(N-n_{1}\right)=2n_{1}-N&amp;lt;/math&amp;gt; A partir destes resultados podemos obter: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\left\langle m\right\rangle  &amp;amp; =\sum_{n=0}^{N}mp\left(n\right)\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{N}\left(2n-N\right)p\left(n\right)\\&lt;br /&gt;
 &amp;amp; =2\sum_{n=0}^{N}np\left(n\right)-\sum_{n=0}^{N}Np\left(n\right)\\&lt;br /&gt;
 &amp;amp; =2\left\langle n\right\rangle -N\sum_{n=0}^{N}p\left(n\right)\\&lt;br /&gt;
 &amp;amp; =2\left\langle n\right\rangle -N\end{align}&amp;lt;/math&amp;gt; A princípio, não temos motivos para dar preferência para o movimento em nenhuma direção, logo é razoável utilizar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p=q=1/2&amp;lt;/math&amp;gt;, o que resulta em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle n\right\rangle=N/2&amp;lt;/math&amp;gt; consequentemente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle m\right\rangle=0&amp;lt;/math&amp;gt;. O que pode parecer contra-intuitivo para nosso modelo, mas além de distribuirmos animais por todo o espaço, o que resultado implica é a posição final média, mas é preciso entender que não impede que ao longo da simulação cada indivíduo percorra diferentes áreas do espaço.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;distribuição-gaussiana&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Distribuição Gaussiana ==&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N\rightarrow\infty&amp;lt;/math&amp;gt; tendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p \not\approx 1&amp;lt;/math&amp;gt; temos a distribuição Gaussiana: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(n\right)=\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)p^{n}q^{N-n}\approx\frac{1}{\sqrt{2\pi Npq}}\exp\left(\frac{-\left(n-Np\right)^{2}}{2Npq}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Foi realizada uma simulação utilizando Python e o módulo Mesa, grande parte do código segue a mesma discussão feita anteriormente no Jogo da Vida. A figura ilustra uma simulação com 10.000 caminhantes aleatórios em uma grade 100 X 100, iniciando na posição P=(50,50).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:mba_gauss.png|centro|miniaturadaimagem|750x750px|Resultado da simulação com a distribuição gaussiana sobreposta para N=100 para ambas as coordenadas.]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Código = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Agendador simultâneo&lt;br /&gt;
from mesa.space import MultiGrid                                   #Malha multigrid&lt;br /&gt;
import random                                                      #Número aleatórios&lt;br /&gt;
&lt;br /&gt;
#AGENTE---------------------------------------------------------------------------------&lt;br /&gt;
class Agente(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Classe do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self,modelo):&lt;br /&gt;
      &amp;quot;&amp;quot;&amp;quot;Bibliotecas necessárias&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
      #modelo     - Modelo que ao qual o agente pertence&lt;br /&gt;
      super().__init__(self,modelo)             #Necessário para funcionar o modelo&lt;br /&gt;
      self.ppos=(0,0)&lt;br /&gt;
      &lt;br /&gt;
    def step(self):&lt;br /&gt;
      &amp;quot;&amp;quot;&amp;quot;Método obrigatório que prepara as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
      dx = (+1) if (random.random()&amp;lt;0.5) else(-1)&lt;br /&gt;
      dy = (+1) if (random.random()&amp;lt;0.5) else (-1)&lt;br /&gt;
      self.ppos = (self.pos[0]+dx,self.pos[1]+dy)                                 #Próxima posição&lt;br /&gt;
          &lt;br /&gt;
    def advance(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que aplica as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.model.grid.move_agent(self, self.ppos)&lt;br /&gt;
&lt;br /&gt;
#MODELO&lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    def __init__(self, modelo,N,seed=None):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função chamada quando o modelo é inicializazdo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # Modelo   - Dicionário com especificações do modelo&lt;br /&gt;
        # N        - Quantiade de caminhantes&lt;br /&gt;
        # seed     - Seed dos números aleatórios do modelo do mesa&lt;br /&gt;
        &lt;br /&gt;
        largura = modelo[&amp;quot;Largura&amp;quot;];altura=modelo[&amp;quot;Altura&amp;quot;];seed_random=modelo[&amp;quot;Seed&amp;quot;]&lt;br /&gt;
        random.seed(seed_random)                                 #Seed dos números aleatórios&lt;br /&gt;
        self.grid     = MultiGrid(largura, altura, True)         #Configura a grade&lt;br /&gt;
        self.schedule = SimultaneousActivation(self)             #Configura o agendador&lt;br /&gt;
        self.running  = True                                     #Condiçao para seguir executando o modelo&lt;br /&gt;
        for n in range(N):&lt;br /&gt;
          a = Agente(self)&lt;br /&gt;
          self.schedule.add(a)&lt;br /&gt;
          X= 50&lt;br /&gt;
          Y= 50&lt;br /&gt;
          self.grid.place_agent(a, (X, Y))&lt;br /&gt;
            &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Avançar um passo do modelo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.schedule.step()                              #Avançamos os agentes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MAX =100&lt;br /&gt;
N=10000&lt;br /&gt;
modelo  = {&amp;quot;Largura&amp;quot;:100   ,&amp;quot;Altura&amp;quot;:100       ,&amp;quot;Seed&amp;quot;:0} &lt;br /&gt;
M = Modelo(modelo,N)&lt;br /&gt;
for i in range(MAX):&lt;br /&gt;
    M.step()&lt;br /&gt;
    if ((i+1)%(MAX/100)==0):&lt;br /&gt;
      print(str(100*(1+i)/MAX)+&amp;quot;%&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E o gráfico foi gerado utilizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
x=[];y=[]&lt;br /&gt;
for a in M.schedule.agents:&lt;br /&gt;
  x.append(a.pos[0])&lt;br /&gt;
  y.append(a.pos[1])&lt;br /&gt;
&lt;br /&gt;
a,b,c=plt.hist(x, 70, density=True, facecolor='g', alpha=0.75)&lt;br /&gt;
m=1&lt;br /&gt;
K=100&lt;br /&gt;
X=np.arange(0,100, 0.1)&lt;br /&gt;
sigma = 2*np.pi*K*0.5*0.5&lt;br /&gt;
plt.plot(X,np.exp(-((X-K*0.5)**2)/sigma)/(np.sqrt(sigma)))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima fazendos um histograma das posições em x, uma alteração simples permite visualizarmos o equivalente em y.&lt;br /&gt;
&lt;br /&gt;
= Principais materiais utilizados: =&lt;br /&gt;
&lt;br /&gt;
* [https://www.nature.com/articles/072294b0 The Problem of the Random Walk]. (Karl Pearson, Nature)&lt;br /&gt;
* [https://books.google.com.br/books?id=ue1ScAAACAAJ A Modern Course in Statistical Physics] (L.E. Reichl)&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[MBA: Gás simples]] |[[Contexto]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Por_que_usar_e_o_que_s%C3%A3o_modelos_baseados_em_indiv%C3%ADduos&amp;diff=7856</id>
		<title>Por que usar e o que são modelos baseados em indivíduos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Por_que_usar_e_o_que_s%C3%A3o_modelos_baseados_em_indiv%C3%ADduos&amp;diff=7856"/>
		<updated>2022-07-21T06:13:44Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[AC: Jogo da Vida]] |[[MBA: Gás simples]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Uma breve descrição do que é modelagem baseada em indivíduos:&lt;br /&gt;
&lt;br /&gt;
* Agente: indivíduo computacional autônomo.&lt;br /&gt;
* Modelagem baseada em agentes: forma de modelagem computação no qual um fenômeno é modelado em termos dos agentes e suas interações.&lt;br /&gt;
&lt;br /&gt;
Representações bseadas em agentes são mais fáceis de entender que representações matemáticas dos mesmos problemas, pois a língua e conceitos usados nestas modelagens é mais próximas da linguagem natural e nossa forma natural de pensar qundo comparado com modelagens matemáticas.&lt;br /&gt;
&lt;br /&gt;
Alguns conceito interessantes:&lt;br /&gt;
&lt;br /&gt;
* Estruturação: A codificação do conhecimento em um domínio como uma função da infraestrutura representacional usada para expressar o conhecimento. Ex.: Números romanos.&lt;br /&gt;
* Reestruturação: uma mudanção de uma estruturação para outra. Ex.: Mudança de números romanos para hindu-arábicos&lt;br /&gt;
* Inercia estruturacional: resistenência à reestruturação.&lt;br /&gt;
&lt;br /&gt;
=== Entendendo sistemas complexos e emergência ===&lt;br /&gt;
&lt;br /&gt;
Emergência é definido como o surgimento de estruturas, padrões e propriedades novas e coerentes através da interação de múltiplos agentes distribuíbos. Algumas característica da emergência são:&lt;br /&gt;
&lt;br /&gt;
* As estruturas emergentes não podem ser deduzidas apenas a partir das propriedades dos elementos, elas surgem da interação dos elementos e são propriedades do sistema.&lt;br /&gt;
* Auto-organização: um padrão global surge espontaneamente sem a presença de um coordenador central.&lt;br /&gt;
* A emergência também pode ser visto como um processo mantendo a estrutura no lugar ao invés de uma entidade.&lt;br /&gt;
&lt;br /&gt;
Há dois desafios distintos:&lt;br /&gt;
&lt;br /&gt;
* Entendimento integrativo: uma vez que sabemos como cada indivíduo age, como descobrir o padrão?&lt;br /&gt;
* Entendimento diferencial: conhecendo o padrão, como descobrir o comportamento dos elementos que geram o padrão?&lt;br /&gt;
&lt;br /&gt;
Pesquisas indicaram a existência de um padrão cognitivo determinista e centralizado. Isto é, a maioria dos participantes envolvidos nesta pesquisa não acreditam que elementos aleatórios possam ser uma força construtiva para a formação de um padrão, pelo contrário, acreditam que seja destrutivo (determinista). Além disso também acreditam que os padrões surgem da ações de um controlador (centralizado). Um obstáculo para a melhor compreensão deste fenômenos é a dificuldade em ’pensar em níveis’. Pois fenômenos emergentes existem em dois níves: o nível dos agentes individualmente e o nível do sistema, onde os padrões são observados.&lt;br /&gt;
&lt;br /&gt;
Pensando em um grupo de pássaros voando na formação, a formação consistente de aparentemente estabilidade leva as pessoas a a concluir que os elementos individualmente do bando também são estáveis e possuem um lugar consistente, transferindo uma propriedade do sistema para os indivíduos.&lt;br /&gt;
&lt;br /&gt;
Pensando em um engarrafamento, estamos acostumados a pensar como o indivíduo no carro, parando o caro em frente à um acidente e se movendo quando não há carro, então quando se defrontado com um engarrafemto é fácil pensar em todo engarrafament se movendo quando possível e parando em frente à um acidente por exemplo, ao invés de pensar que há algo retrocedendo, que é um comportamento observado frequentemente nos engarrafamentos. Desta vez o que ocorre é transferir uma propriedade dos indivíduos para o sistema.&lt;br /&gt;
&lt;br /&gt;
=== Reestruturação ===&lt;br /&gt;
&lt;br /&gt;
Da mesma forma que houve uma reestruturação na substituição dos números romanos para os árabes, é possível que a representação computacional ajude a reestruturar o conhecimento em muitos domínios, onde tradicionalmente era utilizado técnicas matemáicas, agora podemos utilizar simuação computacional para estudar estes fenômenos.&lt;br /&gt;
&lt;br /&gt;
Como o nome sugere, agentes são entidades com propriedades (variáveis de estado, valores) , se o agente é uma ovelha, poder ter propriedades como posição, idade, velocidade, etc... Agentes podem ter uma representação gráfica que o permita ser visualizado, também possuem regras de comportamento, como por exemplo comer grama. Em modelagem baseada em agentes imaginamos um relógio universal, quando o relógio faz ’tic’, todos os agentes invocam suas regras, se as condições são satisfeitas (se há grama próxima por exemplo) então o comporamento é executado.&lt;br /&gt;
&lt;br /&gt;
O objetivo da modelagem é é criar agentes e regras que gerem o comportamento desejado, estes sistemas podem ser usandos para obter um melhor entendimento de um fenômeno através da experimentação das regras e propriedades.&lt;br /&gt;
&lt;br /&gt;
Uma hipótese por teóricos da representação, é de que tudo que é percebido como difícil pode ser mais com compreensível por uma representação mais adequada. Alguns autores afirmam que a modelagem baseada em agentes (ABM) permite a reestruturação da área de sistemas complexos de forma que a compreensão destes sistemas podem ser democratizadas e a ciência possa avançar. Os modelos servem tanto como um objeto para se pensar a respeito do fenômeno modelado, como uma ferramenta para testar diferentes hipóteses.&lt;br /&gt;
&lt;br /&gt;
=== Exemplo conceitual: Modelo de formigas ===&lt;br /&gt;
&lt;br /&gt;
Mais alguns conceitos:&lt;br /&gt;
&lt;br /&gt;
* Modelo: uma descrição abstrata de um processo, objeto, ou evento.&lt;br /&gt;
* Modelo computacional: um modelo que recebe certos valores de entrada, manipula estas entradas de uma forma algorítmica e gera saídas.&lt;br /&gt;
* Implementação de modelo: processo de transformaçãoum modelo conceitual em uma simulação computacional que funciona (um código).&lt;br /&gt;
&lt;br /&gt;
Em uma modelagem baseada em agentes de formigas, cada agente é uma formiga no qual impomos regras básicas de exploração e coleta de alimentos individualmente, assim como liberação de feronômios. Especificamente, do ponto de vista de cada formiga individual, podemos definir as seguintes regras:&lt;br /&gt;
&lt;br /&gt;
# Se eu não estou carregando comida, checo se tem comida aqui. Se tem, eu a pego, se não tem, eu tento seguir a trilha de feronômios mais próxima. Se eu encontro uma, eu viro em direção à este gradiente de feronômio.&lt;br /&gt;
# Se estou carregando comida, eu viro em direção ao ninho liberando feronômio no chão atrá de mim.&lt;br /&gt;
# Eu ando uma quantidade pequena e aleatória de distância para frente.&lt;br /&gt;
&lt;br /&gt;
Como resultado da simulação, o sistema forma “trilhas” que levam as formigas às fontes de comida, exibindo comportamento “ótimo” que as fazem explorar primeiro os recursos mais próximos e hainda “balanço” entre exploração do ambiente e exploração dos seus recursos. Estes três fenômenos não foram codificados nas formigas, são um fenômeno emergente do modelo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O que é então a modelagem e simulação baseada em agentes? == &lt;br /&gt;
&lt;br /&gt;
Um modelo qualquer é sempre uma abstração da realidade, ou seja, uma representação simplificada que preserva uma equivalência adequada para determinadas situações de forma que pode ser vista como uma visão substitutiva da realidade para facilitar o raciocínio. &lt;br /&gt;
&lt;br /&gt;
Modelagem baseada em agentes (''agent based model'' - ABM) é uma forma de modelagem computacional na qual a dinâmica de um sistema complexo (social, biológico, etc) é representada em termos dos agentes e suas interações. Os agentes por suas vezes são indivíduos computacionais autônomos que possuem propriedades e regras de comportamento que regem sua interação com outros agentes e com o ambiente.&lt;br /&gt;
&lt;br /&gt;
A ideia central da modelagem baseada em agentes é que a maioria dos fenômenos do mundo real podem ser efetivamente modelados com agentes, um ambiente e uma descrição das interações agente-agente e agente-ambiente. O objetivo deste tipo de modelagem é criar agentes e regras que gerem o comportamento desejado. Uma vez criado, estes sistemas podem então serem usados para obter um melhor entendimento do fenômeno modelado através da experimentação de diferentes regras e propriedades visando testar diferentes hipóteses.&lt;br /&gt;
&lt;br /&gt;
Há principalmente 8 usos principal para um modelo baseado em agentes:&lt;br /&gt;
&lt;br /&gt;
# Descrição: um modelo desreve um sistema do mundo real, apesar de ser uma simplificação que não contém todos os seus detalhes, ainda sim é uma descrição grosseira da realidade, caso contrário é um modelo inútil. Pois se incorpora todo os aspectos do fenômeno real, é mais fácil observar a realidade, e se não a descreve de nenhuma forma não há motivos para observar.&lt;br /&gt;
# Esclarecimento: os modelos apontam os principais mecanismos em um fenômeno, funcionando então como prova de que um conceito é possível.&lt;br /&gt;
# Experimentação: modelos podem ser executados repetidamente, onde podemos variar os parâmetros para ver seus efeitos no comportamento e na saída.&lt;br /&gt;
# Prever fontes de analogia: podemos encontrar similaridades com outras simplificações, ainda que modelem fenômeno aparanetemente muito diferentes.&lt;br /&gt;
# Comunicação/educação: os modelos podem ser usados para permitir que pessoas explorem e entendam melhor determinados fenômenos, facilitando o aprendizado.&lt;br /&gt;
# Prover peças centrais para o diálogo científico: também chamado de ’um objeto com que pensar’, basicamente se apresenta como uma vantagem em comparação a outros modelos, por exemplo comparando com modelos textuais, elimina amgibuidades de como o leitor pode interpretar a descrição. Possibilitando discutir quais mecanismos são importantes para gerar determinando comportamento removendo ou adicionando novos mecanismos.&lt;br /&gt;
# Experimento mental: não necessariamente representam um fenômeno do mundo real, mas também podem ser experimentos mentais apenas.&lt;br /&gt;
# Predição: um dos propósitos que as pessoas comumente atribuem a modelagem computacional é a predição, de fato pode ter o propóito de pensar sobre futuros cenários utilizando a modelagem como uma ferramenta nesta discussão. Porém há a observação que que a acurácia da predição depende dos dados de entrada, e é difícil avaliar a acurácia de uum modelo para prever eventos que não ocorrem ainda. O que de fato é feito é '''descrever''' padrões passados e com isso '''explicar''' padrões futuros que possam surgir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sistemas complexos são definidos como sistemas compostos de múltiplos elementos individuais que interagem entre si e apresentam um comportamento que não pode ser previsto a partir dos próprios elementos. Como resultado das interações entre os elementos distribuídos surge então um ``fenômeno emergente&amp;quot;, característico de sistemas complexos. Por sua vez, o fenômeno emergente possui duas características essenciais: A primeira é que as estruturas que emergem não podem ser deduzidas apenas das propriedades dos elementos, pois surgem da interação entre eles, ou seja, são propriedades do sistema e não dos elementos que o compõe. E a segunda característica é a auto-organização, isto é,  o fenômeno surge espontaneamente sem a presença de um coordenador central. A emergência pode ser compreendida como o processo que mantém esta estrutura.&lt;br /&gt;
&lt;br /&gt;
A eficiência de um modelo depende da correta tradução da realidade para o modelo no ato de modelar, que por sua vez, é exatamente o ato de simular a realidade através de modelos. É por isto que é importante pensar no modelo antes do próprio ato de modelagem começar, identificar as variáveis relevantes para o problema que será abordado e definir a linguagem que será utilizada, pois a elaboração do modelo depende destes pontos cruciais.  Como um modelo é uma simplificação da realidade, é possível que uma mesma realidade seja modelada de diferentes formas, já que nenhum modelo é a própria realidade, em si, temos como exemplo a forma mais tradicional de modelagem científica de processos dinâmicos: equações diferenciais (''equation based modeling'' - EBM). &lt;br /&gt;
&lt;br /&gt;
Resulta por tanto ser natural comparamos ambas ambas estratégias de modelagem, EBM e ABM. Uma diferença importante é que  ABM pode modelar populações heterogêneas com facilidade enquanto EBM parte geralmente da hipótese de homogeneidade (''mean field''), e em muitas áreas a heterogeneidade possui um papel central. Da mesma forma que o ABM pode ser utilizada para modelar interações complexas entre agentes, também pode ser utilizado para modelar interações complexas entre agentes e o ambiente onde o ambiente é representado por agentes estacionários, assim, além da ABM ser indicada para situações em que temos heterogeneidade entre os agentes, também é indicada quando há um ambiente heterogêneo.&lt;br /&gt;
&lt;br /&gt;
Outra vantagem é que enquanto para modelar com equações precisamos ter um bom conhecimento fenomenológico dos mecanismos internos do sistema de interesse, em ABM precisamos apenas das regras a nível de indivíduos, o que geralmente é mais direto de se obter. Um grande risco no processo de modelagem como um todo é modelarmos os efeitos e não as causas, pela natureza de abordagem mais direta a nível individual da ABM, partimos exatamente da ideia de modelar estas interações para que o fenômeno emergente de nosso interessa seja então o resultado do nosso sistema, permitindo então que naturalmente nos foquemos na causa para entendermos o efeito.  Os resultados do ABM também são mais detalhados uma vez que as saídas não são apenas a nível do sistema, mas também a nível individual. Outra diferença bastante obvia é que ABM representa resultados com indivíduos de forma naturalmente discreta e frequentemente com flutuações (quando se inclui probabilidades) em quanto EBM fornece uma representação contĩnua e sem ruido do mesmo sistema.&lt;br /&gt;
&lt;br /&gt;
A modelagem baseada em agentes também possui uma concepção de tempo mais rica quando comparado com outras técnicas de modelagem, pois nos permite observar os indivíduos interagindo ao longo do tempo. Porém como qualquer modelo, há situações em que o custo de construir uma ABM excede seus benefícios. De maneira geral se o problema envolve um largo número de agentes homogêneos, será possível obter uma solução mais acurada e em menor tempo usando uma solução como campo médio, logo podemos considerar melhor modelado por esta categoria de modelos.&lt;br /&gt;
&lt;br /&gt;
Quanto ao custo computacional em si, há uma relação de custo benefício semelhante a outras formas de modelagem: resultados mais detalhados são obtidos com modelos mais detalhados que exigem maior poder de processamento. Porém, de maneira geral ABM é computacionalmente mais pesado do que EBM, uma vez que estes últimos são relativamente simples, pois frequentemente consistem de um pequeno conjunto de equações. &lt;br /&gt;
&lt;br /&gt;
Por fim, vale-se destacar que a modelagem baseada em agentes permite manter um histórico de interação entre os agentes, e este histórico pode servir para que o agente altere seus comportamentos e estratégias baseadas em eventos passados. Isto o torna uma ferramenta muito útil quando se modela interações complexas de agentes adaptativos. Devido a forma em que os ABM são construídos, novas regras de interação podem ser adicionadas, removidas ou alteradas com relativa facilidade.&lt;br /&gt;
&lt;br /&gt;
Como pode-se perceber, modelagem baseada em agentes é mais um conceito para a construção de um modelo que uma `receita'. De maneira geral, pode-se dizer que a modelagem baseada em agentes é uma modelagem que utiliza agentes, que por sua vez são um tipo de inteligência artificial, de forma que é importante ter um pouco de familiaridade com estes conceitos e outros correlatos.&lt;br /&gt;
&lt;br /&gt;
Inteligência artificial é o único campo a tentar construir sistemas que funcionarão de forma autônoma em ambientes complexos, assim podemos definir inteligência artificial como o estudo de sistemas que recebem entradas do ambiente e executam ações para retornar alguma saída de forma autônoma. Entre teorias existentes que são utilizadas dentro de inteligência artificial, podemos mencionar especialmente o aprendizado de máquina e o algoritmo genético, tópicos que serão discutidos com um pouco mais de detalhes nas próximas seções.&lt;br /&gt;
&lt;br /&gt;
Agentes autônomos são uma abordagem no estudo de IA fortemente inspirado pela biologia. Um agente nada mais é que um sistema que através de sensores consegue perceber o ambiente e agir sob o mesmo, e é autônomo uma vez que suas operações são realizadas sem a interferência do usuário. O sistema que forma o agente de maneira geral pode ser constituído de ''software'' e ''hardware'' permitindo que o sistema manipule um ambiente real.&lt;br /&gt;
&lt;br /&gt;
E por fim, temos que um sistema multiagente (''multiagent sytem'' - MAS) é uma aplicação de agentes, onde tem-se vários agentes, do mesmo ou diferentes tipos, que trabalham de forma colaborativa pra completar uma tarefa ou resolver um problema. Uma característica importante é que compartilham de um mesmo ambiente, sendo necessário então um ''framework'' que permita a comunicação e coordenação entre os agentes.&lt;br /&gt;
&lt;br /&gt;
Uma simulação construída através da ABM  (ainda chamado de ''agent based modelling and simulation'' - ABMS) é um sistema multiagente em um ambiente simulado com um tempo virtual.  Dessa forma dentro da nossa modelagem o sistema do agente é constituído apenas de ''software'', sendo apenas um programa, um agente de existência virtual que percebe e opera sobre um ambiente igualmente virtual. Aqui podemos destacar ainda que apesar de se sobreporem muitas vezes, MAS e ABMS tradicionalmente são discutido na literatura sob diferentes enfoques.  O objetivo da ABM  costumeiramente é entender alguma propriedade emergente que surge do comportamento coletivo do agentes, sendo mais usado em ciências, enquanto MAS tem o objetivo de resolver algum problema em particular sendo mais comumente utilizado nas engenharias. Devido a enorme variedade de aplicações, na literatura ainda podemos encontrar outros nomes para modelos construídos através da ABM dependendo muitas vezes do enfoque como por exemplo ''agent-based simulation'' e ''agent-based systems'' que possuem a mesma abreviatura (ABS), ''agent-based social simulation'' (ABSS) que ainda é sub-dividido em três categorias -  ''social aspects of agent systems''(SAAS), ''multi-agent based simulation'' (MABS) e ''social simulation'' (SocSim)-  além do próprio MAS que aparece também como sinônimo em parte da literatura.&lt;br /&gt;
&lt;br /&gt;
Ainda vale destacar a importância do conhecimento de alguns princípios  básicos para uma boa modelagem. No nosso modelo evidentemente é necessário conhecimento matemático, pois para uma modelagem computacional precisamos abstrair matematicamente. Princípios físicos básicos devem ser considerados  mesmo em simulações básicas, pois por exemplo os animais devem ter uma movimentação plausível, além de outros fenômenos naturais complexos que podem serem adicionados a depender da modelagem. E evidentemente, se faz necessário ter conhecimento de princípios biológico, uma vez que estamos tentando modelar um fenômeno de natureza biológica, particularmente de natureza ecológica no nosso caso. %Uma vez que o cientista responsável pela modelagem precisa trabalhar com observações da natureza que fogem do seu domínio principal, como este é o caso, passa-se a ser obrigatório apoiar-se em modelos já consolidado e consultar a literatura.&lt;br /&gt;
&lt;br /&gt;
Uma vez que construímos um modelo satisfatório, um dos papeis mais importantes da modelagem é a simulação. Pois é através desta que podemos determinar o quanto ela se aproxima da realidade. A partir então do momento que temos um grau de fidelidade aceitável no aspecto que o modelo se propõe a modelar, podemos criar situações que são difíceis de serem observadas e estudadas no mundo, cumprindo então o objetivo de que o modelo possa a ser utilizada como ferramenta de tomada de decisão.&lt;br /&gt;
&lt;br /&gt;
== Principais materiais utilizados: ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.jstor.org/stable/j.ctt17kk851 An Introduction to Agent-Based Modeling Modeling Natural, Social, and Engineered Complex Systems with NetLogo]. (Wilensky U. e Rand W.)&lt;br /&gt;
* [https://www.lume.ufrgs.br/handle/10183/12181 Em busca da aplicabilidade de sociedades articiais em informática educativa] (Henrique Oliveira da Silva, Doutorando da UFRGS)&lt;br /&gt;
* [https://www.intechopen.com/chapters/56573 Introductory Chapter: Multi-Agent Systems](Jorge Rocha, Inês Boavida-Portugal e Eduardo Gomes, Universidade de Lisboa)&lt;br /&gt;
* [https://www.inf.ufrgs.br/~bazzan/downloads/mas_ppsn.pdf Multiagent Systems and Agent-based Modeling and Simulation](Ana L. C. Bazzan, UFRGS)&lt;br /&gt;
{{Ecologia| [[AC: Jogo da Vida]] |[[MBA: Gás simples]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7855</id>
		<title>MBA: Gás simples</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=MBA:_G%C3%A1s_simples&amp;diff=7855"/>
		<updated>2022-07-21T06:12:56Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: Criou página com '{{Ecologia| Por que usar e o que são modelos baseados em indivíduos |MBA: Caminhante aleatório}}  = Colisão entre  partículas =  Considerando um modelo simples de...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;br /&gt;
&lt;br /&gt;
= Colisão entre  partículas =&lt;br /&gt;
&lt;br /&gt;
Considerando um modelo simples de gás ideal, não há força atuando sob as partículas, então a interação que ocorre entre as partículas se dá apenas por meio de colisões. Assim é necessário calcular a variação na velocidade de cada partícula após a colisão. Começando em uma dimensão, precisamos garantir a conservação do momento: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;m_{1}v_{1}'+m_{2}v_{2}'=m_{1}v_{1}''+m_{2}v_{2}''&lt;br /&gt;
&amp;lt;/math&amp;gt;E da energia cinética: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{1}{2}m_{1}v_{1}'^{2}+\frac{1}{2}m_{2}v_{2}'^{2}=\frac{1}{2}m_{1}v_{1}''^{2}+\frac{1}{2}m_{2}v_{2}''^{2}&amp;lt;/math&amp;gt;Colocando o referencial de forma que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'=0&amp;lt;/math&amp;gt;, então as velocidades no novo referencial podem ser escritas como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i=v_i-v_2'&amp;lt;/math&amp;gt;, de forma que da conservação do momento ficamos com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}u_{2}'', \qquad (1)&lt;br /&gt;
&amp;lt;/math&amp;gt; Elevando ao quadrado: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''^{2}=u_{1}'^{2}-\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''&amp;lt;/math&amp;gt; Substituindo na equação de conservação de energia, podemos encontrar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_2''&amp;lt;/math&amp;gt;: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}''^{2}+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}\left[u_{1}'{}^{2}+\left(\frac{m_{2}}{m_{1}}\right)^{2}u_{2}''^{2}-2\frac{m_{2}}{m_{1}}u_{1}'u_{2}''\right]+m_{2}u_{2}''^{2}\\&lt;br /&gt;
m_{1}u_{1}'^{2}=m_{1}u_{1}'{}^{2}+\frac{m_{2}^{2}}{m_{1}}u_{2}''^{2}-2m_{2}u_{1}'u_{2}''+m_{2}u_{2}''^{2}\\&lt;br /&gt;
0=\left(\frac{m_{2}^{2}}{m_{1}}+m_{2}\right)u_{2}''^{2}+\left(-2m_{2}u_{1}'\right)u_{2}''\\&lt;br /&gt;
0=\left(\frac{m_{2}+m_{1}}{m_{1}}\right)u_{2}''^{2}+\left(-2u_{1}'\right)u_{2}''&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Calculando as raízes do segundo grau, temos: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2u_{1}'\pm\sqrt{4u_{1}'^{2}}}{2\left(\frac{m_{2}+m_{1}}{m_{1}}\right)}=\frac{m_{1}}{m_{2}+m_{1}}\left(u_{1}'\pm u_{1}'\right)&amp;lt;/math&amp;gt;E como uma solução é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'=0&amp;lt;/math&amp;gt;, mas queremos a situação em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_{2}'\neq0&amp;lt;/math&amp;gt;, logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Substituindo em '''(1)''', temos: &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=u_{1}'-\frac{m_{2}}{m_{1}}\left(\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\right)\\&lt;br /&gt;
u_{1}''=\left(1-\frac{2m_{2}}{m_{2}+m_{1}}\right)u_{1}\\&lt;br /&gt;
u_{1}''=\left(\frac{m_{2}+m_{1}-2m_{2}}{m_{2}+m_{1}}\right)u_{1}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Ou seja: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'&amp;lt;/math&amp;gt;Retornando ao referencial original, sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_i=u_i+v_2'&amp;lt;/math&amp;gt;, temos então para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_1'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{1}''-v_{2}'=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{m_{1}-m_{2}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{1}''=\frac{m_{1}-m_{2}}{m_{2}+m_{1}}v_{1}'+\frac{2m_{2}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;E de maneira análoga para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;v_2'&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
u_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}u_{1}'\\&lt;br /&gt;
v_{2}''-v_{2}'=\frac{2m_{1}}{m_{2}+m_{1}}\left(v_{1}'-v_{2}'\right)\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\left(1-\frac{2m_{1}}{m_{2}+m_{1}}\right)v_{2}'\\&lt;br /&gt;
v_{2}''=\frac{2m_{1}}{m_{2}+m_{1}}v_{1}'+\frac{m_{2}-m_{1}}{m_{2}+m_{1}}v_{2}'&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Um caso especial ocorre se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2, \qquad (2)&amp;lt;/math&amp;gt; então temos simplesmente: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
v_1''=v_2',\qquad \text{e} \qquad v_2''=v_1'&amp;lt;/math&amp;gt;Em duas dimensões, podemos reduzir o problema a uma dimensão, considerando que toda a alteração na velocidade devido a colisão entre partículas ocorre apenas na componente paralela a reta que liga o centro das duas esferas. Considerando que a posição de cada partícula é dada por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{r}_{i}&amp;lt;/math&amp;gt;, então um vetor entre as partículas pode ser escrito como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}&amp;lt;/math&amp;gt;. Podemos projetar ambas as velocidades então fazendo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;{u}_{i}'=\frac{\overrightarrow{v}_{i}\cdot\overrightarrow{d}}{\left|\overrightarrow{d}\right|}=\overrightarrow{v}_{i}\cdot\widehat{d}&amp;lt;/math&amp;gt;Obtemos o módulo da velocidade da partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; na direção &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt; e podemos trabalhar em uma única dimensão para encontrarmos a velocidade de ambas partículas após a colisão nesta dimensão. Ao fim podemos decompor novamente a velocidade final &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;u_i''&amp;lt;/math&amp;gt; em ambos os eixos mantendo a mesma direção utilizando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\theta=\arctan\left(\frac{\Delta{y}}{\Delta x}\right)&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\Delta z = z_2 - z_1&amp;lt;/math&amp;gt; é a diferença entre a posição das partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;2&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; na componente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Além disso vale lembrar que há a componente da velocidade perpendicular a &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}&amp;lt;/math&amp;gt;, que vamos denotar como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{w}_i=\overrightarrow{v}_i-u_{i}'\left(\cos\theta,\sin\theta\right)&amp;lt;/math&amp;gt;. Esta componente perpendicular permanece inalterada e pode ser visualizada na figura ao lado.&lt;br /&gt;
&lt;br /&gt;
[[File:Mba_gas.png|esquerda|miniaturadaimagem|300x300px|alt=Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt;. |Colisão entre duas partículas mostrando explicitamente os vetores relacionados à partícula 1. ]]&lt;br /&gt;
&lt;br /&gt;
Sendo assim, a velocidade final é dada por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\left(u_{i}''\cos\theta,u_{i}''\sin\theta\right)+\overrightarrow{w}_{i}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=u_{i}''\left(\cos\theta,\sin\theta\right)+\overrightarrow{v}_{i}-u_{i}'\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\overrightarrow{a}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}&amp;lt;/math&amp;gt; é um vetor unitário que nos dá a direção entre os centros das partículas. Utilizando ad identidades: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\cos\left(\arctan\left(x\right)\right)=\frac{1}{\sqrt{1+x^{2}}}, \qquad \sin\left(\arctan\left(x\right)\right)=\frac{x}{\sqrt{1+x^{2}}}&amp;lt;/math&amp;gt; ficamos então com: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
\overrightarrow{a}=\left(\cos\theta,\sin\theta\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\cos\arctan\left(\frac{\Delta y}{\Delta x}\right),\sin\arctan\left(\frac{\Delta y}{\Delta x}\right)\right)\\&lt;br /&gt;
\overrightarrow{a}=\left(\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}},\frac{\left(\frac{\Delta y}{\Delta x}\right)}{\sqrt{1+\left(\frac{\Delta y}{\Delta x}\right)^{2}}}\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\Delta x}\frac{1}{\sqrt{1+\left(\frac{\Delta{y}}{\Delta x}\right)^{2}}}\left(\Delta x,\Delta y\right)\\&lt;br /&gt;
\overrightarrow{a}=\frac{1}{\frac{\Delta x}{\Delta x}}\frac{1}{\sqrt{\Delta x^{2}+\Delta y^{2}}}\left(\Delta x,\Delta y\right)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{a}  =\frac{\left(\Delta x,\Delta y\right)}{\sqrt{\Delta x^{2}+\Delta y^{2}}}&amp;lt;/math&amp;gt; E uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{d}=\overrightarrow{r}_{2}-\overrightarrow{r}_{1}=\left(x_{2}-x_{1},y_{2}-y_{1}\right)=\left(\Delta x,\Delta y\right)&amp;lt;/math&amp;gt;, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\overrightarrow{a}= \overrightarrow{d}/\left|d\right|= \widehat{d}&amp;lt;/math&amp;gt;. Logo: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\overrightarrow{v}_{i}^{\left(f\right)}=\overrightarrow{v}_{i}+\left(u_{i}''-u_{i}'\right)\widehat{d}&amp;lt;/math&amp;gt;Ou ainda mais explícito, se fizermos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m_1=m_2&amp;lt;/math&amp;gt;, sendo as partículas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;j&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i\neq j&amp;lt;/math&amp;gt;, usando '''(2)''': &lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{cc}&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(u_{j}'-u_{i}'\right)\widehat{d}\\&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} &amp;amp; =\overrightarrow{v}_{i}+\left(\overrightarrow{v}_{j}\cdot\widehat{d}-\overrightarrow{v}_{i}\cdot\widehat{d}\right)\widehat{d}&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
Temos então que: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
\overrightarrow{v}_{i}^{\left(f\right)} =\overrightarrow{v}_{i}+\left[\left(\overrightarrow{v}_{j}-\overrightarrow{v}_{i}\right)\cdot\widehat{d}\right]\widehat{d}&amp;lt;/math&amp;gt;Todo o cálculo exibido foi para uma partícula, para a segunda partícula, o cálculo é análogo.&lt;br /&gt;
&lt;br /&gt;
= Código =&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[MBA: Caminhante aleatório]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mba_gas.png&amp;diff=7854</id>
		<title>Arquivo:Mba gas.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mba_gas.png&amp;diff=7854"/>
		<updated>2022-07-21T05:46:21Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_e_modelo_de_campo_m%C3%A9dio&amp;diff=7853</id>
		<title>Simulação e modelo de campo médio</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_e_modelo_de_campo_m%C3%A9dio&amp;diff=7853"/>
		<updated>2022-07-20T20:21:14Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS) ]] |[[ Autômato celular e modelo baseado em indivíduos]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Uma teoria de campo médio em redes complexas pode ser definida como como uma teoria em que se assume que os elementos da rede interagem com igual força com qualquer outro elemento da rede. Olhando para o [[Modelo espacialmente explícito|modelo de 2 presas e 1 predador]], supondo uma grade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;3\times3&amp;lt;/math&amp;gt; tendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;D=3/9&amp;lt;/math&amp;gt; dos fragmento destruídos, um estado possível da rede, em uma representação de grafos,  poderia ser:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:grade_norma.png|centro|miniaturadaimagem|Rede formada por uma grade &amp;lt;math&amp;gt;3\times 3&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;1/3&amp;lt;/math&amp;gt; dos fragmentos destruídos.]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Onde cada elemento representa um fragmento da grade que não está destruído. Por questões de representação foi omitido, mas é importante lembrar que cada elemento da rede pode interagir também consigo mesmo. Então cada fragmento da grade, ou elemento desta rede, pode estar livre ou ocupado pelas espécies, com qualquer uma das combinações possíveis de ocupação. Podemos perceber que não é um modelo de campo médio. Para compreender melhor os modelos de campo médio que são propostos, vamos tentar construir um modelo de rede que se aproxime melhor do que é proposto no campo campo médio, isto é, utilizar as considerações do mesmo na construção da rede. O principal componente é ignorar a distribuição espacial das espécies. Uma representação em grafo deste nova rede poderia por exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:grade_media.png|centro|miniaturadaimagem|Rede formada por uma grade &amp;lt;math&amp;gt;3\times 3&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;1/3&amp;lt;/math&amp;gt; dos fragmentos destruídos.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Ou seja, qualquer elemento pode interagir com qualquer outro, não há mais a restrição de distância como no modelo original. Na prática, durante a implementação então será considerado que cada agente pode colonizar qualquer outro agente da rede, assim como o predador pode predar qualquer presa na rede, de forma análoga o competidor superior também pode deslocar qualquer competidor inferior. Basicamente os eventos síncronos serão os seguintes: &lt;br /&gt;
&lt;br /&gt;
*Colonização: para cada elemento ocupado pela espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt;, sorteia-se um outro elemento aleatoriamente, se este for disponível para colonização, a probabilidade desta ocorrer é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c_{\alpha}&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Extinção local: se o elemento estiver colonizado pela espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt;,há uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;e_{\alpha}&amp;lt;/math&amp;gt; de ocorrer extinção local desta espécie.&lt;br /&gt;
*Predação: para cada elemento ocupado pelo predador sorteia-se outros dois elementos aleatoriamente, cada um dos elementos sorteados tem como alvo uma espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt; diferente. Em ambos os casos então, se o elemento sorteado este estiver ocupado pela presa &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt;, a predação pode ocorrer com uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mu_{\alpha}&amp;lt;/math&amp;gt;.&lt;br /&gt;
*Deslocamento competitivo: para cada elemento ocupado pelo competidor superior sorteia-se outro elemento aleatoriamente, se este estiver ocupado pelo competidor inferior então há uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c_{1}&amp;lt;/math&amp;gt; de ocorrer a remoção do competidor inferior..&lt;br /&gt;
&lt;br /&gt;
A proposta acima consiste de que em cada passo seja percorrido cada elemento da rede. Então para cada elemento realiza-se as 4 etapas anteriores de maneira síncrona de acordo com a ocupação da mesma. Outra proposta seria para cada passo, realizar apenas uma vez cada uma das etapas. Então nesta proposta quando envolver a interação entre duas espécies sorteia-se os dois elementos aleatoriamente, e quando envolver apenas uma espécie apenas um elemento é sorteado.&lt;br /&gt;
&lt;br /&gt;
Um detalhe importante é a quantidade de conexões que cada agente pode ter. Por exemplo, na simulação original uma espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt; ocupando um fragmento, poderia colonizar os 4 fragmentos primeiro-vizinhos (desde que estivessem disponível). Nesta proposta, cada vez que estamos avaliando a dinâmica de um elemento com uma espécie, avaliamos se ocorreu ou não a colonização em um único outro elemento. Sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;k_{i}&amp;lt;/math&amp;gt; quantidade de conexões possíveis em um elemento &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt;, poderíamos considerar que a probabilidade de um agente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; se conectar com um agente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;j&amp;lt;/math&amp;gt; seja dado por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;A_{ij}=\frac{k_{i}k_{j}}{N_{k}}&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; é a quantidade total de conexões que existem na rede. &lt;br /&gt;
&lt;br /&gt;
Comparando este modelo proposto, com o seguinte modelo de campo médio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dx_{1}}{dt}= &amp;amp; c_{1}x_{1}\left(1-D-x_{1}\right)-e_{1}x_{1}-\mu_{1}x_{1}y\\&lt;br /&gt;
\frac{dx_{2}}{dt}= &amp;amp; x_{2}\left[c_{2}\left(1-D-x_{1}-x_{2}+x_{1}x_{2}\right)-\left(e_{2}+\mu_{2}y+c_{1}x_{1}\right)\right]\\&lt;br /&gt;
\frac{dy}{dt}= &amp;amp; y\left[c_{y}\left[\left(x_{1}+x_{2}-x_{1}x_{2}\right)-y\left(x_{1}+x_{2}-x_{1}x_{2}\right)\right]-e_{y}\right]\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se então, para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;D=0.4&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:2h1c.png|centro|miniaturadaimagem|863x268px|À esquerda a solução numérica para o sistema de equações do modelo de campo médio e à direita o resultado da simulação da rede. ]]&amp;lt;/div&amp;gt;&lt;br /&gt;
Observa-se um comportamento bastante semelhante. A mesma ideia foi trabalhada com o modelo de [[Modelo espacialmente explícito para 2 espécies|2 herbívoros com dinâmica de fragmentos]] . Neste caso o modelo de campo médio é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{x}_{1}= &amp;amp; c_{1}\left(h-x_{1}\right)x_{1}-e_{1}x_{1}\\&lt;br /&gt;
\dot{x}_{2}= &amp;amp; c_{2}\left(h-x_{1}-x_{2}+x_{1}x_{2}\right)x_{2}-e_{2}x_{2}\\&lt;br /&gt;
\dot{h}= &amp;amp; -\gamma x_{2}\left(t-\tau_{0}\right)h\left(t-\tau_{0}\right)+\gamma x_{2}\left(t-\tau_{0}-\tau_{r}\right)h\left(t-\tau_{0}-\tau_{r}\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A dinâmica de colonização e deslocamento é essencialmente a mesma do modelo interior, a novidade concentra-se na dinâmica dos fragmentos. Após o instante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau_{0}&amp;lt;/math&amp;gt;, quando percorre-se a rede no passo atual &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; para avaliar a dinâmica de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{1}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{2}&amp;lt;/math&amp;gt;, ao mesmo tempo explora-se a rede no passo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n-\tau_{0}&amp;lt;/math&amp;gt; (no passado), onde caso o elemento esteja ocupado por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{2}&amp;lt;/math&amp;gt;, então seleciona-se outro elemento aleatoriamente e uma vez que este represente um fragmento não destruído, há uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\gamma&amp;lt;/math&amp;gt; de que seja destruído. De modo análogo após o instante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau&amp;lt;/math&amp;gt;  avalia-se a rede atrasada no passo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n-\tau&amp;lt;/math&amp;gt; , e novamente caso o elemento esteja ocupado pela espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{2}&amp;lt;/math&amp;gt;, seleciona-se outro elemento aleatoriamente, porém agora caso este esteja destruído, então há a probabilidade &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;  de ser recuperado. O resultado desta etapa da dinâmica de fragmentos, seja a destruição ou a recuperação do fragmento, é aplicado na rede atual em algum elemento aleatório. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:2h_dinamica_1.png|esquerda|miniaturadaimagem|À esquerda a solução numérica para o sistema de equações do modelo de campo médio e à direita o resultado da primeira tentativa de simulação da rede. ]]&amp;lt;/div&amp;gt;&lt;br /&gt;
Quando foi implementado este modelo proposto, pode-se perceber um comportamento qualitativo próximo, mas menos semelhante que o caso anterior. A principal diferença parece ser pelo comportamento das ovelhas. Um dos motivos que pode ser, é que quando olhamos o termo de colonização das ovelhas no modelo de campo médio, a componente referente à quantidade de fragmento disponíveis para colonização é&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(h-x_{1}-x_{2}+x_{1}x_{2}\right)&amp;lt;/math&amp;gt;. Isto decorre porque precisamos descontar não só o fragmento disponívis, mas também os fragmentos que estão ocupados por ovelhas ou guanacos. A a probabilidade de selecionar um fragmento ocupado por um ou outro é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;P\left(x_{1}\cup x_{2}\right)=P\left(x_{1}\right)+P\left(x_{2}\right)-P\left(x_{1}\cap x_{2}\right)&amp;lt;/math&amp;gt;,  como foi considerado eventos independentes, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;P\left(x_{1}\cap x_{2}\right)=x_{1}x_{2}&amp;lt;/math&amp;gt;. Porém conforme a dinâmica evolui, a distribuição das ovelhas e dos guanacos não é mais completamente aleatório e  independente, pois as ovelhas não podem ocupar fragmentos já ocupados por guanacos. Isto é, a quantidade de fragmentos ocupados por ovelhas e guanacos na simulação é menor do que o previsto considerando que sejam eventos aleatórios. Conforme a ocupação dos fragmentos se aproxima de 100% e a população de guanaco cresce, as ovelhas encontram menos fragmento disponíveis para colonizar do que o previsto pelo campo médio.&lt;br /&gt;
&lt;br /&gt;
Por isto foi adicionado uma etapa de ’espalhamento’ no começo de cada passo, ou seja todos os indivíduos são aleatoriamente redistribuídos ao longo da rede, inclusive os fragmentos destruídos também são redistribuídos. Desta forma obteve-se os eguinte resultado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Pode-se observar que o resultado se aproxima melhor do modelo de campo médio que o resultado anterior. Caso houvesse interesse em aproximar ainda mais os modelos, uma sugestão seria explorar a quantidade de conexões entre os fragmentos de uma forma mais elaborada ou ainda a relação entre a passagem do tempo nas equações diferenciais e na simulação. Mas acredito que neste momento já foi demonstrado semelhanças suficientes entre os modelos. Para esta simulação foi adotado o equivalente a 2 passos no modelo de agentes como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1t&amp;lt;/math&amp;gt;, por exemplo, no sistema de equações foi utilizado &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau_{0}=50\left[\text{tempo}\right]&amp;lt;/math&amp;gt; e no modelo de agentes &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau_{0}=100\left[\text{passos}\right]&amp;lt;/math&amp;gt; , mas manteve-se a mesma razão &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{\tau_{0}}{\tau_{r}}&amp;lt;/math&amp;gt;.[[Ficheiro:2h_dinamica_2.png|centro|miniaturadaimagem|496x265 px|Resultado da simulação da rede com a etapa de espalhamento inserida. ]]&lt;br /&gt;
==== Códigos ====&lt;br /&gt;
Os códigos referente à solução dos sistemas de equações diferenciais estão disponíveis nas respectivas páginas. Sobre as redes, ambos os códigos foram desenvolvidos em Python, e para a primeira rede discutida o código utilizado foi:&lt;br /&gt;
 # -*- coding: UTF-8 -*-&lt;br /&gt;
 # &amp;quot;Rede média&amp;quot; para o modelo de 2 herbívoros e um carnívoro&lt;br /&gt;
 # Jhordan Silveira de Borba&lt;br /&gt;
 # sbjhordan@gmail.com&lt;br /&gt;
 #Bibliotecas&lt;br /&gt;
 import numpy as np                                      # Biblioteca de funções matemáticas&lt;br /&gt;
 import copy                                             # Biblioteca com funções para copiar&lt;br /&gt;
 import random                                           # Biblioteca para gerar números aleatórios&lt;br /&gt;
 #CONDIÇÕES INICIAIS ------------------------------------------------------&lt;br /&gt;
 maxt = 5000     #tiempo total de cada realizacion&lt;br /&gt;
 Lx   = 200      #tamaño del sustrato&lt;br /&gt;
 Ly   = 200&lt;br /&gt;
 #Fracciones iniciales&lt;br /&gt;
 D    = 0.4  #fraccion inicial de sitios destruidos&lt;br /&gt;
 x10  = 0.2  #fraccion inicial de sitios libres ocupados por x1&lt;br /&gt;
 x20  = 0.2  #fraccion inicial de sitios libres ocupados por x2&lt;br /&gt;
 y0   = 0.2  #fraccion inicial de sitios ocupdos por guanacos e ovelhas ocupados por y&lt;br /&gt;
 #Tasas&lt;br /&gt;
 M=4               &lt;br /&gt;
 cx1   = M*0.05   #colonizaciones       &lt;br /&gt;
 cx2   = M*0.1        &lt;br /&gt;
 cy    = M*0.015     &lt;br /&gt;
 ex1   = 0.05     #extinciones       &lt;br /&gt;
 ex2   = 0.01      &lt;br /&gt;
 ey    = 0.02&lt;br /&gt;
 mx1y  = 0.2      #depredaciones       &lt;br /&gt;
 mx2y  = 0.8            &lt;br /&gt;
 con=1            #controle de registro&lt;br /&gt;
 #Inicializaciones&lt;br /&gt;
 s  = np.full((Lx, Ly), [1])   #matriz de habitat (1=sitio disponible, 0=destruido)&lt;br /&gt;
 x1 = np.full((Lx, Ly), [0])   #1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 x2 = np.full((Lx, Ly), [0])   #1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 y  = np.full((Lx, Ly), [0])   #1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 #Colonização inicial&lt;br /&gt;
 for i in range(1,Lx-1): &lt;br /&gt;
     for j in range (1,Ly-1): &lt;br /&gt;
         if (np.random.rand() &amp;lt; D): s[i,j]=0&lt;br /&gt;
         if (np.random.rand() &amp;lt; x10/(1-D) and s[i,j]==1): x1[i,j]=1&lt;br /&gt;
         if (np.random.rand() &amp;lt; x20/(1-D) and s[i,j]==1): x2[i,j]=1&lt;br /&gt;
         if (np.random.rand() &amp;lt;  y0/(1-D) and s[i,j]==1):  y[i,j]=1&lt;br /&gt;
 for i in range(Lx): #destruimos los bordes del habitat&lt;br /&gt;
     s[i,0]=0&lt;br /&gt;
     s[i,Ly-1]=0&lt;br /&gt;
 for j in range(Ly):&lt;br /&gt;
     s[0,j]=0&lt;br /&gt;
     s[Lx-1,j]=0&lt;br /&gt;
 #Lazo temporal&lt;br /&gt;
 fx1=sum(sum(x1))/((Lx)*(Ly))&lt;br /&gt;
 fx2=sum(sum(x2))/((Lx)*(Ly))&lt;br /&gt;
 fy =sum(sum(y)) /((Lx)*(Ly))&lt;br /&gt;
 f = open(&amp;quot;redemedia2015.dat&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
 f.write(&amp;quot;	&amp;quot;+str(0)+&amp;quot;	&amp;quot;+str(fx1)+&amp;quot;	&amp;quot;+str(fx2)+&amp;quot;	&amp;quot;+str(fy)+&amp;quot;\n&amp;quot;)&lt;br /&gt;
 for it in range(maxt):&lt;br /&gt;
     if (float(it)%(float(maxt)/100)==0.):&lt;br /&gt;
         print(&amp;quot;Porcentagem: &amp;quot;+str(it*100/maxt))  # Exibe o passo atual&lt;br /&gt;
     x1old=copy.copy(x1)              #poblaciones del paso anterior&lt;br /&gt;
     x2old=copy.copy(x2)&lt;br /&gt;
     yold=copy.copy(y)&lt;br /&gt;
     for i in range (1,Lx-1):&lt;br /&gt;
         for j in range (1,Ly-1): &lt;br /&gt;
             # COLONIZAÇÃO+++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             if (s[i,j]==0):&lt;br /&gt;
                 for c in range(1):&lt;br /&gt;
                     m=random.randint(1,Lx-1)&lt;br /&gt;
                     n=random.randint(1,Ly-1)&lt;br /&gt;
                     if (s[m,n]==1 and x1old[m,n]==0):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cx1):&lt;br /&gt;
                             x1[m,n]=1&lt;br /&gt;
             # Ovelha&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 for c in range(1):&lt;br /&gt;
                     m=random.randint(1,Lx-1)&lt;br /&gt;
                     n=random.randint(1,Ly-1)&lt;br /&gt;
                     if (s[m,n]==1 and (x1old[m,n]==0 and x2old[m,n]==0)):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cx2):&lt;br /&gt;
                             x2[m,n]=1              &lt;br /&gt;
             # Puma&lt;br /&gt;
             if (yold[i,j]==1):&lt;br /&gt;
                 for c in range(1):&lt;br /&gt;
                     m=random.randint(1,Lx-1)&lt;br /&gt;
                     n=random.randint(1,Ly-1)&lt;br /&gt;
                     if (x1old[m,n]==1 or x2old[m,n]==1):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cy):&lt;br /&gt;
                             y[m,n]=1  &lt;br /&gt;
             #EXTINÇÃO LOCAL++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             #Guanaco&lt;br /&gt;
             if (x1old[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ex1):&lt;br /&gt;
                     x1[i,j]=0            &lt;br /&gt;
             #Ovelha&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ex2):&lt;br /&gt;
                     x2[i,j]=0&lt;br /&gt;
             #Puma&lt;br /&gt;
             if (yold[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ey):&lt;br /&gt;
                         y[i,j]=0&lt;br /&gt;
             #PREDAÇÃO++++++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             if (x1old[i,j]==1):&lt;br /&gt;
                 m=random.randint(1,Lx-1)&lt;br /&gt;
                 n=random.randint(1,Ly-1)&lt;br /&gt;
                 if (yold[m,n]==1):&lt;br /&gt;
                     if (np.random.rand()&amp;lt;= mx1y):&lt;br /&gt;
                         x1[i,j]=0&lt;br /&gt;
             if(x2old[i,j]==1):&lt;br /&gt;
                 m=random.randint(1,Lx-1)&lt;br /&gt;
                 n=random.randint(1,Ly-1)&lt;br /&gt;
                 if (yold[m,n]==1):&lt;br /&gt;
                     if (np.random.rand()&amp;lt;= mx2y):&lt;br /&gt;
                         x2[i,j]=0              &lt;br /&gt;
             #DESLOCAMENTO+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 m=random.randint(1,Lx-1)&lt;br /&gt;
                 n=random.randint(1,Ly-1)&lt;br /&gt;
                 if ( x1old[m,n]==1):&lt;br /&gt;
                     if (np.random.rand()&amp;lt;= cx1):&lt;br /&gt;
                         x2[i,j]=0                  &lt;br /&gt;
     if(con==1): &lt;br /&gt;
         fx1=sum(sum(x1))/((Lx)*(Ly))&lt;br /&gt;
         fx2=sum(sum(x2))/((Lx)*(Ly))&lt;br /&gt;
         fy =sum(sum(y)) /((Lx)*(Ly))&lt;br /&gt;
         f.write(&amp;quot;	&amp;quot;+str(it+1)+&amp;quot;	&amp;quot;+str(fx1)+&amp;quot;	&amp;quot;+str(fx2)+&amp;quot;	&amp;quot;+str(fy)+&amp;quot;\n&amp;quot;)&lt;br /&gt;
         con=0&lt;br /&gt;
     con=con+1&lt;br /&gt;
 # CÁLCULOS FINAIS -----------------------------------------------------&lt;br /&gt;
 f.close()&lt;br /&gt;
E para a segunda rede, tivemos as duas tentativas foram:&lt;br /&gt;
 # -*- coding: UTF-8 -*- &lt;br /&gt;
 # &amp;quot;Rede média&amp;quot; para o modelo de 2 herbívoros com dinâmica dos fragmentos &lt;br /&gt;
 # Jhordan Silveira de Borba &lt;br /&gt;
 # sbjhordan@gmail.com&lt;br /&gt;
 #Bibliotecas&lt;br /&gt;
 import numpy as np                                      # Biblioteca de funções matemáticas&lt;br /&gt;
 import copy                                             # Biblioteca com funções para copiar&lt;br /&gt;
 import random                                           # Biblioteca para gerar números aleatórios&lt;br /&gt;
 #CONDIÇÕES INICIAIS ------------------------------------------------------&lt;br /&gt;
 maxt = 500      #tiempo total de cada realizacion&lt;br /&gt;
 Lx   = 100      #tamaño del sustrato en la coordenada x&lt;br /&gt;
 Ly   = 100&lt;br /&gt;
 #Fracciones iniciales&lt;br /&gt;
 x10  = 0.3  #fraccion inicial de sitios ocupados por x1&lt;br /&gt;
 x20  = 0.3  #fraccion inicial de sitios ocupados por x2&lt;br /&gt;
 h0   = 1.   #fraccion inicial de sitios disponibles&lt;br /&gt;
 #Tasas               &lt;br /&gt;
 cx1   = 0.04         #colonizaciones       &lt;br /&gt;
 cx2   = 0.7        &lt;br /&gt;
 ex1   = 0.01         #extinciones       &lt;br /&gt;
 ex2   = 0.01      &lt;br /&gt;
 to    = 100          #Tempo de ocupação  &lt;br /&gt;
 tr    = 20           #Tempo de recuperação&lt;br /&gt;
 g     = 0.1          #Taxa de variação dos fragmentos&lt;br /&gt;
 t     = tr+to&lt;br /&gt;
 con1=1               #Controle do registro&lt;br /&gt;
 #Inicializaciones&lt;br /&gt;
 sh =[]                        # Histórico da matriz de habitat&lt;br /&gt;
 x2h=[]                        # Histórico da matriz de ovelhas&lt;br /&gt;
 s  = np.full((Lx, Ly), [1])   # matriz de habitat (1=sitio disponible, 0=destruido)&lt;br /&gt;
 x1 = np.full((Lx, Ly), [0])   # 1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 x2 = np.full((Lx, Ly), [0])   # 1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 sh.append(s)&lt;br /&gt;
 x2h.append(x2)&lt;br /&gt;
 for i in range(Lx):           # Distribuição inicial&lt;br /&gt;
   for j in range (Ly):&lt;br /&gt;
     if (np.random.rand() &amp;lt; (1-h0) ): s[i,j]=0&lt;br /&gt;
     if (np.random.rand() &amp;lt; x10/h0 and s[i,j]==1): x1[i,j]=1&lt;br /&gt;
     if (np.random.rand() &amp;lt; x20/h0 and s[i,j]==1): x2[i,j]=1&lt;br /&gt;
 #Lazo temporal&lt;br /&gt;
 fx1=sum(sum(x1))/((Lx)*(Ly))&lt;br /&gt;
 fx2=sum(sum(x2))/((Lx)*(Ly))&lt;br /&gt;
 fs =sum(sum(s)) /((Lx)*(Ly))&lt;br /&gt;
 f = open(&amp;quot;temporal2019.dat&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
 f.write(&amp;quot;	&amp;quot;+str(0)+&amp;quot;	&amp;quot;+str(fx1)+&amp;quot;	&amp;quot;+str(fx2)+&amp;quot;	&amp;quot;+str(fs)+&amp;quot;\n&amp;quot;)&lt;br /&gt;
 for it in range(maxt):&lt;br /&gt;
     if (float(it)%(float(maxt)/100)==0.):&lt;br /&gt;
         print(&amp;quot;Porcentagem: &amp;quot;+str(it*100/maxt))  # Exibe o passo atual       &lt;br /&gt;
     #ESPALHAMENTO&lt;br /&gt;
     nx1=sum(sum(x1))&lt;br /&gt;
     nx2=sum(sum(x2))&lt;br /&gt;
     ns =sum(sum( s))&lt;br /&gt;
     s  = np.full((Lx, Ly), [0])   # matriz de habitat (1=sitio disponible, 0=destruido)&lt;br /&gt;
     x1 = np.full((Lx, Ly), [0])   # 1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
     x2 = np.full((Lx, Ly), [0])   # 1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
     for i in range (max(nx1,nx2,ns)): #Quantidade máxima de animais que vamos espalhar&lt;br /&gt;
         if(i&amp;lt;ns):                     #Esoalhando os fragmentos &lt;br /&gt;
             (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
             while(True):&lt;br /&gt;
                 if(s[a,b]==0):        #Se escolhemos um fragmento destruído&lt;br /&gt;
                     s[a,b]=1          #Revitalizamos&lt;br /&gt;
                     break             #E saímos do loop&lt;br /&gt;
                 else:                 #Se não repetimos&lt;br /&gt;
                     (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
         if(i&amp;lt;nx1):                    #Competidor superior&lt;br /&gt;
             (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
             while(True):&lt;br /&gt;
                 if(x1[a,b]==0):&lt;br /&gt;
                     x1[a,b]=1&lt;br /&gt;
                     break&lt;br /&gt;
                 else:&lt;br /&gt;
                     (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
         if(i&amp;lt;nx2):                    #Competidor inferior&lt;br /&gt;
             (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
             while(True):&lt;br /&gt;
                 if(x2[a,b]==0):&lt;br /&gt;
                     x2[a,b]=1&lt;br /&gt;
                     break&lt;br /&gt;
                 else:&lt;br /&gt;
                     (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))              &lt;br /&gt;
     sold =copy.copy(s )&lt;br /&gt;
     x1old=copy.copy(x1)              #poblaciones del paso anterior&lt;br /&gt;
     x2old=copy.copy(x2)      &lt;br /&gt;
     for i in range (0,Lx-1):&lt;br /&gt;
         for j in range (0,Ly-1):&lt;br /&gt;
         #COLONIZAÇÃO+++++++++++++++++++++++++++++++++++&lt;br /&gt;
             #Guanaco&lt;br /&gt;
             if (x1old[i,j]==1):&lt;br /&gt;
                 for a in range(1):&lt;br /&gt;
                     m=random.randint(0,Lx-1)&lt;br /&gt;
                     n=random.randint(0,Ly-1)&lt;br /&gt;
                     if (sold[m,n]==1 and x1old[m,n]==0):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cx1):&lt;br /&gt;
                             x1[m,n]=1                &lt;br /&gt;
             #Ovelha&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 for a in range(1):&lt;br /&gt;
                     m=random.randint(0,Lx-1)&lt;br /&gt;
                     n=random.randint(0,Ly-1)&lt;br /&gt;
                     if (sold[m,n]==1 and (x1old[m,n]==0 and x2old[m,n]==0)):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cx2):&lt;br /&gt;
                             x2[m,n]=1&lt;br /&gt;
             #EXTINÇÃO     &lt;br /&gt;
             #Guanaco&lt;br /&gt;
             if (x1old[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ex1):&lt;br /&gt;
                         x1[i,j]=0&lt;br /&gt;
             #Ovelha&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ex2):&lt;br /&gt;
                         x2[i,j]=0   &lt;br /&gt;
             #DESLOCAMENTO+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 m=random.randint(0,Lx-1)&lt;br /&gt;
                 n=random.randint(0,Ly-1)&lt;br /&gt;
                 if ( x1old[m,n]==1):&lt;br /&gt;
                     if (np.random.rand()&amp;lt;= cx1):&lt;br /&gt;
                         x2[i,j]=0            &lt;br /&gt;
             #Dinâmica dos patches+++++++++++++++++++++++++++++++++++++++++++                      &lt;br /&gt;
             if(it+2&amp;gt;to):                       #Se passou o primeiro período de ocupação&lt;br /&gt;
                 if (x2h[to-1][i,j]==1):        #Então há destruição de fragmentos&lt;br /&gt;
                     m=random.randint(0,Lx-1)&lt;br /&gt;
                     n=random.randint(0,Ly-1)&lt;br /&gt;
                     if (sh[to-1][m,n]==1):&lt;br /&gt;
                         if(np.random.rand()&amp;lt;=g):&lt;br /&gt;
                             li=np.where(s==1)  #Elementos que são 1&lt;br /&gt;
                             if(len(li[0])==1):&lt;br /&gt;
                                 k=0&lt;br /&gt;
                             elif(len(li[0])&amp;gt;1):&lt;br /&gt;
                                 k=random.randint(0,len(li[0])-1) #Sorteio do elemento&lt;br /&gt;
                                 s[li[0][k],li[1][k]]=0&lt;br /&gt;
             if(it+2&amp;gt;t):                        #Se passou do período de oucpação e recuperação &lt;br /&gt;
                 if (x2h[t-1][i,j]==1):         #Há recuperação do habitat&lt;br /&gt;
                     m=random.randint(0,Lx-1)&lt;br /&gt;
                     n=random.randint(0,Ly-1)&lt;br /&gt;
                     if (sh[t-1][m,n]==1):&lt;br /&gt;
                         if(np.random.rand()&amp;lt;=g):&lt;br /&gt;
                             li=np.where(s==0)  &lt;br /&gt;
                             if (len(li[0])==1):&lt;br /&gt;
                                 k=0&lt;br /&gt;
                             elif(len(li[0])&amp;gt;1):&lt;br /&gt;
                                 k=random.randint(0,len(li[0])-1) &lt;br /&gt;
                                 s[li[0][k],li[1][k]]=1                              &lt;br /&gt;
     sh.insert(0,copy.copy(s))   #Adiciona o estado atual no histórico&lt;br /&gt;
     x2h.insert(0,copy.copy(x2))&lt;br /&gt;
     if (it&amp;gt;=t):                 #Exclui estados que não serão mais utilizados&lt;br /&gt;
         sh.pop()&lt;br /&gt;
         x2h.pop()&lt;br /&gt;
     if (con1==1):      &lt;br /&gt;
         fx1=sum(sum(x1))/((Lx)*(Ly))&lt;br /&gt;
         fx2=sum(sum(x2))/((Lx)*(Ly))&lt;br /&gt;
         fs =sum(sum(s ))/((Lx)*(Ly))&lt;br /&gt;
         f.write(&amp;quot;	&amp;quot;+str(it+1)+&amp;quot;	&amp;quot;+str(fx1)+&amp;quot;	&amp;quot;+str(fx2)+&amp;quot;	&amp;quot;+str(fs)+&amp;quot;\n&amp;quot;)&lt;br /&gt;
         con1=0           &lt;br /&gt;
     con1=con1+1&lt;br /&gt;
 f.close()&lt;br /&gt;
&lt;br /&gt;
====== Principais materiais utilizados ======&lt;br /&gt;
&lt;br /&gt;
* [https://youtu.be/Kt4DUq9mgKQ?t=2476 Minicurso de Redes complexas] (Silvio Ferreira, ENMM-Covid19)&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS) ]] |[[ Autômato celular e modelo baseado em indivíduos]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_e_modelo_de_campo_m%C3%A9dio&amp;diff=7852</id>
		<title>Simulação e modelo de campo médio</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_e_modelo_de_campo_m%C3%A9dio&amp;diff=7852"/>
		<updated>2022-07-20T20:20:33Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS) ]] |[ Autômato celular e modelo baseado em indivíduos]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Uma teoria de campo médio em redes complexas pode ser definida como como uma teoria em que se assume que os elementos da rede interagem com igual força com qualquer outro elemento da rede. Olhando para o [[Modelo espacialmente explícito|modelo de 2 presas e 1 predador]], supondo uma grade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;3\times3&amp;lt;/math&amp;gt; tendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;D=3/9&amp;lt;/math&amp;gt; dos fragmento destruídos, um estado possível da rede, em uma representação de grafos,  poderia ser:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:grade_norma.png|centro|miniaturadaimagem|Rede formada por uma grade &amp;lt;math&amp;gt;3\times 3&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;1/3&amp;lt;/math&amp;gt; dos fragmentos destruídos.]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Onde cada elemento representa um fragmento da grade que não está destruído. Por questões de representação foi omitido, mas é importante lembrar que cada elemento da rede pode interagir também consigo mesmo. Então cada fragmento da grade, ou elemento desta rede, pode estar livre ou ocupado pelas espécies, com qualquer uma das combinações possíveis de ocupação. Podemos perceber que não é um modelo de campo médio. Para compreender melhor os modelos de campo médio que são propostos, vamos tentar construir um modelo de rede que se aproxime melhor do que é proposto no campo campo médio, isto é, utilizar as considerações do mesmo na construção da rede. O principal componente é ignorar a distribuição espacial das espécies. Uma representação em grafo deste nova rede poderia por exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:grade_media.png|centro|miniaturadaimagem|Rede formada por uma grade &amp;lt;math&amp;gt;3\times 3&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;1/3&amp;lt;/math&amp;gt; dos fragmentos destruídos.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Ou seja, qualquer elemento pode interagir com qualquer outro, não há mais a restrição de distância como no modelo original. Na prática, durante a implementação então será considerado que cada agente pode colonizar qualquer outro agente da rede, assim como o predador pode predar qualquer presa na rede, de forma análoga o competidor superior também pode deslocar qualquer competidor inferior. Basicamente os eventos síncronos serão os seguintes: &lt;br /&gt;
&lt;br /&gt;
*Colonização: para cada elemento ocupado pela espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt;, sorteia-se um outro elemento aleatoriamente, se este for disponível para colonização, a probabilidade desta ocorrer é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c_{\alpha}&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Extinção local: se o elemento estiver colonizado pela espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt;,há uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;e_{\alpha}&amp;lt;/math&amp;gt; de ocorrer extinção local desta espécie.&lt;br /&gt;
*Predação: para cada elemento ocupado pelo predador sorteia-se outros dois elementos aleatoriamente, cada um dos elementos sorteados tem como alvo uma espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt; diferente. Em ambos os casos então, se o elemento sorteado este estiver ocupado pela presa &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt;, a predação pode ocorrer com uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mu_{\alpha}&amp;lt;/math&amp;gt;.&lt;br /&gt;
*Deslocamento competitivo: para cada elemento ocupado pelo competidor superior sorteia-se outro elemento aleatoriamente, se este estiver ocupado pelo competidor inferior então há uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c_{1}&amp;lt;/math&amp;gt; de ocorrer a remoção do competidor inferior..&lt;br /&gt;
&lt;br /&gt;
A proposta acima consiste de que em cada passo seja percorrido cada elemento da rede. Então para cada elemento realiza-se as 4 etapas anteriores de maneira síncrona de acordo com a ocupação da mesma. Outra proposta seria para cada passo, realizar apenas uma vez cada uma das etapas. Então nesta proposta quando envolver a interação entre duas espécies sorteia-se os dois elementos aleatoriamente, e quando envolver apenas uma espécie apenas um elemento é sorteado.&lt;br /&gt;
&lt;br /&gt;
Um detalhe importante é a quantidade de conexões que cada agente pode ter. Por exemplo, na simulação original uma espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\alpha&amp;lt;/math&amp;gt; ocupando um fragmento, poderia colonizar os 4 fragmentos primeiro-vizinhos (desde que estivessem disponível). Nesta proposta, cada vez que estamos avaliando a dinâmica de um elemento com uma espécie, avaliamos se ocorreu ou não a colonização em um único outro elemento. Sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;k_{i}&amp;lt;/math&amp;gt; quantidade de conexões possíveis em um elemento &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt;, poderíamos considerar que a probabilidade de um agente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; se conectar com um agente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;j&amp;lt;/math&amp;gt; seja dado por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;A_{ij}=\frac{k_{i}k_{j}}{N_{k}}&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; é a quantidade total de conexões que existem na rede. &lt;br /&gt;
&lt;br /&gt;
Comparando este modelo proposto, com o seguinte modelo de campo médio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\frac{dx_{1}}{dt}= &amp;amp; c_{1}x_{1}\left(1-D-x_{1}\right)-e_{1}x_{1}-\mu_{1}x_{1}y\\&lt;br /&gt;
\frac{dx_{2}}{dt}= &amp;amp; x_{2}\left[c_{2}\left(1-D-x_{1}-x_{2}+x_{1}x_{2}\right)-\left(e_{2}+\mu_{2}y+c_{1}x_{1}\right)\right]\\&lt;br /&gt;
\frac{dy}{dt}= &amp;amp; y\left[c_{y}\left[\left(x_{1}+x_{2}-x_{1}x_{2}\right)-y\left(x_{1}+x_{2}-x_{1}x_{2}\right)\right]-e_{y}\right]\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tem-se então, para &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;D=0.4&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:2h1c.png|centro|miniaturadaimagem|863x268px|À esquerda a solução numérica para o sistema de equações do modelo de campo médio e à direita o resultado da simulação da rede. ]]&amp;lt;/div&amp;gt;&lt;br /&gt;
Observa-se um comportamento bastante semelhante. A mesma ideia foi trabalhada com o modelo de [[Modelo espacialmente explícito para 2 espécies|2 herbívoros com dinâmica de fragmentos]] . Neste caso o modelo de campo médio é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\dot{x}_{1}= &amp;amp; c_{1}\left(h-x_{1}\right)x_{1}-e_{1}x_{1}\\&lt;br /&gt;
\dot{x}_{2}= &amp;amp; c_{2}\left(h-x_{1}-x_{2}+x_{1}x_{2}\right)x_{2}-e_{2}x_{2}\\&lt;br /&gt;
\dot{h}= &amp;amp; -\gamma x_{2}\left(t-\tau_{0}\right)h\left(t-\tau_{0}\right)+\gamma x_{2}\left(t-\tau_{0}-\tau_{r}\right)h\left(t-\tau_{0}-\tau_{r}\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A dinâmica de colonização e deslocamento é essencialmente a mesma do modelo interior, a novidade concentra-se na dinâmica dos fragmentos. Após o instante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau_{0}&amp;lt;/math&amp;gt;, quando percorre-se a rede no passo atual &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; para avaliar a dinâmica de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{1}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{2}&amp;lt;/math&amp;gt;, ao mesmo tempo explora-se a rede no passo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n-\tau_{0}&amp;lt;/math&amp;gt; (no passado), onde caso o elemento esteja ocupado por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{2}&amp;lt;/math&amp;gt;, então seleciona-se outro elemento aleatoriamente e uma vez que este represente um fragmento não destruído, há uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\gamma&amp;lt;/math&amp;gt; de que seja destruído. De modo análogo após o instante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau&amp;lt;/math&amp;gt;  avalia-se a rede atrasada no passo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n-\tau&amp;lt;/math&amp;gt; , e novamente caso o elemento esteja ocupado pela espécie &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{2}&amp;lt;/math&amp;gt;, seleciona-se outro elemento aleatoriamente, porém agora caso este esteja destruído, então há a probabilidade &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;  de ser recuperado. O resultado desta etapa da dinâmica de fragmentos, seja a destruição ou a recuperação do fragmento, é aplicado na rede atual em algum elemento aleatório. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:2h_dinamica_1.png|esquerda|miniaturadaimagem|À esquerda a solução numérica para o sistema de equações do modelo de campo médio e à direita o resultado da primeira tentativa de simulação da rede. ]]&amp;lt;/div&amp;gt;&lt;br /&gt;
Quando foi implementado este modelo proposto, pode-se perceber um comportamento qualitativo próximo, mas menos semelhante que o caso anterior. A principal diferença parece ser pelo comportamento das ovelhas. Um dos motivos que pode ser, é que quando olhamos o termo de colonização das ovelhas no modelo de campo médio, a componente referente à quantidade de fragmento disponíveis para colonização é&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(h-x_{1}-x_{2}+x_{1}x_{2}\right)&amp;lt;/math&amp;gt;. Isto decorre porque precisamos descontar não só o fragmento disponívis, mas também os fragmentos que estão ocupados por ovelhas ou guanacos. A a probabilidade de selecionar um fragmento ocupado por um ou outro é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;P\left(x_{1}\cup x_{2}\right)=P\left(x_{1}\right)+P\left(x_{2}\right)-P\left(x_{1}\cap x_{2}\right)&amp;lt;/math&amp;gt;,  como foi considerado eventos independentes, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;P\left(x_{1}\cap x_{2}\right)=x_{1}x_{2}&amp;lt;/math&amp;gt;. Porém conforme a dinâmica evolui, a distribuição das ovelhas e dos guanacos não é mais completamente aleatório e  independente, pois as ovelhas não podem ocupar fragmentos já ocupados por guanacos. Isto é, a quantidade de fragmentos ocupados por ovelhas e guanacos na simulação é menor do que o previsto considerando que sejam eventos aleatórios. Conforme a ocupação dos fragmentos se aproxima de 100% e a população de guanaco cresce, as ovelhas encontram menos fragmento disponíveis para colonizar do que o previsto pelo campo médio.&lt;br /&gt;
&lt;br /&gt;
Por isto foi adicionado uma etapa de ’espalhamento’ no começo de cada passo, ou seja todos os indivíduos são aleatoriamente redistribuídos ao longo da rede, inclusive os fragmentos destruídos também são redistribuídos. Desta forma obteve-se os eguinte resultado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Pode-se observar que o resultado se aproxima melhor do modelo de campo médio que o resultado anterior. Caso houvesse interesse em aproximar ainda mais os modelos, uma sugestão seria explorar a quantidade de conexões entre os fragmentos de uma forma mais elaborada ou ainda a relação entre a passagem do tempo nas equações diferenciais e na simulação. Mas acredito que neste momento já foi demonstrado semelhanças suficientes entre os modelos. Para esta simulação foi adotado o equivalente a 2 passos no modelo de agentes como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1t&amp;lt;/math&amp;gt;, por exemplo, no sistema de equações foi utilizado &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau_{0}=50\left[\text{tempo}\right]&amp;lt;/math&amp;gt; e no modelo de agentes &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau_{0}=100\left[\text{passos}\right]&amp;lt;/math&amp;gt; , mas manteve-se a mesma razão &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{\tau_{0}}{\tau_{r}}&amp;lt;/math&amp;gt;.[[Ficheiro:2h_dinamica_2.png|centro|miniaturadaimagem|496x265 px|Resultado da simulação da rede com a etapa de espalhamento inserida. ]]&lt;br /&gt;
==== Códigos ====&lt;br /&gt;
Os códigos referente à solução dos sistemas de equações diferenciais estão disponíveis nas respectivas páginas. Sobre as redes, ambos os códigos foram desenvolvidos em Python, e para a primeira rede discutida o código utilizado foi:&lt;br /&gt;
 # -*- coding: UTF-8 -*-&lt;br /&gt;
 # &amp;quot;Rede média&amp;quot; para o modelo de 2 herbívoros e um carnívoro&lt;br /&gt;
 # Jhordan Silveira de Borba&lt;br /&gt;
 # sbjhordan@gmail.com&lt;br /&gt;
 #Bibliotecas&lt;br /&gt;
 import numpy as np                                      # Biblioteca de funções matemáticas&lt;br /&gt;
 import copy                                             # Biblioteca com funções para copiar&lt;br /&gt;
 import random                                           # Biblioteca para gerar números aleatórios&lt;br /&gt;
 #CONDIÇÕES INICIAIS ------------------------------------------------------&lt;br /&gt;
 maxt = 5000     #tiempo total de cada realizacion&lt;br /&gt;
 Lx   = 200      #tamaño del sustrato&lt;br /&gt;
 Ly   = 200&lt;br /&gt;
 #Fracciones iniciales&lt;br /&gt;
 D    = 0.4  #fraccion inicial de sitios destruidos&lt;br /&gt;
 x10  = 0.2  #fraccion inicial de sitios libres ocupados por x1&lt;br /&gt;
 x20  = 0.2  #fraccion inicial de sitios libres ocupados por x2&lt;br /&gt;
 y0   = 0.2  #fraccion inicial de sitios ocupdos por guanacos e ovelhas ocupados por y&lt;br /&gt;
 #Tasas&lt;br /&gt;
 M=4               &lt;br /&gt;
 cx1   = M*0.05   #colonizaciones       &lt;br /&gt;
 cx2   = M*0.1        &lt;br /&gt;
 cy    = M*0.015     &lt;br /&gt;
 ex1   = 0.05     #extinciones       &lt;br /&gt;
 ex2   = 0.01      &lt;br /&gt;
 ey    = 0.02&lt;br /&gt;
 mx1y  = 0.2      #depredaciones       &lt;br /&gt;
 mx2y  = 0.8            &lt;br /&gt;
 con=1            #controle de registro&lt;br /&gt;
 #Inicializaciones&lt;br /&gt;
 s  = np.full((Lx, Ly), [1])   #matriz de habitat (1=sitio disponible, 0=destruido)&lt;br /&gt;
 x1 = np.full((Lx, Ly), [0])   #1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 x2 = np.full((Lx, Ly), [0])   #1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 y  = np.full((Lx, Ly), [0])   #1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 #Colonização inicial&lt;br /&gt;
 for i in range(1,Lx-1): &lt;br /&gt;
     for j in range (1,Ly-1): &lt;br /&gt;
         if (np.random.rand() &amp;lt; D): s[i,j]=0&lt;br /&gt;
         if (np.random.rand() &amp;lt; x10/(1-D) and s[i,j]==1): x1[i,j]=1&lt;br /&gt;
         if (np.random.rand() &amp;lt; x20/(1-D) and s[i,j]==1): x2[i,j]=1&lt;br /&gt;
         if (np.random.rand() &amp;lt;  y0/(1-D) and s[i,j]==1):  y[i,j]=1&lt;br /&gt;
 for i in range(Lx): #destruimos los bordes del habitat&lt;br /&gt;
     s[i,0]=0&lt;br /&gt;
     s[i,Ly-1]=0&lt;br /&gt;
 for j in range(Ly):&lt;br /&gt;
     s[0,j]=0&lt;br /&gt;
     s[Lx-1,j]=0&lt;br /&gt;
 #Lazo temporal&lt;br /&gt;
 fx1=sum(sum(x1))/((Lx)*(Ly))&lt;br /&gt;
 fx2=sum(sum(x2))/((Lx)*(Ly))&lt;br /&gt;
 fy =sum(sum(y)) /((Lx)*(Ly))&lt;br /&gt;
 f = open(&amp;quot;redemedia2015.dat&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
 f.write(&amp;quot;	&amp;quot;+str(0)+&amp;quot;	&amp;quot;+str(fx1)+&amp;quot;	&amp;quot;+str(fx2)+&amp;quot;	&amp;quot;+str(fy)+&amp;quot;\n&amp;quot;)&lt;br /&gt;
 for it in range(maxt):&lt;br /&gt;
     if (float(it)%(float(maxt)/100)==0.):&lt;br /&gt;
         print(&amp;quot;Porcentagem: &amp;quot;+str(it*100/maxt))  # Exibe o passo atual&lt;br /&gt;
     x1old=copy.copy(x1)              #poblaciones del paso anterior&lt;br /&gt;
     x2old=copy.copy(x2)&lt;br /&gt;
     yold=copy.copy(y)&lt;br /&gt;
     for i in range (1,Lx-1):&lt;br /&gt;
         for j in range (1,Ly-1): &lt;br /&gt;
             # COLONIZAÇÃO+++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             if (s[i,j]==0):&lt;br /&gt;
                 for c in range(1):&lt;br /&gt;
                     m=random.randint(1,Lx-1)&lt;br /&gt;
                     n=random.randint(1,Ly-1)&lt;br /&gt;
                     if (s[m,n]==1 and x1old[m,n]==0):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cx1):&lt;br /&gt;
                             x1[m,n]=1&lt;br /&gt;
             # Ovelha&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 for c in range(1):&lt;br /&gt;
                     m=random.randint(1,Lx-1)&lt;br /&gt;
                     n=random.randint(1,Ly-1)&lt;br /&gt;
                     if (s[m,n]==1 and (x1old[m,n]==0 and x2old[m,n]==0)):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cx2):&lt;br /&gt;
                             x2[m,n]=1              &lt;br /&gt;
             # Puma&lt;br /&gt;
             if (yold[i,j]==1):&lt;br /&gt;
                 for c in range(1):&lt;br /&gt;
                     m=random.randint(1,Lx-1)&lt;br /&gt;
                     n=random.randint(1,Ly-1)&lt;br /&gt;
                     if (x1old[m,n]==1 or x2old[m,n]==1):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cy):&lt;br /&gt;
                             y[m,n]=1  &lt;br /&gt;
             #EXTINÇÃO LOCAL++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             #Guanaco&lt;br /&gt;
             if (x1old[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ex1):&lt;br /&gt;
                     x1[i,j]=0            &lt;br /&gt;
             #Ovelha&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ex2):&lt;br /&gt;
                     x2[i,j]=0&lt;br /&gt;
             #Puma&lt;br /&gt;
             if (yold[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ey):&lt;br /&gt;
                         y[i,j]=0&lt;br /&gt;
             #PREDAÇÃO++++++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             if (x1old[i,j]==1):&lt;br /&gt;
                 m=random.randint(1,Lx-1)&lt;br /&gt;
                 n=random.randint(1,Ly-1)&lt;br /&gt;
                 if (yold[m,n]==1):&lt;br /&gt;
                     if (np.random.rand()&amp;lt;= mx1y):&lt;br /&gt;
                         x1[i,j]=0&lt;br /&gt;
             if(x2old[i,j]==1):&lt;br /&gt;
                 m=random.randint(1,Lx-1)&lt;br /&gt;
                 n=random.randint(1,Ly-1)&lt;br /&gt;
                 if (yold[m,n]==1):&lt;br /&gt;
                     if (np.random.rand()&amp;lt;= mx2y):&lt;br /&gt;
                         x2[i,j]=0              &lt;br /&gt;
             #DESLOCAMENTO+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 m=random.randint(1,Lx-1)&lt;br /&gt;
                 n=random.randint(1,Ly-1)&lt;br /&gt;
                 if ( x1old[m,n]==1):&lt;br /&gt;
                     if (np.random.rand()&amp;lt;= cx1):&lt;br /&gt;
                         x2[i,j]=0                  &lt;br /&gt;
     if(con==1): &lt;br /&gt;
         fx1=sum(sum(x1))/((Lx)*(Ly))&lt;br /&gt;
         fx2=sum(sum(x2))/((Lx)*(Ly))&lt;br /&gt;
         fy =sum(sum(y)) /((Lx)*(Ly))&lt;br /&gt;
         f.write(&amp;quot;	&amp;quot;+str(it+1)+&amp;quot;	&amp;quot;+str(fx1)+&amp;quot;	&amp;quot;+str(fx2)+&amp;quot;	&amp;quot;+str(fy)+&amp;quot;\n&amp;quot;)&lt;br /&gt;
         con=0&lt;br /&gt;
     con=con+1&lt;br /&gt;
 # CÁLCULOS FINAIS -----------------------------------------------------&lt;br /&gt;
 f.close()&lt;br /&gt;
E para a segunda rede, tivemos as duas tentativas foram:&lt;br /&gt;
 # -*- coding: UTF-8 -*- &lt;br /&gt;
 # &amp;quot;Rede média&amp;quot; para o modelo de 2 herbívoros com dinâmica dos fragmentos &lt;br /&gt;
 # Jhordan Silveira de Borba &lt;br /&gt;
 # sbjhordan@gmail.com&lt;br /&gt;
 #Bibliotecas&lt;br /&gt;
 import numpy as np                                      # Biblioteca de funções matemáticas&lt;br /&gt;
 import copy                                             # Biblioteca com funções para copiar&lt;br /&gt;
 import random                                           # Biblioteca para gerar números aleatórios&lt;br /&gt;
 #CONDIÇÕES INICIAIS ------------------------------------------------------&lt;br /&gt;
 maxt = 500      #tiempo total de cada realizacion&lt;br /&gt;
 Lx   = 100      #tamaño del sustrato en la coordenada x&lt;br /&gt;
 Ly   = 100&lt;br /&gt;
 #Fracciones iniciales&lt;br /&gt;
 x10  = 0.3  #fraccion inicial de sitios ocupados por x1&lt;br /&gt;
 x20  = 0.3  #fraccion inicial de sitios ocupados por x2&lt;br /&gt;
 h0   = 1.   #fraccion inicial de sitios disponibles&lt;br /&gt;
 #Tasas               &lt;br /&gt;
 cx1   = 0.04         #colonizaciones       &lt;br /&gt;
 cx2   = 0.7        &lt;br /&gt;
 ex1   = 0.01         #extinciones       &lt;br /&gt;
 ex2   = 0.01      &lt;br /&gt;
 to    = 100          #Tempo de ocupação  &lt;br /&gt;
 tr    = 20           #Tempo de recuperação&lt;br /&gt;
 g     = 0.1          #Taxa de variação dos fragmentos&lt;br /&gt;
 t     = tr+to&lt;br /&gt;
 con1=1               #Controle do registro&lt;br /&gt;
 #Inicializaciones&lt;br /&gt;
 sh =[]                        # Histórico da matriz de habitat&lt;br /&gt;
 x2h=[]                        # Histórico da matriz de ovelhas&lt;br /&gt;
 s  = np.full((Lx, Ly), [1])   # matriz de habitat (1=sitio disponible, 0=destruido)&lt;br /&gt;
 x1 = np.full((Lx, Ly), [0])   # 1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 x2 = np.full((Lx, Ly), [0])   # 1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
 sh.append(s)&lt;br /&gt;
 x2h.append(x2)&lt;br /&gt;
 for i in range(Lx):           # Distribuição inicial&lt;br /&gt;
   for j in range (Ly):&lt;br /&gt;
     if (np.random.rand() &amp;lt; (1-h0) ): s[i,j]=0&lt;br /&gt;
     if (np.random.rand() &amp;lt; x10/h0 and s[i,j]==1): x1[i,j]=1&lt;br /&gt;
     if (np.random.rand() &amp;lt; x20/h0 and s[i,j]==1): x2[i,j]=1&lt;br /&gt;
 #Lazo temporal&lt;br /&gt;
 fx1=sum(sum(x1))/((Lx)*(Ly))&lt;br /&gt;
 fx2=sum(sum(x2))/((Lx)*(Ly))&lt;br /&gt;
 fs =sum(sum(s)) /((Lx)*(Ly))&lt;br /&gt;
 f = open(&amp;quot;temporal2019.dat&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
 f.write(&amp;quot;	&amp;quot;+str(0)+&amp;quot;	&amp;quot;+str(fx1)+&amp;quot;	&amp;quot;+str(fx2)+&amp;quot;	&amp;quot;+str(fs)+&amp;quot;\n&amp;quot;)&lt;br /&gt;
 for it in range(maxt):&lt;br /&gt;
     if (float(it)%(float(maxt)/100)==0.):&lt;br /&gt;
         print(&amp;quot;Porcentagem: &amp;quot;+str(it*100/maxt))  # Exibe o passo atual       &lt;br /&gt;
     #ESPALHAMENTO&lt;br /&gt;
     nx1=sum(sum(x1))&lt;br /&gt;
     nx2=sum(sum(x2))&lt;br /&gt;
     ns =sum(sum( s))&lt;br /&gt;
     s  = np.full((Lx, Ly), [0])   # matriz de habitat (1=sitio disponible, 0=destruido)&lt;br /&gt;
     x1 = np.full((Lx, Ly), [0])   # 1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
     x2 = np.full((Lx, Ly), [0])   # 1 = sitio ocupado, 0 sitio vazio&lt;br /&gt;
     for i in range (max(nx1,nx2,ns)): #Quantidade máxima de animais que vamos espalhar&lt;br /&gt;
         if(i&amp;lt;ns):                     #Esoalhando os fragmentos &lt;br /&gt;
             (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
             while(True):&lt;br /&gt;
                 if(s[a,b]==0):        #Se escolhemos um fragmento destruído&lt;br /&gt;
                     s[a,b]=1          #Revitalizamos&lt;br /&gt;
                     break             #E saímos do loop&lt;br /&gt;
                 else:                 #Se não repetimos&lt;br /&gt;
                     (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
         if(i&amp;lt;nx1):                    #Competidor superior&lt;br /&gt;
             (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
             while(True):&lt;br /&gt;
                 if(x1[a,b]==0):&lt;br /&gt;
                     x1[a,b]=1&lt;br /&gt;
                     break&lt;br /&gt;
                 else:&lt;br /&gt;
                     (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
         if(i&amp;lt;nx2):                    #Competidor inferior&lt;br /&gt;
             (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))&lt;br /&gt;
             while(True):&lt;br /&gt;
                 if(x2[a,b]==0):&lt;br /&gt;
                     x2[a,b]=1&lt;br /&gt;
                     break&lt;br /&gt;
                 else:&lt;br /&gt;
                     (a,b)=(random.randint(0,Lx-1),random.randint(0,Ly-1))              &lt;br /&gt;
     sold =copy.copy(s )&lt;br /&gt;
     x1old=copy.copy(x1)              #poblaciones del paso anterior&lt;br /&gt;
     x2old=copy.copy(x2)      &lt;br /&gt;
     for i in range (0,Lx-1):&lt;br /&gt;
         for j in range (0,Ly-1):&lt;br /&gt;
         #COLONIZAÇÃO+++++++++++++++++++++++++++++++++++&lt;br /&gt;
             #Guanaco&lt;br /&gt;
             if (x1old[i,j]==1):&lt;br /&gt;
                 for a in range(1):&lt;br /&gt;
                     m=random.randint(0,Lx-1)&lt;br /&gt;
                     n=random.randint(0,Ly-1)&lt;br /&gt;
                     if (sold[m,n]==1 and x1old[m,n]==0):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cx1):&lt;br /&gt;
                             x1[m,n]=1                &lt;br /&gt;
             #Ovelha&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 for a in range(1):&lt;br /&gt;
                     m=random.randint(0,Lx-1)&lt;br /&gt;
                     n=random.randint(0,Ly-1)&lt;br /&gt;
                     if (sold[m,n]==1 and (x1old[m,n]==0 and x2old[m,n]==0)):&lt;br /&gt;
                         if (np.random.rand()&amp;lt;= cx2):&lt;br /&gt;
                             x2[m,n]=1&lt;br /&gt;
             #EXTINÇÃO     &lt;br /&gt;
             #Guanaco&lt;br /&gt;
             if (x1old[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ex1):&lt;br /&gt;
                         x1[i,j]=0&lt;br /&gt;
             #Ovelha&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 if (np.random.rand()&amp;lt;= ex2):&lt;br /&gt;
                         x2[i,j]=0   &lt;br /&gt;
             #DESLOCAMENTO+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
             if (x2old[i,j]==1):&lt;br /&gt;
                 m=random.randint(0,Lx-1)&lt;br /&gt;
                 n=random.randint(0,Ly-1)&lt;br /&gt;
                 if ( x1old[m,n]==1):&lt;br /&gt;
                     if (np.random.rand()&amp;lt;= cx1):&lt;br /&gt;
                         x2[i,j]=0            &lt;br /&gt;
             #Dinâmica dos patches+++++++++++++++++++++++++++++++++++++++++++                      &lt;br /&gt;
             if(it+2&amp;gt;to):                       #Se passou o primeiro período de ocupação&lt;br /&gt;
                 if (x2h[to-1][i,j]==1):        #Então há destruição de fragmentos&lt;br /&gt;
                     m=random.randint(0,Lx-1)&lt;br /&gt;
                     n=random.randint(0,Ly-1)&lt;br /&gt;
                     if (sh[to-1][m,n]==1):&lt;br /&gt;
                         if(np.random.rand()&amp;lt;=g):&lt;br /&gt;
                             li=np.where(s==1)  #Elementos que são 1&lt;br /&gt;
                             if(len(li[0])==1):&lt;br /&gt;
                                 k=0&lt;br /&gt;
                             elif(len(li[0])&amp;gt;1):&lt;br /&gt;
                                 k=random.randint(0,len(li[0])-1) #Sorteio do elemento&lt;br /&gt;
                                 s[li[0][k],li[1][k]]=0&lt;br /&gt;
             if(it+2&amp;gt;t):                        #Se passou do período de oucpação e recuperação &lt;br /&gt;
                 if (x2h[t-1][i,j]==1):         #Há recuperação do habitat&lt;br /&gt;
                     m=random.randint(0,Lx-1)&lt;br /&gt;
                     n=random.randint(0,Ly-1)&lt;br /&gt;
                     if (sh[t-1][m,n]==1):&lt;br /&gt;
                         if(np.random.rand()&amp;lt;=g):&lt;br /&gt;
                             li=np.where(s==0)  &lt;br /&gt;
                             if (len(li[0])==1):&lt;br /&gt;
                                 k=0&lt;br /&gt;
                             elif(len(li[0])&amp;gt;1):&lt;br /&gt;
                                 k=random.randint(0,len(li[0])-1) &lt;br /&gt;
                                 s[li[0][k],li[1][k]]=1                              &lt;br /&gt;
     sh.insert(0,copy.copy(s))   #Adiciona o estado atual no histórico&lt;br /&gt;
     x2h.insert(0,copy.copy(x2))&lt;br /&gt;
     if (it&amp;gt;=t):                 #Exclui estados que não serão mais utilizados&lt;br /&gt;
         sh.pop()&lt;br /&gt;
         x2h.pop()&lt;br /&gt;
     if (con1==1):      &lt;br /&gt;
         fx1=sum(sum(x1))/((Lx)*(Ly))&lt;br /&gt;
         fx2=sum(sum(x2))/((Lx)*(Ly))&lt;br /&gt;
         fs =sum(sum(s ))/((Lx)*(Ly))&lt;br /&gt;
         f.write(&amp;quot;	&amp;quot;+str(it+1)+&amp;quot;	&amp;quot;+str(fx1)+&amp;quot;	&amp;quot;+str(fx2)+&amp;quot;	&amp;quot;+str(fs)+&amp;quot;\n&amp;quot;)&lt;br /&gt;
         con1=0           &lt;br /&gt;
     con1=con1+1&lt;br /&gt;
 f.close()&lt;br /&gt;
&lt;br /&gt;
====== Principais materiais utilizados ======&lt;br /&gt;
&lt;br /&gt;
* [https://youtu.be/Kt4DUq9mgKQ?t=2476 Minicurso de Redes complexas] (Silvio Ferreira, ENMM-Covid19)&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS) ]] |[[ Autômato celular e modelo baseado em indivíduos]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Contexto&amp;diff=7851</id>
		<title>Contexto</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Contexto&amp;diff=7851"/>
		<updated>2022-07-20T20:19:24Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[MBA: Caminhante aleatório]] |[[Modelo de Levins]]}}&lt;br /&gt;
===Contexto histórico===&lt;br /&gt;
O ecossistema considerado no estudo é uma rede trófica simples constituída de um único predador e duas presas competindo na estepe da Patagônia.&lt;br /&gt;
&lt;br /&gt;
*''Puma concolor'': a puma, um carnívoro e predador natural;&lt;br /&gt;
*''Lama gunicoe'': o guanaco, um herbívoro natural da região também;&lt;br /&gt;
*''Ovis aries'': um herbíviro introduzido na região, competidor com o guanaco e presa para a puma.&lt;br /&gt;
&lt;br /&gt;
Esse sistema é resultado de uma longa sequência de eventos históricos e ecológicos. A fauna nativa da Patagônia é composta por sobrevives de cinco grandes processos de extinções, dentre estes animais podemos destacar a puma e guanacos: são os maiores mamíferos nativos e coexistiram por mais de 13.000 anos com os seres humanos, sem registro de variações consideráveis na população até o fim do século 20. Há registros de uma grande abundância de guanacos em coexistência sustentável com as populações nativas até a chegada dos imigrantes europeus.&lt;br /&gt;
&lt;br /&gt;
Por volta da década 1880-90,o exército militar argentino tomou o território da população nativa e grandes extensões da estepe da Patagônia foram subdividas em fazendas privadas por meio de uma gigante malha de cercas, cerca de 95% destas fazendas se devotaram a pecuária de ovelha. &lt;br /&gt;
&lt;br /&gt;
===Contexto ecológico===&lt;br /&gt;
&lt;br /&gt;
Guanacos e ovelhas competem principalmente por água e forragem, de uma dieta composta por 80 espécies de plantas, ambos compartilham 76. Porém neta competição, guanacos são naturalmente superiores, isto se manifesta na capacidade dos guanacos de expulsar ovelhas de fontes de água por exemplo, incluindo fontes artificiais. Este  fenômeno é bem observado e faz parte da cultura rural  local.&lt;br /&gt;
&lt;br /&gt;
Porém precisamos lembrar que na prática, o ocorre não é uma competição apenas entre as espécies (apesar que por simplicidade vamos nos referir assim em outros momentos), mas as ovelhas são fruto da pecuária humana, e as mesmas contam com a proteção humana a seu favor. Por exemplo, naturalmente com a deterioração do ambiente e desertificação, a superioridade do guanaco se sobressairia pois são melhores adaptados ao ambiente, porém esse processo natural costuma ser alterado com o aumento da caçada humana por guanacos, porque os fazendeiros querem maximizar os escassos recursos para a produção. Períodos de seca catalisam essas crises socioambientais, chegando a destruir a capacidade de suportar tanto pecuária quanto a vida selvagem.&lt;br /&gt;
&lt;br /&gt;
Sobre os pumas, eles são alvos de permanente remoção dos fazendeiros, porque isto reduz os custos de produção. Apesar de os guanacos terem sido a presa natural por milhares de anos, o fato de terem convivido e evoluído junto com as pumas por tanto, os tornaram significativamente mais adaptados do que as ovelhas. Assim as ovelhas que apresentam um custo de energia reduzido para serem rastreada e predadas, assim se tornando a presa preferencial.&lt;br /&gt;
&lt;br /&gt;
A interação entre guanaco, puma e ovelha é fortemente influenciada por decisões dos fazendeiros. Para estes, a fauna é um custo de produção e a tolerância pode ser caracterizada em três cenários:&lt;br /&gt;
&lt;br /&gt;
* '''Baixo conflito''': Ocorre se o custo da presença da vida selvagem é financeiramente compensada pelo ecoturismo ou o governo. Então os fazendeiros toleram a presença da vida selvagem coexistindo com a criação pecuária em uma densidade que não é danosa para o sistema,então se o uso dos campos for alterado de econômico para conservativo a fauna e floral se regeneram rapidamente.&lt;br /&gt;
* '''Médio conflito''': Ocorre em campos bem manejados e com uma criação pecuária em uma densidade saudável o suficiente para tolerar a coexistência com a vida selvagem. Nesse caso é necessário extensas áreas de terra para que a densidade do rebanho de ovelhas seja baixa e se o uso do campo for alterado de econômico para conservativo, a fauna e a flora se recuperam, mas não tão rapidamente quanto o cenário anterior.&lt;br /&gt;
* '''Alto conflito''': Quando os fazendeiros dependem exclusivamente da produção de ovelhas, o conflito é alto que porque a vida selvagem vai contra seus interesses. Então há um aumento na caça a vida selvagem. O fazendeiro prioriza o lucro a curto prazo acima da sustentabilidade  o que leva a um loop negativo: conforme a produção decai, o fazendo aumenta a a densidade do rebanho de ovelha para manter os lucros, isso leva a uma deterioração do ecossistema e uma nova queda nos lucros, então o fazendeiro aumenta novamente a densidade de rebanho, recomeçando o ciclo. Isto se repete até que ocorra um colapso o sistema produtivo e o consequente abandono do campo.&lt;br /&gt;
&lt;br /&gt;
Neste último cenário, mesmo sem competidores nem predadores, a população nativa de herbívoros não consegue recuperar a população a níveis viáveis porque não há mais recursos suficientes para os sustentar. Infelizmente esse é um frequente cenário na Patagônia, &lt;br /&gt;
&lt;br /&gt;
===Características gerais para um modelo===&lt;br /&gt;
*Modelo de [[Modelo de Levins|metapopulação]];&lt;br /&gt;
*A perturbação humana é representada ao considerar partes do terreno inabitável. Uma fração &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; dos fragmentos estão destruídos e não estão disponíveis para ocupação durante toda simulação;&lt;br /&gt;
*A dinâmica da ocupação e abandono de fragmentos obedece os diferentes processos ecológicos que guiam a dinâmica de metapopulações:&lt;br /&gt;
**Pumas e guanacos podem colonizar qualquer fragmento que não esteja destruído nem já ocupado pela própria espécie.&lt;br /&gt;
**Guanacos são competidores superiores a ovelha, é uma competição hierárquica, portanto ovelhas não podem colonizar fragmentos que estejam ocupados por guanacos. &lt;br /&gt;
***Para sobreviver a ovelha precisa ter alguma vantagem, isso pode ser implementado em outros parâmetros da dinâmica, sendo um melhor colonizador por exemplo. Isto é coerente com o contexto que as ovelhas pois possuem o auxílio dos fazendeiros.&lt;br /&gt;
***Guanacos também podem expulsar as ovelhas de fragmentos ocupados por ambos.&lt;br /&gt;
**A predação é levado em conta como um aumento na probabilidade da extinção local da população na presença da população local de predadores.&lt;br /&gt;
Especificamente o parâmetros  que são utilizados nos diversos modelos são:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\left\{ x_1,x_2,y \right\} &amp;lt;/math&amp;gt;: frações do habitat ocupado por guanacos, ovelhas e pumas, respectivamente;&lt;br /&gt;
* &amp;lt;math&amp;gt;\left\{ c_{x_1},c_{x_2},c_y \right\} &amp;lt;/math&amp;gt;: taxa de colonização de cada espécie;&lt;br /&gt;
* &amp;lt;math&amp;gt;\left\{ e_{x_1},e_{x_2},e_y \right\} &amp;lt;/math&amp;gt;: taxa de extinção local local de cada espécie;&lt;br /&gt;
* &amp;lt;math&amp;gt;\left\{ \mu_{x_1},\mu_{x_2} \right\} &amp;lt;/math&amp;gt;: taxa de predação do guanaco e da ovelha&lt;br /&gt;
&lt;br /&gt;
Além disso, temos a fração &amp;lt;math&amp;gt;D &amp;lt;/math&amp;gt; de fragmentos destruídos e parâmetros devem obedecer algumas relações baseado nas discussões anteriores &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c_{x_{2}}&amp;gt;c_{x_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;e_{x_{2}}&amp;lt;e_{x1}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mu_{x_{2}}\gg\mu_{x_{1}}&amp;lt;/math&amp;gt;. Isto garante que a ovelha seja um melhor colonizador, assim como a preferência da predação do puma pela ovelha.&lt;br /&gt;
&lt;br /&gt;
===Principal material utilizado===&lt;br /&gt;
#[https://arxiv.org/pdf/1409.0024.pdf Mathematical model of livestock and wildlife: Predationand competition under environmental disturbances] (Fabiana Laguna e outros, Ecological Modelling)&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[MBA: Caminhante aleatório]] |[[Modelo de Levins]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=MBA:_Caminhante_aleat%C3%B3rio&amp;diff=7850</id>
		<title>MBA: Caminhante aleatório</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=MBA:_Caminhante_aleat%C3%B3rio&amp;diff=7850"/>
		<updated>2022-07-20T20:18:56Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: Criou página com '{{Ecologia| Por que usar e o que são modelos baseados em indivíduos |Contexto}} = Caminhante aleatório = O problema do caminhante aleatório pode ser definido da se...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[Contexto]]}}&lt;br /&gt;
= Caminhante aleatório =&lt;br /&gt;
O problema do caminhante aleatório pode ser definido da seguinte forma: Um homem começa de um ponto &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;lt;/math&amp;gt; e caminha 1 metro em uma linha reta, então ele vira um ângulo qualquer e anda outro &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; metro em uma linha reta. Ele repete esse processo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; vezes, qual é a probabilidade de após estes &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos que o homem esteja a uma distância entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;r+\delta r&amp;lt;/math&amp;gt; da origem.&lt;br /&gt;
&lt;br /&gt;
Inspirado por este problema, propõe-se uma situação bidimensional similar. A principal diferença constitui-se no fato de que o ângulo não é mais aleatório. Reescrevendo o problema, agora em cada um dos eixos, nos quais o homem se move de maneira independe, há uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p&amp;lt;/math&amp;gt; de se mover &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; metro em um sentido e uma probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;q=1-p&amp;lt;/math&amp;gt; de se mover no sentido contrário.&lt;br /&gt;
&lt;br /&gt;
Trabalhando inicialmente apenas com uma dimensão, executando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos, um caminho possível para o homem terminar a simulação em uma posição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=n_1-n_2&amp;lt;/math&amp;gt; tendo dado &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_1&amp;lt;/math&amp;gt; passos à direita e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_2&amp;lt;/math&amp;gt; passos à esquerda, é dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p^{n_{1}}q^{n_{2}}=p^{\frac{N+m}{2}}q^{\frac{N-m}{2}}&amp;lt;/math&amp;gt;Pois sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=n_1+n_2&amp;lt;/math&amp;gt; podemo escrever: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;n_{1}=\frac{N+m}{2},\qquad n_{2}=\frac{N-m}{2}&amp;lt;/math&amp;gt;Porém, está é a probabilidade de obtermos apenas um dos caminhos que leva o homem a &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m&amp;lt;/math&amp;gt;. O número total de caminhos indistinguíveis com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_1&amp;lt;/math&amp;gt; passos à direita e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_2&amp;lt;/math&amp;gt; passos a esquerda é dado por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{N!}{n_{1}!n_{2}!}=\frac{N!}{n_{1}!\left(N-n_{1}\right)!}=\frac{N!}{\left(\frac{N+m}{2}\right)!\left(\frac{N-m}{2}\right)!}&amp;lt;/math&amp;gt; Temos então que a probabilidade estar na posição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m&amp;lt;/math&amp;gt; após &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos é dado por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(m,N\right)=\frac{N!}{\left(\frac{N+m}{2}\right)!\left(\frac{N-m}{2}\right)!}p^{\frac{N+m}{2}}q^{\frac{N-m}{2}}&amp;lt;/math&amp;gt; Ou reescrevendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}=n&amp;lt;/math&amp;gt; para facilitar, e lembrando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}=\frac{N+m}{2}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=n_{1}+n_{2}&amp;lt;/math&amp;gt;: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(n\right)=\frac{N!}{n!\left(N-n\right)!}p^{n}q^{N-n}=\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)p^{n}q^{N-n}&amp;lt;/math&amp;gt; Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\begin{array}{c}N\\n \end{array}\right)=C_{n}^{N}&amp;lt;/math&amp;gt; também é chamado de combinatória. Utilizando o binômio de Newton: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(x+y\right)^{n}=\sum_{k=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
n\\&lt;br /&gt;
k&lt;br /&gt;
\end{array}\right)x^{n-k}y^{k}&amp;lt;/math&amp;gt;Temos a normalização: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sum_{n=0}^{n}p\left(n\right)=\sum_{n=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}=\left(p+q\right)^{N}=1&amp;lt;/math&amp;gt;Uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p+q=1&amp;lt;/math&amp;gt;. E lembrando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(n\right)&amp;lt;/math&amp;gt; é a probabilidade de estar em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=2n-N&amp;lt;/math&amp;gt;, ou seja de obtermos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; vezes passo a direita em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos no total, então o valor médio de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; pode ser dado por: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left\langle n\right\rangle =\sum_{n=0}^{N}np\left(n\right)&amp;lt;/math&amp;gt;Derivando o binômio de Newton: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
p\frac{d}{dp}\left(p+q\right)^{N}=pN\left(p+q\right)^{N-1}=pN\end{array}&amp;lt;/math&amp;gt;E também: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
p\frac{d}{dp}\left(p+q\right)^{N} &amp;amp; =p\frac{d}{dp}\left[\sum_{n=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}\right]\\&lt;br /&gt;
 &amp;amp; =p\sum_{n=0}^{n}n\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n-1}\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{n}n\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{n}np\left(n\right)\end{align}&amp;lt;/math&amp;gt;Então: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;pN=\sum_{n=0}^{n}np\left(n\right)=\left\langle n\right\rangle&amp;lt;/math&amp;gt;E com isso podemos obter a posição final média &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle m\right\rangle&amp;lt;/math&amp;gt;. Utilizando a notação anterior posição final exata é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=n_1-n_2&amp;lt;/math&amp;gt;, ou ainda podemos rescrever como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=2n-N&amp;lt;/math&amp;gt;, pois: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;n_{1}-n_{2}=n_{1}-\left(N-n_{1}\right)=2n_{1}-N&amp;lt;/math&amp;gt; A partir destes resultados podemos obter: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\left\langle m\right\rangle  &amp;amp; =\sum_{n=0}^{N}mp\left(n\right)\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{N}\left(2n-N\right)p\left(n\right)\\&lt;br /&gt;
 &amp;amp; =2\sum_{n=0}^{N}np\left(n\right)-\sum_{n=0}^{N}Np\left(n\right)\\&lt;br /&gt;
 &amp;amp; =2\left\langle n\right\rangle -N\sum_{n=0}^{N}p\left(n\right)\\&lt;br /&gt;
 &amp;amp; =2\left\langle n\right\rangle -N\end{align}&amp;lt;/math&amp;gt; A princípio, não temos motivos para dar preferência para o movimento em nenhuma direção, logo é razoável utilizar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p=q=1/2&amp;lt;/math&amp;gt;, o que resulta em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle n\right\rangle=N/2&amp;lt;/math&amp;gt; consequentemente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle m\right\rangle=0&amp;lt;/math&amp;gt;. O que pode parecer contra-intuitivo para nosso modelo, mas além de distribuirmos animais por todo o espaço, o que resultado implica é a posição final média, mas é preciso entender que não impede que ao longo da simulação cada indivíduo percorra diferentes áreas do espaço.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;distribuição-gaussiana&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Distribuição Gaussiana ==&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N\rightarrow\infty&amp;lt;/math&amp;gt; tendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p \not\approx 1&amp;lt;/math&amp;gt; temos a distribuição Gaussiana: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(n\right)=\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)p^{n}q^{N-n}\approx\frac{1}{\sqrt{2\pi Npq}}\exp\left(\frac{-\left(n-Np\right)^{2}}{2Npq}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Foi realizada uma simulação utilizando Python e o módulo Mesa, grande parte do código segue a mesma discussão feita anteriormente no Jogo da Vida. A figura ilustra uma simulação com 10.000 caminhantes aleatórios em uma grade 100 X 100, iniciando na posição P=(50,50).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;[[Ficheiro:mba_gauss.png|centro|miniaturadaimagem|750x750px|Resultado da simulação com a distribuição gaussiana sobreposta para N=100 para ambas as coordenadas.]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Código = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Agendador simultâneo&lt;br /&gt;
from mesa.space import MultiGrid                                   #Malha multigrid&lt;br /&gt;
import random                                                      #Número aleatórios&lt;br /&gt;
&lt;br /&gt;
#AGENTE---------------------------------------------------------------------------------&lt;br /&gt;
class Agente(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Classe do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self,modelo):&lt;br /&gt;
      &amp;quot;&amp;quot;&amp;quot;Bibliotecas necessárias&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
      #modelo     - Modelo que ao qual o agente pertence&lt;br /&gt;
      super().__init__(self,modelo)             #Necessário para funcionar o modelo&lt;br /&gt;
      self.ppos=(0,0)&lt;br /&gt;
      &lt;br /&gt;
    def step(self):&lt;br /&gt;
      &amp;quot;&amp;quot;&amp;quot;Método obrigatório que prepara as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
      dx = (+1) if (random.random()&amp;lt;0.5) else(-1)&lt;br /&gt;
      dy = (+1) if (random.random()&amp;lt;0.5) else (-1)&lt;br /&gt;
      self.ppos = (self.pos[0]+dx,self.pos[1]+dy)                                 #Próxima posição&lt;br /&gt;
          &lt;br /&gt;
    def advance(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que aplica as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.model.grid.move_agent(self, self.ppos)&lt;br /&gt;
&lt;br /&gt;
#MODELO&lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    def __init__(self, modelo,N,seed=None):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função chamada quando o modelo é inicializazdo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # Modelo   - Dicionário com especificações do modelo&lt;br /&gt;
        # N        - Quantiade de caminhantes&lt;br /&gt;
        # seed     - Seed dos números aleatórios do modelo do mesa&lt;br /&gt;
        &lt;br /&gt;
        largura = modelo[&amp;quot;Largura&amp;quot;];altura=modelo[&amp;quot;Altura&amp;quot;];seed_random=modelo[&amp;quot;Seed&amp;quot;]&lt;br /&gt;
        random.seed(seed_random)                                 #Seed dos números aleatórios&lt;br /&gt;
        self.grid     = MultiGrid(largura, altura, True)         #Configura a grade&lt;br /&gt;
        self.schedule = SimultaneousActivation(self)             #Configura o agendador&lt;br /&gt;
        self.running  = True                                     #Condiçao para seguir executando o modelo&lt;br /&gt;
        for n in range(N):&lt;br /&gt;
          a = Agente(self)&lt;br /&gt;
          self.schedule.add(a)&lt;br /&gt;
          X= 50&lt;br /&gt;
          Y= 50&lt;br /&gt;
          self.grid.place_agent(a, (X, Y))&lt;br /&gt;
            &lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Avançar um passo do modelo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.schedule.step()                              #Avançamos os agentes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MAX =100&lt;br /&gt;
N=10000&lt;br /&gt;
modelo  = {&amp;quot;Largura&amp;quot;:100   ,&amp;quot;Altura&amp;quot;:100       ,&amp;quot;Seed&amp;quot;:0} &lt;br /&gt;
M = Modelo(modelo,N)&lt;br /&gt;
for i in range(MAX):&lt;br /&gt;
    M.step()&lt;br /&gt;
    if ((i+1)%(MAX/100)==0):&lt;br /&gt;
      print(str(100*(1+i)/MAX)+&amp;quot;%&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E o gráfico foi gerado utilizando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
x=[];y=[]&lt;br /&gt;
for a in M.schedule.agents:&lt;br /&gt;
  x.append(a.pos[0])&lt;br /&gt;
  y.append(a.pos[1])&lt;br /&gt;
&lt;br /&gt;
a,b,c=plt.hist(x, 70, density=True, facecolor='g', alpha=0.75)&lt;br /&gt;
m=1&lt;br /&gt;
K=100&lt;br /&gt;
X=np.arange(0,100, 0.1)&lt;br /&gt;
sigma = 2*np.pi*K*0.5*0.5&lt;br /&gt;
plt.plot(X,np.exp(-((X-K*0.5)**2)/sigma)/(np.sqrt(sigma)))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima fazendos um histograma das posições em x, uma alteração simples permite visualizarmos o equivalente em y.&lt;br /&gt;
&lt;br /&gt;
= Principais materiais utilizados: =&lt;br /&gt;
&lt;br /&gt;
* [https://www.nature.com/articles/072294b0 The Problem of the Random Walk]. (Karl Pearson, Nature)&lt;br /&gt;
* [https://books.google.com.br/books?id=ue1ScAAACAAJ A Modern Course in Statistical Physics] (L.E. Reichl)&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Por que usar e o que são modelos baseados em indivíduos]] |[[Contexto]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mba_gauss.png&amp;diff=7849</id>
		<title>Arquivo:Mba gauss.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mba_gauss.png&amp;diff=7849"/>
		<updated>2022-07-20T20:17:14Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7848</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7848"/>
		<updated>2022-07-20T19:38:13Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[AC: Jogo da Vida]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logísticos]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Por_que_usar_e_o_que_s%C3%A3o_modelos_baseados_em_indiv%C3%ADduos&amp;diff=7847</id>
		<title>Por que usar e o que são modelos baseados em indivíduos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Por_que_usar_e_o_que_s%C3%A3o_modelos_baseados_em_indiv%C3%ADduos&amp;diff=7847"/>
		<updated>2022-07-20T19:37:57Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[AC: Jogo da Vida]] |[[Por que usar e o que são modelos baseados em indivíduos]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Uma breve descrição do que é modelagem baseada em indivíduos:&lt;br /&gt;
&lt;br /&gt;
* Agente: indivíduo computacional autônomo.&lt;br /&gt;
* Modelagem baseada em agentes: forma de modelagem computação no qual um fenômeno é modelado em termos dos agentes e suas interações.&lt;br /&gt;
&lt;br /&gt;
Representações bseadas em agentes são mais fáceis de entender que representações matemáticas dos mesmos problemas, pois a língua e conceitos usados nestas modelagens é mais próximas da linguagem natural e nossa forma natural de pensar qundo comparado com modelagens matemáticas.&lt;br /&gt;
&lt;br /&gt;
Alguns conceito interessantes:&lt;br /&gt;
&lt;br /&gt;
* Estruturação: A codificação do conhecimento em um domínio como uma função da infraestrutura representacional usada para expressar o conhecimento. Ex.: Números romanos.&lt;br /&gt;
* Reestruturação: uma mudanção de uma estruturação para outra. Ex.: Mudança de números romanos para hindu-arábicos&lt;br /&gt;
* Inercia estruturacional: resistenência à reestruturação.&lt;br /&gt;
&lt;br /&gt;
=== Entendendo sistemas complexos e emergência ===&lt;br /&gt;
&lt;br /&gt;
Emergência é definido como o surgimento de estruturas, padrões e propriedades novas e coerentes através da interação de múltiplos agentes distribuíbos. Algumas característica da emergência são:&lt;br /&gt;
&lt;br /&gt;
* As estruturas emergentes não podem ser deduzidas apenas a partir das propriedades dos elementos, elas surgem da interação dos elementos e são propriedades do sistema.&lt;br /&gt;
* Auto-organização: um padrão global surge espontaneamente sem a presença de um coordenador central.&lt;br /&gt;
* A emergência também pode ser visto como um processo mantendo a estrutura no lugar ao invés de uma entidade.&lt;br /&gt;
&lt;br /&gt;
Há dois desafios distintos:&lt;br /&gt;
&lt;br /&gt;
* Entendimento integrativo: uma vez que sabemos como cada indivíduo age, como descobrir o padrão?&lt;br /&gt;
* Entendimento diferencial: conhecendo o padrão, como descobrir o comportamento dos elementos que geram o padrão?&lt;br /&gt;
&lt;br /&gt;
Pesquisas indicaram a existência de um padrão cognitivo determinista e centralizado. Isto é, a maioria dos participantes envolvidos nesta pesquisa não acreditam que elementos aleatórios possam ser uma força construtiva para a formação de um padrão, pelo contrário, acreditam que seja destrutivo (determinista). Além disso também acreditam que os padrões surgem da ações de um controlador (centralizado). Um obstáculo para a melhor compreensão deste fenômenos é a dificuldade em ’pensar em níveis’. Pois fenômenos emergentes existem em dois níves: o nível dos agentes individualmente e o nível do sistema, onde os padrões são observados.&lt;br /&gt;
&lt;br /&gt;
Pensando em um grupo de pássaros voando na formação, a formação consistente de aparentemente estabilidade leva as pessoas a a concluir que os elementos individualmente do bando também são estáveis e possuem um lugar consistente, transferindo uma propriedade do sistema para os indivíduos.&lt;br /&gt;
&lt;br /&gt;
Pensando em um engarrafamento, estamos acostumados a pensar como o indivíduo no carro, parando o caro em frente à um acidente e se movendo quando não há carro, então quando se defrontado com um engarrafemto é fácil pensar em todo engarrafament se movendo quando possível e parando em frente à um acidente por exemplo, ao invés de pensar que há algo retrocedendo, que é um comportamento observado frequentemente nos engarrafamentos. Desta vez o que ocorre é transferir uma propriedade dos indivíduos para o sistema.&lt;br /&gt;
&lt;br /&gt;
=== Reestruturação ===&lt;br /&gt;
&lt;br /&gt;
Da mesma forma que houve uma reestruturação na substituição dos números romanos para os árabes, é possível que a representação computacional ajude a reestruturar o conhecimento em muitos domínios, onde tradicionalmente era utilizado técnicas matemáicas, agora podemos utilizar simuação computacional para estudar estes fenômenos.&lt;br /&gt;
&lt;br /&gt;
Como o nome sugere, agentes são entidades com propriedades (variáveis de estado, valores) , se o agente é uma ovelha, poder ter propriedades como posição, idade, velocidade, etc... Agentes podem ter uma representação gráfica que o permita ser visualizado, também possuem regras de comportamento, como por exemplo comer grama. Em modelagem baseada em agentes imaginamos um relógio universal, quando o relógio faz ’tic’, todos os agentes invocam suas regras, se as condições são satisfeitas (se há grama próxima por exemplo) então o comporamento é executado.&lt;br /&gt;
&lt;br /&gt;
O objetivo da modelagem é é criar agentes e regras que gerem o comportamento desejado, estes sistemas podem ser usandos para obter um melhor entendimento de um fenômeno através da experimentação das regras e propriedades.&lt;br /&gt;
&lt;br /&gt;
Uma hipótese por teóricos da representação, é de que tudo que é percebido como difícil pode ser mais com compreensível por uma representação mais adequada. Alguns autores afirmam que a modelagem baseada em agentes (ABM) permite a reestruturação da área de sistemas complexos de forma que a compreensão destes sistemas podem ser democratizadas e a ciência possa avançar. Os modelos servem tanto como um objeto para se pensar a respeito do fenômeno modelado, como uma ferramenta para testar diferentes hipóteses.&lt;br /&gt;
&lt;br /&gt;
=== Exemplo conceitual: Modelo de formigas ===&lt;br /&gt;
&lt;br /&gt;
Mais alguns conceitos:&lt;br /&gt;
&lt;br /&gt;
* Modelo: uma descrição abstrata de um processo, objeto, ou evento.&lt;br /&gt;
* Modelo computacional: um modelo que recebe certos valores de entrada, manipula estas entradas de uma forma algorítmica e gera saídas.&lt;br /&gt;
* Implementação de modelo: processo de transformaçãoum modelo conceitual em uma simulação computacional que funciona (um código).&lt;br /&gt;
&lt;br /&gt;
Em uma modelagem baseada em agentes de formigas, cada agente é uma formiga no qual impomos regras básicas de exploração e coleta de alimentos individualmente, assim como liberação de feronômios. Especificamente, do ponto de vista de cada formiga individual, podemos definir as seguintes regras:&lt;br /&gt;
&lt;br /&gt;
# Se eu não estou carregando comida, checo se tem comida aqui. Se tem, eu a pego, se não tem, eu tento seguir a trilha de feronômios mais próxima. Se eu encontro uma, eu viro em direção à este gradiente de feronômio.&lt;br /&gt;
# Se estou carregando comida, eu viro em direção ao ninho liberando feronômio no chão atrá de mim.&lt;br /&gt;
# Eu ando uma quantidade pequena e aleatória de distância para frente.&lt;br /&gt;
&lt;br /&gt;
Como resultado da simulação, o sistema forma “trilhas” que levam as formigas às fontes de comida, exibindo comportamento “ótimo” que as fazem explorar primeiro os recursos mais próximos e hainda “balanço” entre exploração do ambiente e exploração dos seus recursos. Estes três fenômenos não foram codificados nas formigas, são um fenômeno emergente do modelo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O que é então a modelagem e simulação baseada em agentes? == &lt;br /&gt;
&lt;br /&gt;
Um modelo qualquer é sempre uma abstração da realidade, ou seja, uma representação simplificada que preserva uma equivalência adequada para determinadas situações de forma que pode ser vista como uma visão substitutiva da realidade para facilitar o raciocínio. &lt;br /&gt;
&lt;br /&gt;
Modelagem baseada em agentes (''agent based model'' - ABM) é uma forma de modelagem computacional na qual a dinâmica de um sistema complexo (social, biológico, etc) é representada em termos dos agentes e suas interações. Os agentes por suas vezes são indivíduos computacionais autônomos que possuem propriedades e regras de comportamento que regem sua interação com outros agentes e com o ambiente.&lt;br /&gt;
&lt;br /&gt;
A ideia central da modelagem baseada em agentes é que a maioria dos fenômenos do mundo real podem ser efetivamente modelados com agentes, um ambiente e uma descrição das interações agente-agente e agente-ambiente. O objetivo deste tipo de modelagem é criar agentes e regras que gerem o comportamento desejado. Uma vez criado, estes sistemas podem então serem usados para obter um melhor entendimento do fenômeno modelado através da experimentação de diferentes regras e propriedades visando testar diferentes hipóteses.&lt;br /&gt;
&lt;br /&gt;
Há principalmente 8 usos principal para um modelo baseado em agentes:&lt;br /&gt;
&lt;br /&gt;
# Descrição: um modelo desreve um sistema do mundo real, apesar de ser uma simplificação que não contém todos os seus detalhes, ainda sim é uma descrição grosseira da realidade, caso contrário é um modelo inútil. Pois se incorpora todo os aspectos do fenômeno real, é mais fácil observar a realidade, e se não a descreve de nenhuma forma não há motivos para observar.&lt;br /&gt;
# Esclarecimento: os modelos apontam os principais mecanismos em um fenômeno, funcionando então como prova de que um conceito é possível.&lt;br /&gt;
# Experimentação: modelos podem ser executados repetidamente, onde podemos variar os parâmetros para ver seus efeitos no comportamento e na saída.&lt;br /&gt;
# Prever fontes de analogia: podemos encontrar similaridades com outras simplificações, ainda que modelem fenômeno aparanetemente muito diferentes.&lt;br /&gt;
# Comunicação/educação: os modelos podem ser usados para permitir que pessoas explorem e entendam melhor determinados fenômenos, facilitando o aprendizado.&lt;br /&gt;
# Prover peças centrais para o diálogo científico: também chamado de ’um objeto com que pensar’, basicamente se apresenta como uma vantagem em comparação a outros modelos, por exemplo comparando com modelos textuais, elimina amgibuidades de como o leitor pode interpretar a descrição. Possibilitando discutir quais mecanismos são importantes para gerar determinando comportamento removendo ou adicionando novos mecanismos.&lt;br /&gt;
# Experimento mental: não necessariamente representam um fenômeno do mundo real, mas também podem ser experimentos mentais apenas.&lt;br /&gt;
# Predição: um dos propósitos que as pessoas comumente atribuem a modelagem computacional é a predição, de fato pode ter o propóito de pensar sobre futuros cenários utilizando a modelagem como uma ferramenta nesta discussão. Porém há a observação que que a acurácia da predição depende dos dados de entrada, e é difícil avaliar a acurácia de uum modelo para prever eventos que não ocorrem ainda. O que de fato é feito é '''descrever''' padrões passados e com isso '''explicar''' padrões futuros que possam surgir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sistemas complexos são definidos como sistemas compostos de múltiplos elementos individuais que interagem entre si e apresentam um comportamento que não pode ser previsto a partir dos próprios elementos. Como resultado das interações entre os elementos distribuídos surge então um ``fenômeno emergente&amp;quot;, característico de sistemas complexos. Por sua vez, o fenômeno emergente possui duas características essenciais: A primeira é que as estruturas que emergem não podem ser deduzidas apenas das propriedades dos elementos, pois surgem da interação entre eles, ou seja, são propriedades do sistema e não dos elementos que o compõe. E a segunda característica é a auto-organização, isto é,  o fenômeno surge espontaneamente sem a presença de um coordenador central. A emergência pode ser compreendida como o processo que mantém esta estrutura.&lt;br /&gt;
&lt;br /&gt;
A eficiência de um modelo depende da correta tradução da realidade para o modelo no ato de modelar, que por sua vez, é exatamente o ato de simular a realidade através de modelos. É por isto que é importante pensar no modelo antes do próprio ato de modelagem começar, identificar as variáveis relevantes para o problema que será abordado e definir a linguagem que será utilizada, pois a elaboração do modelo depende destes pontos cruciais.  Como um modelo é uma simplificação da realidade, é possível que uma mesma realidade seja modelada de diferentes formas, já que nenhum modelo é a própria realidade, em si, temos como exemplo a forma mais tradicional de modelagem científica de processos dinâmicos: equações diferenciais (''equation based modeling'' - EBM). &lt;br /&gt;
&lt;br /&gt;
Resulta por tanto ser natural comparamos ambas ambas estratégias de modelagem, EBM e ABM. Uma diferença importante é que  ABM pode modelar populações heterogêneas com facilidade enquanto EBM parte geralmente da hipótese de homogeneidade (''mean field''), e em muitas áreas a heterogeneidade possui um papel central. Da mesma forma que o ABM pode ser utilizada para modelar interações complexas entre agentes, também pode ser utilizado para modelar interações complexas entre agentes e o ambiente onde o ambiente é representado por agentes estacionários, assim, além da ABM ser indicada para situações em que temos heterogeneidade entre os agentes, também é indicada quando há um ambiente heterogêneo.&lt;br /&gt;
&lt;br /&gt;
Outra vantagem é que enquanto para modelar com equações precisamos ter um bom conhecimento fenomenológico dos mecanismos internos do sistema de interesse, em ABM precisamos apenas das regras a nível de indivíduos, o que geralmente é mais direto de se obter. Um grande risco no processo de modelagem como um todo é modelarmos os efeitos e não as causas, pela natureza de abordagem mais direta a nível individual da ABM, partimos exatamente da ideia de modelar estas interações para que o fenômeno emergente de nosso interessa seja então o resultado do nosso sistema, permitindo então que naturalmente nos foquemos na causa para entendermos o efeito.  Os resultados do ABM também são mais detalhados uma vez que as saídas não são apenas a nível do sistema, mas também a nível individual. Outra diferença bastante obvia é que ABM representa resultados com indivíduos de forma naturalmente discreta e frequentemente com flutuações (quando se inclui probabilidades) em quanto EBM fornece uma representação contĩnua e sem ruido do mesmo sistema.&lt;br /&gt;
&lt;br /&gt;
A modelagem baseada em agentes também possui uma concepção de tempo mais rica quando comparado com outras técnicas de modelagem, pois nos permite observar os indivíduos interagindo ao longo do tempo. Porém como qualquer modelo, há situações em que o custo de construir uma ABM excede seus benefícios. De maneira geral se o problema envolve um largo número de agentes homogêneos, será possível obter uma solução mais acurada e em menor tempo usando uma solução como campo médio, logo podemos considerar melhor modelado por esta categoria de modelos.&lt;br /&gt;
&lt;br /&gt;
Quanto ao custo computacional em si, há uma relação de custo benefício semelhante a outras formas de modelagem: resultados mais detalhados são obtidos com modelos mais detalhados que exigem maior poder de processamento. Porém, de maneira geral ABM é computacionalmente mais pesado do que EBM, uma vez que estes últimos são relativamente simples, pois frequentemente consistem de um pequeno conjunto de equações. &lt;br /&gt;
&lt;br /&gt;
Por fim, vale-se destacar que a modelagem baseada em agentes permite manter um histórico de interação entre os agentes, e este histórico pode servir para que o agente altere seus comportamentos e estratégias baseadas em eventos passados. Isto o torna uma ferramenta muito útil quando se modela interações complexas de agentes adaptativos. Devido a forma em que os ABM são construídos, novas regras de interação podem ser adicionadas, removidas ou alteradas com relativa facilidade.&lt;br /&gt;
&lt;br /&gt;
Como pode-se perceber, modelagem baseada em agentes é mais um conceito para a construção de um modelo que uma `receita'. De maneira geral, pode-se dizer que a modelagem baseada em agentes é uma modelagem que utiliza agentes, que por sua vez são um tipo de inteligência artificial, de forma que é importante ter um pouco de familiaridade com estes conceitos e outros correlatos.&lt;br /&gt;
&lt;br /&gt;
Inteligência artificial é o único campo a tentar construir sistemas que funcionarão de forma autônoma em ambientes complexos, assim podemos definir inteligência artificial como o estudo de sistemas que recebem entradas do ambiente e executam ações para retornar alguma saída de forma autônoma. Entre teorias existentes que são utilizadas dentro de inteligência artificial, podemos mencionar especialmente o aprendizado de máquina e o algoritmo genético, tópicos que serão discutidos com um pouco mais de detalhes nas próximas seções.&lt;br /&gt;
&lt;br /&gt;
Agentes autônomos são uma abordagem no estudo de IA fortemente inspirado pela biologia. Um agente nada mais é que um sistema que através de sensores consegue perceber o ambiente e agir sob o mesmo, e é autônomo uma vez que suas operações são realizadas sem a interferência do usuário. O sistema que forma o agente de maneira geral pode ser constituído de ''software'' e ''hardware'' permitindo que o sistema manipule um ambiente real.&lt;br /&gt;
&lt;br /&gt;
E por fim, temos que um sistema multiagente (''multiagent sytem'' - MAS) é uma aplicação de agentes, onde tem-se vários agentes, do mesmo ou diferentes tipos, que trabalham de forma colaborativa pra completar uma tarefa ou resolver um problema. Uma característica importante é que compartilham de um mesmo ambiente, sendo necessário então um ''framework'' que permita a comunicação e coordenação entre os agentes.&lt;br /&gt;
&lt;br /&gt;
Uma simulação construída através da ABM  (ainda chamado de ''agent based modelling and simulation'' - ABMS) é um sistema multiagente em um ambiente simulado com um tempo virtual.  Dessa forma dentro da nossa modelagem o sistema do agente é constituído apenas de ''software'', sendo apenas um programa, um agente de existência virtual que percebe e opera sobre um ambiente igualmente virtual. Aqui podemos destacar ainda que apesar de se sobreporem muitas vezes, MAS e ABMS tradicionalmente são discutido na literatura sob diferentes enfoques.  O objetivo da ABM  costumeiramente é entender alguma propriedade emergente que surge do comportamento coletivo do agentes, sendo mais usado em ciências, enquanto MAS tem o objetivo de resolver algum problema em particular sendo mais comumente utilizado nas engenharias. Devido a enorme variedade de aplicações, na literatura ainda podemos encontrar outros nomes para modelos construídos através da ABM dependendo muitas vezes do enfoque como por exemplo ''agent-based simulation'' e ''agent-based systems'' que possuem a mesma abreviatura (ABS), ''agent-based social simulation'' (ABSS) que ainda é sub-dividido em três categorias -  ''social aspects of agent systems''(SAAS), ''multi-agent based simulation'' (MABS) e ''social simulation'' (SocSim)-  além do próprio MAS que aparece também como sinônimo em parte da literatura.&lt;br /&gt;
&lt;br /&gt;
Ainda vale destacar a importância do conhecimento de alguns princípios  básicos para uma boa modelagem. No nosso modelo evidentemente é necessário conhecimento matemático, pois para uma modelagem computacional precisamos abstrair matematicamente. Princípios físicos básicos devem ser considerados  mesmo em simulações básicas, pois por exemplo os animais devem ter uma movimentação plausível, além de outros fenômenos naturais complexos que podem serem adicionados a depender da modelagem. E evidentemente, se faz necessário ter conhecimento de princípios biológico, uma vez que estamos tentando modelar um fenômeno de natureza biológica, particularmente de natureza ecológica no nosso caso. %Uma vez que o cientista responsável pela modelagem precisa trabalhar com observações da natureza que fogem do seu domínio principal, como este é o caso, passa-se a ser obrigatório apoiar-se em modelos já consolidado e consultar a literatura.&lt;br /&gt;
&lt;br /&gt;
Uma vez que construímos um modelo satisfatório, um dos papeis mais importantes da modelagem é a simulação. Pois é através desta que podemos determinar o quanto ela se aproxima da realidade. A partir então do momento que temos um grau de fidelidade aceitável no aspecto que o modelo se propõe a modelar, podemos criar situações que são difíceis de serem observadas e estudadas no mundo, cumprindo então o objetivo de que o modelo possa a ser utilizada como ferramenta de tomada de decisão.&lt;br /&gt;
&lt;br /&gt;
== Principais materiais utilizados: ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.jstor.org/stable/j.ctt17kk851 An Introduction to Agent-Based Modeling Modeling Natural, Social, and Engineered Complex Systems with NetLogo]. (Wilensky U. e Rand W.)&lt;br /&gt;
* [https://www.lume.ufrgs.br/handle/10183/12181 Em busca da aplicabilidade de sociedades articiais em informática educativa] (Henrique Oliveira da Silva, Doutorando da UFRGS)&lt;br /&gt;
* [https://www.intechopen.com/chapters/56573 Introductory Chapter: Multi-Agent Systems](Jorge Rocha, Inês Boavida-Portugal e Eduardo Gomes, Universidade de Lisboa)&lt;br /&gt;
* [https://www.inf.ufrgs.br/~bazzan/downloads/mas_ppsn.pdf Multiagent Systems and Agent-based Modeling and Simulation](Ana L. C. Bazzan, UFRGS)&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[AC: Jogo da Vida]] |[[Por que usar e o que são modelos baseados em indivíduos]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Aut%C3%B4mato_celular_e_modelo_baseado_em_indiv%C3%ADduos&amp;diff=7846</id>
		<title>Autômato celular e modelo baseado em indivíduos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Aut%C3%B4mato_celular_e_modelo_baseado_em_indiv%C3%ADduos&amp;diff=7846"/>
		<updated>2022-07-20T19:35:17Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Simulação e modelo de campo médio ]] |[[AC: Jogo da Vida]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Artificial_society Sociedades artificiais] são modelos da sociologia computacional que são utilizados em análises sociais utilizando simulações computacionais, é um tema bastante conectado à sistemas complexos, desta forma se aproxima dos nossos modelos ecológicos.&lt;br /&gt;
&lt;br /&gt;
Dentre as simulações computacionais utilizadas temos: algoritmos evolucionários (''evolutionary algorithms'' - EA), algoritmos genéticos (''genetic algorithms'' - GA), programação genética ''(genetic programming'' - GP), programação memetica (memetic programming - MP), modelos baseados em agentes (''agent based model'' - ABMs) e ''autômatos celulares'' (cellular automata - CA). Estes dois últimos são de especial interesse para nós.&lt;br /&gt;
&lt;br /&gt;
==Autômatos celulares==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cellular_automaton Autômatos celulares] consistem em uma grade de células, onde cada uma está em um estado possível dentro de um conjunto finito de estados. Utilizando como exemplo para discussões posteriores o [[Modelo espacialmente explícito para 2 espécies|modelo de 2 herbívoros com dinâmica de destruição do sistema]], os possíveis estados de cada célula são:&lt;br /&gt;
&lt;br /&gt;
#D - Destruído&lt;br /&gt;
#L - Livre&lt;br /&gt;
#O - Ocupado por ovelha&lt;br /&gt;
#G - Ocupado por guanaco&lt;br /&gt;
#OG - Ocupado por ovelhas e guanacos&lt;br /&gt;
&lt;br /&gt;
Associado a cada célula temos um conjunto de células que são definidas em relação à esta célula específica, este conjunto recebe o nome de vizinhança. No nosso exemplo definimos como os 4 primeiros vizinhos da célula. Definimos um estado inicial &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t=0&amp;lt;/math&amp;gt; para todas as células e temos uma nova geração em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t+1&amp;lt;/math&amp;gt; onde aplicamos uma regra de transição que determina o novo estado de um célula baseada em seu próprio estado atual e no estado das células vizinhas. Em geral as regras para atualização são as mesmas para cada células durante toda a simulação e é aplicado em toda a grade simultaneamente (síncrono). Algumas coisas que podem ser interessantes é mencionar que para o autômato celular, o espaço, o tempo e os estados são todos discretizados. Podemos comparar com outros sistemas dinâmicos espacialmente estendidos em termos da discretização destes três elementos&amp;lt;ref&amp;gt;[http://www.scholarpedia.org/article/Coupled_maps Coupled maps] (Kunihiko Kaneko e Tatsuo Yanagita, Scholarpedia)&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Espaço&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tempo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Estado&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Rede de mapas acoplados (CML)&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação diferenciais ordinárias acopladas&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |D&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação diferencial parcial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | C&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Onde D significa que é discreto e C que é contínuo, CML significa ''coupled map lattices''.Também é interessante de se destacar aqui, é que matemática e ciência computacional são disciplinas básicas para o autômato celular, então estamos efetivamente utilizando estes conjuntos de conhecimentos como ferramentas e expandindo um pouco nossos recursos disponíveis. Utilizando não mais apenas a matemática tradicional, mas também a ciência da computação. O que explica um pouco alguns problemas de nomenclatura e definições de termos que podem ser encontrados ao longo dos textos, aos poucos estes devem ser corrigidos conforme o próprio conhecimento vai sendo amadurecido.&lt;br /&gt;
&lt;br /&gt;
Investigações teóricas de CA geralmente consistem em pegar uma dada regra e descobrir propriedades matemáticas relacionadas. Mas a maior parte das aplicações em ciências naturais seguem uma aproximação inversa, ou seja, busca-se descobrir a regra que reproduz as propriedades conhecidas que governam o fenômeno estudado.&lt;br /&gt;
&lt;br /&gt;
Além disto, as regras de transições podem ser determinísticas ou estocásticas. Como os termos sugerem, no caso determinístico o novo estado de cada célula é determinado rigidamente baseado no estado presente da própria célula e no estado das células vizinhas. No caso estocástico (também chamado de autômato celular probabilístico) a seleção do estado da célula em cada tempo é sujeita a uma função probabilística, esta regra de transição oferece uma melhor analogia a sistemas naturais e também é o caso do nosso exemplo.&lt;br /&gt;
&lt;br /&gt;
Além disso classicamente se discute quatro classes de comportamentos que podem ser reproduzidos por um autômato celular elementar, eles são qualitativamente caracterizados como:&lt;br /&gt;
&lt;br /&gt;
*Classe 1: a evolução leva a um estado homogêneo; depois de um certo tempo, todas as células possuem um estado similar, independente do estado inicial.&lt;br /&gt;
*Classe 2: a evolução leva a um conjunto de estruturas separadas simples ou periódicas; uma organização espacial surge com distintos domínios espaciais que podem ser homogêneos e estáveis ou periódico com alteração dos estados.&lt;br /&gt;
*Classe 3: evolução leva a um padrão caótico; independente das condições iniciais o autômato celular leva a padrões aperiódicos em que não podem ser identificados qual foi o padrão inicial&lt;br /&gt;
*Classe 4: evolução leva a estruturas complexas, algumas vezes com tempo de vida; nessa classe surge alguns padrões espaciais complexos que podem durar por um tempo específico, esses padrões possuem propagação espacial enquanto mantém uma conservação do seu formato.&lt;br /&gt;
&lt;br /&gt;
Sem realizar análises detalhadas, aparentemente o exemplo que escolhemos pertence à classe 2. Claro que esta classificação é que com os parâmetros utilizados no artigo que levam o sistema à um regime oscilatório. Com outros parâmetros que levaria o sistema à uma extinção total por exemplo, teríamos uma classe 1.&lt;br /&gt;
&lt;br /&gt;
A literatura ecológica que lida com autômatos celulares em sua maioria está de alguma forma relacionado à questão da heterogeneidade espacial. Alguns trabalhos buscam responder como os processos biológicos respondem a uma heterogeneidade preexistente. Pensando no outro [[Modelo espacialmente explícito|modelo com a destruição fixa]],  este tinha como objetivo estudar como o sistema evolui a partir de uma distribuição fixa das células destruídas no início. Outra classe de trabalhos busca a resposta inversa: como os processos biológicos podem criar heterogeneidade. Neste caso, podemos lembrar do próprio exemplo, onde estuda-se como a dinâmica produz as ondas de desertificação.&lt;br /&gt;
&lt;br /&gt;
Além disso vale destacar que as interações em um CA são de curto alcance, o que é negligenciado em modelos de campo médio por exemplo. Outras características importantes e interessantes de um modelo de autômato celular são as capacidades de auto-manutenção e auto-organização.&lt;br /&gt;
&lt;br /&gt;
Em todas aplicação de CA na ecologia, cada célula é considerado um espaço para um indivíduo biológico. No nosso exemplo cada ’indivíduo biológico’ ganha a interpretação de uma metapopulação de cada espécie, isto pode representar um indivíduo ou uma manada, não há distinções do tamanho desta metapopulação. Desta forma cada célula tem nos seus estados a informação, como comentamos anteriormente, apenas se ela está ocupada ou não por aquela espécie, mas não admite uma variação de indivíduos dentro da mesma célula, isto é, não admite variar o tamanho da metapopulação que ocupa cada célula. Não é claro como o CA determinístico poderia incorporar esta variação individual, mas é perfeitamente concebível utilizando uma regra de transição estocástica. Isto poderia ser feito por exemplo, variando a probabilidade de adotar determinado estado, desta forma um modelo de CA pode ser utilizado com o objetivo de construir um modelo baseado em indivíduos. Esta é uma alternativa.&lt;br /&gt;
&lt;br /&gt;
==Modelos baseados em agentes==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Agent-based_model Modelos baseados em agentes] são modelos computacionais para simular ações e interações entre agentes autônomos, estes modelos são mais intuitivos que modelos matemáticos ou estatísticos, uma vez que representam objetos como nós vemos: coisas individuais no mundo. Os exemplos mais familiares para muitas pessoas são os jogos The SIMS ou SIMCity.&lt;br /&gt;
&lt;br /&gt;
Na ecologia estes modelos também são chamados de modelos baseados em indivíduos (''individual-based models'' - IBMs), modelo baseado em entidades ou simulações baseadas em indivíduos/entidades/agentes. Além disso há uma discussão sem nenhuma resposta conclusiva na literatura e entre profissionais envolvidos se modelos baseados em agentes são a mesma coisa que sistemas multi-agentes (''multi-agent system'' - MAS), ou se não são, então onde começaria um e terminaria outro, algumas autores ainda consideram IBMs como modelos pertencente à classe de modelos MAS. Para o resto do texto, se necessário vou considerar sistema de multi-agentes apenas como outro nome para modelo baseado em indivíduo&amp;lt;ref&amp;gt;[https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30440-3_13 Encyclopedia of Complexity and Systems Science] (Editor: Robert A. Meyers). Artigo: Agent Based Modeling andSimulation, Introduction to (Cilipo Castiglione, Conselho Nacional de Pesquisa da Itália)&amp;lt;/ref&amp;gt;. Porém parece que MAS é um termo predominantemente das áreas baseadas em ciência computacionais e normalmente possui o propósito de resolver um problema real ou completar uma tarefa, um exemplo são redes de telecomunicação. Enquanto IBMs normalmente estão relacionados a ciências naturais como ecologia e ciência sociais, sendo predominantemente pesquisas sobre sistemas naturais em que a simulação tem por objetivo observar o comportamento coletivo dos agentes, mais que resolver um problema em específico&amp;lt;ref&amp;gt;[https://www.researchgate.net/post/How_to_differentiate_between_multi-agent_systems_and_agent-based_models Discussão aberta no Research Gate]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://arxiv.org/ftp/arxiv/papers/1708/1708.05872.pdf Agent-based computing from multi-agent systems to agent-based models: a visual survey] (Niazi Muaz e Amir Hussain, Scientometrics)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Os modelos baseados em indivíduos historicamente evoluíram a partir dos autômatos celulares. Ainda explorando um pouco sua história nos anos 1990 houve uma grande expansão nas ciências sociais, e um os primeiros modelos úteis de autômatos celulares foi proposto por um cientista social e reimplementado muitas vezes em modelos IBM. Há três ideias centrais nos IBMs: agentes, [https://en.wikipedia.org/wiki/Emergence emergencia] e [https://en.wikipedia.org/wiki/Complexity complexidade].&lt;br /&gt;
&lt;br /&gt;
*Agentes são os objetos que interagem seguindo algumas regras, tipicamente estão situados no espaço e residem em uma rede ou uma vizinhança tipo grade. Em alguns casos, como na ecologia, os agentes podem ser considerados como inteligentes e/ou com propósitos.&lt;br /&gt;
* Emergencia ocorre quando uma entidade observada possui propriedades que suas partes não possuem. Então esta propriedade emerge somente quando as partes que constituem esta entidade interagem entre si, de forma simples, é algo que não pode ser obtido apenas como uma soma de suas partes.&lt;br /&gt;
*A complexidade caracteriza o comportamento de um modelo em que seus componentes interagem de múltiplas formas e seguem regras locais.&lt;br /&gt;
&lt;br /&gt;
Modelos baseados em agente são então simulações baseadas em consequências globais de interações locais dos membros de uma população. Neste tipo de modelo as características de cada indivíduo é rastreada através do tempo, em contraste com técnicas que caracterizam a população baseado em uma média, como os modelos de campo médio.&lt;br /&gt;
&lt;br /&gt;
Alguns modelos baseados em indivíduos podem ser especialmente explícitos, isto é, os indivíduos estão associados a uma localização em um espaço geométrico, neste caso também podem (mas não necessariamente) exibir mobilidade através do ambiente.&lt;br /&gt;
&lt;br /&gt;
Lembrando do exemplo que escolhemos para exemplificar características dos autômatos celulares, pensando na questão da mobilidade, se lembrarmos dos conceitos de meta-população originalmente proposto no modelo de Levins, não há mobilidade. Cada meta-população vive em determinado fragmento, o que ocorre na colonização é que uma nova geração coloniza um nova célula, mas não se desloca para ela. Na proposta original, a meta-população não possui mobilidade, ainda que o fenômeno de colonização de uma nova célula e extinção local produza um efeito análogo. Os modelos espacialmente explícitos ainda podem ser contínuos (valores reais) ou discreto (valores inteiros, tipo grade). Este último é o que se aproxima do nosso exemplo. Além disso os modelos também não precisam ser espacialmente explícitos, como uma rede de computadores por exemplo, onde as conexões entre os agentes não precisam estar relacionados a nenhuma localização espacial.&lt;br /&gt;
&lt;br /&gt;
Conforme pode-se perceber, há uma relação entre modelos baseados em indivíduos e autômatos celulares. Conforme discutido enquanto uma célula de um autômato celular assume um estado que basicamente informa se a célula está ocupado ou não por uma espécie, em um modelo baseado em indivíduos podemos ter mais indivíduos ocupando o mesmo fragmento do ambiente e variando a população local de uma mesma espécie em um mesmo fragmento. É claro que podemos adicionar mais estados finitos no autômato celular, ou ainda conforme discutido adaptar as regras estocásticas de transição, mas talvez a diferença mais significativa seja se o loop da simulação procede célula por célula, ou indivíduo por indivíduo.&lt;br /&gt;
&lt;br /&gt;
Mas a verdade é que muitos modelos estão entre CAs e IBMs, em geral uma das principais distinções dos modelos é exatamente se os agentes se movem ou simplesmente parecem se mover porque série de células mudam de estado, a exemplo da discussão que realizamos sobre nosso modelo baseado em autômatos, onde há apenas este movimento aparente. Já em IBMs os agentes que são os objetos no mundo tem posição conhecida e podem efetivamente se mover carregando propriedades auxiliares com eles. Dessa forma uma das vantagens chaves dos IBMs é que o conhecimento interno do agente é mantido com a entidade quando ela se move, enquanto no CA o conhecimento associado não se move. Como os agentes carregam conhecimento consigo, ele pode utilizar o conhecimento e a história para explorar novas áreas e conhecer outros agentes.&lt;br /&gt;
&lt;br /&gt;
Com o desenvolvimento da programação orientada a objetos (''Object Orientated Programming - OOP'') que de certa forma lembra os conceitos dos IBMs, se tornou razoavelmente mais simples de implementar este tipo de modelo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introdução à modelos baseados em indivíduos===&lt;br /&gt;
&lt;br /&gt;
Uma coisa interessante sobre os MBIs (modelos baseados em indivíduos) é quão longe podemos ir com relativa simplicidade devido a ascensão da programação orientada a objetos (''Object Orientated Programming'' - OOP ). OOP é uma forma de programar em que o código é dividido em objetos nos quais possuem um trabalho específico para fazer, estes objetos por sua vez são baseados em um modelo chamado “classe”. Essa forma de programar claramente lembra modelos baseados em indivíduos, onde por exemplo, podemos definir uma classe “Agente” e usar para construir múltiplos agentes.&lt;br /&gt;
&lt;br /&gt;
Um ABM clássico usualmente é baseado no seguinte:&lt;br /&gt;
&lt;br /&gt;
* '''Agente''': Uma classe que contém as variáveis (fields em C#) associadas aos agentes e representando seus estados (nome, idade, localização, etc ) e mais um bloco (ou mais) de códigos que regram a interação com outros agentes. Esse bloco de código é isolado e chamado de procedimentos (métodos em C#), normalmente possui um nome específico com que pode ser chamado para que o agente execute determinadas ações, como por exemplo “mover”.&lt;br /&gt;
*'''Model''': Uma classe que chama os métodos dos agentes para fazê-los agir. É comum que os agentes ajam por um número fixo de vezes e então são interrompidos para que olhemos os estados dos agentes. Ou ainda pode-se definir uma condição de para para que os agentes ajam até que o objetivo seja atingido.&lt;br /&gt;
&lt;br /&gt;
Isso é o suficiente pra construir um modelo simples baseado em agentes, onde os agentes agem baseado nos seus estados internos, mas nesse momento eles não possuem nada para interagir. Por isso, na maioria dos ABM existe algum tipo de ambiente que todos os agentes conhecem. É comum também que cada agente tenha uma lista com todos os agentes com que pode interagir, por exemplos outros agentes que estão próximos do agente em questão. Estas condições do ambiente podem ser incorporadas na classe Model, que muitas vezes também é chamada de “''environment''” (ambiente).&lt;br /&gt;
&lt;br /&gt;
Quanto a escolha das regras comportamentais que regem a interação dos agentes, podem ser de vários tipos. O ideal é ter uma espécie de inteligência artificial com a tomada de decisão embutida, isto é, algo que tenha a tomada de decisão embutida em um modelo de pensamento e existência mais amplo. E por fim, ainda precisamos equilibrar a complexidade do modelo com a velocidade de processamento.&lt;br /&gt;
&lt;br /&gt;
===Modelo de crença-desejo-intenção===&lt;br /&gt;
&lt;br /&gt;
Um dos modelos mais famoso é baseado nestes três pilares:&lt;br /&gt;
&lt;br /&gt;
#Crenças: fatos sobre o mundo (que podem aparecer no formato de regras).&lt;br /&gt;
#Desejos: coisas que os agentes querem fazer ou que aconteça.&lt;br /&gt;
#Intenção: ações que o agente escolhe, geralmente a partir de um conjunto de planos.&lt;br /&gt;
&lt;br /&gt;
Sobre o processo de tomada de decisão pode ser implementado de várias formas. Uma vez que os desejos são objetivos, as decisões poderiam ser tomadas por exemplo:&lt;br /&gt;
&lt;br /&gt;
* Priorizando o desejo mais importante;&lt;br /&gt;
*Priorizando o plano que permite realizar mais desejos;&lt;br /&gt;
* Priorizando o plano que tem mais chance de dar certo;&lt;br /&gt;
* Seguindo o que a comunidade decidir (através de votação por exemplo);&lt;br /&gt;
* Etc.&lt;br /&gt;
&lt;br /&gt;
===Considerações===&lt;br /&gt;
&lt;br /&gt;
Evidentemente, há muitas coisas que precisam ser consideradas durante a construção de um modelo baseado em indivíduos, abaixo discutirei algumas destas coisas.&lt;br /&gt;
&lt;br /&gt;
'''Hardware''': Como são modelos computacionais, uma das preocupações naturalmente é sobre onde os modelos vão ser executados. Os modelos variam muito no processamento exigido, sendo necessário desde minutos a dias. Da mesma forma há também uma variação na quantidade de espaço de armazenamento que é necessário. Uma solução que pode ser implementada principalmente para lidar com o poder computacional que é necessário é a paralelização. Neste caso ainda há uma nova questão que precisa ser respondida: como o modelo pode ser dividido? Se os agentes fossem estáticos poderiam ser divididos em fragmentos geográficos, se os agentes não se comunicassem a divisão poderia ser por agentes. Mas na maioria dos modelos os agentes tanto se movem quanto se comunicam, então em algum momento será necessário permitir que os agentes se movimentem entre os fragmentos e/ou se comuniquem com agentes de outros nós.&lt;br /&gt;
&lt;br /&gt;
'''Espaço''': O modelo é uma abstração da realidade, portanto não é inesperado que uma questão importante seja como esta abstração será feita. Isto é uma questão que começa desde a decisão sobre o tipo de fronteira que o modelo vai incorporar (infinitas, limitadas, etc), passa pela organização interna do próprio espaço (contínuo, em grade, rede, etc), e vai até sobre como a vizinhança é organizada. Pra citar alguns exemplos, nos nossos modelos baseados em autômatos celulares, foi escolhido uma vizinhança do tipo Von Neumann (diamante), mas poderia ser do tipo Moore (quadrado). Em um modelo contínuo poderia ser baseado na distância euclidiana dada por:&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;D\left(x,y\right)=\sqrt{\sum_{i=1}^{n}\left(x_{i}-y_{i}\right)^{2}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sincronização''': Discutindo sobre execução da simulação em si, uma preocupação que surge é a questão de sincronização, isto é, em que ordem os os agentes devem agir e quando. Sobre quando agir a opção mais simples é agir a cada intervalo específico de tempo. Apesar desta opção ser a mais simples, quando temos muitos agentes inativos pode ser pouco eficiente, desta forma outra opção é baseado em eventos específicos (por exemplo, quando é tocado por outro agente). Sobre a ordem uma opção usual é randomizar a ordem.&lt;br /&gt;
&lt;br /&gt;
'''Calibração''': Tendo já resolvido os problemas relacionados ao hardware necessário e a modelagem do próprio modelo, o modelo precisa então ser calibrado. Isto é, é necessário encontrar a melhor combinação de valores que descrevem a realidade para os parâmetros presente no modelo. A primeira opção que surge naturalmente é utilizar o conhecimento de especialistas, porém nem sempre isto é o suficiente. Outras opções que podem ser exploradas são experimentar muitos diferentes valores (o que se torna mais difícil a medida que a quantidade de parâmetros aumenta) e/ou utilizar técnicas de inteligência artificial para obter os melhores parâmetros automaticamente (por exemplo algoritmo genético).&lt;br /&gt;
&lt;br /&gt;
'''Validação''': Por fim então nos resta apenas validar, isto é, saber se o modelo funciona. Isto comumente implica em saber se é possível replicar quantitativamente algum dado ou padrão conhecido, logo, é importante saber exatamente no que estamos interessados em olhar.&lt;br /&gt;
&lt;br /&gt;
Nesta etapa então podem ser utilizando alguns métodos para comparar os erros quantitativos dos dados obtidos através contra dados reais. Isto pode ser feito por exemplo simplesmente calculando diretamente a diferença absoluta entre ambos os valores ou utilizando técnicas estatísticas mais robustas. Pode-se utilizar matrizes de confusão, estatística difusa, análise multiescala, etc...&lt;br /&gt;
&lt;br /&gt;
Pode-se por exemplo comparar as predições corretas obtidas a partir do modelo com predições corretas caso estas fossem feitas aleatoriamente. Desta forma podemos comparar se conseguimos fazer uma previsão melhor através do nosso modelo, do que se fosse feita aleatoriamente. Porém esta não parece uma comparação justa uma vez que os modelos foram iniciados com dados reais e um padrão real, então outra alternativa é pegar um estado passado e tratar como uma previsão, se nosso modelo não consegue fazer melhor que isso, temos um problema.&lt;br /&gt;
&lt;br /&gt;
'''Erros''': Apesar de tudo, os erros não necessariamente são frutos apenas de erros do modelo. É possível também que existam erros nos dados do mundo real. Mas de toda forma, é necessário sabermos se o modelo é uma versão razoável da realidade para a variável que queremos observar. Também precisamos saber como o sistema responde para pequenos erros nos dados de entrada. Pois precisamos ter certeza se o modelo não é razoável para apenas um conjunto de dados de entrada.&lt;br /&gt;
&lt;br /&gt;
Então podemos por exemplo causar pequenas variações nas principais variáveis e observar como o modelo responde. Ele pode ser ergodico, isto é, insensível para as condições iniciais após a simulação ser executada por tempo suficiente, ou responder fortemente às condições iniciais. Nestes último caso precisamos saber se é assim que o sistema real responde ou apenas um artefato do modelo. Se responde fortemente, talvez a predição seja comprometida caso os dados de entrada não sejam perfeitamente acurados e pode ser preciso analisar se a propagação do erro é um problema.&lt;br /&gt;
&lt;br /&gt;
Para entender melhor a gama de respostas a diferentes entradas, podemos utilizar alguma randomização. Em geral isto é feito utilizando entradas aleatórias e então é feito uma amostragem ponderada pela distribuição chamada amostragem de Monte-Carlo (''Monte Carlo Sampling''). Executando o modelo múltiplas vezes é possível obter uma distribuição de saída probabilística.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span&amp;gt;Análise:&amp;lt;/span&amp;gt;&lt;br /&gt;
:Por fim, os modelos não são apenas para realizar predições. Podem ser utilizados também para experimentar e testar ideias preexistentes, assim como também para obter novas ideias.&lt;br /&gt;
&lt;br /&gt;
===Modelo de crime===&lt;br /&gt;
&lt;br /&gt;
Esse é um modelo de ’polícia e ladrão’, onde os ladrões andam aleatoriamente no espaço procurando por bancos para roubarem e também roubam uns aos outros, e os policiais andam aleatoriamente tomando o ouro dos ladrões e os removendo da simulação, isto é, prendendo. Um modelo mais sofisticado poderia ter decisões mais elaborados de quem e quando roubar porém este modelo serve como inspiração à esta introdução. Tanto a introdução à modelo baseado em indivíduos, quanto este modelo foram inspirados no texto ''Agent Based Modelling: Introduction'', que possui uma versão em Java deste modelo.&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Exemplo de modelo baseado em indivíduos&lt;br /&gt;
Autor:           Jhordan Silveira de Borba&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
using System;               //Namespace padrão System&lt;br /&gt;
using System.Collections.Generic; //Para usar listas&lt;br /&gt;
&lt;br /&gt;
namespace Vida_selvagem_e_Pecuária&lt;br /&gt;
{&lt;br /&gt;
    class Agente&lt;br /&gt;
    {&lt;br /&gt;
        public int ID;                                    //Identificação&lt;br /&gt;
        public int x;                                     //Coordenadas espaciais&lt;br /&gt;
        public int y;&lt;br /&gt;
        public int ouro;                                  //Dinheiro&lt;br /&gt;
        public string nome;                               //Que tipo de agente é&lt;br /&gt;
        public List&amp;lt;Agente&amp;gt; Agentes = new List&amp;lt;Agente&amp;gt;(); //Lista de todos os agentes&lt;br /&gt;
        public int[,] ambiente;                           //Configuraçõe do ambiente&lt;br /&gt;
        public int largura;&lt;br /&gt;
        public int altura;&lt;br /&gt;
        public bool serRemovido = false;                 //Se o a gente foi preso&lt;br /&gt;
        public Random rnd;&lt;br /&gt;
&lt;br /&gt;
        //Método para mover o agente&lt;br /&gt;
        public void Mover()&lt;br /&gt;
        {&lt;br /&gt;
            x += (rnd.NextDouble() &amp;lt; 0.5) ? -1 : 1; //Mover aleatoriamente para os lados&lt;br /&gt;
            y += (rnd.NextDouble() &amp;lt; 0.5) ? -1 : 1; //Mover aleatoriamente para cima e baixo&lt;br /&gt;
            //Obs.: Ele se move mais rápido na diagonal, pois o desloamento tem módulo maior que 1&lt;br /&gt;
            //Checar as fronteiras&lt;br /&gt;
            x = (x &amp;lt; 0) ? 0 : x;&lt;br /&gt;
            x = (x &amp;gt;= largura) ? largura - 1 : x;&lt;br /&gt;
            y = (y &amp;lt; 0) ? 0 : y;&lt;br /&gt;
            y = (y &amp;gt;= altura) ? altura - 1 : y;&lt;br /&gt;
            &lt;br /&gt;
        }&lt;br /&gt;
        //Método para roubar&lt;br /&gt;
        public void Agir()&lt;br /&gt;
        {&lt;br /&gt;
            if (serRemovido == true) { return; } //Se o agentee está sendo removido, nao faz nada&lt;br /&gt;
            if (nome == &amp;quot;ladrao&amp;quot;)                //Interação com ambiente: se o agente atual é ladrão, checa a posição por ouro para roubar&lt;br /&gt;
            {&lt;br /&gt;
                if (ambiente[x, y] &amp;gt; 0)&lt;br /&gt;
                {&lt;br /&gt;
                    ouro += ambiente[x, y];&lt;br /&gt;
                    ambiente[x, y] = 0;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            foreach (Agente A in Agentes)       //Interação com outros agentes: &lt;br /&gt;
            {&lt;br /&gt;
                if (A.ID == ID) { continue; }   //Se for o prórprio agente&lt;br /&gt;
                if ((A.x == x) &amp;amp;&amp;amp; (A.y == y))&lt;br /&gt;
                {&lt;br /&gt;
                    if (A.nome == &amp;quot;ladrao&amp;quot;)     //Se o outro agente não é policial, toma dinheiro dele&lt;br /&gt;
                    {&lt;br /&gt;
                        ouro = ouro + A.ouro;&lt;br /&gt;
                        A.ouro = 0;&lt;br /&gt;
                    }&lt;br /&gt;
                    //Se o atual agente é policial e o outro é ladrão, deve ser removido&lt;br /&gt;
                    A.serRemovido = (nome == &amp;quot;policial&amp;quot; &amp;amp;&amp;amp; A.nome == &amp;quot;ladrao&amp;quot;) ? true : false;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class Modelo&lt;br /&gt;
    {&lt;br /&gt;
        private int nagentes = 100; //Número de agentes&lt;br /&gt;
        private int it = 100;        // Número de iterações&lt;br /&gt;
        private double ppol = 0.1;  //Probabilidade de ser gerado um policial&lt;br /&gt;
        private double pbanco = 0.1;//Probabilidade de ser gerado um banco&lt;br /&gt;
        private int dbanco = 10;    //Dinheiro no banco&lt;br /&gt;
        private int largura = 100;  //Largura do espaço&lt;br /&gt;
        private int altura = 100;   //altura o espaço&lt;br /&gt;
        private int cont = 0;       //Contador de agentes&lt;br /&gt;
        private Random rnd;&lt;br /&gt;
        List&amp;lt;Agente&amp;gt; Agentes = new List&amp;lt;Agente&amp;gt;();&lt;br /&gt;
        public Modelo() //Construto&lt;br /&gt;
        {&lt;br /&gt;
            rnd = new Random();                   //Números aleatórios&lt;br /&gt;
            int[,] ambiente = new int[largura, altura];  //Criar os bancos&lt;br /&gt;
            for (int i = 0; i &amp;lt; largura; i++)&lt;br /&gt;
            {&lt;br /&gt;
                for (int j = 0; j &amp;lt; altura; j++)&lt;br /&gt;
                {&lt;br /&gt;
                    ambiente[i, j] = (rnd.NextDouble() &amp;lt; pbanco) ? dbanco : 0;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            for (int i = 0; i &amp;lt; nagentes; i++)                                  //Criar os agentes&lt;br /&gt;
            {&lt;br /&gt;
                Agente ag = new Agente() { ID = cont };&lt;br /&gt;
                cont       += 1;&lt;br /&gt;
                ag.x        = (int)(rnd.NextDouble() * largura);                //Posição inicial aleatória&lt;br /&gt;
                ag.y        = (int)(rnd.NextDouble() *  altura);&lt;br /&gt;
                ag.ambiente = ambiente;                                         //Configura o ambiente&lt;br /&gt;
                ag.largura  = largura;&lt;br /&gt;
                ag.altura   = altura;&lt;br /&gt;
                ag.Agentes  = Agentes;                                           //Conhece outros agentes&lt;br /&gt;
                ag.nome     = (rnd.NextDouble() &amp;lt; ppol) ? &amp;quot;policial&amp;quot; : &amp;quot;ladrao&amp;quot;; //Policia ou Ladrão&lt;br /&gt;
                ag.rnd      = rnd;&lt;br /&gt;
                Agentes.Add(ag);                                                 //Adiciona à lista&lt;br /&gt;
            }&lt;br /&gt;
            for (int i = 0; i &amp;lt; it; i++)                //Roda a simulação&lt;br /&gt;
            {&lt;br /&gt;
                foreach (Agente A in Agentes)            //Move cada agente&lt;br /&gt;
                {&lt;br /&gt;
                    A.Mover();&lt;br /&gt;
                }&lt;br /&gt;
                foreach (Agente A in Agentes)&lt;br /&gt;
                { A.Agir(); }                            //Cada agente age&lt;br /&gt;
                //Expressão lambda: um método anônimo. Exemplo:  x =&amp;gt; x + 1, basicamente recebe x, e retorna x+1&lt;br /&gt;
                //Predicado: Recebe um parâmetro e retorna verdadeiro ou falso. Exemplo: Predicate&amp;lt;int&amp;gt; isOne = x =&amp;gt; x == 1, recebe x e retorna verdadeiro se x==1&lt;br /&gt;
                //Predicate&amp;lt;Agente&amp;gt; pred = (Agente obj) =&amp;gt; obj.serRemovido == true;   //Removemos os agentes fora do foreach, pra não acessar elemento que não existes&lt;br /&gt;
                Agentes.RemoveAll((Agente obj) =&amp;gt; obj.serRemovido == true);           //Removemos os agentes&lt;br /&gt;
            }&lt;br /&gt;
            //Estatísticas&lt;br /&gt;
            int cpol = 0;   //Quantos policiais tem&lt;br /&gt;
            int dpol = 0;   //Quanto dinheiro os policiais acumularam&lt;br /&gt;
            int clad = 0;   //Quantos ladroes tem&lt;br /&gt;
            int dlad = 0;   //Quanto dinheiro os ladrões acumularam&lt;br /&gt;
            foreach (Agente A in Agentes)&lt;br /&gt;
            {&lt;br /&gt;
            if (A.nome==&amp;quot;policial&amp;quot;)&lt;br /&gt;
                {&lt;br /&gt;
                    cpol += 1;&lt;br /&gt;
                    dpol += A.ouro;&lt;br /&gt;
                }&lt;br /&gt;
            else&lt;br /&gt;
                {&lt;br /&gt;
                    clad += 1;&lt;br /&gt;
                    dlad += A.ouro;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            Console.Write(&amp;quot;Após &amp;quot; + it + &amp;quot; interações, há &amp;quot;);&lt;br /&gt;
            Console.Write(cpol + &amp;quot; policiais com &amp;quot; + dpol + &amp;quot; ouro e &amp;quot;);&lt;br /&gt;
            Console.Write(clad + &amp;quot; ladroes com &amp;quot; + dlad + &amp;quot; ouro.\n&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main()&lt;br /&gt;
        {&lt;br /&gt;
           new Modelo();       //Inicia o modelo&lt;br /&gt;
           //Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências utilizadas ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
== Principal material utilizado ==&lt;br /&gt;
&lt;br /&gt;
# [https://www.geog.leeds.ac.uk/courses/other/crime/abm/general-modelling/index.html Agent Based Modelling: Introduction] (Nick Malleson e Andy Evans ,Universidade de Leeds)&lt;br /&gt;
# [http://wgbis.ces.iisc.ac.in/energy/HC270799/ibm.html Individual-Based Models] (Craig Reynolds, Instituto Indiano de Ciências)&lt;br /&gt;
# [https://www.researchgate.net/publication/263746066_Individual-based_models_in_ecology_after_four_decades Individual-Basd Models and Approaches on Ecology] ( Editores: DonaldL. DeAngelis e Louis J. Gross). Artigo: From Local to Global: The Lesson of Cellular Automata (M.J.Phipps , Universidade de Ottawa)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Simulação e modelo de campo médio ]] |[[AC: Jogo da Vida]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=AC:_Jogo_da_Vida&amp;diff=7845</id>
		<title>AC: Jogo da Vida</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=AC:_Jogo_da_Vida&amp;diff=7845"/>
		<updated>2022-07-20T19:34:42Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: Criou página com '{{Ecologia| Autômato celular e modelo baseado em indivíduos |Por que usar e o que são modelos baseados em indivíduos}}  = Modelos conceituais =  O &amp;quot;Jogo da Vida&amp;quot;...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Autômato celular e modelo baseado em indivíduos]] |[[Por que usar e o que são modelos baseados em indivíduos]]}}&lt;br /&gt;
&lt;br /&gt;
= Modelos conceituais =&lt;br /&gt;
&lt;br /&gt;
O &amp;quot;Jogo da Vida&amp;quot; é um jogo criado em 1970 pelo matemático Horton Conway usando autômatos celulares. Na proposta original o jogo da vida é composto por uma grade de células quaradas, onde cada célula pode estar morta ou viva, e seu estado é atualizado a cada passo finito de tempo baseado no estado atual da própria célula e das 8 células vizinhas (vizinhança de Moore). Estas regras podem ser enunciadas da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
* Reprodução: Qualquer célula morta com exatamente três vizinhos vivos será uma célula viva no próximo passo.&lt;br /&gt;
* Sobrevivência: Qualquer célula viva com 2 ou 3 vizinhos  vivos permanece vivo no próximo passo.&lt;br /&gt;
* Subpopulação: A célula morre se tiver menos de 2 vizinhos vivos na vizinhança.&lt;br /&gt;
* Superpopulação: A célula morre se tiver mais de 3 vizinhos na vizinhança.&lt;br /&gt;
&lt;br /&gt;
Um autômato celular probabilístico foi proposto como uma extensão no jogo da vida. A intenção é possuir um modelo mais flexível com a possibilidade de alterar os limites do Jogo da Vida clássico. A ideia básica do PCAEGOL (''Probabilistic Cellular Automata, Extension of the Game Of Life'') é que os estados das células vizinhas de uma dada célula não são conhecidos com exatidão, dessa forma o estado resultante  não é determinístico e há uma certa probabilidade de uma célula que teria determinado resultado deterministicamente, agora tenha outro. A ideia é que o sistema nem sempre se comporte conforme é esperado. As probabilidades podem ser definidas individualmente para cada célula vizinha de uma determinada célula. Por exemplo, tendo a célula central C0  e chamando as 8 células vizinhas de Ci (onde i=1,2,...,8),  então temos os vetores:&lt;br /&gt;
&lt;br /&gt;
* pl = (pl0,pl1,...,pl8), onde pli é a probabilidade da célula Ci ser considerada viva quando está viva.&lt;br /&gt;
* pd = (pd0,pd1,...,pd8), onde pdi é a probabilidade da célula Ci ser considerada viva quando está morta.&lt;br /&gt;
&lt;br /&gt;
Podemos recuperar o jogo da vida facilmente fazendo pli=1$ e pdi=0.  Além disso as regras clássicas do jogo da vida podem ser estendidas fazendo:&lt;br /&gt;
&lt;br /&gt;
* MAXO = Número máximo de células vizinhas vivas para que não ocorre superpopulação&lt;br /&gt;
* MINU = Número máximo de células vizinhas vivas para que não ocorre superpopulação&lt;br /&gt;
* MAXB = Número máximo de células vizinhas vivas para que a célula nasça no próximo passo&lt;br /&gt;
* MINB = Número mínimo de células vizinhas vivas para que a célula nasça no próximo passo&lt;br /&gt;
&lt;br /&gt;
Novamente podemos recuperar o Jogo da Vida clássico fazendo MAXO=3,MINU=2, MAXB=3 e  MINB=3.&lt;br /&gt;
&lt;br /&gt;
= Código do Jogo da Vida =&lt;br /&gt;
[https://mesa.readthedocs.io/en/latest/ Mesa]  é um ''framework''  em Python para desenvolvimento de modelos baseados em agentes, porém também podemos simular autômatos celulares e visualizar o resultado, por isto o mesmo foi utilizado para desenvolver ambos os códigos a seguir. Algun tutoriais podem ser consultados aqui e aqui.&lt;br /&gt;
&lt;br /&gt;
Para começar, precisamos definir duas classes: a de cada agent (no nosso caso cada célula) e a própria do modelo. Cada classe tem algumas obrigatórias relacionadas a forma com que avançamos o modelo. Como é assíncrono, o agente tem uma função para preparar as mudanças (step) e outra para aplicar as mudanças (advance). Além disso precisamos passar algumas informações para o modelo: que as células estão distribuídas em grade, a largura e altura da grade, e que as alterações ocorrem de forma assíncrona.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Importamos as classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Importamos o agendador por ordem aleatória&lt;br /&gt;
from mesa.space import MultiGrid                                   #Importamos a malha&lt;br /&gt;
from mesa.visualization.modules import CanvasGrid                  #Gerar o JSON&lt;br /&gt;
from mesa.visualization.ModularVisualization import ModularServer  #Ler o JSON&lt;br /&gt;
import random                                                      #Biblioteca para números aleatórios&lt;br /&gt;
&lt;br /&gt;
#O Modelo em si&lt;br /&gt;
&lt;br /&gt;
class Planta(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Dinâmica da planta inspirada no jogo da vida&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, ide, modelo,frac):&lt;br /&gt;
        super().__init__(ide, modelo)       #Requisito da biblioteca&lt;br /&gt;
        self.vivo = random.random() &amp;lt; frac  #Guardar o estado atual&lt;br /&gt;
        self.passo=self.vivo                #Guardar o próximo estado&lt;br /&gt;
&lt;br /&gt;
    def step(self):                         # Método que aplica as mudanças a cada passo&lt;br /&gt;
        #Pegamos a coordenada da vizinhança&lt;br /&gt;
        vizinhos = self.model.grid.get_neighborhood(self.pos,moore=True,include_center=False)&lt;br /&gt;
        nviz=0     &lt;br /&gt;
        agentes = self.model.grid.get_cell_list_contents(vizinhos) #E o conteúdo de cada célula&lt;br /&gt;
        for planta in agentes:&lt;br /&gt;
            if (planta.vivo==True):&lt;br /&gt;
                nviz+=1&lt;br /&gt;
        if (self.vivo==True):&lt;br /&gt;
            if   (nviz&amp;lt;2 or nviz&amp;gt;3):&lt;br /&gt;
                self.passo = False&lt;br /&gt;
        elif (nviz==3):&lt;br /&gt;
                self.passo=True&lt;br /&gt;
&lt;br /&gt;
    def advance(self): #E no simultâneo precisa de um método avance() que é o que aplica as mudanças assíncronas&lt;br /&gt;
        self.vivo=self.passo&lt;br /&gt;
                &lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, frac, largura, altura):&lt;br /&gt;
        self.frac = frac&lt;br /&gt;
        self.grid = MultiGrid(largura, altura, True)    #Grade&lt;br /&gt;
        self.schedule = SimultaneousActivation(self)    #Assíncrono&lt;br /&gt;
        self.running = True                             #Sem codições de parada&lt;br /&gt;
        # Criar agentes&lt;br /&gt;
        i=0&lt;br /&gt;
        for X in range(largura):&lt;br /&gt;
            for Y in range(altura):&lt;br /&gt;
                a = Planta(i, self,self.frac)&lt;br /&gt;
                self.schedule.add(a)&lt;br /&gt;
                self.grid.place_agent(a, (X, Y))&lt;br /&gt;
                i+=1&lt;br /&gt;
&lt;br /&gt;
    def step(self):                                    #Avança o modelo&lt;br /&gt;
        self.schedule.step()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para exibir a simulação na tela, ainda precisamos definir como gerar o JSON em que especificamos como cada célula deve ser exibida na tela. No caso omo retângulos 1x1 onde a cor depende se a célula esta viva ou morta.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Define como gerar esse JSON&lt;br /&gt;
def retrato(planta):         &lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Definir o retrato do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    portrayal = {&amp;quot;Shape&amp;quot;: &amp;quot;rect&amp;quot;,&amp;quot;Filled&amp;quot;: &amp;quot;true&amp;quot;,&amp;quot;h&amp;quot;: 1.0,&amp;quot;w&amp;quot;:1.0,&amp;quot;Layer&amp;quot;:1}    &lt;br /&gt;
    if (planta.vivo == True):&lt;br /&gt;
        portrayal[&amp;quot;Color&amp;quot;] = &amp;quot;green&amp;quot; &lt;br /&gt;
    else:&lt;br /&gt;
        portrayal[&amp;quot;Color&amp;quot;] = &amp;quot;grey&amp;quot;&lt;br /&gt;
    return portrayal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definimos então a grade para exibir na tela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Definimos uma grade de 10x10 células e 500x500 píxeis&lt;br /&gt;
grade = CanvasGrid(retrato, 10, 10, 500, 500)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E lançamos o servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Lançamo o servidor&lt;br /&gt;
servidor = ModularServer(Modelo, [grade], &amp;quot;Jogo da Vida&amp;quot;,{&amp;quot;frac&amp;quot;:0.1, &amp;quot;largura&amp;quot;:10, &amp;quot;altura&amp;quot;:10}) &lt;br /&gt;
servidor.port = 8521                                        &lt;br /&gt;
servidor.launch()                                              #Lançamos o servidor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Código do PCAEGOL =&lt;br /&gt;
O código do PCAEGL segue a mesma ideia do anterior, com as alterações pertinentes devido às diferenças de modelo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Bibliotecas necessárias&lt;br /&gt;
from mesa import Agent, Model                                      #Classes Agente e Modelo&lt;br /&gt;
from mesa.time import SimultaneousActivation                       #Agendador simultâneo&lt;br /&gt;
from mesa.space import MultiGrid                                   #Malha multigrid&lt;br /&gt;
from mesa.visualization.modules import CanvasGrid                  #Gerar o JSON&lt;br /&gt;
from mesa.visualization.ModularVisualization import ModularServer  #Ler o JSON&lt;br /&gt;
import random                                                      #Número aleatórios&lt;br /&gt;
&lt;br /&gt;
#Classe do agente&lt;br /&gt;
class Agente(Agent):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Classe do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, ide, modelo):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função incializadora&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        super().__init__(ide, modelo)     #Necessário para funcionar o modelo&lt;br /&gt;
        F = 0.5                           #Fração de plantas vivas&lt;br /&gt;
        self.vivo  = random.random() &amp;lt; F  #Definimos o estado inicial da planta&lt;br /&gt;
        self.passo = self.vivo            #E já definimos a situação no próximo estado&lt;br /&gt;
&lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que prepara as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        #pl = 1;pd = 0;MAXO=3;MINU=2;MAXB=3;MINB=3&lt;br /&gt;
        pl = 1;pd = 0;MAXO=6;MINU=2;MAXB=3;MINB=3                                                    #Parâmetros do PCAEGOL&lt;br /&gt;
        vizinhos = self.model.grid.get_neighborhood(self.pos,moore=True,include_center=False)        #Coordenada da vizinhança&lt;br /&gt;
        nviz=0                                                                                       #Contador de vizinhos&lt;br /&gt;
        agentes = self.model.grid.get_cell_list_contents(vizinhos)                                   #Agentes na vizinhança&lt;br /&gt;
        for planta in agentes:                                                                       #Percorre o agentes&lt;br /&gt;
            estado = (random.random() &amp;lt;pl) if (planta.vivo) else (random.random() &amp;lt;pd)               #Se está vivo ou não&lt;br /&gt;
            nviz = (nviz+1) if (estado) else (nviz)                                                  #Soma o mais um vizinho&lt;br /&gt;
        estado = (random.random() &amp;lt;pl) if (self.vivo) else (random.random() &amp;lt;pd)&lt;br /&gt;
        if (estado):&lt;br /&gt;
            if (nviz&amp;lt;MINU or nviz&amp;gt;MAXO):                                                             #Sub ou super população&lt;br /&gt;
                self.passo = False&lt;br /&gt;
        elif (nviz &amp;gt;= MINB and nviz&amp;lt;=MAXB):                                                          #Reprodução&lt;br /&gt;
                self.passo = True&lt;br /&gt;
                &lt;br /&gt;
    def advance(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Método obrigatório que aplica as mudanças&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.vivo=self.passo   #Aplica as mudanças&lt;br /&gt;
                &lt;br /&gt;
class Modelo(Model):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Modelo geral&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    def __init__(self, largura, altura):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Função chamada quando o modelo é inicializazdo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.grid     = MultiGrid(largura, altura, True)         #Configura a grade&lt;br /&gt;
        self.schedule = SimultaneousActivation(self)             #Configura o agendador&lt;br /&gt;
        self.running = True                                      #Condiçao para seguir executando o modelo&lt;br /&gt;
        # Distribuir agentes em toda grade &lt;br /&gt;
        i=0&lt;br /&gt;
        for X in range(largura):&lt;br /&gt;
            for Y in range(altura):&lt;br /&gt;
                a = Agente(i, self)&lt;br /&gt;
                self.schedule.add(a)&lt;br /&gt;
                self.grid.place_agent(a, (X, Y))&lt;br /&gt;
                i+=1&lt;br /&gt;
    def step(self):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Avançar um passo do modelo&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.schedule.step()&lt;br /&gt;
&lt;br /&gt;
#Define como gerar esse JSON&lt;br /&gt;
def retrato(agente):         &lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Definir o retrato do agente&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    portrayal = {&amp;quot;Shape&amp;quot;: &amp;quot;rect&amp;quot;,&amp;quot;Filled&amp;quot;: &amp;quot;true&amp;quot;,&amp;quot;h&amp;quot;: 1.0,&amp;quot;w&amp;quot;:1.0,&amp;quot;Layer&amp;quot;:1}    &lt;br /&gt;
    if (agente.vivo == True):&lt;br /&gt;
        portrayal[&amp;quot;Color&amp;quot;] = &amp;quot;green&amp;quot; &lt;br /&gt;
    else:&lt;br /&gt;
        portrayal[&amp;quot;Color&amp;quot;] = &amp;quot;grey&amp;quot;&lt;br /&gt;
    return portrayal&lt;br /&gt;
&lt;br /&gt;
#Lançamo o servidor&lt;br /&gt;
grade = CanvasGrid(retrato, 20, 20, 500, 500)&lt;br /&gt;
servidor = ModularServer(Modelo, [grade], &amp;quot;Jogo da Vida&amp;quot;,{&amp;quot;largura&amp;quot;:20, &amp;quot;altura&amp;quot;:20}) &lt;br /&gt;
servidor.port = 8521 &lt;br /&gt;
servidor.launch()      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Principal material utilizado =&lt;br /&gt;
[https://link.springer.com/article/10.1007/s10444-019-09696-8 A probabilistic extension to Conway’s Game of Life] (Gabriel Aguilera-Venegas e outros,)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Autômato celular e modelo baseado em indivíduos]] |[[Por que usar e o que são modelos baseados em indivíduos]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7844</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7844"/>
		<updated>2022-07-20T18:55:09Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[AC: Jogo da Vida]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
## [[Aprendizado de máquina]]&lt;br /&gt;
## [[Algoritmo genético]]&lt;br /&gt;
## [[Lógica Difusa]]&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logísticos]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7843</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7843"/>
		<updated>2022-07-20T18:53:39Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[AC: Jogo da Vida]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
### [[MBA: Gás simples]]&lt;br /&gt;
### [[MBA: Caminhante aleatório]]&lt;br /&gt;
### [[Aprendizado de máquina]]&lt;br /&gt;
### [[Algoritmo genético]]&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logísticos]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Por_que_usar_e_o_que_s%C3%A3o_modelos_baseados_em_indiv%C3%ADduos&amp;diff=7842</id>
		<title>Por que usar e o que são modelos baseados em indivíduos</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Por_que_usar_e_o_que_s%C3%A3o_modelos_baseados_em_indiv%C3%ADduos&amp;diff=7842"/>
		<updated>2022-07-20T18:48:56Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ecologia| [[Autômato celular e modelo baseado em indivíduos]] |[[Contexto]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Uma breve descrição do que é modelagem baseada em indivíduos:&lt;br /&gt;
&lt;br /&gt;
* Agente: indivíduo computacional autônomo.&lt;br /&gt;
* Modelagem baseada em agentes: forma de modelagem computação no qual um fenômeno é modelado em termos dos agentes e suas interações.&lt;br /&gt;
&lt;br /&gt;
Representações bseadas em agentes são mais fáceis de entender que representações matemáticas dos mesmos problemas, pois a língua e conceitos usados nestas modelagens é mais próximas da linguagem natural e nossa forma natural de pensar qundo comparado com modelagens matemáticas.&lt;br /&gt;
&lt;br /&gt;
Alguns conceito interessantes:&lt;br /&gt;
&lt;br /&gt;
* Estruturação: A codificação do conhecimento em um domínio como uma função da infraestrutura representacional usada para expressar o conhecimento. Ex.: Números romanos.&lt;br /&gt;
* Reestruturação: uma mudanção de uma estruturação para outra. Ex.: Mudança de números romanos para hindu-arábicos&lt;br /&gt;
* Inercia estruturacional: resistenência à reestruturação.&lt;br /&gt;
&lt;br /&gt;
=== Entendendo sistemas complexos e emergência ===&lt;br /&gt;
&lt;br /&gt;
Emergência é definido como o surgimento de estruturas, padrões e propriedades novas e coerentes através da interação de múltiplos agentes distribuíbos. Algumas característica da emergência são:&lt;br /&gt;
&lt;br /&gt;
* As estruturas emergentes não podem ser deduzidas apenas a partir das propriedades dos elementos, elas surgem da interação dos elementos e são propriedades do sistema.&lt;br /&gt;
* Auto-organização: um padrão global surge espontaneamente sem a presença de um coordenador central.&lt;br /&gt;
* A emergência também pode ser visto como um processo mantendo a estrutura no lugar ao invés de uma entidade.&lt;br /&gt;
&lt;br /&gt;
Há dois desafios distintos:&lt;br /&gt;
&lt;br /&gt;
* Entendimento integrativo: uma vez que sabemos como cada indivíduo age, como descobrir o padrão?&lt;br /&gt;
* Entendimento diferencial: conhecendo o padrão, como descobrir o comportamento dos elementos que geram o padrão?&lt;br /&gt;
&lt;br /&gt;
Pesquisas indicaram a existência de um padrão cognitivo determinista e centralizado. Isto é, a maioria dos participantes envolvidos nesta pesquisa não acreditam que elementos aleatórios possam ser uma força construtiva para a formação de um padrão, pelo contrário, acreditam que seja destrutivo (determinista). Além disso também acreditam que os padrões surgem da ações de um controlador (centralizado). Um obstáculo para a melhor compreensão deste fenômenos é a dificuldade em ’pensar em níveis’. Pois fenômenos emergentes existem em dois níves: o nível dos agentes individualmente e o nível do sistema, onde os padrões são observados.&lt;br /&gt;
&lt;br /&gt;
Pensando em um grupo de pássaros voando na formação, a formação consistente de aparentemente estabilidade leva as pessoas a a concluir que os elementos individualmente do bando também são estáveis e possuem um lugar consistente, transferindo uma propriedade do sistema para os indivíduos.&lt;br /&gt;
&lt;br /&gt;
Pensando em um engarrafamento, estamos acostumados a pensar como o indivíduo no carro, parando o caro em frente à um acidente e se movendo quando não há carro, então quando se defrontado com um engarrafemto é fácil pensar em todo engarrafament se movendo quando possível e parando em frente à um acidente por exemplo, ao invés de pensar que há algo retrocedendo, que é um comportamento observado frequentemente nos engarrafamentos. Desta vez o que ocorre é transferir uma propriedade dos indivíduos para o sistema.&lt;br /&gt;
&lt;br /&gt;
=== Reestruturação ===&lt;br /&gt;
&lt;br /&gt;
Da mesma forma que houve uma reestruturação na substituição dos números romanos para os árabes, é possível que a representação computacional ajude a reestruturar o conhecimento em muitos domínios, onde tradicionalmente era utilizado técnicas matemáicas, agora podemos utilizar simuação computacional para estudar estes fenômenos.&lt;br /&gt;
&lt;br /&gt;
Como o nome sugere, agentes são entidades com propriedades (variáveis de estado, valores) , se o agente é uma ovelha, poder ter propriedades como posição, idade, velocidade, etc... Agentes podem ter uma representação gráfica que o permita ser visualizado, também possuem regras de comportamento, como por exemplo comer grama. Em modelagem baseada em agentes imaginamos um relógio universal, quando o relógio faz ’tic’, todos os agentes invocam suas regras, se as condições são satisfeitas (se há grama próxima por exemplo) então o comporamento é executado.&lt;br /&gt;
&lt;br /&gt;
O objetivo da modelagem é é criar agentes e regras que gerem o comportamento desejado, estes sistemas podem ser usandos para obter um melhor entendimento de um fenômeno através da experimentação das regras e propriedades.&lt;br /&gt;
&lt;br /&gt;
Uma hipótese por teóricos da representação, é de que tudo que é percebido como difícil pode ser mais com compreensível por uma representação mais adequada. Alguns autores afirmam que a modelagem baseada em agentes (ABM) permite a reestruturação da área de sistemas complexos de forma que a compreensão destes sistemas podem ser democratizadas e a ciência possa avançar. Os modelos servem tanto como um objeto para se pensar a respeito do fenômeno modelado, como uma ferramenta para testar diferentes hipóteses.&lt;br /&gt;
&lt;br /&gt;
=== Exemplo conceitual: Modelo de formigas ===&lt;br /&gt;
&lt;br /&gt;
Mais alguns conceitos:&lt;br /&gt;
&lt;br /&gt;
* Modelo: uma descrição abstrata de um processo, objeto, ou evento.&lt;br /&gt;
* Modelo computacional: um modelo que recebe certos valores de entrada, manipula estas entradas de uma forma algorítmica e gera saídas.&lt;br /&gt;
* Implementação de modelo: processo de transformaçãoum modelo conceitual em uma simulação computacional que funciona (um código).&lt;br /&gt;
&lt;br /&gt;
Em uma modelagem baseada em agentes de formigas, cada agente é uma formiga no qual impomos regras básicas de exploração e coleta de alimentos individualmente, assim como liberação de feronômios. Especificamente, do ponto de vista de cada formiga individual, podemos definir as seguintes regras:&lt;br /&gt;
&lt;br /&gt;
# Se eu não estou carregando comida, checo se tem comida aqui. Se tem, eu a pego, se não tem, eu tento seguir a trilha de feronômios mais próxima. Se eu encontro uma, eu viro em direção à este gradiente de feronômio.&lt;br /&gt;
# Se estou carregando comida, eu viro em direção ao ninho liberando feronômio no chão atrá de mim.&lt;br /&gt;
# Eu ando uma quantidade pequena e aleatória de distância para frente.&lt;br /&gt;
&lt;br /&gt;
Como resultado da simulação, o sistema forma “trilhas” que levam as formigas às fontes de comida, exibindo comportamento “ótimo” que as fazem explorar primeiro os recursos mais próximos e hainda “balanço” entre exploração do ambiente e exploração dos seus recursos. Estes três fenômenos não foram codificados nas formigas, são um fenômeno emergente do modelo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O que é então a modelagem e simulação baseada em agentes? == &lt;br /&gt;
&lt;br /&gt;
Um modelo qualquer é sempre uma abstração da realidade, ou seja, uma representação simplificada que preserva uma equivalência adequada para determinadas situações de forma que pode ser vista como uma visão substitutiva da realidade para facilitar o raciocínio. &lt;br /&gt;
&lt;br /&gt;
Modelagem baseada em agentes (''agent based model'' - ABM) é uma forma de modelagem computacional na qual a dinâmica de um sistema complexo (social, biológico, etc) é representada em termos dos agentes e suas interações. Os agentes por suas vezes são indivíduos computacionais autônomos que possuem propriedades e regras de comportamento que regem sua interação com outros agentes e com o ambiente.&lt;br /&gt;
&lt;br /&gt;
A ideia central da modelagem baseada em agentes é que a maioria dos fenômenos do mundo real podem ser efetivamente modelados com agentes, um ambiente e uma descrição das interações agente-agente e agente-ambiente. O objetivo deste tipo de modelagem é criar agentes e regras que gerem o comportamento desejado. Uma vez criado, estes sistemas podem então serem usados para obter um melhor entendimento do fenômeno modelado através da experimentação de diferentes regras e propriedades visando testar diferentes hipóteses.&lt;br /&gt;
&lt;br /&gt;
Há principalmente 8 usos principal para um modelo baseado em agentes:&lt;br /&gt;
&lt;br /&gt;
# Descrição: um modelo desreve um sistema do mundo real, apesar de ser uma simplificação que não contém todos os seus detalhes, ainda sim é uma descrição grosseira da realidade, caso contrário é um modelo inútil. Pois se incorpora todo os aspectos do fenômeno real, é mais fácil observar a realidade, e se não a descreve de nenhuma forma não há motivos para observar.&lt;br /&gt;
# Esclarecimento: os modelos apontam os principais mecanismos em um fenômeno, funcionando então como prova de que um conceito é possível.&lt;br /&gt;
# Experimentação: modelos podem ser executados repetidamente, onde podemos variar os parâmetros para ver seus efeitos no comportamento e na saída.&lt;br /&gt;
# Prever fontes de analogia: podemos encontrar similaridades com outras simplificações, ainda que modelem fenômeno aparanetemente muito diferentes.&lt;br /&gt;
# Comunicação/educação: os modelos podem ser usados para permitir que pessoas explorem e entendam melhor determinados fenômenos, facilitando o aprendizado.&lt;br /&gt;
# Prover peças centrais para o diálogo científico: também chamado de ’um objeto com que pensar’, basicamente se apresenta como uma vantagem em comparação a outros modelos, por exemplo comparando com modelos textuais, elimina amgibuidades de como o leitor pode interpretar a descrição. Possibilitando discutir quais mecanismos são importantes para gerar determinando comportamento removendo ou adicionando novos mecanismos.&lt;br /&gt;
# Experimento mental: não necessariamente representam um fenômeno do mundo real, mas também podem ser experimentos mentais apenas.&lt;br /&gt;
# Predição: um dos propósitos que as pessoas comumente atribuem a modelagem computacional é a predição, de fato pode ter o propóito de pensar sobre futuros cenários utilizando a modelagem como uma ferramenta nesta discussão. Porém há a observação que que a acurácia da predição depende dos dados de entrada, e é difícil avaliar a acurácia de uum modelo para prever eventos que não ocorrem ainda. O que de fato é feito é '''descrever''' padrões passados e com isso '''explicar''' padrões futuros que possam surgir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sistemas complexos são definidos como sistemas compostos de múltiplos elementos individuais que interagem entre si e apresentam um comportamento que não pode ser previsto a partir dos próprios elementos. Como resultado das interações entre os elementos distribuídos surge então um ``fenômeno emergente&amp;quot;, característico de sistemas complexos. Por sua vez, o fenômeno emergente possui duas características essenciais: A primeira é que as estruturas que emergem não podem ser deduzidas apenas das propriedades dos elementos, pois surgem da interação entre eles, ou seja, são propriedades do sistema e não dos elementos que o compõe. E a segunda característica é a auto-organização, isto é,  o fenômeno surge espontaneamente sem a presença de um coordenador central. A emergência pode ser compreendida como o processo que mantém esta estrutura.&lt;br /&gt;
&lt;br /&gt;
A eficiência de um modelo depende da correta tradução da realidade para o modelo no ato de modelar, que por sua vez, é exatamente o ato de simular a realidade através de modelos. É por isto que é importante pensar no modelo antes do próprio ato de modelagem começar, identificar as variáveis relevantes para o problema que será abordado e definir a linguagem que será utilizada, pois a elaboração do modelo depende destes pontos cruciais.  Como um modelo é uma simplificação da realidade, é possível que uma mesma realidade seja modelada de diferentes formas, já que nenhum modelo é a própria realidade, em si, temos como exemplo a forma mais tradicional de modelagem científica de processos dinâmicos: equações diferenciais (''equation based modeling'' - EBM). &lt;br /&gt;
&lt;br /&gt;
Resulta por tanto ser natural comparamos ambas ambas estratégias de modelagem, EBM e ABM. Uma diferença importante é que  ABM pode modelar populações heterogêneas com facilidade enquanto EBM parte geralmente da hipótese de homogeneidade (''mean field''), e em muitas áreas a heterogeneidade possui um papel central. Da mesma forma que o ABM pode ser utilizada para modelar interações complexas entre agentes, também pode ser utilizado para modelar interações complexas entre agentes e o ambiente onde o ambiente é representado por agentes estacionários, assim, além da ABM ser indicada para situações em que temos heterogeneidade entre os agentes, também é indicada quando há um ambiente heterogêneo.&lt;br /&gt;
&lt;br /&gt;
Outra vantagem é que enquanto para modelar com equações precisamos ter um bom conhecimento fenomenológico dos mecanismos internos do sistema de interesse, em ABM precisamos apenas das regras a nível de indivíduos, o que geralmente é mais direto de se obter. Um grande risco no processo de modelagem como um todo é modelarmos os efeitos e não as causas, pela natureza de abordagem mais direta a nível individual da ABM, partimos exatamente da ideia de modelar estas interações para que o fenômeno emergente de nosso interessa seja então o resultado do nosso sistema, permitindo então que naturalmente nos foquemos na causa para entendermos o efeito.  Os resultados do ABM também são mais detalhados uma vez que as saídas não são apenas a nível do sistema, mas também a nível individual. Outra diferença bastante obvia é que ABM representa resultados com indivíduos de forma naturalmente discreta e frequentemente com flutuações (quando se inclui probabilidades) em quanto EBM fornece uma representação contĩnua e sem ruido do mesmo sistema.&lt;br /&gt;
&lt;br /&gt;
A modelagem baseada em agentes também possui uma concepção de tempo mais rica quando comparado com outras técnicas de modelagem, pois nos permite observar os indivíduos interagindo ao longo do tempo. Porém como qualquer modelo, há situações em que o custo de construir uma ABM excede seus benefícios. De maneira geral se o problema envolve um largo número de agentes homogêneos, será possível obter uma solução mais acurada e em menor tempo usando uma solução como campo médio, logo podemos considerar melhor modelado por esta categoria de modelos.&lt;br /&gt;
&lt;br /&gt;
Quanto ao custo computacional em si, há uma relação de custo benefício semelhante a outras formas de modelagem: resultados mais detalhados são obtidos com modelos mais detalhados que exigem maior poder de processamento. Porém, de maneira geral ABM é computacionalmente mais pesado do que EBM, uma vez que estes últimos são relativamente simples, pois frequentemente consistem de um pequeno conjunto de equações. &lt;br /&gt;
&lt;br /&gt;
Por fim, vale-se destacar que a modelagem baseada em agentes permite manter um histórico de interação entre os agentes, e este histórico pode servir para que o agente altere seus comportamentos e estratégias baseadas em eventos passados. Isto o torna uma ferramenta muito útil quando se modela interações complexas de agentes adaptativos. Devido a forma em que os ABM são construídos, novas regras de interação podem ser adicionadas, removidas ou alteradas com relativa facilidade.&lt;br /&gt;
&lt;br /&gt;
Como pode-se perceber, modelagem baseada em agentes é mais um conceito para a construção de um modelo que uma `receita'. De maneira geral, pode-se dizer que a modelagem baseada em agentes é uma modelagem que utiliza agentes, que por sua vez são um tipo de inteligência artificial, de forma que é importante ter um pouco de familiaridade com estes conceitos e outros correlatos.&lt;br /&gt;
&lt;br /&gt;
Inteligência artificial é o único campo a tentar construir sistemas que funcionarão de forma autônoma em ambientes complexos, assim podemos definir inteligência artificial como o estudo de sistemas que recebem entradas do ambiente e executam ações para retornar alguma saída de forma autônoma. Entre teorias existentes que são utilizadas dentro de inteligência artificial, podemos mencionar especialmente o aprendizado de máquina e o algoritmo genético, tópicos que serão discutidos com um pouco mais de detalhes nas próximas seções.&lt;br /&gt;
&lt;br /&gt;
Agentes autônomos são uma abordagem no estudo de IA fortemente inspirado pela biologia. Um agente nada mais é que um sistema que através de sensores consegue perceber o ambiente e agir sob o mesmo, e é autônomo uma vez que suas operações são realizadas sem a interferência do usuário. O sistema que forma o agente de maneira geral pode ser constituído de ''software'' e ''hardware'' permitindo que o sistema manipule um ambiente real.&lt;br /&gt;
&lt;br /&gt;
E por fim, temos que um sistema multiagente (''multiagent sytem'' - MAS) é uma aplicação de agentes, onde tem-se vários agentes, do mesmo ou diferentes tipos, que trabalham de forma colaborativa pra completar uma tarefa ou resolver um problema. Uma característica importante é que compartilham de um mesmo ambiente, sendo necessário então um ''framework'' que permita a comunicação e coordenação entre os agentes.&lt;br /&gt;
&lt;br /&gt;
Uma simulação construída através da ABM  (ainda chamado de ''agent based modelling and simulation'' - ABMS) é um sistema multiagente em um ambiente simulado com um tempo virtual.  Dessa forma dentro da nossa modelagem o sistema do agente é constituído apenas de ''software'', sendo apenas um programa, um agente de existência virtual que percebe e opera sobre um ambiente igualmente virtual. Aqui podemos destacar ainda que apesar de se sobreporem muitas vezes, MAS e ABMS tradicionalmente são discutido na literatura sob diferentes enfoques.  O objetivo da ABM  costumeiramente é entender alguma propriedade emergente que surge do comportamento coletivo do agentes, sendo mais usado em ciências, enquanto MAS tem o objetivo de resolver algum problema em particular sendo mais comumente utilizado nas engenharias. Devido a enorme variedade de aplicações, na literatura ainda podemos encontrar outros nomes para modelos construídos através da ABM dependendo muitas vezes do enfoque como por exemplo ''agent-based simulation'' e ''agent-based systems'' que possuem a mesma abreviatura (ABS), ''agent-based social simulation'' (ABSS) que ainda é sub-dividido em três categorias -  ''social aspects of agent systems''(SAAS), ''multi-agent based simulation'' (MABS) e ''social simulation'' (SocSim)-  além do próprio MAS que aparece também como sinônimo em parte da literatura.&lt;br /&gt;
&lt;br /&gt;
Ainda vale destacar a importância do conhecimento de alguns princípios  básicos para uma boa modelagem. No nosso modelo evidentemente é necessário conhecimento matemático, pois para uma modelagem computacional precisamos abstrair matematicamente. Princípios físicos básicos devem ser considerados  mesmo em simulações básicas, pois por exemplo os animais devem ter uma movimentação plausível, além de outros fenômenos naturais complexos que podem serem adicionados a depender da modelagem. E evidentemente, se faz necessário ter conhecimento de princípios biológico, uma vez que estamos tentando modelar um fenômeno de natureza biológica, particularmente de natureza ecológica no nosso caso. %Uma vez que o cientista responsável pela modelagem precisa trabalhar com observações da natureza que fogem do seu domínio principal, como este é o caso, passa-se a ser obrigatório apoiar-se em modelos já consolidado e consultar a literatura.&lt;br /&gt;
&lt;br /&gt;
Uma vez que construímos um modelo satisfatório, um dos papeis mais importantes da modelagem é a simulação. Pois é através desta que podemos determinar o quanto ela se aproxima da realidade. A partir então do momento que temos um grau de fidelidade aceitável no aspecto que o modelo se propõe a modelar, podemos criar situações que são difíceis de serem observadas e estudadas no mundo, cumprindo então o objetivo de que o modelo possa a ser utilizada como ferramenta de tomada de decisão.&lt;br /&gt;
&lt;br /&gt;
== Principais materiais utilizados: ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.jstor.org/stable/j.ctt17kk851 An Introduction to Agent-Based Modeling Modeling Natural, Social, and Engineered Complex Systems with NetLogo]. (Wilensky U. e Rand W.)&lt;br /&gt;
* [https://www.lume.ufrgs.br/handle/10183/12181 Em busca da aplicabilidade de sociedades articiais em informática educativa] (Henrique Oliveira da Silva, Doutorando da UFRGS)&lt;br /&gt;
* [https://www.intechopen.com/chapters/56573 Introductory Chapter: Multi-Agent Systems](Jorge Rocha, Inês Boavida-Portugal e Eduardo Gomes, Universidade de Lisboa)&lt;br /&gt;
* [https://www.inf.ufrgs.br/~bazzan/downloads/mas_ppsn.pdf Multiagent Systems and Agent-based Modeling and Simulation](Ana L. C. Bazzan, UFRGS)&lt;br /&gt;
&lt;br /&gt;
{{Ecologia| [[Autômato celular e modelo baseado em indivíduos]] |[[Contexto]]}}&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7841</id>
		<title>Ecologia</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Ecologia&amp;diff=7841"/>
		<updated>2022-07-20T18:18:35Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Professores IF: ''[http://www.if.ufrgs.br/~sebas/ Sebastián Gonçalves]'' &amp;lt;br&amp;gt;&lt;br /&gt;
Alunos: ''Jhordan Silveira de Borba'' (Mestrado)&amp;lt;br&amp;gt;&lt;br /&gt;
Colaboradores Externos: ''[https://fabianalaguna.wordpress.com/ Fabiana Laguna]'' (CONICET)&lt;br /&gt;
&lt;br /&gt;
'''Índice'''&lt;br /&gt;
&lt;br /&gt;
#Ferramentas matemáticas e computacionais&lt;br /&gt;
##[[Probabilidade básica]]&lt;br /&gt;
## Análise da estabilidade de pontos de equilíbrio em sistemas não-lineares&lt;br /&gt;
###[[Linearização de sistemas de equações não lineares]]&lt;br /&gt;
###[[Métodos de Lyapunov]]&lt;br /&gt;
##Análise de estabilidade em sistemas de equações diferenciais com atrasos&lt;br /&gt;
###[[Introdução à equações diferenciais com atraso | Introdução]]&lt;br /&gt;
###[[Solução via integrais sucessivas]]&lt;br /&gt;
###[[Estabilidade]]&lt;br /&gt;
###[[Análise de estabilidade de equações diferenciais lineares atrasadas | Exemplo: equação diferencial com retardo ]]&lt;br /&gt;
###[[Sistemas de equações diferenciais com atrasos fixos - SIRS | Exemplo: sistema de equações diferenciais com retardo (SIRS)]]&lt;br /&gt;
## Modelagem e simulação&lt;br /&gt;
### [[Simulação e modelo de campo médio]]&lt;br /&gt;
### [[Autômato celular e modelo baseado em indivíduos]]&lt;br /&gt;
### [[Por que usar e o que são modelos baseados em indivíduos]]&lt;br /&gt;
# Ecologia Matemática&lt;br /&gt;
##[[Contexto]]&lt;br /&gt;
## Modelos&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | Modelo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Espécies (presa/predador)&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Tipo&lt;br /&gt;
! align=&amp;quot;center&amp;quot; |Observações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins|Levins]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelos Logísticos|Logísticos]] &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |1/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Equação Diferencial com Atraso&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra|Lotka-Volterra]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Lotka-Volterra amortecido | Lotka-Volterra amortecido]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies | Levins aprimorado]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |1/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2 Equações&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 2 espécies II | Ondas de desertificação:   &amp;lt;br&amp;gt; campo médio]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais com Atraso&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 Equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito para 2 espécies| Ondas de desertificação:   &amp;lt;br&amp;gt; espacialmente explícito]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Com dinâmicados fragmentos disponíveis&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo de Levins aprimorado para 3 espécies|Gado e vida selvagem: &amp;lt;br&amp;gt; campo médio ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Sistema de Equações Diferenciais&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |3 equações&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Modelo espacialmente explícito | Gado e vida selvagem:  &amp;lt;br&amp;gt; espacialmente explícito ]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |2/1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |Autômato Celular&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=N%C3%BAmeros_Aleat%C3%B3rios&amp;diff=7642</id>
		<title>Números Aleatórios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=N%C3%BAmeros_Aleat%C3%B3rios&amp;diff=7642"/>
		<updated>2022-05-07T02:18:25Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introdução =&lt;br /&gt;
&lt;br /&gt;
Existem na natureza processos de caráter estocástico, cujo resultado não pode ser predito a priori. Os exemplos típicos são o lançamento de uma moeda, o jogo dos dados ou a roleta. Em cada um desses casos sabemos quais são os resultados possíveis, porem não ha como predizer o resultado da próxima jogada. Entretanto podemos sim dizer qual será resultado em termos estatísticos de um grande número de jogadas: se lançarmos 1000 vezes uma moeda aproximadamente 50% das vezes o resultado será cara, e a percentagem será cada vez mais próxima de 50% quanto maior o número de lançamentos. O mesmo pode ser dito da roleta: num grande número de jogadas aproximadamente 1/37 das vezes terá dado o 17 por exemplo. Embora não seja suficiente para ganhar no jogo é um resultado previsível do ponto de vista estatístico. De uma outra forma, se nos fosse permitido colocar uma ficha nos pares e no zero ao mesmo tempo repetindo a jogada um grande número de vezes, teríamos lucro no final das contas.&lt;br /&gt;
&lt;br /&gt;
Por outra parte existem na física processos cuja natureza é em principio determinística, cujo resultado é, em princípio, previsível conhecendo as condições inicias, mas que na prática resulta impossível como por exemplo a exata trajetória das moléculas de um gás.&lt;br /&gt;
&lt;br /&gt;
Mesmo assim poderíamos integrar as equações de Newton de N partículas (moléculas ou planetas) com um dos algoritmos estáveis usados na unidade anterior: o Euler-Cromer ou de preferência o Verlet. O principio é o mesmo que no caso de uma única partícula como foi o caso do oscilador harmônico unidimensional. No caso de N partículas existem algumas complicações adicionais pois é necessário somar a força que as N-1 partículas fazem em uma dada partícula. À integração numérica das equações de movimento de N partículas é dada o nome de Dinâmica Molecular. O método é muito usado é viável num PC até 100000 ou 1 milhão de partículas. Porem depois de um determinado tempo a trajetória obtida para uma dada partícula pode estar muito afastada da trajetória teórica. No fundo acontece algo parecido com o problema da moeda. Ele é em princípio um problema determinístico mas na prática resulta randômico. Se diz que são problema sensíveis as condições iniciais: uma pequena variação na posição ou velocidade inicial da moeda se traduz numa trajetória muito diferente depois de um certo tempo.&lt;br /&gt;
&lt;br /&gt;
Mas no caso de um gás, no fim não interessa pois nada importa a posição exata de uma dada molécula, o que importa são as propriedades estatísticas do sistema com um todo. Fazendo o análogo com o problema da moeda, é saber que proporção de cara ou coroa teremos depois de N lançamentos. No gás as medidas que interessam são a pressão, energia, temperatura, etc, propriedades médias do sistema em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
Dependendo das propriedades de interesse e dada essa caraterística randômica do movimento individual complexo de uma molécula qualquer, podemos adotar um modelo mais simples para simular o comportamento do sistema que o método de Dinâmica Molecular, relativamente difícil de programar. Tomemos o exemplo de um gás que está inicialmente contido numa metade de uma caixa, que está dividida ao meio por uma parede com um fim pequeno furo pelo qual pode passar uma molécula por vez.   Sabemos que depois de um tempo o sistema alcançará o equilíbrio e que o número médio de partículas em cada metade da caixa será N/2.&lt;br /&gt;
&lt;br /&gt;
Uma maneira simples de simular esse processo e supor que as partículas não interagem entre elas e que a probabilidade (por unidade de tempo) de uma dada partícula trocar de lado e a mesma para todas independente do lado da caixa na qual se encontre.   Podemos implementar esse modelo escolhendo aleatoriamente uma partícula e trocá-la de lado. Acompanhando este processo no tempo deveríamos observar a evolução do sistema ao equilíbrio.&lt;br /&gt;
&lt;br /&gt;
=Números aleatórios=&lt;br /&gt;
&lt;br /&gt;
Para implementar esse modelo precisamos números aleatórios. Os verdadeiros números aleatórios são aqueles que resultam de um experimento estocástico, como os exemplos citados ao começo: moeda, dados, roleta. Mas para poder usar em cálculos no computador devemos achar um método mais rápido de gerar um seqüência de números aleatórios, deve ser o própio computador quem forneça essa seqüência. Isso é possível como veremos em seguida, porem eles não são estritamente aleatórios, eles parecem não obedecer a nenhum padrão, nenhuma seqüência lógica parece estar por trás desses números, mas na verdade se trata de uma seqüência completamente previsível, só para quem conhece a regra de geração da seqüência, ou seja ninguém poderia acertar o próximo número a menos que conheça a receita. Ou seja, que podem se comportar como números aleatórios tão bons quanto os verdadeiros. Por isso são as vezes chamados de pseudo-aleatórios.&lt;br /&gt;
&lt;br /&gt;
Uma maneira de gerar uma seqüência assim é por meio da operação de congruência&lt;br /&gt;
(resto da divisão inteira):&lt;br /&gt;
&lt;br /&gt;
xn+1 = resto { (a xn + b)/m }&lt;br /&gt;
&lt;br /&gt;
onde a, b, m e os xn são todos números inteiros. Dependendo da escolha dos inteiros a, b e m, a sequencia de números {x1, x2, ..., xn} é uma sequencia randómica dos números entre 1 e m. A melhor maneira de entender como isso funciona é com um exemplo: Seja a=4, b=3 e m=1, e seja o x inicial x0= 2&lt;br /&gt;
&lt;br /&gt;
Em python, o método da congruência pode ser implementado da seguinte forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# gerador de num aleatorios de congruencia&lt;br /&gt;
def randi():&lt;br /&gt;
    global x&lt;br /&gt;
    a = 1029; b= 221591; m = 1048576&lt;br /&gt;
    x = (a*x + b) % m&lt;br /&gt;
    return x&lt;br /&gt;
&lt;br /&gt;
# entrar aqui um interiro como semente inicial&lt;br /&gt;
x = int(input('semente (entrar inteiro)? '))&lt;br /&gt;
for i in range(10):&lt;br /&gt;
    n = randi()&lt;br /&gt;
    print(i,n)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplos ==&lt;br /&gt;
&lt;br /&gt;
Como uma solução nativa em Python temos a biblioteca random, para obter um número aleatório entre 0 e 1 podemos utilizar random(), ou randint(a,b) para inteiros entre (incluindo) a e b:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import random&lt;br /&gt;
print(&amp;quot;Número aleatório: &amp;quot;,random.random()) # Frações no conjunto [0,1)&lt;br /&gt;
print(&amp;quot;Roleta:&amp;quot;,random.randint(0,37))       # Inteiros no conjunto [0,37]&lt;br /&gt;
print(&amp;quot;Dado:&amp;quot;,int(random.random()*6)+1)     # Inteiros no conjunto [1,6]&lt;br /&gt;
print(&amp;quot;Moeda: &amp;quot;, 2*random.randint(0,1)-1)   # Inteiros no conjunto {-1,1}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O caminhante aleatório, pode ser facilmente implementado, tanto para se ter a mesma probabilidade de se mover em qualquer direção quanto para probabilidades diferentes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;import random&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
n = 1000000 #Número de passos&lt;br /&gt;
p =0.5    #probabilidade de ir para o lado direito&lt;br /&gt;
x=[0]     #Posição inicial&lt;br /&gt;
c=0       #contador&lt;br /&gt;
for j in range(n):                #Com n passos em cada repetição&lt;br /&gt;
  dx = (+1) if (random.random()&amp;lt;=p) else (-1)&lt;br /&gt;
  x.append(x[j]+dx)               #Atualizamos a posição&lt;br /&gt;
  c = (c+1) if (dx&amp;gt;0) else (c)    #Atualizamos o contador&lt;br /&gt;
plt.plot(x)       &lt;br /&gt;
print(&amp;quot;A particula se moveu para a direita {:.2f}% das vezes&amp;quot;.format(100*c/n))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Também podemos implementar uma &amp;quot;apuração&amp;quot; de uma eleição. Por exemplo supondo que determinado candidato tem p% de chance de receber um voto, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import random&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
p =0.5    #probabilidade do candidato ser votado&lt;br /&gt;
v=[0]     #Quantidade de votos em %&lt;br /&gt;
T=0       #Quantidade de votos totais&lt;br /&gt;
for i in range(1,1601): #Quantidade de candidatos&lt;br /&gt;
  x=(1) if (random.random()&amp;lt;=p) else (0)&lt;br /&gt;
  T+=x&lt;br /&gt;
  v.append(T/i)&lt;br /&gt;
plt.plot(v)       &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um histograma é um meio interessante para analisar alguns resultados. Considerando um jogo no qual uma moeda é jogada M vezes, e se repetimos o jogo por N vezes, podemo montar um histograma sobre a quantidade de caras que obtemos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from matplotlib.ticker import FormatStrFormatter&lt;br /&gt;
import random&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
N = 10000 #Quantidade de jogos&lt;br /&gt;
M = 100   #Quantidade de vezes que jogamos a moeda em cada jogo&lt;br /&gt;
res=[]    #Onde vamos guardar cada resultado&lt;br /&gt;
for i in range(N): #Vamos jogar N &lt;br /&gt;
  s=0&lt;br /&gt;
  for j in range (M): #M moedas&lt;br /&gt;
    p=random.random()&amp;lt;0.5&lt;br /&gt;
    s = (s+1) if (p) else (s) #Soamos se saiu cara&lt;br /&gt;
  res.append(s) &lt;br /&gt;
plt.hist(res,bins=[i for i in range(M+1)])&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gás na caixa ==&lt;br /&gt;
E por fim, podemos implementar a simulação do gás na caixa em Python da seguinte forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import random&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
N = 1000     #Quantidade de partículas&lt;br /&gt;
cx =N*[0]    #Consideramos 0 à esquerda, e 1 à direita&lt;br /&gt;
np = 10000   #Número de pasos&lt;br /&gt;
t = [sum(cx)]#Quantidade de partícula a direita&lt;br /&gt;
&lt;br /&gt;
for i in range(np):&lt;br /&gt;
  j=random.randint(0,N-1) #Pegamos um índice&lt;br /&gt;
  cx[j] = (1) if (cx[j]==0) else (0)&lt;br /&gt;
  t.append(sum(cx))&lt;br /&gt;
&lt;br /&gt;
plt.plot(t)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continução temos um exemplo de código FORTRAN também implementando a simulação do exemplo do gas na caixa. No exemplo simulamos 1000 partículas e fica como exercício decidir que variáveis imprimir e como calculá-las. Também se é necessário imprimir a cada passo da simulação.&lt;br /&gt;
&lt;br /&gt;
 !Aula5: Programa Gas, simulação com 1000 partículas&lt;br /&gt;
 Program Gas&lt;br /&gt;
 Implicit None&lt;br /&gt;
 Real*8 Randi&lt;br /&gt;
 Integer N, i, j, t, x&lt;br /&gt;
 Parameter (N = 1000)&lt;br /&gt;
 Integer Box(N)&lt;br /&gt;
 &lt;br /&gt;
 Read(*,*) t, x  !t:tempo de simulação, x:semente de Randi&lt;br /&gt;
 &lt;br /&gt;
 Do i = 1, N&lt;br /&gt;
    Box(i) = -1&lt;br /&gt;
 End Do&lt;br /&gt;
 &lt;br /&gt;
 Do j = 1, t&lt;br /&gt;
    i = N*Randi(x)+1&lt;br /&gt;
    Box(i) = -Box(i)&lt;br /&gt;
    Print*, j, 'deixo/vc(exercício 2)'&lt;br /&gt;
 End Do&lt;br /&gt;
 &lt;br /&gt;
 End Program Gas&lt;br /&gt;
&lt;br /&gt;
Observações sobre FORTRAN:&lt;br /&gt;
&lt;br /&gt;
   1. Parameter é para assignar (em tempo de compilação) um valor fixo a uma variável que não pode mudar durante a execução do programa, evitando o erro decorrente de uma alteração involuntária por distração, etc.&lt;br /&gt;
   2. O segundo novo elemento é o vector A(10) ou B(5,20).&lt;br /&gt;
      No caso que nos ocupa é Box(N); a utilidade dele fica evidente no própio programa: de uma vez só definimos uma variável a qual, por meio do indice, permite guardar o estado de um grande número de variáveis. Neste caso são as posições das 1000 partículas.&lt;br /&gt;
&lt;br /&gt;
Exercícios:&lt;br /&gt;
&lt;br /&gt;
   1. Graficar a evolução temporal das partículas a esquerda e a direita da parede (ver figura acima).&lt;br /&gt;
   2. Observe o &amp;quot;tempo&amp;quot; necessário para entrar em regime estacionário. Como varia esse tempo se mudarmos o número de partículas. Você pode estabelecer uma relação entre t e N?&lt;br /&gt;
   3. Implemente uma maneira de calcular a média de partículas num lado da caixa (precissa os dois?) e veja como varia no tempo.&lt;br /&gt;
   4. Depende do intervalo usado para calcular a média?&lt;br /&gt;
   5. Observe a variação no número de partículas no regime estacionário. Implemente uma forma de quantificar essa variação no seu programa. Ou seja a desvio cuadrático médio ou flutuação&lt;br /&gt;
   6. Quantifique a dependencia do desvio no regime estacionário com o número de partículas&lt;br /&gt;
&lt;br /&gt;
=== Campo médio ===&lt;br /&gt;
&lt;br /&gt;
Escrevendo então a quantidade de partículas no lado direto da caixa em um tempo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t&amp;lt;/math&amp;gt; como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{+}\left(t\right)&amp;lt;/math&amp;gt; então escrevemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;n_{+}\left(t+1\right)=n_{+}\left(t\right)-p_{+}\left(t\right)+p_{-}\left(t\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p_{+}\left(t\right)&amp;lt;/math&amp;gt; é a probabilidade de encontrar uma partícula no lado direito no instante &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;t&amp;lt;/math&amp;gt;. Ou seja, uma vez que qualquer partícula pode ser selecionada com a mesma probabilidade, então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p_{+}\left(t\right)=\frac{n_{+}\left(t\right)}{N},\qquad p_{+}\left(t\right)=1-\frac{n_{+}\left(t\right)}{N},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
n_{+}\left(t+1\right) &amp;amp; =n_{+}\left(t\right)-\frac{n_{+}\left(t\right)}{N}+1-\frac{n_{+}\left(t\right)}{N}\\&lt;br /&gt;
 &amp;amp; =n_{+}\left(t\right)+1-2\frac{n_{+}\left(t\right)}{N}\\&lt;br /&gt;
n_{+}\left(t+1\right)- &amp;amp; n_{+}\left(t\right)=1-\frac{2n_{+}\left(t\right)}{N}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta é a taxa de variação em um passo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\Delta t=1&amp;lt;/math&amp;gt;. Então podemos obter o seguinte modelo de campo médio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{d}{dt}n_{+}\left(t\right)=1-\frac{2n_{+}\left(t\right)}{N}\longrightarrow n_{+}\left(t\right)=\frac{N}{2}\left(1-e^{-\frac{2t}{N}}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import random&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
N = 10000     #Quantidade de partículas&lt;br /&gt;
cx =N*[0]     #Consideramos 0 à esquerda, e 1 à direita&lt;br /&gt;
al = [0]      #Solução analítica para a quantidade de partículas à direita&lt;br /&gt;
NP = 30000    #Número de pasos&lt;br /&gt;
t = [sum(cx)] #Quantidade de partícula a direita&lt;br /&gt;
&lt;br /&gt;
for i in range(NP):&lt;br /&gt;
  j=random.randint(0,N-1)               #Pegamos um índice&lt;br /&gt;
  cx[j] = (1) if (cx[j]==0) else (0)    #Números aleatórios&lt;br /&gt;
  t.append(sum(cx))&lt;br /&gt;
  al.append((1-np.exp(-2*(i+1)/N))*N/2) #Campo médio&lt;br /&gt;
&lt;br /&gt;
plt.plot(t,label=&amp;quot;Número aleatórios&amp;quot;)&lt;br /&gt;
plt.plot(al,label=&amp;quot;Campo-médio&amp;quot;)&lt;br /&gt;
plt.legend()                 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O campo médio nos dá a média de várias trajetórias no sistema, isto é, se somássemos todas trajetórias do sistema, o que obtemos  representa a média de infinitas trajetórias. Logo o campo-médio não só representa a média de várias trajetórias com baixas partículas, mas a medida que aumentamos o número de partículas, ele se aproxima desta trajetória.&lt;br /&gt;
&lt;br /&gt;
=== Valor médio e variância ===&lt;br /&gt;
&lt;br /&gt;
Tendo o valor médio de partículas a direita dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left\langle n_{+}\right\rangle =\frac{1}{\tau}\sum_{t=t_{i}}^{t_{i}+\tau}n_{+}\left(t\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então a variância pode ser escrita como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sigma^{2}=\frac{1}{\tau}\sum_{t=t_{i}}^{t_{i}+\tau}\left(n_{+}\left(t\right)-\left\langle n_{+}\right\rangle \right)^{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uma vez que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\sigma^{2} &amp;amp; =\frac{1}{\tau}\sum_{t=t_{i}}^{t_{i}+\tau}\left(n_{+}\left(t\right)-\left\langle n_{+}\right\rangle \right)^{2}\\&lt;br /&gt;
 &amp;amp; =\frac{1}{\tau}\sum_{t=t_{i}}^{t_{i}+\tau}\left(n_{+}^{2}+\left\langle n_{+}\right\rangle ^{2}-2n_{+}\left\langle n_{+}\right\rangle \right)\\&lt;br /&gt;
 &amp;amp; =\frac{1}{\tau}\sum_{t=t_{i}}^{t_{i}+\tau}n_{+}^{2}+\frac{1}{\tau}\sum_{t=t_{i}}^{t_{i}+\tau}\left\langle n_{+}\right\rangle ^{2}-\frac{2}{\tau}\sum_{t=t_{i}}^{t_{i}+\tau}n_{+}\left\langle n_{+}\right\rangle \\&lt;br /&gt;
 &amp;amp; =\left\langle n_{+}^{2}\right\rangle +\frac{\left\langle n_{+}\right\rangle ^{2}}{\tau}\sum_{t=t_{i}}^{t_{i}+\tau}\left(1\right)-2\left\langle n_{+}\right\rangle \left[\frac{1}{\tau}\sum_{t=t_{i}}^{t_{i}+\tau}n_{+}\right]\\&lt;br /&gt;
 &amp;amp; =\left\langle n_{+}^{2}\right\rangle +\left\langle n_{+}\right\rangle ^{2}\frac{\tau}{\tau}-2\left\langle n_{+}\right\rangle \left\langle n_{+}\right\rangle \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sigma^{2}=\left\langle n_{+}^{^{2}}\left(t\right)\right\rangle -\left\langle n_{+}\right\rangle ^{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Distribuição binomial ==&lt;br /&gt;
&lt;br /&gt;
Voltando ao exemplo do caminhante aleatório, considerando que tem &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p&amp;lt;/math&amp;gt; probabiliade de ir a direita (&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;q=1-p&amp;lt;/math&amp;gt; de ir à esquerda), após &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos, tendo dado &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}&amp;lt;/math&amp;gt;passos à direita (&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{2}=N-n_{1}&amp;lt;/math&amp;gt; à esquerda), então a sua posição final é dada por &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=n_{1}-n_{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Como teve &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=n_{1}+n_{2}&amp;lt;/math&amp;gt; passos, então sbustituindo em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=n_{1}-n_{2}&amp;lt;/math&amp;gt; podemos reescrever:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;n_{1}=\frac{N+m}{2}\qquad n_{2}=\frac{N-m}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A probabilidade pra uma sequência de pulos é apenas o produto das probabilidades dos pulos indivíduais, pois são eventos independentes. Então a probabilidade de fazer &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}&amp;lt;/math&amp;gt;pulos pra a direita e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{2}&amp;lt;/math&amp;gt;pulos para esquerda é apenas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p^{n_{1}}q^{n_{2}}=p^{\frac{N+m}{2}}q^{\frac{N-m}{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora precisamos multiplicar pelo número total de caminhos possíveis tendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}&amp;lt;/math&amp;gt;passos para a direita e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{2}&amp;lt;/math&amp;gt;passos para a esquerda, pois na equação acima temos apenas a probabilidade de um caminho, e estamos interessados na probabilidade final de estar na posição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m&amp;lt;/math&amp;gt; após &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos, independente do caminho.&lt;br /&gt;
&lt;br /&gt;
Isto é o número de modos que podemos colocar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}&amp;lt;/math&amp;gt; objetos (de um total &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt;) em uma ’caixa’ &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{2}&amp;lt;/math&amp;gt; em outra, lembrando que os objetos são essencialmente idênticos, só muda onde estamos guardando. Isto é de um conjunto de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; “saltos” que vamos fazer, podemos escolher qualquer um dos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; como a primeira escolha, então temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N-1&amp;lt;/math&amp;gt; opções como a segunda escolha, e sucessivamente, ao total temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N!&amp;lt;/math&amp;gt; arranjos possíveis. Porém todos os saltos à esquerda (ou bolinhas em uma caixa) são essencialmente os mesmos, e temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{2}!&amp;lt;/math&amp;gt; ordens possíveis de salto a esquerda, sendo que todas são iguais, do mesmo modo temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}!&amp;lt;/math&amp;gt; ordens possíveis de saltos a direita.&lt;br /&gt;
&lt;br /&gt;
Para facilitar, vamos ilustrar com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=4&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}=n_{2}=2&amp;lt;/math&amp;gt;. Isto é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=0&amp;lt;/math&amp;gt;. temos quatro saltos, 2 à esquerda &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},s_{E}^{2}\right\}&amp;lt;/math&amp;gt; e 2 a direita &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ S_{D}^{1},S_{D}^{2}\right\}&amp;lt;/math&amp;gt;. Há &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;4!=24&amp;lt;/math&amp;gt; formas de começar na posição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;lt;/math&amp;gt; e terminar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;lt;/math&amp;gt;, em um primeir momentos temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;4&amp;lt;/math&amp;gt; saltos diferentes para escolher, depois vamos ter &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;3&amp;lt;/math&amp;gt;, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;2&amp;lt;/math&amp;gt; .... Por exemplo se escolhemos primeiro &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;s_{E}^{1}&amp;lt;/math&amp;gt;, nos resta &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{2},S_{D}^{1},S_{D}^{2}\right\}&amp;lt;/math&amp;gt;, que pode ser rearranjado de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;6&amp;lt;/math&amp;gt; formas diferentes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},s_{E}^{2},S_{D}^{1},S_{D}^{2}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},s_{E}^{2},S_{D}^{2},S_{D}^{1}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},S_{D}^{1}s_{E}^{2},S_{D}^{2}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},S_{D}^{1}s_{D}^{2},S_{E}^{2}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},S_{D}^{1},s_{E}^{2},S_{D}^{2}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},S_{D}^{1}S_{D}^{2},s_{E}^{2}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
O mesmo para cada um das outras &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;3&amp;lt;/math&amp;gt; opções de inicício possível, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;4\times6=24&amp;lt;/math&amp;gt;. Porém se a ordem de escolha dos saltos à direita for &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{D}^{1},s_{D}^{2}\right\}&amp;lt;/math&amp;gt; ou &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{D}^{2},s_{D}^{1}\right\}&amp;lt;/math&amp;gt;, não faz diferença. Então temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;2&amp;lt;/math&amp;gt; ordens que são a indistinguíveis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},s_{E}^{2},S_{D},S_{D}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},S_{D}s_{E}^{2},S_{D}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E}^{1},S_{D}s_{D},S_{E}^{2}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Logo reduzimos pela metade as opções &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{4!}{2!}&amp;lt;/math&amp;gt;. E o mesmo ainda pode ser dito para os saltos à esquerda. De forma que temos apenas &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{4!}{2!2!}=\frac{24}{4}=6&amp;lt;/math&amp;gt; opções possíveis, que são:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E},s_{E},S_{D},S_{D}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{D},s_{D},S_{E},S_{E}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E},s_{D},S_{E},S_{D}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{D},s_{E},S_{D},S_{E}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{E},s_{D},S_{D},S_{E}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\{ s_{D},s_{E},S_{E},S_{D}\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Então o número total de caminhos indistinguiveis com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}&amp;lt;/math&amp;gt;passos à direta e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{2}&amp;lt;/math&amp;gt; à esquerda é: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{N!}{n_{1}!n_{2}!}=\frac{N!}{n_{1}!\left(N-n_{1}\right)!}=\frac{N!}{\left(\frac{N+m}{2}\right)!\left(\frac{N-m}{2}\right)!}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Temos então que a probabilidade estar na posição &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m&amp;lt;/math&amp;gt; após &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; passos é dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(m,N\right)=\frac{N!}{\left(\frac{N+m}{2}\right)!\left(\frac{N-m}{2}\right)!}p^{\frac{N+m}{2}}q^{\frac{N-m}{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou reescrevendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}=n&amp;lt;/math&amp;gt; para facilitar, e lembrando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{1}=\frac{N+m}{2}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=n_{1}+n_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(n\right)=\frac{N!}{n!\left(N-n\right)!}p^{n}q^{N-n}=\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)p^{n}q^{N-n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)=C_{n}^{N}&amp;lt;/math&amp;gt; tabém é chamado de combinatória. &lt;br /&gt;
&lt;br /&gt;
Utilizando o binômio de Newton:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left(x+y\right)^{n}=\sum_{k=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
n\\&lt;br /&gt;
k&lt;br /&gt;
\end{array}\right)x^{n-k}y^{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Temos a normalização:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sum_{n=0}^{n}p\left(n\right)=\sum_{n=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}=\left(p+q\right)^{N}=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uma vez que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p+q=1&amp;lt;/math&amp;gt;. E lembrando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(n\right)&amp;lt;/math&amp;gt; é a probabilidade de estar em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=2n-N&amp;lt;/math&amp;gt;, ou seja de sair &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; vezes passo a direita em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; tentativas, então o valor médio de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; pode ser dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left\langle n\right\rangle =\sum_{n=0}^{N}np\left(n\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E derivando o binômio de Newton:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
p\frac{d}{dp}\left(p+q\right)^{N}=pN\left(p+q\right)^{N-1}=pN\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E também:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
p\frac{d}{dp}\left(p+q\right)^{N} &amp;amp; =p\frac{d}{dp}\left[\sum_{n=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}\right]\\&lt;br /&gt;
 &amp;amp; =p\sum_{n=0}^{n}n\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n-1}\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{n}n\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{n}np\left(n\right)\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;pN=\sum_{n=0}^{n}np\left(n\right)=\left\langle n\right\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o desvio padrão adotamos uma estratégia parecida mas com a segunda derivada do binômio de Newton. Sendo o desvio dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sigma^{2}=\left\langle n^{2}\right\rangle -\left\langle n\right\rangle ^{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{c}&lt;br /&gt;
p^{2}\frac{d^{2}}{dp^{2}}\left(p+q\right)^{N}=p^{2}N\left(N-1\right)\left(p+q\right)^{N-1}=p^{2}N\left(N-1\right)\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
p^{2}\frac{d^{2}}{dp^{2}}\left(p+q\right)^{N} &amp;amp; =p^{2}\frac{d^{2}}{dp^{2}}\left[\sum_{n=0}^{n}\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}\right]\\&lt;br /&gt;
 &amp;amp; =p^{2}\sum_{n=0}^{n}n\left(n-1\right)\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n-2}\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{n}\left(n^{2}-n\right)\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{n}n^{2}\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}-\sum_{n=0}^{n}n\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)q^{N-n}p^{n}\\&lt;br /&gt;
 &amp;amp; =\left\langle n^{2}\right\rangle -\left\langle n\right\rangle \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p^{2}N^{2}-p^{2}N=\left\langle n^{2}\right\rangle -\left\langle n\right\rangle^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou ainda:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\left\langle n^{2}\right\rangle  &amp;amp; =p^{2}N^{2}-p^{2}N+\left\langle n\right\rangle \\&lt;br /&gt;
 &amp;amp; =p^{2}N^{2}-p^{2}N+pN\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\sigma^{2} &amp;amp; =\left\langle n^{2}\right\rangle -\left\langle n\right\rangle ^{2}\\&lt;br /&gt;
 &amp;amp; =p^{2}N^{2}-p^{2}N+pN-\left(pN\right)^{2}\\&lt;br /&gt;
 &amp;amp; =pN-p^{2}N\\&lt;br /&gt;
 &amp;amp; =pN\left(1-p\right)\\&lt;br /&gt;
 &amp;amp; =pNq\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sigma=\sqrt{Npq}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Além disso, para o limite &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n\rightarrow\infty&amp;lt;/math&amp;gt;, sendo &amp;lt;math&amp;gt; p \not\approx 1 &amp;lt;/math&amp;gt;, temos a gaussiana &amp;lt;ref&amp;gt; [http://staff.ustc.edu.cn/~chenzyn/lectures/L.%20E.%20Reichl-A%20modern%20course%20in%20statistical%20physics.pdf A modern course in statistical physics] (L. E. Reichl)&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(n\right)=\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)p^{n}q^{N-n}\approx\frac{1}{\sqrt{2\pi Npq}}\exp\left(\frac{-\left(n-Np\right)^{2}}{2Npq}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemplo: Caminhante aleatório ===&lt;br /&gt;
&lt;br /&gt;
Voltando ao caminhante leatório, temos então que a posição média média no tempo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m\left(t\right)&amp;lt;/math&amp;gt; vai ser &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle m\right\rangle =0&amp;lt;/math&amp;gt; se temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p=q&amp;lt;/math&amp;gt;, e se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\neq q&amp;lt;/math&amp;gt; então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle m\right\rangle =\left(p-q\right)N&amp;lt;/math&amp;gt;. Além disso, a posição final é efetivamente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;m=2n-N&amp;lt;/math&amp;gt;, pois denotando&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{D}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{E}&amp;lt;/math&amp;gt; respectivamente como a quantidade de passos á direita e esquerda, temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;n_{D}-n_{E}=n_{D}-\left(N-n_{D}\right)=2n_{D}-N&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo nossa média é:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\left\langle m\right\rangle  &amp;amp; =\sum_{n=0}^{N}mp\left(n\right)\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{N}\left(2n-N\right)p\left(n\right)\\&lt;br /&gt;
 &amp;amp; =2\sum_{n=0}^{N}np\left(n\right)-\sum_{n=0}^{N}Np\left(n\right)\\&lt;br /&gt;
 &amp;amp; =2\left\langle n\right\rangle -N\sum_{n=0}^{N}p\left(n\right)\\&lt;br /&gt;
 &amp;amp; =2\left\langle n\right\rangle -N\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left\langle m\right\rangle ^{2}=4\left\langle n\right\rangle ^{2}-4\left\langle n\right\rangle N+N^{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\left\langle m^{2}\right\rangle  &amp;amp; =\sum_{n=0}^{N}m^{2}p\left(n\right)\\&lt;br /&gt;
 &amp;amp; =\sum_{n=0}^{N}\left(2n-N\right)^{2}p\left(n\right)\\&lt;br /&gt;
 &amp;amp; =4\sum_{n=0}^{N}n^{2}p\left(n\right)-4N\sum_{n=0}^{N}np\left(n\right)+N^{2}\sum_{n=0}^{N}p\left(n\right)\\&lt;br /&gt;
 &amp;amp; =4\left\langle n^{2}\right\rangle -4N\left\langle n\right\rangle +N^{2}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fazeno então o desvio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\sigma_{m}^{2} &amp;amp; =\left\langle m^{2}\right\rangle -\left\langle m\right\rangle ^{2}\\&lt;br /&gt;
 &amp;amp; =\left(4\left\langle n^{2}\right\rangle -4N\left\langle n\right\rangle +N^{2}\right)-\left(4\left\langle n\right\rangle ^{2}-4\left\langle n\right\rangle N+N^{2}\right)\\&lt;br /&gt;
 &amp;amp; =4\left(\left\langle n^{2}\right\rangle -\left\langle n\right\rangle ^{2}\right)\\&lt;br /&gt;
 &amp;amp; =4\sigma_{n}^{2}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Temos então que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sigma_{m}=2\sigma_{n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou simplesmente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sigma_{m}=2\sqrt{pqN}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p=q=\frac{1}{2}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sigma_{m}=\sqrt{N}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sendo ainda &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N&amp;lt;/math&amp;gt; corresponde ao tempo, então fazendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=t&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\sigma_{m}=\sqrt{t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import random&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
M = 5000 #Quantidade de simulações&lt;br /&gt;
N = 100  #Número de passos&lt;br /&gt;
p = 0.5  #probabilidade de ir para o lado direito&lt;br /&gt;
x = (N+1)*[0]&lt;br /&gt;
x2 = x.copy()&lt;br /&gt;
for i in range(M):&lt;br /&gt;
  y=[x[0]]&lt;br /&gt;
  for j in range(N):                #Com n passos em cada repetição&lt;br /&gt;
    dy = (+1) if (random.random()&amp;lt;=p) else (-1)&lt;br /&gt;
    y.append(y[j]+dy)&lt;br /&gt;
  x=np.add(x,y)               #Somando os x&lt;br /&gt;
  x2=np.add(x2,np.square(y))  #Somando os x²&lt;br /&gt;
xmed=x/M   # &amp;lt;x &amp;gt;&lt;br /&gt;
x2med=x2/M # &amp;lt;x²&amp;gt;&lt;br /&gt;
sig=np.sqrt(x2med-np.square(xmed)) #(&amp;lt;x²&amp;gt;-&amp;lt;x&amp;gt;²)^(1/2)&lt;br /&gt;
plt.plot(xmed,label=&amp;quot;&amp;lt;x&amp;gt;&amp;quot;)&lt;br /&gt;
plt.plot(sig,label='Sigma')&lt;br /&gt;
plt.legend()                     &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Distribuição de Poisson ==&lt;br /&gt;
&lt;br /&gt;
Temos novamente &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N\rightarrow\infty&amp;lt;/math&amp;gt;, mas agora sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\rightarrow0&amp;lt;/math&amp;gt;, onde &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;pN=\lambda&amp;gt;0&amp;lt;/math&amp;gt;. Tendo um evento que é continuamente testado durante um intervalo de tempo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau&amp;lt;/math&amp;gt;, se a quantidade de testes neste intervalo é escrito como &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=\frac{\tau}{\delta t}&amp;lt;/math&amp;gt;, tratando a probabilidade de maneira contínua &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\rightarrow\delta p&amp;lt;/math&amp;gt; ficamos com:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lambda=Np=\tau\frac{\delta p}{\delta t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{\delta p}{\delta t}&amp;lt;/math&amp;gt; é probabilidade por tempo, e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau&amp;lt;/math&amp;gt; o tempo total do intervalo, logo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lambda&amp;lt;/math&amp;gt; é o número médio de eventos no período &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau&amp;lt;/math&amp;gt;. Além disso, com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N=1&amp;lt;/math&amp;gt;, temos o tempo médio de um evento &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\tau=1/\lambda&amp;lt;/math&amp;gt;. Retomando então a distribuição binomial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(n\right)=\left(\begin{array}{c}&lt;br /&gt;
N\\&lt;br /&gt;
n&lt;br /&gt;
\end{array}\right)p^{n}q^{N-n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E manipulando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
p\left(n\right) &amp;amp; =\frac{N!}{\left(N-n\right)!n!}p^{n}q^{N-n}\\&lt;br /&gt;
 &amp;amp; =\frac{N!}{\left(N-n\right)!n!}\frac{\left(Np\right)^{n}}{N^{n}}\left(1-\frac{Np}{N}\right)^{N-n}\\&lt;br /&gt;
 &amp;amp; =\left[\frac{N!}{\left(N-n\right)!}\frac{1}{N^{n}n!}\right]\lambda^{n}\left(1-\frac{\lambda}{N}\right)^{N}\left(1-\frac{\lambda}{N}\right)^{-n}\\&lt;br /&gt;
 &amp;amp; =\left[\frac{N\left(N-1\right)\left(N-2\right)\dots\left(N-n+1\right)\left(N-n\right)!}{\left(N-n\right)!}\right]\frac{\lambda^{n}}{N^{n}n!}\left(1-\frac{\lambda}{N}\right)^{N}\left(1-\frac{\lambda}{N}\right)^{-n}\\&lt;br /&gt;
 &amp;amp; =\frac{N\left(N-1\right)\dots\left(N-n+1\right)}{N^{n}}\frac{\lambda^{n}}{n!}\left(1-\frac{\lambda}{N}\right)^{N}\left(1-\frac{\lambda}{N}\right)^{-n}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No limite de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N\rightarrow\infty&amp;lt;/math&amp;gt; então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\lim_{N\rightarrow\infty}\left(1-\frac{\lambda}{N}\right)^{-n}=1,\qquad\lim_{N\rightarrow\infty}\left(1-\frac{\lambda}{N}\right)^{N}=e^{-\lambda}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lim_{N\rightarrow\infty}\left(N-a\right)\approx\lim_{N\rightarrow\infty}N&amp;lt;/math&amp;gt; sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a&amp;lt;/math&amp;gt; uma constante qualquer, então, como temos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; termos no numerador e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N^{n}&amp;lt;/math&amp;gt; nos deixa com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n&amp;lt;/math&amp;gt; termos no denominador:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\lim_{N\rightarrow\infty}p\left(n\right) &amp;amp; =\lim_{N\rightarrow\infty}\frac{N\left(N-1\right)\dots\left(N-n+1\right)}{N^{n}}\frac{\lambda^{n}}{n!}\left(1-\frac{\lambda}{N}\right)^{N}\left(1-\frac{\lambda}{N}\right)^{-n}\\&lt;br /&gt;
 &amp;amp; =\frac{\lambda^{n}}{n!}e^{-\lambda}\lim_{N\rightarrow\infty}\left[\frac{N\left(N-1\right)\dots\left(N-n+1\right)}{N\dots N}\right]\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Temos então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p_{\lambda}\left(n\right)=\frac{e^{-\lambda}\lambda^{n}}{n!}&amp;lt;/math&amp;gt;&lt;br /&gt;
O valor mais provável é &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle n\right\rangle =\lambda&amp;lt;/math&amp;gt; e temos que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\sigma^{2}=\lambda&amp;lt;/math&amp;gt;. Pois obtemos do resultado da binomial que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle n\right\rangle =pN&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\sigma=\sqrt{pN\left(1-p\right)}&amp;lt;/math&amp;gt;. No limite em que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\rightarrow0&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;N\rightarrow \infty&amp;lt;/math&amp;gt; temos então que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left\langle n\right\rangle =pN=\lambda&amp;lt;/math&amp;gt; e:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\sigma= &amp;amp; \lim_{p\rightarrow0}\sqrt{pN\left(1-p\right)}=\lim_{p\rightarrow0}\sqrt{\lambda\left(1-p\right)}=\sqrt{\lambda}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou seja &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\sigma^{2}=\lambda&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import random&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
N = 10000 #Quantidade de repetições&lt;br /&gt;
M = 1000  #Quantidade de passos em cada repetição&lt;br /&gt;
res=[]    #Onde vamos guardar cada resultado&lt;br /&gt;
lam = 3   #Lambda&lt;br /&gt;
p = lam/M #Probabilidade&lt;br /&gt;
&lt;br /&gt;
for i in range(N): #Vamos jogar N &lt;br /&gt;
  s=0&lt;br /&gt;
  for j in range (M): #M moedas&lt;br /&gt;
    b=random.random()&amp;lt;p&lt;br /&gt;
    s = (s+1) if (b) else (s) #Soamos se saiu cara&lt;br /&gt;
  res.append(s) &lt;br /&gt;
plt.hist(res,bins=[j for j in range (lam-5,lam+6,1)])&lt;br /&gt;
plt.show()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Citações =&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_de_Monte_Carlo_e_transforma%C3%A7%C3%B5es&amp;diff=7351</id>
		<title>Método de Monte Carlo e transformações</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_de_Monte_Carlo_e_transforma%C3%A7%C3%B5es&amp;diff=7351"/>
		<updated>2022-04-29T20:09:01Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;transformação-linear&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Transformação linear ==&lt;br /&gt;
&lt;br /&gt;
Sorteando um número aleatório &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x\in\left[0,1\right)&amp;lt;/math&amp;gt; então fazemos uma transformação para obter um número &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\in\left[ a,b\right)&amp;lt;/math&amp;gt;. Isto é, obtemos a seguinte transformação &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;f:\left[ 0,1\right)\rightarrow\left[ a,b\right)&amp;lt;/math&amp;gt; da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;y\left(x\right)=a+\left(b-a\right)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se todos os números entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; tinham igual probabilidade de serem sorteados, após a transformação todos os números entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b&amp;lt;/math&amp;gt; também possuem igual probabilidade, pois &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; varia com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; de forma linear, isto é, a distribuição uniforme de números é mantida.Por sua vez, a distribuição uniforme significa que a probabiliade de obter um número entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x+dx&amp;lt;/math&amp;gt; é dada pela função densidade de probabilidade da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(x\right)dx=\begin{cases}&lt;br /&gt;
dx, &amp;amp; 0&amp;lt;x&amp;lt;1\\&lt;br /&gt;
0, &amp;amp; \text{outra forma}&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(x\right)=p&amp;lt;/math&amp;gt; constante, temos que: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\int_{-\infty}^{+\infty}dx=p\int_{0}^{1}dx=p=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela normalização. Mas se ampliarmos o intervalo dos números possíveis para entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\int_{-\infty}^{+\infty}p'dx=\int_{a}^{b}p'dx=p'\int_{a}^{b}dx=p'\left(b-a\right)=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então agora &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)=p'=1/\left(b-a\right)&amp;lt;/math&amp;gt;. Isto é distribuição de probabilidade continua constante, mas com uma menor probabilidade de sortear um número &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; qualquer, quando em comparação de sortear um &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; qualquer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;transformação-não-linear&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Transformação não-linear ==&lt;br /&gt;
&lt;br /&gt;
O mesmo não ocorre com uma transformação não linear. Por exemplo se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\left(x\right)=4x^{2}&amp;lt;/math&amp;gt;, derivando temos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dx}=8x\quad\longrightarrow\quad dy=8xdx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diferente do caso anterior que tínhamos apenas a transformação linear &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dy=\left(b-a\right)dx&amp;lt;/math&amp;gt;. Podemos ver ainda usando a própria definição de derivada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
y\left(x+dx\right)-y\left(x\right) &amp;amp; =4\left(x+dx\right)^{2}-4x^{2}\\&lt;br /&gt;
 &amp;amp; =4x^{2}+4xdx+dx^{2}-4x^{2}\\&lt;br /&gt;
 &amp;amp; =4\cdot2xdx+dx^{2}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dx&amp;lt;/math&amp;gt; um diferencial então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dx^{2}\approx0&amp;lt;/math&amp;gt;, logo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dy=8xdx&amp;lt;/math&amp;gt;. Agora a distribuição de probabilidade é alterada com a transformação. Para uma transformação &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\left(x\right)&amp;lt;/math&amp;gt; qualquer, como a probabilidade se conserva, ainda temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left|p\left(y\right)dy\right|=\left|p\left(x\right)dx\right|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considrando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y=y\left(x\right)&amp;lt;/math&amp;gt; tem inversa, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x=x\left(y\right)&amp;lt;/math&amp;gt; então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\left|p\left(y\right)dy\right|= &amp;amp; \left|p\left(x\right)dx\right|\\&lt;br /&gt;
p\left(y\right)\left|dy\right|= &amp;amp; p\left(x\right)\left|dx\right|\\&lt;br /&gt;
p\left(y\right)= &amp;amp; p\left(x\right)\left|\frac{dx}{dy}\right|\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\left(x\right)=-\ln\left(x\right)&amp;lt;/math&amp;gt; então reescrevendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x=e^{-y}&amp;lt;/math&amp;gt;, logo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dy}=-e^{y}&amp;lt;/math&amp;gt; Então temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(y\right)=p\left(x\right)e^{-y}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E sendo nossa ditribuição em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; uniforme com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(x\right)=p=1&amp;lt;/math&amp;gt; como vimos anteriormente, ficamos com:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(y\right)=e^{-y}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para a transformação &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y=-\ln\left(x\right)&amp;lt;/math&amp;gt;. O mais comum é que saibamos a distribuição de probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt; que queremos, e uma vez que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(y\right)=\left|\frac{dx}{dy}\right|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E integramos então para encontrar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x\left(y\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;método-da-rejeição&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Método da rejeição ==&lt;br /&gt;
&lt;br /&gt;
Nem sempre o &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt; desejado é fácil de definir matematicamente. O método da rejeição é um método rústico para obtermos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Desenhar a função &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt; desejada dentro dos limites &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a\leq y&amp;lt;b&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0\leq p\left(y\right)\leq p_{max}&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Geramos um ponto aleatório &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(y,p\left(y\right)\right)&amp;lt;/math&amp;gt;, se estiver abaixo da curva desejada é aceito.&lt;br /&gt;
&lt;br /&gt;
Se gerarmos pontos aleatórios em grande quantidade, a razão de pontos aceitos para cada &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; em relação à todos o pontos aleatórios gerados neste &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt;, nos dá uma estimativa de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt; neste ponto, em relação do &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p_{max}&amp;lt;/math&amp;gt;. Isto é, se para um &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; qualquer, metade dos pontos gerado aleatoriamente foram válidos, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)\approx\frac{p_{max}}{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cálulo-de-integrais-definidas&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Cálulo de integrais definidas ==&lt;br /&gt;
&lt;br /&gt;
Em uma ideia bastante análoga à anterior, aqui utilizamos a ideia que a integral definida é cálculo da área sob a curva. Definindo novamente limites &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{min}\leq x\leq x_{max}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y_{min}\leq y\leq y_{max}&amp;lt;/math&amp;gt; no qual a região que queremos calcular está contida, geramos uma série de pontos aleatórios, se gerado pontos suficientes, a razão de pontos que foram gerados dentro da área que queremos calcular em relação ao total de pontos gerados, será a mesma razão da área que queremos calcular em relação à área total definida pelos limites.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Cálculo da área de um círculo&lt;br /&gt;
import matplotlib.pyplot as plt   #Plotar gráfico&lt;br /&gt;
import numpy as np                #Funções matemáticas&lt;br /&gt;
import random                     #Números aleatórios&lt;br /&gt;
&lt;br /&gt;
r=1                               #Raio do círculo&lt;br /&gt;
Np=1000000                        #Número de pontos&lt;br /&gt;
hitx=[];hity=[];missx=[];missy=[] #Gurdar resultados&lt;br /&gt;
for n in range(Np):&lt;br /&gt;
  x=random.random()*2-1           #Pontos aleatórios gerados entre -1 e +1 &lt;br /&gt;
  y=random.random()*2-1           #Pontos aleatórios gerados entre -1 e +1&lt;br /&gt;
  if(np.sqrt(x**2+y**2)&amp;lt;=r):      #Se o ponto caiu dentro do círculo&lt;br /&gt;
    hitx.append(x);hity.append(y)&lt;br /&gt;
  else:&lt;br /&gt;
    missx.append(x);missy.append(y)&lt;br /&gt;
&lt;br /&gt;
#Plotar o círculo&lt;br /&gt;
x=np.arange(-1,1,1E-5)&lt;br /&gt;
plt.plot(x,-np.sqrt(r-x**2),'-k')&lt;br /&gt;
plt.plot(x,np.sqrt(r-x**2),'-k')&lt;br /&gt;
#Plotar pontos&lt;br /&gt;
plt.plot(hitx,hity,'or')&lt;br /&gt;
plt.plot(missx,missy,'ob')&lt;br /&gt;
&lt;br /&gt;
#Cálcular a área&lt;br /&gt;
a_ret=2*2                         #Área do retângulo: geramos pontos entr -1 e +1 na duas dimensões, então é um quadrado de lado 2&lt;br /&gt;
a_cir=a_ret*len(hitx)/Np          #A_ret *(hit/N)&lt;br /&gt;
print('A área do círculo estimada é: {:.2f}'.format(a_cir))&lt;br /&gt;
print('A área do círculo exata    é: {:.2f}'.format(np.pi*r**2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_de_Monte_Carlo_e_transforma%C3%A7%C3%B5es&amp;diff=7350</id>
		<title>Método de Monte Carlo e transformações</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todo_de_Monte_Carlo_e_transforma%C3%A7%C3%B5es&amp;diff=7350"/>
		<updated>2022-04-29T19:56:09Z</updated>

		<summary type="html">&lt;p&gt;Jhordan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;transformação-linear&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Transformação linear ==&lt;br /&gt;
&lt;br /&gt;
Sorteando um número aleatório &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x\in\left[0,1\right)&amp;lt;/math&amp;gt; então fazemos uma transformação para obter um número &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\in\left[ a,b\right)&amp;lt;/math&amp;gt;. Isto é, obtemos a seguinte transformação &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;f:\left[ 0,1\right)\rightarrow\left[ a,b\right)&amp;lt;/math&amp;gt; da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;y\left(x\right)=a+\left(b-a\right)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se todos os números entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;1&amp;lt;/math&amp;gt; tinham igual probabilidade de serem sorteados, após a transformação todos os números entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b&amp;lt;/math&amp;gt; também possuem igual probabilidade, pois &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; varia com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; de forma linear, isto é, a distribuição uniforme de números é mantida.Por sua vez, a distribuição uniforme significa que a probabiliade de obter um número entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x+dx&amp;lt;/math&amp;gt; é dada pela função densidade de probabilidade da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(x\right)dx=\begin{cases}&lt;br /&gt;
dx, &amp;amp; 0&amp;lt;x&amp;lt;1\\&lt;br /&gt;
0, &amp;amp; \text{outra forma}&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(x\right)=p&amp;lt;/math&amp;gt; constante, temos que: &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\int_{-\infty}^{+\infty}dx=p\int_{0}^{1}dx=p=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela normalização. Mas se ampliarmos o intervalo dos números possíveis para entre &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\int_{-\infty}^{+\infty}p'dx=\int_{a}^{b}p'dx=p'\int_{a}^{b}dx=p'\left(b-a\right)=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Então agora &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)=p'=1/\left(b-a\right)&amp;lt;/math&amp;gt;. Isto é distribuição de probabilidade continua constante, mas com uma menor probabilidade de sortear um número &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; qualquer, quando em comparação de sortear um &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; qualquer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;transformação-não-linear&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Transformação não-linear ==&lt;br /&gt;
&lt;br /&gt;
O mesmo não ocorre com uma transformação não linear. Por exemplo se &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\left(x\right)=4x^{2}&amp;lt;/math&amp;gt;, derivando temos que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\frac{dy}{dx}=8x\quad\longrightarrow\quad dy=8xdx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diferente do caso anterior que tínhamos apenas a transformação linear &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dy=\left(b-a\right)dx&amp;lt;/math&amp;gt;. Podemos ver ainda usando a própria definição de derivada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
y\left(x+dx\right)-y\left(x\right) &amp;amp; =4\left(x+dx\right)^{2}-4x^{2}\\&lt;br /&gt;
 &amp;amp; =4x^{2}+4xdx+dx^{2}-4x^{2}\\&lt;br /&gt;
 &amp;amp; =4\cdot2xdx+dx^{2}\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dx&amp;lt;/math&amp;gt; um diferencial então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dx^{2}\approx0&amp;lt;/math&amp;gt;, logo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;dy=8xdx&amp;lt;/math&amp;gt;. Agora a distribuição de probabilidade é alterada com a transformação. Para uma transformação &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\left(x\right)&amp;lt;/math&amp;gt; qualquer, como a probabilidade se conserva, ainda temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\left|p\left(y\right)dy\right|=\left|p\left(x\right)dx\right|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considrando que &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y=y\left(x\right)&amp;lt;/math&amp;gt; tem inversa, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x=x\left(y\right)&amp;lt;/math&amp;gt; então:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{align}&lt;br /&gt;
\left|p\left(y\right)dy\right|= &amp;amp; \left|p\left(x\right)dx\right|\\&lt;br /&gt;
p\left(y\right)\left|dy\right|= &amp;amp; p\left(x\right)\left|dx\right|\\&lt;br /&gt;
p\left(y\right)= &amp;amp; p\left(x\right)\left|\frac{dx}{dy}\right|\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y\left(x\right)=-\ln\left(x\right)&amp;lt;/math&amp;gt; então reescrevendo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x=e^{-y}&amp;lt;/math&amp;gt;, logo &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{dx}{dy}=-e^{y}&amp;lt;/math&amp;gt; Então temos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(y\right)=p\left(x\right)e^{-y}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E sendo nossa ditribuição em &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; uniforme com &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(x\right)=p=1&amp;lt;/math&amp;gt; como vimos anteriormente, ficamos com:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(y\right)=e^{-y}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para a transformação &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y=-\ln\left(x\right)&amp;lt;/math&amp;gt;. O mais comum é que saibamos a distribuição de probabilidade &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt; que queremos, e uma vez que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;p\left(y\right)=\left|\frac{dx}{dy}\right|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E integramos então para encontrar &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x\left(y\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;método-da-rejeição&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Método da rejeição ==&lt;br /&gt;
&lt;br /&gt;
Nem sempre o &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt; desejado é fácil de definir matematicamente. O método da rejeição é um método rústico para obtermos &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Desenhar a função &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt; desejada dentro dos limites &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a\leq y&amp;lt;b&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;0\leq p\left(y\right)\leq p_{max}&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Geramos um ponto aleatório &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\left(y,p\left(y\right)\right)&amp;lt;/math&amp;gt;, se estiver abaixo da curva desejada é aceito.&lt;br /&gt;
&lt;br /&gt;
Se gerarmos pontos aleatórios em grande quantidade, a razão de pontos aceitos para cada &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; em relação à todos o pontos aleatórios gerados neste &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt;, nos dá uma estimativa de &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)&amp;lt;/math&amp;gt; neste ponto, em relação do &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p_{max}&amp;lt;/math&amp;gt;. Isto é, se para um &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; qualquer, metade dos pontos gerado aleatoriamente foram válidos, então &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;p\left(y\right)\approx\frac{p_{max}}{2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cálulo-de-integrais-definidas&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Cálulo de integrais definidas ==&lt;br /&gt;
&lt;br /&gt;
Em uma ideia bastante análoga à anterior, aqui utilizamos a ideia que a integral definida é cálculo da área sob a curva. Definindo novamente limites &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x_{min}\leq x\leq x_{max}&amp;lt;/math&amp;gt; e &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y_{min}\leq y\leq y_{max}&amp;lt;/math&amp;gt; no qual a região que queremos calcular está contida, geramos uma série de pontos aleatórios, se gerado pontos suficientes, a razão de pontos que foram gerados dentro da área que queremos calcular em relação ao total de pontos gerados, será a mesma razão da área que queremos calcular em relação à área total definida pelos limites.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Cálculo da área de um círculo&lt;br /&gt;
import matplotlib.pyplot as plt #Plotar gráfico&lt;br /&gt;
import numpy as np              #Funções matemáticas&lt;br /&gt;
import random                   #Números aleatórios&lt;br /&gt;
&lt;br /&gt;
r=1 #Raio do círculo&lt;br /&gt;
Np=1000000 #Número de pontos&lt;br /&gt;
hitx=[];hity=[];missx=[];missy=[] #Resultados&lt;br /&gt;
for n in range(Np):&lt;br /&gt;
  x=random.random()*2-1            #Pontos aleatórios gerados entre -1 e +1 &lt;br /&gt;
  y=random.random()*2-1            #Pontos aleatórios gerados entre -1 e +1&lt;br /&gt;
  if(np.sqrt(x**2+y**2)&amp;lt;=r):       #Se o ponto caiu dentro do círculo&lt;br /&gt;
    hitx.append(x);hity.append(y)&lt;br /&gt;
  else:&lt;br /&gt;
    missx.append(x);missy.append(y)&lt;br /&gt;
&lt;br /&gt;
#Plotar curvas&lt;br /&gt;
x=np.arange(-1,1,1E-5)&lt;br /&gt;
plt.plot(x,-np.sqrt(r-x**2),'-k')&lt;br /&gt;
plt.plot(x,np.sqrt(r-x**2),'-k')&lt;br /&gt;
#Plotar pontos&lt;br /&gt;
plt.plot(hitx,hity,'or')&lt;br /&gt;
plt.plot(missx,missy,'ob')&lt;br /&gt;
&lt;br /&gt;
a_ret=2*2 #Área do retângulo&lt;br /&gt;
a_cir=a_ret*len(hitx)/Np      #A_ret *(hit/N)&lt;br /&gt;
print('A área do círculo estimada é: {:.2f}'.format(a_cir))&lt;br /&gt;
print('A área do círculo exata    é: {:.2f}'.format(np.pi*r**2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jhordan</name></author>
	</entry>
</feed>