Equação de Lotka-Volterra Competitiva Estocástica: mudanças entre as edições
Sem resumo de edição |
|||
Linha 50: | Linha 50: | ||
</math> | </math> | ||
</center> | </center> | ||
<br /> | |||
<source lang="julia"> | |||
using Plots | |||
using Distributions | |||
r = [1,0.72,1.53,1.27] | |||
a = [1 1.09 1.52 0 | |||
0 1 0.44 1.36 | |||
2.33 0 1 0.47 | |||
1.21 0.51 0.35 1] | |||
b = [1, 1.2, 0.8, 1.6] .- 0.5 | |||
k = [40, 65, 56, 44] | |||
function f(x) | |||
return r.*x.*(1 .-(a*x)) | |||
end | |||
tmax = 20 | |||
dt = 0.0001 | |||
L = Int(tmax/dt) | |||
tempo = collect(0:dt:tmax) | |||
normal = Normal(0,sqrt(dt)) | |||
function stratmatriz(x1,x2,x3,x4) | |||
x = [x1,x2,x3,x4] | |||
xlist = Array{Float64}(undef,4, L+1) | |||
xlist[1,1], xlist[2,1], xlist[3,1], xlist[4,1] = x1,x2,x3,x4 | |||
for t in 1:L | |||
random = [rand(normal),rand(normal),rand(normal),rand(normal)].*sqrt(dt) | |||
k1 = f(x) | |||
k2 = f(x .+ k1*dt/3) | |||
k3 = f(x .+ (-k1/3 + k2)*dt) | |||
k4 = f(x .+ (k1 - k2 + k3)*dt) | |||
dx = ((k1 + 3 .*k2 + 3 .*k3 + k4)./8 - 0.5 .*x)*dt + x.*b.*random | |||
x = x + dx | |||
xlist[1,t+1], xlist[2,t+1], xlist[3,t+1], xlist[4,t+1] = x[1],x[2],x[3],x[4] | |||
end | |||
return xlist | |||
end | |||
result = lvmatriz(0.25,0.25,0.25,0.25) | |||
x1,x2,x3,x4 = collect(result[1,:]),collect(result[2,:]),collect(result[3,:]),collect(result[4,:]) | |||
plot(tempo,x1) | |||
plot!(tempo,x2) | |||
plot!(tempo,x3) | |||
plot!(tempo,x4) | |||
</source><br /> |
Edição das 22h29min de 25 de agosto de 2024
As Equações de Lotka-Volterra fornecem um modelo para a previsão de sistemas biológicos considerando diversas relações entre populações. Exploraremos no vigente trabalho a relação de competitividade. Dividiremos, para tanto, o trabalho em três partes principais, considerando duas e três populações, mostrando os gráficos de evolução temporal do número de indivíduos de cada espécie e os espaços de fase, e generalizando para N populações.
Equação de Fokker-Planck
Equações para Duas Populações
O modelo logístico utilizado para duas espécies disputando um território pode ser descrito pelo seguinte par de equações:
com e sendo as duas populações consideradas, e , o crescimento inerente per-capita, e , a capacidade de carga e e , o efeito que a espécie um tem na espécie dois e vice-versa.
Equações para Três Populações
Equações para N Populações
using Plots
using Distributions
r = [1,0.72,1.53,1.27]
a = [1 1.09 1.52 0
0 1 0.44 1.36
2.33 0 1 0.47
1.21 0.51 0.35 1]
b = [1, 1.2, 0.8, 1.6] .- 0.5
k = [40, 65, 56, 44]
function f(x)
return r.*x.*(1 .-(a*x))
end
tmax = 20
dt = 0.0001
L = Int(tmax/dt)
tempo = collect(0:dt:tmax)
normal = Normal(0,sqrt(dt))
function stratmatriz(x1,x2,x3,x4)
x = [x1,x2,x3,x4]
xlist = Array{Float64}(undef,4, L+1)
xlist[1,1], xlist[2,1], xlist[3,1], xlist[4,1] = x1,x2,x3,x4
for t in 1:L
random = [rand(normal),rand(normal),rand(normal),rand(normal)].*sqrt(dt)
k1 = f(x)
k2 = f(x .+ k1*dt/3)
k3 = f(x .+ (-k1/3 + k2)*dt)
k4 = f(x .+ (k1 - k2 + k3)*dt)
dx = ((k1 + 3 .*k2 + 3 .*k3 + k4)./8 - 0.5 .*x)*dt + x.*b.*random
x = x + dx
xlist[1,t+1], xlist[2,t+1], xlist[3,t+1], xlist[4,t+1] = x[1],x[2],x[3],x[4]
end
return xlist
end
result = lvmatriz(0.25,0.25,0.25,0.25)
x1,x2,x3,x4 = collect(result[1,:]),collect(result[2,:]),collect(result[3,:]),collect(result[4,:])
plot(tempo,x1)
plot!(tempo,x2)
plot!(tempo,x3)
plot!(tempo,x4)