If/else statements
If a parameter value depends on a condition, it can be written with in Mlxtran
with the usual if-else-end syntax. For example, if a parameter c should be 1 if t<=10, 2 if t<20 and 3 otherwise, write
if t<=10
c = 1
elseif t<20
c = 2
else
c = 3
end
Conditional derivatives
Derivatives cannot be written within an if-else-end structure. Instead, intermediate variables should be used. For example, if a derivative of x over time should be 1 if t<=10 and 2 otherwise, write
if t<=10
dx = 1
else
dx = 2
end
ddt_x = dx
Example: count model
Some models from the Count model library are defined with if/else statements, such as the zero-inflated Poisson model:
[LONGITUDINAL]
input= {lambda0, nu, f}
EQUATION:
lambda = lambda0*exp(-t/nu)
DEFINITION:
CountNumber= {type=count,
if k==0
Pk = exp(-lambda)*(1-f) + f
else
Pk = exp(k*log(lambda) -lambda -factln(k))*(1-f)
end
P(CountNumber=k) = Pk}
OUTPUT:
output= CountNumber