\(\newcommand{\B}[1]{ {\bf #1} }\) \(\newcommand{\R}[1]{ {\rm #1} }\) \(\newcommand{\W}[1]{ \; #1 \; }\)
average_integrand#
View page sourceCompute The Average Integrand#
Syntax#
# avg =
def average_integrand(rate_fun, integrand_name, grid, abs_tol) :
assert type(rate_fun) == dict
assert type(integrand_name) == str
assert type(grid) == dict
assert type(abs_tol) == float
assert type(avg) == float
return avg
Purpose#
The predict_command is a much faster way to calculate these values. This routine is easier to use and provides independent testing of the dismod_at integrators.
rate_fun#
This is a dictionary and it’s possible keys are the rate names . If a key is a key in the dictionary,
value = rate_fun [ key ]( age , time )
returns a float equal to the value of the specified rate at the specified age and time (where age and time are floats). Note that age will always be zero when evaluating
value = rate_fun [
'pini'
]( age , time )
If a rate name is not in the rate_fun, the corresponding rate is zero.
integrand_name#
This string is one of the integrand names .
grid#
This argument defines the grid for trapezoidal integration. (The dismod_at integrands are often non-smooth and so a low order integration method is called for.) The grid is a dictionary with the following keys:
age#
grid [ 'age'
] is a list of floats containing the grid points
for the average w.r.t. age.
These points are monotone increasing, the first (last) point is the
lower (upper) age limit for the average
time#
grid [ 'time'
] is a list of floats containing the grid points
for the average w.r.t. time.
These points are monotone increasing, the first (last) point is the
lower (upper) time limit for the average
abs_tol#
This float is an absolute error bound, that the integrator will achieve.
avg#
The return value avg is the corresponding average integrand .
Example#
The file user_average_integrand.py contains an example and test of this routine.