Library implementing Monte Carlo and Quasi-Monte Carlo methods for integral evaluation
Project description
Montpy: Montecarlo and Quasi-Montecarlo Integration Library
This Python library provides implementations of Monte Carlo and Quasi-Monte Carlo methods for evaluating integrals. Monte Carlo methods are stochastic techniques based on random sampling, while Quasi-Monte Carlo methods use low-discrepancy sequences for sampling. These methods are particularly useful for high-dimensional integrals where other numerical methods may struggle.
Installation
You can install the library via pip:
pip install montpy
Usage
from montpy.mc import MonteCarloSolver, ImportanceSampler
from montpy.qmc import QuasiMonteCarloSolver
# Define the function to integrate
def f(samples):
x, y = samples.T
return x**2 + y**2
# Define the domain (multivariate case)
domain = [(0, 1), (0, 1)]
# Create the Monte Carlo solver (uniform distribution)
solver_mc = ImportanceSampler(f, domain)
integral_mc = solver_mc.integrate(num_samples=1000)
print("Estimated integral with Monte Carlo:", integral_mc)
# Define the function to integrate
def g(x, y):
return x*y
# Create the Quasi-Monte Carlo solver
solver_qmc = QuasiMonteCarloSolver(g, domain)
# Perform integration using Sobol sequence
integral_sobol = solver_qmc.integrate_sobol(num_samples=1000)
print("Estimated integral with Sobol sequence:", integral_sobol)
Contributing
Contributions are welcome! If you find any bugs or have suggestions for improvements, please open an issue or submit a pull request on GitHub.
License
This library is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file montpy-0.1.2.tar.gz
.
File metadata
- Download URL: montpy-0.1.2.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.12 Linux/5.15.0-92-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d13a9d67555938aa569805752464b079c7fc3e905ef4dd8df3e0bc5254d115d |
|
MD5 | 21b6da3d89b2176d589daa914cc93ba2 |
|
BLAKE2b-256 | 5a60184662adee458ec295d82a27fa9480083bb9c43c216e71896997a22d9c09 |
File details
Details for the file montpy-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: montpy-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.12 Linux/5.15.0-92-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 856d0b37073ba529c47ce6b00c463bf61cb92ac6656f95d94f9b7c2c6742dfc2 |
|
MD5 | 07bc75d80944f964c3ca673c08b75f4b |
|
BLAKE2b-256 | e3ddc2bfe9f126dacfd10aa3c93bf1c4cdbdf0891cc5635070175fe354665bae |