69 lines
1.8 KiB
R
Executable File
69 lines
1.8 KiB
R
Executable File
# Logistico
|
|
Dias<-c(105,112,119,126,133,140,147,154,161,168,175)
|
|
Peso<-c(59.4,66.1,72.8,79.6,86.4,93.2,99.8,106.4,112.8,119.2,125.3)
|
|
#Regresión no lineal
|
|
Reg<-nls(Peso~k/(1+b*exp(-r*Dias)),star=c(k=80,b=0.1, r=1),control=nls.control(warnOnly=TRUE))
|
|
summary(Reg)
|
|
K=180
|
|
b1=513
|
|
r=0.72
|
|
Y<-seq(1:50)
|
|
t<-seq(1:50)
|
|
G<-seq(1:50)
|
|
for (i in 1:49) {Y[i+1]<-K/(1+b1*exp(-r*i))}
|
|
plot(t,Y,xlab="Tiempo (semanas)",ylab="Peso Vivo")
|
|
for (i in 1:49) {G[i+1]<-(Y[i+1]-Y[i])}
|
|
plot(t,G)
|
|
|
|
|
|
# Presa-depredador Euler
|
|
a<-0.03
|
|
b<-0.0009
|
|
c<-0.0005
|
|
d<-0.05
|
|
N<-1000
|
|
x<-seq(1:N)
|
|
y<-seq(1:N)
|
|
paso<-1.5
|
|
x[1]<-100
|
|
y[1]<-100
|
|
for (i in 1:N) {x[i+1]<-x[i]+paso*(a*x[i]-b*x[i]*y[i])
|
|
y[i+1]<-y[i]+paso*(c*x[i]*y[i]-d*y[i])}
|
|
plot(x,ylim=c(0,max(x+y)),type='l',ylab="Densidad Poblacional")
|
|
lines(y,lwd=2,col="red")
|
|
|
|
|
|
# Modelo SIR
|
|
library(deSolve)
|
|
#tamaño poblacional
|
|
N = 1
|
|
#estado inicial de los compartimentos
|
|
init <- c(S = 1-1e-6,
|
|
I = 1e-6,
|
|
R = 0)
|
|
#parámetros del modelo (coeficientes de las variables)
|
|
param <- c(beta = 2.0,
|
|
gamma = 0.2)
|
|
#crear la función con las ODE
|
|
sir <- function(times, init, param) {
|
|
with(as.list(c(init, param)), {
|
|
#ecuaciones diferenciales
|
|
dS <- -beta * S * I
|
|
dI <- beta * S * I - gamma * I
|
|
dR <- gamma * I
|
|
#resultados de las tasas de cambio
|
|
return(list(c(dS, dI, dR)))
|
|
})
|
|
}
|
|
#intervalo de tiempo y resolución
|
|
times <- seq(0, 20, by = 1)
|
|
#resolver el sistema de ecuaciones con función 'ode'
|
|
out <- ode(y = init, times = times, func = sir, parms = param)
|
|
#cambiar out a un data.frame
|
|
out <- as.data.frame(out*N) #aqui puede multiplicar 'out' por N
|
|
# ver resultados
|
|
head(out)
|
|
plot(out$time,out$S,type="l",xlab="Tiempo",ylab="Población")
|
|
lines(out$I,col="red")
|
|
lines(out$R,col="blue")
|