Particle Filters
================
This example demonstrates bootstrap particle filters with various resampling methods.
.. raw:: html
Overview
--------
Particle filters (Sequential Monte Carlo) handle:
- **Nonlinear dynamics** - Arbitrary state transition functions
- **Non-Gaussian noise** - Any noise distribution
- **Multi-modal posteriors** - Multiple hypotheses
Key Concepts
------------
- **Importance sampling**: Weighting particles by likelihood
- **Resampling**: Eliminating low-weight particles
- **Effective sample size**: Measuring particle degeneracy
- **Roughening**: Preventing sample impoverishment
Resampling Methods
------------------
The example compares different resampling strategies:
1. **Multinomial** - Standard random resampling
2. **Systematic** - Evenly spaced samples on CDF
3. **Stratified** - Stratified random sampling
4. **Residual** - Deterministic + random resampling
.. raw:: html
Code Highlights
---------------
The example demonstrates:
- Bootstrap particle filter initialization
- Weight computation from likelihoods
- Different resampling implementations
- Effective sample size monitoring
- State estimation from weighted particles
Source Code
-----------
.. literalinclude:: ../../../examples/particle_filters.py
:language: python
:linenos:
Running the Example
-------------------
.. code-block:: bash
python examples/particle_filters.py
See Also
--------
- :doc:`advanced_filters_comparison` - Rao-Blackwellized particle filter
- :doc:`kalman_filter_comparison` - Kalman filter alternatives
- :doc:`multi_target_tracking` - Particle filters for MTT