Modelo de Lotka-Volterra amortecido
Anterior: Modelo de Lotka-Volterra | Índice: Ecologia | Próximo: Modelo de Levins aprimorado para 2 espécies
Uma versão do modelo de Lotka-Volterra aprimorada inclui um termo de saturação na população de presas, isto é, um termo logístico (que inibe o aumento exponencial). Este modelo é chamado de modelo de Lotka-Volterra amortecido.
- Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle \frac{dx}{dt}=x\left(a-\alpha y\right)-kx^{2}}
- Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle \frac{dy}{dt}=y\left(-c+\gamma x\right)}
Onde Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle k} é uma constante positiva. Agora temos três pontos de equilíbrio, novamente temos Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle \left(0,0\right)} . Mas temos outro ponto quando apenas Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle y=0} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle a-\alpha y-kx=a-kx=0\rightarrow x=\frac{a}{k}}
Então Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle \left(\frac{a}{k},0\right)} ou seja um ponto de equilíbrio com apenas a sobrevivência da presa. E ainda temos também um ponto de coexistência entre ambas as espécies:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle a-\alpha y-kx=0} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle -c+\gamma x=0}
Isolando então Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle x} na segunda equação Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle x=\frac{c}{\gamma}} e substituindo na primeira:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle a-\alpha y-k\frac{c}{\gamma}=0} Então:Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle y=\frac{a}{\alpha}-\frac{kc}{\alpha\gamma}=\frac{\gamma a-kc}{\alpha\gamma}}
Então nosso outro ponto de equilíbrio é dado porFalhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle \left(\frac{c}{\gamma},\frac{\gamma a-kc}{\alpha\gamma}\right)} . Infelizmente as equações não são separáveis como no caso anterior, portanto vamos analisar se a equação é semi-linear nas proximidades dos pontos de equilíbrio. Para Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle \left(0,0\right)} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\alpha xy-kx^{2}}{xa}=\lim_{\left(x,y\right)\rightarrow\left(0,0\right)}-\frac{\alpha y-kx}{a}=0} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}
Para Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle \left(\frac{a}{k},0\right)} e fazendo a mudança de variáveis Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle u=x-\frac{a}{k}} , e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle v=y} , temos:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{du}{dt}=\left(\left(u+\frac{a}{k}\right)a-k\left(u+\frac{a}{k}\right)^{2}\right)-\left(\alpha\left(u+\frac{a}{k}\right)v\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{du}{dt}=\left(ua+\frac{a^{2}}{k}-\left(u^{2}k+\frac{a^{2}}{k}+2ua\right)\right)-\left(\alpha uv+\frac{\alpha a}{k}v\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{du}{dt}=-\left(ua+\frac{\alpha a}{k}v\right)-\left(\alpha uv+u^{2}k\right)}
E:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{dv}{dt}=\left(-vc\right)+\left(\gamma v\left(u+\frac{a}{k}\right)\right)=v\left(\gamma\frac{a}{k}-c\right)+\left(\gamma vu\right)}
Então:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\left(\frac{\alpha uv+u^{2}k}{ua+\frac{\alpha a}{k}v}\right)=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\left(\frac{\alpha uv+u^{2}k}{u\left(a+\frac{\alpha a}{k}\frac{v}{u}\right)}\right)=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\left(\frac{\alpha v+uk}{\left(a+\frac{\alpha a}{k}\frac{v}{u}\right)}\right)}
Podemos fazer uma substituição de variável novamente usando coordenadas polares[1] Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle r^{2}=u^{2}+v^{2}} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle u=r\cos\theta} , Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle v=r\sin\theta} , então:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lim_{r\rightarrow0}\left(\frac{\alpha r\sin\theta+kr\cos\theta}{\left(a+\frac{\alpha a}{k}\frac{r\sin\theta}{r\cos\theta}\right)}\right)=\lim_{r\rightarrow0}\left(\frac{\alpha kr\sin\theta+k^{2}r\cos\theta}{\left(ka+\alpha a\tan\theta\right)}\right)=0}
E o limite:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\frac{\gamma vu}{v\left(\gamma\frac{a}{k}-c\right)}=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\frac{\gamma u}{\left(\gamma\frac{a}{k}-c\right)}=0}
E por fim, vamos estudar os pontos de estabilidade em torno de Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle \left(\frac{c}{\gamma},\frac{\gamma a-kc}{\alpha\gamma}\right)} , tendo agora Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle u=x-\frac{c}{\gamma}} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle v=\frac{\gamma a-kc}{\alpha\gamma}-y} , então, manipulando novamente, primeiro trabalhando com Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \dot{x}} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{dx}{dt}=\left(xa-kx^{2}\right)-\left(\alpha xy\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{du}{dt}=\left(\left(\frac{c}{\gamma}+u\right)a-k\left(\frac{c}{\gamma}+u\right)^{2}\right)-\left(\alpha\left(\frac{c}{\gamma}+u\right)\left(v+\frac{\gamma a-kc}{\alpha\gamma}\right)\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{du}{dt}=\left(\frac{ca}{\gamma}+au-\frac{kc^{2}}{\gamma^{2}}-ku^{2}-\frac{2ck}{\gamma}u\right)-\left(\frac{c\alpha}{\gamma}v+\frac{\gamma ac-kc^{2}}{\gamma^{2}}+\alpha uv+\left[\frac{\gamma a-kc}{\gamma}\right]u\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{du}{dt}=\left(\left(\frac{ca}{\gamma}-\frac{kc^{2}}{\gamma^{2}}-\frac{\gamma ac-kc^{2}}{\gamma^{2}}\right)+\left(a-\frac{2ck}{\gamma}-\left[\frac{\gamma a-kc}{\gamma}\right]-ku\right)u-\frac{c\alpha}{\gamma}v\right)-\left(\alpha uv\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{du}{dt}=\left(\left(-\frac{kc}{\gamma}-ku\right)u-\frac{c\alpha}{\gamma}v\right)-\left(\alpha uv\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{du}{dt}=-\left(\frac{kc}{\gamma}u+\frac{c\alpha}{\gamma}v\right)-\left(\alpha uv+ku^{2}\right)}
E com Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \dot{y}} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{dy}{dt}=\left(-yc\right)+\left(\gamma yx\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{dv}{dt}=\left(-\left(v+\frac{\gamma a-kc}{\alpha\gamma}\right)c\right)+\left(\gamma\left(v+\frac{\gamma a-kc}{\alpha\gamma}\right)\left(\frac{c}{\gamma}+u\right)\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{dv}{dt}=\left(-vc-\frac{ac}{\alpha}+\frac{kc^{2}}{\alpha\gamma}\right)+\left(vc+\frac{\gamma ac-kc^{2}}{\alpha\gamma}+\gamma uv+\left[\frac{\gamma a-kc}{\alpha}\right]u\right)} Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{dv}{dt}=\gamma uv+\left[\frac{\gamma a-kc}{\alpha}\right]u}
Calculando então os limites, relacionado a Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\left(\frac{\alpha uv+ku^{2}}{\frac{kc}{\gamma}u+\frac{c\alpha}{\gamma}v}\right)=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\left(\frac{\alpha uv+ku^{2}}{u\left(\frac{kc}{\gamma}+\frac{c\alpha}{\gamma}\frac{v}{u}\right)}\right)=\lim_{\left(u,v\right)\rightarrow\left(0,0\right)}\left(\frac{\alpha v+ku}{\frac{kc}{\gamma}+\frac{c\alpha}{\gamma}\frac{v}{u}}\right)}
E novamente fazendo a substituição Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle r^{2}=u^{2}+v^{2}} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle u=r\cos\theta} , Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\textstyle v=r\sin\theta} , então:
E a :
Então os três pontos são semi-lineares. A partir disto, podemos analisar os tipos de estabilidades. Para :
Então:
Então:
Temos duas raízes reais uma é negativa . Porém a classificação do ponto depende dos parâmetros escolhidos. Se ou seja , temos uma instabilidade, uma sela, mas se , então temos um nó hiperbólico, ou seja, estabilidade. E por último:
Então:
Então:
Então o comportamento do sistema vai depender da escolha de parâmetros, porém como todas constantes são positivas vai ser sempre negativo, e a única forma de ser instável é se , para garantir que o número seja real, e ainda para que o autovalor seja positivo. Analisando então essa última desigualdade:
Elevando ao quadrado:
Dividindo por
Então essa é a condição para que o autovalor seja positivo. E olhando pra primeira desigualdade:
Para garantir que o número seja real. Então temos duas desigualdades para satisfazer para que seja instável:
Como é necessariamente um termo positivo:
Ou seja, podemos restringir a condição de instabilidade para pois é uma desigualdade válida para qualquer escolha de parâmetros válidos. Mas lembrando que para o outro ponto é estável se , então sempre temos um ponto de equilíbrio estável e outro instável (além do a instabilidade na origem). Ou seja, por exemplo para valores mais baixos de de (termo de crescimento dos predadores) ou (termo de amortecimento da presa) temos coexistência de ambas as espécies, se aumentar estes parâmetros, somente a presa sobrevive. Além disso, quando temos :
Ou seja, temos apenas a parte imaginária, e retornamos à estabilidade do centro. Dessa forma ou determina se o sistema atinge equilíbrio ou permanece oscilatório, e depois o conjunto de parâmetros, caso atinja estabilidade, determina se ela é atingida com ou sem predadores.
Exemplo
Para estudarmos melhor uma situação, vamos escolher os parâmetros: , , , ,. Então os pontos de equilíbrio são:
- , uma sela, instável;
- , outro ponto instável, outra sela;
- , agora temos um nó assintoticamente estável, pois as parte reais são negativas e as imaginárias são os conjugados.
E fazendo um rascunho do plano de fases, próximo de , desprezando então os termos não-lineares:
Próximo a :
De :
Plotando temos então:
Por curiosidade, se fazemos : Para :
E para :
Códigos
Os seguintes códigos escritos em Python foram utilizados para obter a solução numérica e plotar o rascunho do diagrama de fases próximo aos pontos de equilíbrio.
import matplotlib.pyplot as plt
import numpy as np
# LOTKA-VOLTERRA: Solução numérica
# Jhordan Silveira de Borba
# sbjhordan@gmail.com
def sol_lot():
x=[]
y=[]
x.append(1) # População inicial de presas
y.append(0.5) # População inicial de predadores
N=400000 # Quantidade de passos
d=0.0001 # Tamanhodos passos
a=0 # 1: Amortecido, 0: Sem amortecimento
for i in range(N-1):
x.append(x[i]+d*(x[i]*(1-0.5*y[i])-0.5*x[i]*x[i]*a))
y.append(y[i]+d*(y[i]*(-0.75+0.5*x[i])))
#Plotamos a evolução temporal das frações de população
X=np.arange(len(x)) #Eixo x
plt.plot(X,x,'b-')
plt.plot(X,y,'k-')
plt.xlabel('Passo')
plt.ylim(0,6)
plt.show()
A função abaixo tem como finalidade plotar um rascunho do plano de fase próximo ao pontos de equilíbrio do sistema:
import matplotlib.pyplot as plt
import numpy as np
# LOTKA-VOLTERRA: Plano de fase
# Jhordan Silveira de Borba
# sbjhordan@gmail.com
def phase_lot():
X = np.arange(0, 4, 0.2) # Eixo x
Y = np.arange(0, 4, 0.2) # Eixo Y
U,V=np.meshgrid(X,Y)
p1=[0.,0.] # Ponto de equilíbrio 1
p2=[1.5,2.0] # Ponto de equilíbrio 2
p3=[1.5*100,0.5*100] # Ponto de equilíbrio 3
c=0
for x in X:
l=0
for y in Y:
#Distâncias
d1=np.sqrt((x-p1[0])*(x-p1[0])+(y-p1[1])*(y-p1[1]))
d2=np.sqrt((x-p2[0])*(x-p2[0])+(y-p2[1])*(y-p2[1]))
d3=np.sqrt((x-p3[0])*(x-p3[0])+(y-p3[1])*(y-p3[1]))
#encontrar o ponto de equilíbrio mais próximo
p=1
if(d2<d1):
p=2
if(d3<d2):
p=3
elif(d3<d1):
p=3
# Calculamos o vetor de variação do estado baseado no ponto mais próximo:
# [dx/dt,dy/dt]=[a,b]
if(p==1):
a=x
b=-0.75*y
elif(p==2):
a=-0.75*(y-2)
b=x-1.5
elif(p==3):
a=0.75*((1.5-x)+(0.5-y))
b=0.25*(x-1.5)
else:
print("Algo deu errado")
m=np.sqrt(a*a+b*b) # Módulo do vetor para normalizar
if(m==0):
m=1
U[l,c]=a/m
V[l,c]=b/m
l=l+1
c=c+1
# Plotamos o resultado
fig, ax = plt.subplots()
ax.quiver(X, Y, U, V) # Os vetores
plt.plot(p1[0],p1[1],'ro') # O ponto de equilíbrio 1
plt.plot(p2[0],p2[1],'go') # O ponto de equilíbrio 2
plt.plot(p3[0],p3[1],'go') # O ponto de equilíbrio 3
plt.show()
Principais materiais utilizados
- Numerical Methods (Instituto de Tecnologia de Massachusetts)
- Numerical Solution of Ordinary Differential Equations (R. Sureshkumar,Instituto de Tecnologia de Massachusetts)
- A estes materiais, somam-se os vistos em Modelo de Lotka-Volterra
Citações
- ↑ Limits and Continuity (Rebecca Noonan-Heale ,Universidade de Utah)
Anterior: Modelo de Lotka-Volterra | Índice: Ecologia | Próximo: Modelo de Levins aprimorado para 2 espécies

