Using Python for scientific computing: Efficient and flexible evaluation of the statistical characteristics of functions with multivariate random inputs
This paper examines the feasibility of high-level Python based utilities for numerically intensive applications via an example of a multidimensional integration for the evaluation of the statistical characteristics of a random variable. We discuss the approaches to the implementation of mathematical...
Saved in:
| Published in | Computer physics communications Vol. 184; no. 2; pp. 414 - 427 |
|---|---|
| Main Authors | , , , |
| Format | Journal Article |
| Language | English |
| Published |
Elsevier B.V
01.02.2013
|
| Subjects | |
| Online Access | Get full text |
| ISSN | 0010-4655 1879-2944 |
| DOI | 10.1016/j.cpc.2012.08.021 |
Cover
| Summary: | This paper examines the feasibility of high-level Python based utilities for numerically intensive applications via an example of a multidimensional integration for the evaluation of the statistical characteristics of a random variable. We discuss the approaches to the implementation of mathematically formulated incremental expressions using high-level scripting code and low-level compiled code. Due to the dynamic typing of the Python language, components of the algorithm can be easily coded in a generic way as algorithmic templates. Using the Enthought Development Suite they can be effectively assembled into a flexible computational framework that can be configured to execute the code for arbitrary combinations of integration schemes and versions of instantiated code. The paper describes the development cycle using a simple running example involving averaging of a random two-parametric function that includes discontinuity. This example is also used to compare the performance of the available algorithmic and executional features. The implemented package including further examples and the results of performance studies have been made available via the free repository [1] and CPCP library.
Program title: spirrid
Catalogue identifier: AENL_v1_0
Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AENL_v1_0.html
Program obtainable from: CPC Program Library, Queen’s University, Belfast, N. Ireland
Licensing provisions: Special licence provided by the author
No. of lines in distributed program, including test data, etc.: 10722
No. of bytes in distributed program, including test data, etc.: 157099
Distribution format: tar.gz
Programming language: Python and C.
Computer: PC.
Operating system: LINUX, UNIX, Windows.
Classification: 4.13, 6.2.
External routines: NumPy (http://numpy.scipy.org/), SciPy (http://www.scipy.com)
Nature of problem:
Evaluation of the statistical moments of a function of random variables.
Solution method:
Direct multidimensional integration.
Running time:
Depending on the number of random variables the time needed for the numerical estimation of the mean value of a function with a sufficiently low level of numerical error varies. For orientation, the time needed for two included
examples: examples/fiber_tt_2p/fiber_tt_2p.py with 2 random
variables: few milliseconds
examples/fiber_po_8p/fiber_po_8p.py with 8 random
variables: few seconds |
|---|---|
| ISSN: | 0010-4655 1879-2944 |
| DOI: | 10.1016/j.cpc.2012.08.021 |