chaospy

Chaospy - Toolbox for performing uncertainty quantification.

Github stars Tracking Chart

.. image:: doc/.static/chaospy_logo.svg
:height: 300 px
:width: 300 px
:align: center, circleci, codecov, pypi, readthedocs, .., circleci, image:: https://circleci.com/gh/jonathf/chaospy/tree/master.svg?style=shield
:target: https://circleci.com/gh/jonathf/chaospy/tree/master
.., codecov, image:: https://codecov.io/gh/jonathf/chaospy/branch/master/graph/badge.svg
:target: https://codecov.io/gh/jonathf/chaospy
.., pypi, image:: https://badge.fury.io/py/chaospy.svg
:target: https://badge.fury.io/py/chaospy
.., readthedocs, image:: https://readthedocs.org/projects/chaospy/badge/?version=master
:target: http://chaospy.readthedocs.io/en/master/?badge=master

Chaospy is a numerical tool for performing uncertainty quantification using
polynomial chaos expansions and advanced Monte Carlo methods implemented in
Python.

If you are using this software in work that will be published, please cite the
journal article: Chaospy: An open source tool for designing methods of uncertainty quantification <http://dx.doi.org/10.1016/j.jocs.2015.08.008>_

.. contents:: Table of Contents:

Installation

Installation should be straight forward::

pip install chaospy

And you should be ready to go.

Alternatively, to get the most current experimental version, the code can be
installed from Github as follows::

git clone git@github.com:jonathf/chaospy.git    # first time only
cd chaospy/
git pull                                        # after the first time
pip install .

Example Usage

chaospy is created to be simple and modular. A simple script to implement
point collocation method will look as follows:

.. code-block:: python

import chaospy
import numpy

# your code wrapper goes here
def foo(coord, prm):
    """Function to do uncertainty quantification on."""
    return prm[0] * numpy.e ** (-prm[1] * numpy.linspace(0, 10, 100))

# bi-variate probability distribution
distribution = chaospy.J(chaospy.Uniform(1, 2), chaospy.Uniform(0.1, 0.2))

# polynomial chaos expansion
polynomial_expansion = chaospy.orth_ttr(8, distribution)

# samples:
samples = distribution.sample(1000)

# evaluations:
evals = [foo(sample) for sample in samples.T]

# polynomial approximation
foo_approx = chaospy.fit_regression(
    polynomial_expansion, samples, evals)

# statistical metrics
expected = chaospy.E(foo_approx, distribution)
deviation = chaospy.Std(foo_approx, distribution)

For a more extensive description of what going on, see the tutorial <https://chaospy.readthedocs.io/en/master/tutorial.html>_.

For a collection of recipes, see the cookbook <https://chaospy.readthedocs.io/en/master/cookbook.html>_.

Chaospy is being used in other related projects that requires uncertainty
quantification components chaospy provides.

+-----------------+-----------------------------------------------------------+, easyVVUQ, Library designed to facilitate verification, validation, and uncertainty quantification., +-----------------+-----------------------------------------------------------+, STARFiSh, Shell-based, scientific simulation program, for blood flow in mammals., +-----------------+-----------------------------------------------------------+, Profit, Probabilistic response model fitting via interactive, tools., +-----------------+-----------------------------------------------------------+, UncertainPy, Uncertainty quantification and sensitivity analysis,, tailored towards computational neuroscience., +-----------------+-----------------------------------------------------------+, SparseSpACE_, Spatially adaptive combination technique targeted to, solve high dimensional numerical integration., +-----------------+-----------------------------------------------------------+

.. _easyVVUQ: https://github.com/UCL-CCS/EasyVVUQ
.. _STARFiSh: https://www.ntnu.no/starfish
.. _Profit: https://github.com/redmod-team/profit
.. _UncertainPy: https://github.com/simetenn/uncertainpy
.. _SparseSpACE: https://github.com/obersteiner/sparseSpACE

Also a few shout-outs:

+--------------+--------------------------------------------------------------+, OpenTURNS, Thanks to Régis Lebrun for both proposing a collaboration, and creating an initial implementation of both, Chaospy Compatibility_ in OpenTURNS_ and, OpenTURNS Compatibility_ in chaospy., +--------------+--------------------------------------------------------------+, orthopy, Thanks to Nico Schlömer for providing the implementation, quadpy, for several of the quadrature integration methods., +--------------+--------------------------------------------------------------+, UQRF, Thanks to Florian Künzner for providing the, implementation for sample distribution_., +--------------+--------------------------------------------------------------+

.. _OpenTURNS: http://openturns.github.io/openturns/latest
.. _Régis Lebrun: https://github.com/regislebrun
.. _Chaospy Compatibility: http://openturns.github.io/openturns/latest/user_manual/_generated/openturns.ChaospyDistribution.html
.. OpenTURNS Compatibility: https://chaospy.readthedocs.io/en/master/recipes/external.html#module-chaospy.external.openturns
.. _orthopy: https://github.com/nschloe/orthopy
.. _quadpy: https://github.com/nschloe/quadpy
.. _Nico Schlömer: https://github.com/nschloe
.. _Florian Künzner: https://github.com/flo2k
.. _sample distribution: https://chaospy.readthedocs.io/en/master/recipes/external.html#module-chaospy.external.samples

Questions & Troubleshooting

For any problems and questions you might have related to chaospy, please
feel free to file an issue <https://github.com/jonathf/chaospy/issues>_.

Main metrics

Overview
Name With Ownerjonathf/chaospy
Primary LanguagePython
Program languagePython (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2014-08-11 17:54:25
Pushed At2025-03-10 10:35:20
Last Commit At2025-03-09 09:23:05
Release Count91
Last Release Namev4.3.19 (Posted on )
First Release Namev2.2.2 (Posted on )
用户参与
Stargazers Count462
Watchers Count22
Fork Count87
Commits Count670
Has Issues Enabled
Issues Count259
Issue Open Count56
Pull Requests Count167
Pull Requests Open Count5
Pull Requests Close Count7
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private