Hello All,
I am currently looking on a transmission model for STD transmission within a
population. I am able to run my full code and the ODE function, but when I
look at my output, all I get is "NA" for each time step beyond the
first.
There doesn't seem to be any syntax error, and I do get my entire program to
run. Here is my code:
setwd("C:/Users/L/Documents/MastersThesis")
require(deSolve);
########
#Model 1
########
#The function
HPVInfection<-function(t,y,p){
XFL = y[1]; #number of susceptible unvaccinated females low risk
XFM = y[2]; #number of susceptible unvaccinated females medium risk
XFH = y[3]; #number of susceptible unvaccinated females high risk
XML = y[4]; #number of susceptible unvaccinated males low risk
XMM = y[5]; #number of susceptible unvaccinated males medium risk
XMH = y[6]; #number of susceptible unvaccinated males high risk
Y1FL = y[7]; #number of infected unvaccinated females low risk infected
with vaccine strain
Y1FM = y[8]; #number of infected unvaccinated females medium risk low risk
infected with vaccine strain
Y1FH = y[9]; #number of infected unvaccinated females high risk low risk
infected with vaccine strain
Y1ML = y[10]; #number of infected unvaccinated males low risk low risk
infected with vaccine strain
Y1MM = y[11]; #number of infected unvaccinated males medium risk low risk
infected with vaccine strain
Y1MH = y[12]; #number of infected unvaccinated males high risk low risk
infected with vaccine strain
Y2FL = y[13]; #number of infected unvaccinated females low risk infected
with non-vaccine strain
Y2FM = y[14]; #number of infected unvaccinated females medium risk low risk
infected with non-vaccine strain
Y2FH = y[15]; #number of infected unvaccinated females high risk low risk
infected with non-vaccine strain
Y2ML = y[16]; #number of infected unvaccinated males low risk low risk
infected with non-vaccine strain
Y2MM = y[17]; #number of infected unvaccinated males medium risk low risk
infected with non-vaccine strain
Y2MH = y[18]; #number of infected unvaccinated males high risk low risk
infected with non-vaccine strain
ZFL = y[19]; #number of immune females low risk
ZFM = y[20]; #number of immune females medium risk
ZFH = y[21]; #number of immune females high risk
ZML = y[22]; #number of immune males low risk
ZMM = y[23]; #number of immune males medium risk
ZMH = y[24]; #number of immune males high risk
VFL = y[25]; #number of susceptible vaccinated females low risk
VFM = y[26]; #number of susceptible vaccinated females medium risk
VFH = y[27]; #number of susceptible vaccinated females high risk
VML = y[28]; #number of susceptible vaccinated males low risk
VMM = y[29]; #number of susceptible vaccinated males medium risk
VMH = y[30]; #number of susceptible vaccinated males high risk
W1FL = y[31]; #number of infected vaccinated females low risk infected with
vaccine strain
W1FM = y[32]; #number of infected vaccinated females medium risk infected
with vaccine strain
W1FH = y[33]; #number of infected vaccinated females high risk infected
with vaccine strain
W1ML = y[34]; #number of infected vaccinated males low risk infected with
vaccine strain
W1MM = y[35]; #number of infected vaccinated males medium risk infected
with vaccine strain
W1MH = y[36]; #number of infected vaccinated males high risk infected with
vaccine strain
W2FL = y[37]; #number of infected vaccinated females low risk infected with
non-vaccine strain
W2FM = y[39]; #number of infected vaccinated females medium risk infected
with non-vaccine strain
W2FH = y[40]; #number of infected vaccinated females high risk infected
with non-vaccine strain
W2ML = y[41]; #number of infected vaccinated males low risk infected with
non-vaccine strain
W2MM = y[42]; #number of infected vaccinated males medium risk infected
with non-vaccine strain
W2MH = y[43]; #number of infected vaccinated males high risk infected with
non-vaccine strain
with(as.list(p), {
dXFL.dt = (0.5 * mew * omega[1,1] * (1-phi) * total) - ((partner[1,1] *
beta[1,1] * ((((Y1ML + Y2ML + (tau[1,1] * W1ML) + (tau[1,2] * W2ML)) /
population[1,2]) * rho[1,1]) + (((Y1MM + Y2MM + (tau[1,1]*W1MM) + (tau[1,2]
* W2MM))/population[2,2]) * rho[1,2]) + (((Y1MH + Y2MH + (tau[1,2] * W1MH) +
(tau[1,2] * W2MH)) / population[3,2]) * rho[1,3])) + mew) * XFL) + (sigma *
VFL);
dXFM.dt = (0.5 * mew * omega[2,1] * (1-phi) * total) - ((partner[2,1] *
beta[1,1] * ((((Y1ML + Y2ML + (tau[1,1] * W1ML) + (tau[1,2] * W2ML)) /
population[1,2]) * rho[2,1]) + (((Y1MM + Y2MM + (tau[1,1]*W1MM) + (tau[1,2]
* W2MM))/population[2,2]) * rho[2,2]) + (((Y1MH + Y2MH + (tau[1,1] * W1MH) +
(tau[1,2] * W2MH)) / population[3,2]) * rho[2,3])) + mew) * XFM) + (sigma *
VFM);
dXFH.dt = (0.5 * mew * omega[3,1] * (1-phi) * total) - ((partner[3,1] *
beta[1,1] * ((((Y1ML + Y2ML + (tau[1,1] * W1ML) + (tau[1,2] * W2ML)) /
population[1,2]) * rho[3,1]) + (((Y1MM + Y2MM + (tau[1,1]*W1MM) + (tau[1,2]
* W2MM))/population[2,2]) * rho[3,2]) + (((Y1MH + Y2MH + (tau[1,1] * W1MH) +
(tau[1,2] * W2MH)) / population[3,2]) * rho[3,3])) + mew) * XFH) + (sigma *
VFH);
dXML.dt = (0.5 * mew * omega[1,1] * (1-phi) * total) - ((partner[1,1] *
beta[2,1] * ((((Y1FL + Y2FL + (tau[2,1] * W1FL) + (tau[2,2] * W2FL)) /
population[1,1]) * rho[1,1]) + (((Y1FM + Y2FM + (tau[2,1]*W1FM) + (tau[2,2]
* W2FM))/population[2,1]) * rho[1,2]) + (((Y1FH + Y2FH + (tau[2,1] * W1FH) +
(tau[2,2] * W2FH)) / population[3,1]) * rho[1,3])) + mew) * XML) + (sigma *
VML);
dXMM.dt = (0.5 * mew * omega[2,1] * (1-phi) * total) - ((partner[2,1] *
beta[2,1] * ((((Y1FL + Y2FL + (tau[2,1] * W1FL) + (tau[2,2] * W2FL)) /
population[1,1]) * rho[2,1]) + (((Y1FM + Y2FM + (tau[2,1]*W1FM) + (tau[2,2]
* W2FM))/population[2,1]) * rho[2,2]) + (((Y1FH + Y2FH + (tau[2,1] * W1FH) +
(tau[2,2] * W2FH)) / population[3,1]) * rho[2,3])) + mew) * XMM) + (sigma *
VMM);
dXMH.dt = (0.5 * mew * omega[3,1] * (1-phi) * total) - ((partner[3,1] *
beta[2,1] * ((((Y1FL + Y2FL + (tau[2,1] * W1FL) + (tau[2,2] * W2FL)) /
population[1,1]) * rho[3,1]) + (((Y1FM + Y2FM + (tau[2,1]*W1FM) + (tau[2,2]
* W2FM))/population[2,1]) * rho[3,2]) + (((Y1FH + Y2FH + (tau[2,1] * W1FH) +
(tau[2,2] * W2FH)) / population[3,1]) * rho[3,3])) + mew) * XMH) + (sigma *
VMH);
dY1FL.dt = (XFL * (partner[1,1] * beta[1,1] * ((rho[1,1] * ((Y1ML +
(tau[1,1] * W1ML)) / population[1,2])) + (rho[1,2] * ((Y1MM + (tau[1,1] *
W1MM)) / population[2,2])) + (rho[1,3] * ((Y1MH + (tau[1,1] * W1MH)) /
population[3,2]))))) - ((mew + gamma[2,1]) * Y1FL);
dY1FM.dt = (XFM * (partner[2,1] * beta[1,1] * ((rho[2,1] * ((Y1ML +
(tau[1,1] * W1ML)) / population[1,2])) + (rho[2,2] * ((Y1MM + (tau[1,1] *
W1MM)) / population[2,2])) + (rho[2,3] * ((Y1MH + (tau[1,1] * W1MH)) /
population[3,2]))))) - ((mew + gamma[2,1]) * Y1FM);
dY1FH.dt = (XFH * (partner[3,1] * beta[1,1] * ((rho[3,1] * ((Y1ML +
(tau[1,1] * W1ML)) / population[1,2])) + (rho[2,2] * ((Y1MM + (tau[1,1] *
W1MM)) / population[2,2])) + (rho[3,3] * ((Y1MH + (tau[1,1] * W1MH)) /
population[3,2]))))) - ((mew + gamma[2,1]) * Y1FH);
dY1ML.dt = (XML * (partner[1,1] * beta[2,1] * ((rho[1,1] * ((Y1FL +
(tau[2,1] * W1FL)) / population[1,1])) + (rho[1,2] * ((Y1FM + (tau[2,1] *
W1FM)) / population[2,1])) + (rho[1,3] * ((Y1FH + (tau[2,1] * W1FH)) /
population[3,1]))))) - ((mew + gamma[1,1]) * Y1MM);
dY1MM.dt = (XMM * (partner[2,1] * beta[2,1] * ((rho[2,1] * ((Y1FL +
(tau[2,1] * W1FL)) / population[1,1])) + (rho[2,2] * ((Y1FM + (tau[2,1] *
W1FM)) / population[2,1])) + (rho[2,3] * ((Y1FH + (tau[2,1] * W1FH)) /
population[3,1]))))) - ((mew + gamma[1,1]) * Y1MM);
dY1MH.dt = (XMH * (partner[3,1] * beta[2,1] * ((rho[3,1] * ((Y1FL +
(tau[2,1] * W1FL)) / population[1,1])) + (rho[2,2] * ((Y1FM + (tau[2,1] *
W1FM)) / population[2,1])) + (rho[3,3] * ((Y1FH + (tau[2,1] * W1MH)) /
population[3,1]))))) - ((mew + gamma[1,1]) * Y1MH);
dY2FL.dt = (XFL * (partner[1,1] * beta[1,1] * ((rho[1,1] * ((Y2ML +
(tau[1,2] * W2ML)) / population[1,2])) + (rho[1,2] * ((Y1MM + (tau[1,2] *
W2MM)) / population[2,2])) + (rho[1,3] * ((Y2MH + (tau[1,2] * W2MH)) /
population[3,2]))))) - ((mew + gamma[2,2]) * Y1FL);
dY2FM.dt = (XFM * (partner[2,1] * beta[1,1] * ((rho[2,1] * ((Y2ML +
(tau[1,2] * W2ML)) / population[1,2])) + (rho[2,2] * ((Y1MM + (tau[1,2] *
W2MM)) / population[2,2])) + (rho[2,3] * ((Y2MH + (tau[1,2] * W2MH)) /
population[3,2]))))) - ((mew + gamma[2,2]) * Y1FM);
dY2FH.dt = (XFH * (partner[3,1] * beta[1,1] * ((rho[3,1] * ((Y2ML +
(tau[1,2] * W2ML)) / population[1,2])) + (rho[2,2] * ((Y1MM + (tau[1,2] *
W2MM)) / population[2,2])) + (rho[3,3] * ((Y2MH + (tau[1,2] * W2MH)) /
population[3,2]))))) - ((mew + gamma[2,2]) * Y1FH);
dY2ML.dt = (XML * (partner[1,1] * beta[2,1] * ((rho[1,1] * ((Y2FL +
(tau[2,2] * W2FL)) / population[1,1])) + (rho[1,2] * ((Y1FM + (tau[2,2] *
W2FM)) / population[2,1])) + (rho[1,3] * ((Y2FH + (tau[2,2] * W2FH)) /
population[3,1]))))) - ((mew + gamma[1,2]) * Y1MM);
dY2MM.dt = (XMM * (partner[2,1] * beta[2,1] * ((rho[2,1] * ((Y2FL +
(tau[2,2] * W2FL)) / population[1,1])) + (rho[2,2] * ((Y1FM + (tau[2,2] *
W2FM)) / population[2,1])) + (rho[2,3] * ((Y2FH + (tau[2,2] * W2FH)) /
population[3,1]))))) - ((mew + gamma[1,2]) * Y1MM);
dY2MH.dt = (XMH * (partner[3,1] * beta[2,1] * ((rho[3,1] * ((Y2FL +
(tau[2,2] * W2FL)) / population[1,1])) + (rho[2,2] * ((Y1FM + (tau[2,2] *
W2FM)) / population[2,1])) + (rho[3,3] * ((Y2FH + (tau[2,2] * W2MH)) /
population[3,1]))))) - ((mew + gamma[1,2]) * Y1MH);
dZFL.dt = ((gamma[2,1] * Y1FL) + (gamma[2,2] * Y2FL) + (gamma[4,1] * W1FL)
+ (gamma[4,2]*W2FL)) - (mew * ZFL);
dZFM.dt = ((gamma[2,1] * Y1FM) + (gamma[2,2] * Y2FM) + (gamma[4,1] * W1FM)
+ (gamma[4,2]*W2FM)) - (mew * ZFM);
dZFH.dt = ((gamma[2,1] * Y1FH) + (gamma[2,2] * Y2FH) + (gamma[4,1] * W1FH)
+ (gamma[4,2]*W2FH)) - (mew * ZFH);
dZML.dt = ((gamma[1,1] * Y1ML) + (gamma[1,2] * Y2ML) + (gamma[3,1] * W1FM)
+ (gamma[3,2]*W2ML)) - (mew * ZML);
dZMM.dt = ((gamma[1,1] * Y1MM) + (gamma[1,2] * Y2MM) + (gamma[3,1] * W1MM)
+ (gamma[3,2]*W2MM)) - (mew * ZMM);
dZMH.dt = ((gamma[1,1] * Y1MH) + (gamma[1,2] * Y2MH) + (gamma[3,1] * W1MH)
+ (gamma[3,2]*W2MH)) - (mew * ZMH);
dVFL.dt = (0.5 * mew * omega[1,1] * phi * total) - ((partner[1,1] *
beta[1,1] * ((((Y1ML + Y2ML + (delta[1,1] * tau[1,1] * W1ML) + (delta[1,2] *
tau[1,2] * W2ML)) / population[1,2]) * rho[1,1]) + (((Y1MM + Y2MM +
(delta[1,1] * tau[1,1]*W1MM) + (delta[1,2] * tau[1,2] *
W2MM))/population[2,2]) * rho[1,2]) + (((Y1MH + Y2MH + (delta[1,1] *
tau[1,2] * W1MH) + (delta[1,2] * tau[1,2] * W2MH)) / population[3,2]) *
rho[1,3])) + mew) * VFL) - (sigma * VFL);
dVFM.dt = (0.5 * mew * omega[2,1] * phi * total) - ((partner[2,1] *
beta[1,1] * ((((Y1ML + Y2ML + (delta[1,1] * tau[1,1] * W1ML) + (delta[1,2] *
tau[1,2] * W2ML)) / population[1,2]) * rho[2,1]) + (((Y1MM + Y2MM +
(delta[1,1] * tau[1,1]*W1MM) + (delta[1,2] * tau[1,2] *
W2MM))/population[2,2]) * rho[2,2]) + (((Y1MH + Y2MH + (delta[1,1] *
tau[1,1] * W1MH) + (delta[1,2] * tau[1,2] * W2MH)) / population[3,2]) *
rho[2,3])) + mew) * VFM) - (sigma * VFM);
dVFH.dt = (0.5 * mew * omega[3,1] * phi * total) - ((partner[3,1] *
beta[1,1] * ((((Y1ML + Y2ML + (delta[1,1] * tau[1,1] * W1ML) + (delta[1,2] *
tau[1,2] * W2ML)) / population[1,2]) * rho[3,1]) + (((Y1MM + Y2MM +
(delta[1,1] * tau[1,1]*W1MM) + (delta[1,2] * tau[1,2] *
W2MM))/population[2,2]) * rho[3,2]) + (((Y1MH + Y2MH + (delta[1,1] *
tau[1,1] * W1MH) + (delta[1,2] * tau[1,2] * W2MH)) / population[3,2]) *
rho[3,3])) + mew) * VFH) - (sigma * VFH);
dVML.dt = (0.5 * mew * omega[1,1] * phi * total) - ((partner[1,1] *
beta[2,1] * ((((Y1FL + Y2FL + (delta[2,1] * tau[2,1] * W1FL) + (delta[2,2] *
tau[2,2] * W2FL)) / population[1,1]) * rho[1,1]) + (((Y1FM + Y2FM +
(delta[2,1] * tau[2,1]*W1FM) + (delta[2,2] * tau[2,2] *
W2FM))/population[2,1]) * rho[1,2]) + (((Y1FH + Y2FH + (delta[2,1] *
tau[2,1] * W1FH) + (delta[2,2] * tau[2,2] * W2FH)) / population[3,1]) *
rho[1,3])) + mew) * VML) - (sigma * VML);
dVMM.dt = (0.5 * mew * omega[2,1] * phi * total) - ((partner[2,1] *
beta[2,1] * ((((Y1FL + Y2FL + (delta[2,1] * tau[2,1] * W1FL) + (delta[2,2] *
tau[2,2] * W2FL)) / population[1,1]) * rho[2,1]) + (((Y1FM + Y2FM +
(delta[2,1] * tau[2,1]*W1FM) + (delta[2,2] * tau[2,2] *
W2FM))/population[2,1]) * rho[2,2]) + (((Y1FH + Y2FH + (delta[2,1] *
tau[2,1] * W1FH) + (delta[2,2] * tau[2,2] * W2FH)) / population[3,1]) *
rho[2,3])) + mew) * VMM) - (sigma * VMM);
dVMH.dt = (0.5 * mew * omega[3,1] * phi * total) - ((partner[3,1] *
beta[2,1] * ((((Y1FL + Y2FL + (delta[2,1] * tau[2,1] * W1FL) + (delta[2,2] *
tau[2,2] * W2FL)) / population[1,1]) * rho[3,1]) + (((Y1FM + Y2FM +
(delta[2,1] * tau[2,1]*W1FM) + (delta[2,2] * tau[2,2] *
W2FM))/population[2,1]) * rho[3,2]) + (((Y1FH + Y2FH + (delta[2,1] *
tau[2,1] * W1FH) + (delta[2,2] * tau[2,2] * W2FH)) / population[3,1]) *
rho[3,3])) + mew) * VMH) - (sigma * VMH);
dW1FL.dt = (VFL * (partner[1,1] * beta[1,1] * ((rho[1,1] * ((Y1ML +
(delta[1,1] * tau[1,1] * W1ML)) / population[1,2])) + (rho[1,2] * ((Y1MM +
(delta[1,1] * tau[1,1] * W1MM)) / population[2,2])) + (rho[1,3] * ((Y1MH +
(delta[1,1] * tau[1,1] * W1MH)) / population[3,2]))))) - ((mew + gamma[4,1])
* W1FL);
dW1FM.dt = (VFM * (partner[2,1] * beta[1,1] * ((rho[2,1] * ((Y1ML +
(delta[1,1] * tau[1,1] * W1ML)) / population[1,2])) + (rho[2,2] * ((Y1MM +
(delta[1,1] * tau[1,1] * W1MM)) / population[2,2])) + (rho[2,3] * ((Y1MH +
(delta[1,1] * tau[1,1] * W1MH)) / population[3,2]))))) - ((mew + gamma[4,1])
* W1FM);
dW1FH.dt = (VFH * (partner[3,1] * beta[1,1] * ((rho[3,1] * ((Y1ML +
(delta[1,1] * tau[1,1] * W1ML)) / population[1,2])) + (rho[2,2] * ((Y1MM +
(delta[1,1] * tau[1,1] * W1MM)) / population[2,2])) + (rho[3,3] * ((Y1MH +
(delta[1,1] * tau[1,1] * W1MH)) / population[3,2]))))) - ((mew + gamma[4,1])
* W1FH);
dW1ML.dt = (VML * (partner[1,1] * beta[2,1] * ((rho[1,1] * ((Y1FL +
(delta[2,1] * tau[2,1] * W1FL)) / population[1,1])) + (rho[1,2] * ((Y1FM +
(delta[2,1] * tau[2,1] * W1FM)) / population[2,1])) + (rho[1,3] * ((Y1FH +
(delta[2,1] * tau[2,1] * W1FH)) / population[3,1]))))) - ((mew + gamma[3,1])
* W1MM);
dW1MM.dt = (VMM * (partner[2,1] * beta[2,1] * ((rho[2,1] * ((Y1FL +
(delta[2,1] * tau[2,1] * W1FL)) / population[1,1])) + (rho[2,2] * ((Y1FM +
(delta[2,1] * tau[2,1] * W1FM)) / population[2,1])) + (rho[2,3] * ((Y1FH +
(delta[2,1] * tau[2,1] * W1FH)) / population[3,1]))))) - ((mew + gamma[3,1])
* W1MM);
dW1MH.dt = (VMH * (partner[3,1] * beta[2,1] * ((rho[3,1] * ((Y1FL +
(delta[2,1] * tau[2,1] * W1FL)) / population[1,1])) + (rho[2,2] * ((Y1FM +
(delta[2,1] * tau[2,1] * W1FM)) / population[2,1])) + (rho[3,3] * ((Y1FH +
(delta[2,1] * tau[2,1] * W1MH)) / population[3,1]))))) - ((mew + gamma[3,1])
* W1MH);
dW2FL.dt = (VFL * (partner[1,1] * beta[1,1] * ((rho[1,1] * ((Y2ML +
(delta[1,2] * tau[1,2] * W2ML)) / population[1,2])) + (rho[1,2] * ((Y1MM +
(delta[1,2] * tau[1,2] * W2MM)) / population[2,2])) + (rho[1,3] * ((Y2MH +
(delta[1,2] * tau[1,2] * W2MH)) / population[3,2]))))) - ((mew + gamma[4,2])
* W1FL);
dW2FM.dt = (VFM * (partner[2,1] * beta[1,1] * ((rho[2,1] * ((Y2ML +
(delta[1,2] * tau[1,2] * W2ML)) / population[1,2])) + (rho[2,2] * ((Y1MM +
(delta[1,2] * tau[1,2] * W2MM)) / population[2,2])) + (rho[2,3] * ((Y2MH +
(delta[1,2] * tau[1,2] * W2MH)) / population[3,2]))))) - ((mew + gamma[4,2])
* W1FM);
dW2FH.dt = (VFH * (partner[3,1] * beta[1,1] * ((rho[3,1] * ((Y2ML +
(delta[1,2] * tau[1,2] * W2ML)) / population[1,2])) + (rho[2,2] * ((Y1MM +
(delta[1,2] * tau[1,2] * W2MM)) / population[2,2])) + (rho[3,3] * ((Y2MH +
(delta[1,2] * tau[1,2] * W2MH)) / population[3,2]))))) - ((mew + gamma[4,2])
* W1FH);
dW2ML.dt = (VML * (partner[1,1] * beta[2,1] * ((rho[1,1] * ((Y2FL +
(delta[2,2] * tau[2,2] * W2FL)) / population[1,1])) + (rho[1,2] * ((Y1FM +
(delta[2,2] * tau[2,2] * W2FM)) / population[2,1])) + (rho[1,3] * ((Y2FH +
(delta[2,2] * tau[2,2] * W2FH)) / population[3,1]))))) - ((mew + gamma[3,2])
* W1MM);
dW2MM.dt = (VMM * (partner[2,1] * beta[2,1] * ((rho[2,1] * ((Y2FL +
(delta[2,2] * tau[2,2] * W2FL)) / population[1,1])) + (rho[2,2] * ((Y1FM +
(delta[2,2] * tau[2,2] * W2FM)) / population[2,1])) + (rho[2,3] * ((Y2FH +
(delta[2,2] * tau[2,2] * W2FH)) / population[3,1]))))) - ((mew + gamma[3,2])
* W1MM);
dW2MH.dt = (VMH * (partner[3,1] * beta[2,1] * ((rho[3,1] * ((Y2FL +
(delta[2,2] * tau[2,2] * W2FL)) / population[1,1])) + (rho[2,2] * ((Y1FM +
(delta[2,2] * tau[2,2] * W2FM)) / population[2,1])) + (rho[3,3] * ((Y2FH +
(delta[2,2] * tau[2,2] * W2MH)) / population[3,1]))))) - ((mew + gamma[3,2])
* W1MH);
return(list(c(dXFL.dt, dXFM.dt, dXFH.dt, dXML.dt, dXMM.dt, dXMH.dt,
dY1FL.dt, dY1FM.dt, dY1FH.dt, dY1ML.dt, dY1MM.dt, dY1MH.dt, dY2FL.dt,
dY2FM.dt, dY2FH.dt, dY2ML.dt, dY2MM.dt, dY2MH.dt, dZFL.dt, dZFM.dt, dZFH.dt,
dZML.dt, dZMM.dt, dZMH.dt, dVFL.dt, dVFM.dt, dVFH.dt, dVML.dt, dVMM.dt,
dVMH.dt, dW1FL.dt, dW1FM.dt, dW1FH.dt, dW1ML.dt, dW1MM.dt, dW1MH.dt,
dW2FL.dt, dW2FM.dt, dW2FH.dt, dW2ML.dt, dW2MM.dt, dW2MH.dt)));
})
}
#giving the parameters
mew = 1/15 #proportion of individuals entering
or exiting the sexually active group at a time
total = 60020 #total population of sexually
active
phi = 0.9 #Proportion of individuals who are
successfully vaccinated
sigma = 1/10 #loss of vaccination status
gamma = matrix(data=c(0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66),
ncol=2, nrow=4) #Duration of infectiousness
omega = matrix(data=c(0.82, 0.15, 0.03)) #proportion
of those in each sexual activity level
population = matrix(data=c(omega[1,1]*0.5*total, omega[2,1]*0.5*total,
omega[3,1]*0.5*total, omega[1,1]*0.5*total, omega[2,1]*0.5*total,
omega[3,1]*0.5*total), ncol=2, nrow=3) #population in each sexual activity
level and gender group
partner = matrix(data=c(1.4, 3, 9)) #average number
of partners per year by risk group
beta = matrix(data=c(0.8, 0.7)) #Chance of infection
from partner given 1 sexual encounter
rho = matrix(data=c(1, 1, 1, 1, 1, 1, 1, 1, 1), ncol=3, nrow=3)
#preference for selecting sexual partner by activity group
tau = matrix(data=c(1, 1, 1, 1), ncol=2, nrow=2)
delta = matrix(data=c(1, 1, 1, 1), ncol=2, nrow=2)
#reduction of infection from a vaccinated infected individual
XFL0 = 1850 #Initial number of females in the low risk group
unvaccinated susceptibles
XFM0 = 340 #Initial number of susceptible unvaccinated females medium
risk
XFH0 = 70 #Initial number of susceptible unvaccinated females high risk
XML0 = 1850 #Initial number of susceptible unvaccinated males low risk
XMM0 = 340 #Initial number of susceptible unvaccinated males medium
risk
XMH0 = 70 #Initial number of susceptible unvaccinated males high risk
Y1FL0 = 590 #Initial number of infected unvaccinated females low risk
Y1FM0 = 100 #Initial number of infected unvaccinated females medium
risk
Y1FH0 = 20 #Initial number of infected unvaccinated females high risk
Y1ML0 = 590 #Initial number of infected unvaccinated males low risk
Y1MM0 = 100 #Initial number of infected unvaccinated males medium risk
Y1MH0 = 20 #Initial number of infected unvaccinated males high risk
Y2FL0 = 590 #Initial number of infected unvaccinated females low risk
Y2FM0 = 100 #Initial number of infected unvaccinated females medium
risk
Y2FH0 = 20 #Initial number of infected unvaccinated females high risk
Y2ML0 = 590 #Initial number of infected unvaccinated males low risk
Y2MM0 = 100 #Initial number of infected unvaccinated males medium risk
Y2MH0 = 20 #Initial number of infected unvaccinated males high risk
ZFL0 = 0 #Initial number of immune females low risk
ZFM0 = 0 #Initial number of immune females medium risk
ZFH0 = 0 #Initial number of immune females high risk
ZML0 = 0 #Initial number of immune males low risk
ZMM0 = 0 #Initial number of immune males medium risk
ZMH0 = 0 #Initial number of immune males high risk
VFL0 = 21070 #Initial number of susceptible vaccinated females low risk
VFM0 = 3850 #Initial number of susceptible vaccinated females medium
risk
VFH0 = 770 #Initial number of susceptible vaccinated females high risk
VML0 = 21070 #Initial number of susceptible vaccinated males low risk
VMM0 = 3850 #Initial number of susceptible vaccinated males medium risk
VMH0 = 770 #Initial number of susceptible vaccinated males high risk
W1FL0 = 1110 #Initial number of infected vaccinated females low risk
W1FM0 = 200 #Initial number of infected vaccinated females medium risk
W1FH0 = 40 #Initial number of infected vaccinated females high risk
W1ML0 = 1110 #Initial number of infected vaccinated males low risk
W1MM0 = 200 #Initial number of infected vaccinated males medium risk
W1MH0 = 40 #Initial number of infected vaccinated males high risk
W2FL0 = 1110 #Initial number of infected vaccinated females low risk
W2FM0 = 200 #Initial number of infected vaccinated females medium risk
W2FH0 = 40 #Initial number of infected vaccinated females high risk
W2ML0 = 1110 #Initial number of infected vaccinated males low risk
W2MM0 = 200 #Initial number of infected vaccinated males medium risk
W2MH0 = 40 #Initial number of infected vaccinated males high risk
p = list(mew=mew, total=total, phi=phi, sigma=sigma, gamma=gamma,
omega=omega, population=population, partner=partner, beta=beta, rho=rho,
tau=tau, delta=delta)
y0 = c(XFL0, XFM0, XFH0, XML0, XMM0, XMH0, Y1FL0, Y1FM0, Y1FH0, Y1ML0,
Y1MM0, Y1MH0, Y2FL0, Y2FM0, Y2FH0, Y2ML0, Y2MM0, Y2MH0, ZFL0, ZFM0, ZFH0,
ZML0, ZMM0, ZMH0, VFL0, VFM0, VFH0, VML0, VMM0, VMH0, W1FL0, W1FM0, W1FH0,
W1ML0, W1MM0, W1MH0, W2FL0, W2FM0, W2FH0, W2ML0, W2MM0, W2MH0)
#Running the ode integrator
steps= 10;
t = seq(from=0, to=100, by=1);
Is anyone able to help?
--
View this message in context:
http://r.789695.n4.nabble.com/DeSolver-giving-NA-as-output-but-running-fully-tp4706497.html
Sent from the R help mailing list archive at Nabble.com.
Data? Use deput() (see ?dput) to provide some sample data. Also you might find this useful http://adv-r.had.co.nz/Reproducibility.html John Kane Kingston ON Canada> -----Original Message----- > From: walke554 at umn.edu > Sent: Mon, 27 Apr 2015 13:34:54 -0700 (PDT) > To: r-help at r-project.org > Subject: [R] DeSolver giving "NA" as output, but running fully. > > Hello All, > > I am currently looking on a transmission model for STD transmission > within a > population. I am able to run my full code and the ODE function, but when > I > look at my output, all I get is "NA" for each time step beyond the first. > There doesn't seem to be any syntax error, and I do get my entire program > to > run. Here is my code: > > setwd("C:/Users/L/Documents/MastersThesis") > > require(deSolve); > > ######## > #Model 1 > ######## > > #The function > HPVInfection<-function(t,y,p){ > XFL = y[1]; #number of susceptible unvaccinated females low risk > XFM = y[2]; #number of susceptible unvaccinated females medium risk > XFH = y[3]; #number of susceptible unvaccinated females high risk > XML = y[4]; #number of susceptible unvaccinated males low risk > XMM = y[5]; #number of susceptible unvaccinated males medium risk > XMH = y[6]; #number of susceptible unvaccinated males high risk > Y1FL = y[7]; #number of infected unvaccinated females low risk infected > with vaccine strain > Y1FM = y[8]; #number of infected unvaccinated females medium risk low > risk > infected with vaccine strain > Y1FH = y[9]; #number of infected unvaccinated females high risk low risk > infected with vaccine strain > Y1ML = y[10]; #number of infected unvaccinated males low risk low risk > infected with vaccine strain > Y1MM = y[11]; #number of infected unvaccinated males medium risk low > risk > infected with vaccine strain > Y1MH = y[12]; #number of infected unvaccinated males high risk low risk > infected with vaccine strain > Y2FL = y[13]; #number of infected unvaccinated females low risk infected > with non-vaccine strain > Y2FM = y[14]; #number of infected unvaccinated females medium risk low > risk > infected with non-vaccine strain > Y2FH = y[15]; #number of infected unvaccinated females high risk low > risk > infected with non-vaccine strain > Y2ML = y[16]; #number of infected unvaccinated males low risk low risk > infected with non-vaccine strain > Y2MM = y[17]; #number of infected unvaccinated males medium risk low > risk > infected with non-vaccine strain > Y2MH = y[18]; #number of infected unvaccinated males high risk low risk > infected with non-vaccine strain > ZFL = y[19]; #number of immune females low risk > ZFM = y[20]; #number of immune females medium risk > ZFH = y[21]; #number of immune females high risk > ZML = y[22]; #number of immune males low risk > ZMM = y[23]; #number of immune males medium risk > ZMH = y[24]; #number of immune males high risk > VFL = y[25]; #number of susceptible vaccinated females low risk > VFM = y[26]; #number of susceptible vaccinated females medium risk > VFH = y[27]; #number of susceptible vaccinated females high risk > VML = y[28]; #number of susceptible vaccinated males low risk > VMM = y[29]; #number of susceptible vaccinated males medium risk > VMH = y[30]; #number of susceptible vaccinated males high risk > W1FL = y[31]; #number of infected vaccinated females low risk infected > with > vaccine strain > W1FM = y[32]; #number of infected vaccinated females medium risk > infected > with vaccine strain > W1FH = y[33]; #number of infected vaccinated females high risk infected > with vaccine strain > W1ML = y[34]; #number of infected vaccinated males low risk infected > with > vaccine strain > W1MM = y[35]; #number of infected vaccinated males medium risk infected > with vaccine strain > W1MH = y[36]; #number of infected vaccinated males high risk infected > with > vaccine strain > W2FL = y[37]; #number of infected vaccinated females low risk infected > with > non-vaccine strain > W2FM = y[39]; #number of infected vaccinated females medium risk > infected > with non-vaccine strain > W2FH = y[40]; #number of infected vaccinated females high risk infected > with non-vaccine strain > W2ML = y[41]; #number of infected vaccinated males low risk infected > with > non-vaccine strain > W2MM = y[42]; #number of infected vaccinated males medium risk infected > with non-vaccine strain > W2MH = y[43]; #number of infected vaccinated males high risk infected > with > non-vaccine strain > with(as.list(p), { > dXFL.dt = (0.5 * mew * omega[1,1] * (1-phi) * total) - ((partner[1,1] * > beta[1,1] * ((((Y1ML + Y2ML + (tau[1,1] * W1ML) + (tau[1,2] * W2ML)) / > population[1,2]) * rho[1,1]) + (((Y1MM + Y2MM + (tau[1,1]*W1MM) + > (tau[1,2] > * W2MM))/population[2,2]) * rho[1,2]) + (((Y1MH + Y2MH + (tau[1,2] * > W1MH) + > (tau[1,2] * W2MH)) / population[3,2]) * rho[1,3])) + mew) * XFL) + (sigma > * > VFL); > dXFM.dt = (0.5 * mew * omega[2,1] * (1-phi) * total) - ((partner[2,1] * > beta[1,1] * ((((Y1ML + Y2ML + (tau[1,1] * W1ML) + (tau[1,2] * W2ML)) / > population[1,2]) * rho[2,1]) + (((Y1MM + Y2MM + (tau[1,1]*W1MM) + > (tau[1,2] > * W2MM))/population[2,2]) * rho[2,2]) + (((Y1MH + Y2MH + (tau[1,1] * > W1MH) + > (tau[1,2] * W2MH)) / population[3,2]) * rho[2,3])) + mew) * XFM) + (sigma > * > VFM); > dXFH.dt = (0.5 * mew * omega[3,1] * (1-phi) * total) - ((partner[3,1] * > beta[1,1] * ((((Y1ML + Y2ML + (tau[1,1] * W1ML) + (tau[1,2] * W2ML)) / > population[1,2]) * rho[3,1]) + (((Y1MM + Y2MM + (tau[1,1]*W1MM) + > (tau[1,2] > * W2MM))/population[2,2]) * rho[3,2]) + (((Y1MH + Y2MH + (tau[1,1] * > W1MH) + > (tau[1,2] * W2MH)) / population[3,2]) * rho[3,3])) + mew) * XFH) + (sigma > * > VFH); > dXML.dt = (0.5 * mew * omega[1,1] * (1-phi) * total) - ((partner[1,1] * > beta[2,1] * ((((Y1FL + Y2FL + (tau[2,1] * W1FL) + (tau[2,2] * W2FL)) / > population[1,1]) * rho[1,1]) + (((Y1FM + Y2FM + (tau[2,1]*W1FM) + > (tau[2,2] > * W2FM))/population[2,1]) * rho[1,2]) + (((Y1FH + Y2FH + (tau[2,1] * > W1FH) + > (tau[2,2] * W2FH)) / population[3,1]) * rho[1,3])) + mew) * XML) + (sigma > * > VML); > dXMM.dt = (0.5 * mew * omega[2,1] * (1-phi) * total) - ((partner[2,1] * > beta[2,1] * ((((Y1FL + Y2FL + (tau[2,1] * W1FL) + (tau[2,2] * W2FL)) / > population[1,1]) * rho[2,1]) + (((Y1FM + Y2FM + (tau[2,1]*W1FM) + > (tau[2,2] > * W2FM))/population[2,1]) * rho[2,2]) + (((Y1FH + Y2FH + (tau[2,1] * > W1FH) + > (tau[2,2] * W2FH)) / population[3,1]) * rho[2,3])) + mew) * XMM) + (sigma > * > VMM); > dXMH.dt = (0.5 * mew * omega[3,1] * (1-phi) * total) - ((partner[3,1] * > beta[2,1] * ((((Y1FL + Y2FL + (tau[2,1] * W1FL) + (tau[2,2] * W2FL)) / > population[1,1]) * rho[3,1]) + (((Y1FM + Y2FM + (tau[2,1]*W1FM) + > (tau[2,2] > * W2FM))/population[2,1]) * rho[3,2]) + (((Y1FH + Y2FH + (tau[2,1] * > W1FH) + > (tau[2,2] * W2FH)) / population[3,1]) * rho[3,3])) + mew) * XMH) + (sigma > * > VMH); > dY1FL.dt = (XFL * (partner[1,1] * beta[1,1] * ((rho[1,1] * ((Y1ML + > (tau[1,1] * W1ML)) / population[1,2])) + (rho[1,2] * ((Y1MM + (tau[1,1] * > W1MM)) / population[2,2])) + (rho[1,3] * ((Y1MH + (tau[1,1] * W1MH)) / > population[3,2]))))) - ((mew + gamma[2,1]) * Y1FL); > dY1FM.dt = (XFM * (partner[2,1] * beta[1,1] * ((rho[2,1] * ((Y1ML + > (tau[1,1] * W1ML)) / population[1,2])) + (rho[2,2] * ((Y1MM + (tau[1,1] * > W1MM)) / population[2,2])) + (rho[2,3] * ((Y1MH + (tau[1,1] * W1MH)) / > population[3,2]))))) - ((mew + gamma[2,1]) * Y1FM); > dY1FH.dt = (XFH * (partner[3,1] * beta[1,1] * ((rho[3,1] * ((Y1ML + > (tau[1,1] * W1ML)) / population[1,2])) + (rho[2,2] * ((Y1MM + (tau[1,1] * > W1MM)) / population[2,2])) + (rho[3,3] * ((Y1MH + (tau[1,1] * W1MH)) / > population[3,2]))))) - ((mew + gamma[2,1]) * Y1FH); > dY1ML.dt = (XML * (partner[1,1] * beta[2,1] * ((rho[1,1] * ((Y1FL + > (tau[2,1] * W1FL)) / population[1,1])) + (rho[1,2] * ((Y1FM + (tau[2,1] * > W1FM)) / population[2,1])) + (rho[1,3] * ((Y1FH + (tau[2,1] * W1FH)) / > population[3,1]))))) - ((mew + gamma[1,1]) * Y1MM); > dY1MM.dt = (XMM * (partner[2,1] * beta[2,1] * ((rho[2,1] * ((Y1FL + > (tau[2,1] * W1FL)) / population[1,1])) + (rho[2,2] * ((Y1FM + (tau[2,1] * > W1FM)) / population[2,1])) + (rho[2,3] * ((Y1FH + (tau[2,1] * W1FH)) / > population[3,1]))))) - ((mew + gamma[1,1]) * Y1MM); > dY1MH.dt = (XMH * (partner[3,1] * beta[2,1] * ((rho[3,1] * ((Y1FL + > (tau[2,1] * W1FL)) / population[1,1])) + (rho[2,2] * ((Y1FM + (tau[2,1] * > W1FM)) / population[2,1])) + (rho[3,3] * ((Y1FH + (tau[2,1] * W1MH)) / > population[3,1]))))) - ((mew + gamma[1,1]) * Y1MH); > dY2FL.dt = (XFL * (partner[1,1] * beta[1,1] * ((rho[1,1] * ((Y2ML + > (tau[1,2] * W2ML)) / population[1,2])) + (rho[1,2] * ((Y1MM + (tau[1,2] * > W2MM)) / population[2,2])) + (rho[1,3] * ((Y2MH + (tau[1,2] * W2MH)) / > population[3,2]))))) - ((mew + gamma[2,2]) * Y1FL); > dY2FM.dt = (XFM * (partner[2,1] * beta[1,1] * ((rho[2,1] * ((Y2ML + > (tau[1,2] * W2ML)) / population[1,2])) + (rho[2,2] * ((Y1MM + (tau[1,2] * > W2MM)) / population[2,2])) + (rho[2,3] * ((Y2MH + (tau[1,2] * W2MH)) / > population[3,2]))))) - ((mew + gamma[2,2]) * Y1FM); > dY2FH.dt = (XFH * (partner[3,1] * beta[1,1] * ((rho[3,1] * ((Y2ML + > (tau[1,2] * W2ML)) / population[1,2])) + (rho[2,2] * ((Y1MM + (tau[1,2] * > W2MM)) / population[2,2])) + (rho[3,3] * ((Y2MH + (tau[1,2] * W2MH)) / > population[3,2]))))) - ((mew + gamma[2,2]) * Y1FH); > dY2ML.dt = (XML * (partner[1,1] * beta[2,1] * ((rho[1,1] * ((Y2FL + > (tau[2,2] * W2FL)) / population[1,1])) + (rho[1,2] * ((Y1FM + (tau[2,2] * > W2FM)) / population[2,1])) + (rho[1,3] * ((Y2FH + (tau[2,2] * W2FH)) / > population[3,1]))))) - ((mew + gamma[1,2]) * Y1MM); > dY2MM.dt = (XMM * (partner[2,1] * beta[2,1] * ((rho[2,1] * ((Y2FL + > (tau[2,2] * W2FL)) / population[1,1])) + (rho[2,2] * ((Y1FM + (tau[2,2] * > W2FM)) / population[2,1])) + (rho[2,3] * ((Y2FH + (tau[2,2] * W2FH)) / > population[3,1]))))) - ((mew + gamma[1,2]) * Y1MM); > dY2MH.dt = (XMH * (partner[3,1] * beta[2,1] * ((rho[3,1] * ((Y2FL + > (tau[2,2] * W2FL)) / population[1,1])) + (rho[2,2] * ((Y1FM + (tau[2,2] * > W2FM)) / population[2,1])) + (rho[3,3] * ((Y2FH + (tau[2,2] * W2MH)) / > population[3,1]))))) - ((mew + gamma[1,2]) * Y1MH); > dZFL.dt = ((gamma[2,1] * Y1FL) + (gamma[2,2] * Y2FL) + (gamma[4,1] * > W1FL) > + (gamma[4,2]*W2FL)) - (mew * ZFL); > dZFM.dt = ((gamma[2,1] * Y1FM) + (gamma[2,2] * Y2FM) + (gamma[4,1] * > W1FM) > + (gamma[4,2]*W2FM)) - (mew * ZFM); > dZFH.dt = ((gamma[2,1] * Y1FH) + (gamma[2,2] * Y2FH) + (gamma[4,1] * > W1FH) > + (gamma[4,2]*W2FH)) - (mew * ZFH); > dZML.dt = ((gamma[1,1] * Y1ML) + (gamma[1,2] * Y2ML) + (gamma[3,1] * > W1FM) > + (gamma[3,2]*W2ML)) - (mew * ZML); > dZMM.dt = ((gamma[1,1] * Y1MM) + (gamma[1,2] * Y2MM) + (gamma[3,1] * > W1MM) > + (gamma[3,2]*W2MM)) - (mew * ZMM); > dZMH.dt = ((gamma[1,1] * Y1MH) + (gamma[1,2] * Y2MH) + (gamma[3,1] * > W1MH) > + (gamma[3,2]*W2MH)) - (mew * ZMH); > dVFL.dt = (0.5 * mew * omega[1,1] * phi * total) - ((partner[1,1] * > beta[1,1] * ((((Y1ML + Y2ML + (delta[1,1] * tau[1,1] * W1ML) + > (delta[1,2] * > tau[1,2] * W2ML)) / population[1,2]) * rho[1,1]) + (((Y1MM + Y2MM + > (delta[1,1] * tau[1,1]*W1MM) + (delta[1,2] * tau[1,2] * > W2MM))/population[2,2]) * rho[1,2]) + (((Y1MH + Y2MH + (delta[1,1] * > tau[1,2] * W1MH) + (delta[1,2] * tau[1,2] * W2MH)) / population[3,2]) * > rho[1,3])) + mew) * VFL) - (sigma * VFL); > dVFM.dt = (0.5 * mew * omega[2,1] * phi * total) - ((partner[2,1] * > beta[1,1] * ((((Y1ML + Y2ML + (delta[1,1] * tau[1,1] * W1ML) + > (delta[1,2] * > tau[1,2] * W2ML)) / population[1,2]) * rho[2,1]) + (((Y1MM + Y2MM + > (delta[1,1] * tau[1,1]*W1MM) + (delta[1,2] * tau[1,2] * > W2MM))/population[2,2]) * rho[2,2]) + (((Y1MH + Y2MH + (delta[1,1] * > tau[1,1] * W1MH) + (delta[1,2] * tau[1,2] * W2MH)) / population[3,2]) * > rho[2,3])) + mew) * VFM) - (sigma * VFM); > dVFH.dt = (0.5 * mew * omega[3,1] * phi * total) - ((partner[3,1] * > beta[1,1] * ((((Y1ML + Y2ML + (delta[1,1] * tau[1,1] * W1ML) + > (delta[1,2] * > tau[1,2] * W2ML)) / population[1,2]) * rho[3,1]) + (((Y1MM + Y2MM + > (delta[1,1] * tau[1,1]*W1MM) + (delta[1,2] * tau[1,2] * > W2MM))/population[2,2]) * rho[3,2]) + (((Y1MH + Y2MH + (delta[1,1] * > tau[1,1] * W1MH) + (delta[1,2] * tau[1,2] * W2MH)) / population[3,2]) * > rho[3,3])) + mew) * VFH) - (sigma * VFH); > dVML.dt = (0.5 * mew * omega[1,1] * phi * total) - ((partner[1,1] * > beta[2,1] * ((((Y1FL + Y2FL + (delta[2,1] * tau[2,1] * W1FL) + > (delta[2,2] * > tau[2,2] * W2FL)) / population[1,1]) * rho[1,1]) + (((Y1FM + Y2FM + > (delta[2,1] * tau[2,1]*W1FM) + (delta[2,2] * tau[2,2] * > W2FM))/population[2,1]) * rho[1,2]) + (((Y1FH + Y2FH + (delta[2,1] * > tau[2,1] * W1FH) + (delta[2,2] * tau[2,2] * W2FH)) / population[3,1]) * > rho[1,3])) + mew) * VML) - (sigma * VML); > dVMM.dt = (0.5 * mew * omega[2,1] * phi * total) - ((partner[2,1] * > beta[2,1] * ((((Y1FL + Y2FL + (delta[2,1] * tau[2,1] * W1FL) + > (delta[2,2] * > tau[2,2] * W2FL)) / population[1,1]) * rho[2,1]) + (((Y1FM + Y2FM + > (delta[2,1] * tau[2,1]*W1FM) + (delta[2,2] * tau[2,2] * > W2FM))/population[2,1]) * rho[2,2]) + (((Y1FH + Y2FH + (delta[2,1] * > tau[2,1] * W1FH) + (delta[2,2] * tau[2,2] * W2FH)) / population[3,1]) * > rho[2,3])) + mew) * VMM) - (sigma * VMM); > dVMH.dt = (0.5 * mew * omega[3,1] * phi * total) - ((partner[3,1] * > beta[2,1] * ((((Y1FL + Y2FL + (delta[2,1] * tau[2,1] * W1FL) + > (delta[2,2] * > tau[2,2] * W2FL)) / population[1,1]) * rho[3,1]) + (((Y1FM + Y2FM + > (delta[2,1] * tau[2,1]*W1FM) + (delta[2,2] * tau[2,2] * > W2FM))/population[2,1]) * rho[3,2]) + (((Y1FH + Y2FH + (delta[2,1] * > tau[2,1] * W1FH) + (delta[2,2] * tau[2,2] * W2FH)) / population[3,1]) * > rho[3,3])) + mew) * VMH) - (sigma * VMH); > dW1FL.dt = (VFL * (partner[1,1] * beta[1,1] * ((rho[1,1] * ((Y1ML + > (delta[1,1] * tau[1,1] * W1ML)) / population[1,2])) + (rho[1,2] * ((Y1MM > + > (delta[1,1] * tau[1,1] * W1MM)) / population[2,2])) + (rho[1,3] * ((Y1MH > + > (delta[1,1] * tau[1,1] * W1MH)) / population[3,2]))))) - ((mew + > gamma[4,1]) > * W1FL); > dW1FM.dt = (VFM * (partner[2,1] * beta[1,1] * ((rho[2,1] * ((Y1ML + > (delta[1,1] * tau[1,1] * W1ML)) / population[1,2])) + (rho[2,2] * ((Y1MM > + > (delta[1,1] * tau[1,1] * W1MM)) / population[2,2])) + (rho[2,3] * ((Y1MH > + > (delta[1,1] * tau[1,1] * W1MH)) / population[3,2]))))) - ((mew + > gamma[4,1]) > * W1FM); > dW1FH.dt = (VFH * (partner[3,1] * beta[1,1] * ((rho[3,1] * ((Y1ML + > (delta[1,1] * tau[1,1] * W1ML)) / population[1,2])) + (rho[2,2] * ((Y1MM > + > (delta[1,1] * tau[1,1] * W1MM)) / population[2,2])) + (rho[3,3] * ((Y1MH > + > (delta[1,1] * tau[1,1] * W1MH)) / population[3,2]))))) - ((mew + > gamma[4,1]) > * W1FH); > dW1ML.dt = (VML * (partner[1,1] * beta[2,1] * ((rho[1,1] * ((Y1FL + > (delta[2,1] * tau[2,1] * W1FL)) / population[1,1])) + (rho[1,2] * ((Y1FM > + > (delta[2,1] * tau[2,1] * W1FM)) / population[2,1])) + (rho[1,3] * ((Y1FH > + > (delta[2,1] * tau[2,1] * W1FH)) / population[3,1]))))) - ((mew + > gamma[3,1]) > * W1MM); > dW1MM.dt = (VMM * (partner[2,1] * beta[2,1] * ((rho[2,1] * ((Y1FL + > (delta[2,1] * tau[2,1] * W1FL)) / population[1,1])) + (rho[2,2] * ((Y1FM > + > (delta[2,1] * tau[2,1] * W1FM)) / population[2,1])) + (rho[2,3] * ((Y1FH > + > (delta[2,1] * tau[2,1] * W1FH)) / population[3,1]))))) - ((mew + > gamma[3,1]) > * W1MM); > dW1MH.dt = (VMH * (partner[3,1] * beta[2,1] * ((rho[3,1] * ((Y1FL + > (delta[2,1] * tau[2,1] * W1FL)) / population[1,1])) + (rho[2,2] * ((Y1FM > + > (delta[2,1] * tau[2,1] * W1FM)) / population[2,1])) + (rho[3,3] * ((Y1FH > + > (delta[2,1] * tau[2,1] * W1MH)) / population[3,1]))))) - ((mew + > gamma[3,1]) > * W1MH); > dW2FL.dt = (VFL * (partner[1,1] * beta[1,1] * ((rho[1,1] * ((Y2ML + > (delta[1,2] * tau[1,2] * W2ML)) / population[1,2])) + (rho[1,2] * ((Y1MM > + > (delta[1,2] * tau[1,2] * W2MM)) / population[2,2])) + (rho[1,3] * ((Y2MH > + > (delta[1,2] * tau[1,2] * W2MH)) / population[3,2]))))) - ((mew + > gamma[4,2]) > * W1FL); > dW2FM.dt = (VFM * (partner[2,1] * beta[1,1] * ((rho[2,1] * ((Y2ML + > (delta[1,2] * tau[1,2] * W2ML)) / population[1,2])) + (rho[2,2] * ((Y1MM > + > (delta[1,2] * tau[1,2] * W2MM)) / population[2,2])) + (rho[2,3] * ((Y2MH > + > (delta[1,2] * tau[1,2] * W2MH)) / population[3,2]))))) - ((mew + > gamma[4,2]) > * W1FM); > dW2FH.dt = (VFH * (partner[3,1] * beta[1,1] * ((rho[3,1] * ((Y2ML + > (delta[1,2] * tau[1,2] * W2ML)) / population[1,2])) + (rho[2,2] * ((Y1MM > + > (delta[1,2] * tau[1,2] * W2MM)) / population[2,2])) + (rho[3,3] * ((Y2MH > + > (delta[1,2] * tau[1,2] * W2MH)) / population[3,2]))))) - ((mew + > gamma[4,2]) > * W1FH); > dW2ML.dt = (VML * (partner[1,1] * beta[2,1] * ((rho[1,1] * ((Y2FL + > (delta[2,2] * tau[2,2] * W2FL)) / population[1,1])) + (rho[1,2] * ((Y1FM > + > (delta[2,2] * tau[2,2] * W2FM)) / population[2,1])) + (rho[1,3] * ((Y2FH > + > (delta[2,2] * tau[2,2] * W2FH)) / population[3,1]))))) - ((mew + > gamma[3,2]) > * W1MM); > dW2MM.dt = (VMM * (partner[2,1] * beta[2,1] * ((rho[2,1] * ((Y2FL + > (delta[2,2] * tau[2,2] * W2FL)) / population[1,1])) + (rho[2,2] * ((Y1FM > + > (delta[2,2] * tau[2,2] * W2FM)) / population[2,1])) + (rho[2,3] * ((Y2FH > + > (delta[2,2] * tau[2,2] * W2FH)) / population[3,1]))))) - ((mew + > gamma[3,2]) > * W1MM); > dW2MH.dt = (VMH * (partner[3,1] * beta[2,1] * ((rho[3,1] * ((Y2FL + > (delta[2,2] * tau[2,2] * W2FL)) / population[1,1])) + (rho[2,2] * ((Y1FM > + > (delta[2,2] * tau[2,2] * W2FM)) / population[2,1])) + (rho[3,3] * ((Y2FH > + > (delta[2,2] * tau[2,2] * W2MH)) / population[3,1]))))) - ((mew + > gamma[3,2]) > * W1MH); > return(list(c(dXFL.dt, dXFM.dt, dXFH.dt, dXML.dt, dXMM.dt, dXMH.dt, > dY1FL.dt, dY1FM.dt, dY1FH.dt, dY1ML.dt, dY1MM.dt, dY1MH.dt, dY2FL.dt, > dY2FM.dt, dY2FH.dt, dY2ML.dt, dY2MM.dt, dY2MH.dt, dZFL.dt, dZFM.dt, > dZFH.dt, > dZML.dt, dZMM.dt, dZMH.dt, dVFL.dt, dVFM.dt, dVFH.dt, dVML.dt, dVMM.dt, > dVMH.dt, dW1FL.dt, dW1FM.dt, dW1FH.dt, dW1ML.dt, dW1MM.dt, dW1MH.dt, > dW2FL.dt, dW2FM.dt, dW2FH.dt, dW2ML.dt, dW2MM.dt, dW2MH.dt))); > }) > } > > #giving the parameters > > mew = 1/15 #proportion of individuals > entering > or exiting the sexually active group at a time > total = 60020 #total population of sexually > active > phi = 0.9 #Proportion of individuals who are > successfully vaccinated > sigma = 1/10 #loss of vaccination status > gamma = matrix(data=c(0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66), > ncol=2, nrow=4) #Duration of infectiousness > omega = matrix(data=c(0.82, 0.15, 0.03)) > #proportion > of those in each sexual activity level > population = matrix(data=c(omega[1,1]*0.5*total, omega[2,1]*0.5*total, > omega[3,1]*0.5*total, omega[1,1]*0.5*total, omega[2,1]*0.5*total, > omega[3,1]*0.5*total), ncol=2, nrow=3) #population in each sexual > activity > level and gender group > partner = matrix(data=c(1.4, 3, 9)) #average > number > of partners per year by risk group > beta = matrix(data=c(0.8, 0.7)) #Chance of > infection > from partner given 1 sexual encounter > rho = matrix(data=c(1, 1, 1, 1, 1, 1, 1, 1, 1), ncol=3, nrow=3) > #preference for selecting sexual partner by activity group > tau = matrix(data=c(1, 1, 1, 1), ncol=2, nrow=2) > delta = matrix(data=c(1, 1, 1, 1), ncol=2, nrow=2) > #reduction of infection from a vaccinated infected individual > > XFL0 = 1850 #Initial number of females in the low risk group > unvaccinated susceptibles > XFM0 = 340 #Initial number of susceptible unvaccinated females > medium > risk > XFH0 = 70 #Initial number of susceptible unvaccinated females high > risk > XML0 = 1850 #Initial number of susceptible unvaccinated males low > risk > XMM0 = 340 #Initial number of susceptible unvaccinated males medium > risk > XMH0 = 70 #Initial number of susceptible unvaccinated males high > risk > Y1FL0 = 590 #Initial number of infected unvaccinated females low > risk > Y1FM0 = 100 #Initial number of infected unvaccinated females medium > risk > Y1FH0 = 20 #Initial number of infected unvaccinated females high > risk > Y1ML0 = 590 #Initial number of infected unvaccinated males low risk > Y1MM0 = 100 #Initial number of infected unvaccinated males medium > risk > Y1MH0 = 20 #Initial number of infected unvaccinated males high risk > Y2FL0 = 590 #Initial number of infected unvaccinated females low > risk > Y2FM0 = 100 #Initial number of infected unvaccinated females medium > risk > Y2FH0 = 20 #Initial number of infected unvaccinated females high > risk > Y2ML0 = 590 #Initial number of infected unvaccinated males low risk > Y2MM0 = 100 #Initial number of infected unvaccinated males medium > risk > Y2MH0 = 20 #Initial number of infected unvaccinated males high risk > ZFL0 = 0 #Initial number of immune females low risk > ZFM0 = 0 #Initial number of immune females medium risk > ZFH0 = 0 #Initial number of immune females high risk > ZML0 = 0 #Initial number of immune males low risk > ZMM0 = 0 #Initial number of immune males medium risk > ZMH0 = 0 #Initial number of immune males high risk > VFL0 = 21070 #Initial number of susceptible vaccinated females low > risk > VFM0 = 3850 #Initial number of susceptible vaccinated females medium > risk > VFH0 = 770 #Initial number of susceptible vaccinated females high > risk > VML0 = 21070 #Initial number of susceptible vaccinated males low risk > VMM0 = 3850 #Initial number of susceptible vaccinated males medium > risk > VMH0 = 770 #Initial number of susceptible vaccinated males high risk > W1FL0 = 1110 #Initial number of infected vaccinated females low risk > W1FM0 = 200 #Initial number of infected vaccinated females medium > risk > W1FH0 = 40 #Initial number of infected vaccinated females high risk > W1ML0 = 1110 #Initial number of infected vaccinated males low risk > W1MM0 = 200 #Initial number of infected vaccinated males medium risk > W1MH0 = 40 #Initial number of infected vaccinated males high risk > W2FL0 = 1110 #Initial number of infected vaccinated females low risk > W2FM0 = 200 #Initial number of infected vaccinated females medium > risk > W2FH0 = 40 #Initial number of infected vaccinated females high risk > W2ML0 = 1110 #Initial number of infected vaccinated males low risk > W2MM0 = 200 #Initial number of infected vaccinated males medium risk > W2MH0 = 40 #Initial number of infected vaccinated males high risk > > p = list(mew=mew, total=total, phi=phi, sigma=sigma, gamma=gamma, > omega=omega, population=population, partner=partner, beta=beta, rho=rho, > tau=tau, delta=delta) > > y0 = c(XFL0, XFM0, XFH0, XML0, XMM0, XMH0, Y1FL0, Y1FM0, Y1FH0, Y1ML0, > Y1MM0, Y1MH0, Y2FL0, Y2FM0, Y2FH0, Y2ML0, Y2MM0, Y2MH0, ZFL0, ZFM0, ZFH0, > ZML0, ZMM0, ZMH0, VFL0, VFM0, VFH0, VML0, VMM0, VMH0, W1FL0, W1FM0, > W1FH0, > W1ML0, W1MM0, W1MH0, W2FL0, W2FM0, W2FH0, W2ML0, W2MM0, W2MH0) > > #Running the ode integrator > > steps= 10; > t = seq(from=0, to=100, by=1); > > Is anyone able to help? > > > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/DeSolver-giving-NA-as-output-but-running-fully-tp4706497.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.____________________________________________________________ FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop!
All of the data you need to run the ODE integrator is there. all the parameters and starting populations and values are given under the: "#giving the parameters" section of the code. -- View this message in context: http://r.789695.n4.nabble.com/DeSolver-giving-NA-as-output-but-running-fully-tp4706497p4706620.html Sent from the R help mailing list archive at Nabble.com.
Tsjerk Wassenaar
2015-Apr-30 07:01 UTC
[R] DeSolver giving "NA" as output, but running fully.
Hey :)
W2MH = y[43]; #number of infected vaccinated males high
risk> infected with
> non-vaccine strain
>
> length(y0)
[1] 42
As a sidenote, would you mind sharing the flow diagram with me, so I can
show it to my students doing a practical with DeSolve, as example of a
contemporary model?
Cheers,
Tsjerk
--
Tsjerk A. Wassenaar, Ph.D.
[[alternative HTML version deleted]]