Re: inexplicit equations in PRED
Sam,
You do not need an equilibrium compartment, you can solve the equation
explicitly:
$DES
K1 = A(1)/V1-A(2)-KD
C = 0.5*(K1+ SQRT(K1*K1+4*KD*A(1)/V1))
DADT(1)= -K10*C*V1 - KINT*C*V1*A(2)/(KD+C)
DADT(2)= KSYN - KDEG*A(2) -(KINT - KDEG)*C*A(2)/(KD+C)
If you would like to use the equilibrium compartment just for the sake of test, E(3) should denote the equation that needs to be solved as E(3)=0. Thus, something like this:
$AESINITIAL
INIT=1
A(3)=0.001
$AES
K1 = A(1)/V1-A(2)-KD
E(3) = A(3)-0.5*(K1+ SQRT(K1*K1+4*KD*A(1)/V1))
$DES
DADT(1)= -K10*A(3)*V1 - KINT*A(3)*V1*A(2)/(KD+A(3))
DADT(2)= KSYN - KDEG*A(2) -(KINT - KDEG)*A(3)*A(2)/(KD+A(3))
Regards,
Katya
-------------------------
Ekaterina Gibiansky, Ph.D.
CEO&CSO, QuantPharm LLC
Web: www.quantpharm.com
Email: EGibiansky at quantpharm.com
Tel: (301)-717-7032
Sam wrote:
> Dear nmusers:
>
> I would like to continued this thread started by Robert. I tried the $AES method suggested by Katya in my PK model where the first two compartments are defined in $DES while the third compartment is defined as an equilibrium algebraic equation in $AES. I got error msg shown below. Could anyone tell what is missing in my code?
>
> "LUDATN IS UNABLE TO INVERT JACOBIAN (DA) FOR AES VARIABLES ERROR OCURRED WHILE ATTEMPTING TO OBTAIN INITIAL VALUES FOR DY/DT" Sam Liao
>
> ===== sim02.lst =====================================================
> $PROB A TMDD MODEL
> $INPUT C ID TIME DV AMT RATE DOSE EVID CMT SS
> $DATA sim01.csv IGNORE=C
> $SUBROUTINES ADVAN9 TOL=3
> $MODEL
> COMP=(CENTRAL)
> COMP=(RTOT)
> COMP=(A3 EQUILIBRIUM)
> $PK
> CL = THETA(1)* EXP(ETA(1))
> V1 = THETA(2)* EXP(ETA(2))
>
> K10= CL/V1
>
> KSYN= THETA(3)* EXP(ETA(3))
> KDEG= THETA(4)* EXP(ETA(4))
> KINT= THETA(5)* EXP(ETA(5))
> KD = THETA(6)* EXP(ETA(6))
>
> BL= KSYN/KDEG
> A_0(2)=BL ;BOUNDARY CONDITION FOR EQUATION 3
> $AESINITIAL
> INIT=1
> A(3)=0.001
> $AES
> K1 = A(1)/V1-A(2)-KD
> E(3) = 0.5*(K1+ SQRT(K1*K1+4*KD*A(1)/V1))
> $DES
> DADT(1)= -K10*A(3)*V1 - KINT*A(3)*V1*A(2)/(KD+A(3))
> DADT(2)= KSYN - KDEG*A(2) -(KINT - KDEG)*A(3)*A(2)/(KD+A(3))
>
> .............
>
> > Robert,
> >
> > You can do it using ADVAN9 with NEQUILIBRIUM option in $MODEL, and $AESINITIAL and $AES blocks. E.g. (where A(13) is what is F in your example) :
> >
> > $SUBROUTINES ADVAN9 TOL=4
> > $MODEL NEQUILIBRIUM=1
> > COMP(COMP1)
> > ....
> > COMP(COMP13)
> >
> > $PK
> > ...
> >
> > $AESINITIAL
> > INIT = 0; 0=APPROXIMATE, 1=EXACT
> > A(13)=0.001
> > $AES
> > E(13)=A(9)-A(13)-A(13)*A(10)/(KSS+A(13))-A(13)*A(12)/(KSS2+A(13))
> >
> > $DES
> > ...
> >
> > $ERROR
> > Y = A(13)+EPS(1)
> >
> > Regards,
> > Katya
> >
> > --------------------------
> > Ekaterina Gibiansky, Ph.D.
> > CEO&CSO, QuantPharm LLC
> > Web: www.quantpharm.com
> > Email: [email protected]
> > Tel: (301)-717-7032
> >
> > Robert Kalicki wrote:
> >
> > > Dear NMusers,
> > >
> > > Most of the models are pre-defined (ADVANx), expressed as a system of differential equations or provided in the form of an explicit mathematical equation (PRED).
> > >
> > > Is it possible to deal with nonlinear inexplicit equations like y = f(x,y) where both differential equations and explicit solution equation are not known or not obvious.
> > >
> > > Concretely, using PRED, one would find F on the both sides:
> > >
> > > F = f(X) + g(F)
> > >
> > > Y = F+EPS(1)
> > >
> > > Many thanks in advance
> > >
> > > Best regards,
> > >
> > > Robert
> > >
> > > ___________________________________________
> > > Robert M. Kalicki, MD
> > >
> > > Postdoctoral Fellow
> > >
> > > Department of Nephrology and Hypertension
> > >
> > > Inselspital
> > >
> > > University of Bern
> > >
> > > Switzerland