anaflow.tools.laplace¶
Anaflow subpackage providing functions concerning the laplace transformation.
The following functions are provided
get_lap (func[, arg_dict]) |
Callable Laplace transform. |
get_lap_inv (func[, method, method_dict, …]) |
Callable Laplace inversion. |
lap_trans (func, phase[, arg_dict]) |
The laplace transform. |
stehfest (func, time[, bound, arg_dict]) |
The stehfest-algorithm for numerical laplace inversion. |
-
get_lap
(func, arg_dict=None, **kwargs)[source]¶ Callable Laplace transform.
Get the Laplace transform of a given function as a callable function.
Parameters: - func (
callable
) –function that shall be transformed. The first argument needs to be the time-variable:
func(t, **kwargs)
func should be capable of taking numpy arrays as input for s and the first shape component of the output of func should match the shape of s.
- arg_dict (
dict
orNone
, optional) – Keyword-arguments given as a dictionary that are forwarded to the function given infunc
. Will be merged with**kwargs
This is designed for overlapping keywords. Default:None
- **kwargs – Keyword-arguments that are forwarded to the function given in
func
. Will be merged witharg_dict
.
Returns: The Laplace transformed of the given function.
Return type: Raises: ValueError
– If func is not callable.- func (
-
lap_trans
(func, phase, arg_dict=None, **kwargs)[source]¶ The laplace transform.
Parameters: - func (
callable
) –function that shall be transformed. The first argument needs to be the time-variable:
func(s, **kwargs)
func should be capable of taking numpy arrays as input for s and the first shape component of the output of func should match the shape of s.
- phase (
float
ornumpy.ndarray
) – phase-points to evaluate the transformed function at - arg_dict (
dict
orNone
, optional) – Keyword-arguments given as a dictionary that are forwarded to the function given infunc
. Will be merged with**kwargs
This is designed for overlapping keywords instehfest
andfunc
.Default:None
- **kwargs – Keyword-arguments that are forwarded to the function given in
func
. Will be merged witharg_dict
Returns: Array with all evaluations in phase-space.
Return type: Raises: ValueError
– If func is not callable.- func (
-
get_lap_inv
(func, method='stehfest', method_dict=None, arg_dict=None, **kwargs)[source]¶ Callable Laplace inversion.
Get the Laplace inversion of a given function as a callable function.
Parameters: - func (
callable
) –function in laplace-space that shall be inverted. The first argument needs to be the laplace-variable:
func(s, **kwargs)
func should be capable of taking numpy arrays as input for s and the first shape component of the output of func should match the shape of s.
- method (
str
) –Method that should be used to calculate the inverse. One can choose between
"stehfest"
: for the stehfest algorithm
Default:
"stehfest"
- method_dict (
dict
orNone
, optional) – Keyword arguments for the used method. - arg_dict (
dict
orNone
, optional) – Keyword-arguments given as a dictionary that are forwarded to the function given infunc
. Will be merged with**kwargs
This is designed for overlapping keywords. Default:None
- **kwargs – Keyword-arguments that are forwarded to the function given in
func
. Will be merged witharg_dict
.
Returns: The Laplace inverse of the given function.
Return type: Raises: ValueError
– If func is not callable.ValueError
– If method is unknown.
- func (
-
stehfest
(func, time, bound=12, arg_dict=None, **kwargs)[source]¶ The stehfest-algorithm for numerical laplace inversion.
The Inversion was derivide in ‘’Stehfest 1970’’[R1] and is given by the formula
In the algorithm corresponds to
bound
, tofunc
and totime
.Parameters: - func (
callable
) –function in laplace-space that shall be inverted. The first argument needs to be the laplace-variable:
func(s, **kwargs)
func should be capable of taking numpy arrays as input for s and the first shape component of the output of func should match the shape of s.
- time (
float
ornumpy.ndarray
) – time-points to evaluate the function at - bound (
int
, optional) – Here you can specify the number of interations within this algorithm. Default:12
- arg_dict (
dict
orNone
, optional) – Keyword-arguments given as a dictionary that are forwarded to the function given infunc
. Will be merged with**kwargs
This is designed for overlapping keywords instehfest
andfunc
.Default:None
- **kwargs – Keyword-arguments that are forwarded to the function given in
func
. Will be merged witharg_dict
Returns: Array with all evaluations in Time-space.
Return type: Raises: ValueError
– If func is not callable.ValueError
– If time is not positive.ValueError
– If bound is not positive.ValueError
– If bound is not even.
References
[R1] Stehfest, H., ‘’Algorithm 368: Numerical inversion of laplace transforms [d5].’’ Communications of the ACM, 13(1):47-49, 1970 Notes
The parameter
time
needs to be strictly positiv.The algorithm gets unstable for
bound
values above 20.Examples
>>> f = lambda x: x**-1 >>> stehfest(f, [1,10,100]) array([ 1., 1., 1.])
- func (