Tutorials
=========

Learn curve fitting with NLSQ through hands-on, step-by-step tutorials.
Each tutorial builds on the previous one, taking you from your first fit
to advanced GPU-accelerated optimization.

.. note::
   **Coming from SciPy?** Check out :doc:`/howto/migrate_from_scipy` for a quick migration guide.

Tutorial Series
---------------

.. toctree::
   :maxdepth: 1
   :numbered:

   01_first_fit
   02_understanding_results
   03_fitting_with_bounds
   04_multiple_parameters
   05_large_datasets
   06_gpu_acceleration

Learning Path
-------------

.. list-table::
   :header-rows: 1
   :widths: 10 25 40 15

   * - Tutorial
     - Title
     - What You'll Learn
     - Time
   * - 1
     - :doc:`01_first_fit`
     - Install NLSQ, define a model, fit data
     - 10 min
   * - 2
     - :doc:`02_understanding_results`
     - Interpret covariance, calculate uncertainties
     - 15 min
   * - 3
     - :doc:`03_fitting_with_bounds`
     - Constrain parameters with bounds
     - 10 min
   * - 4
     - :doc:`04_multiple_parameters`
     - Fit complex multi-parameter models
     - 15 min
   * - 5
     - :doc:`05_large_datasets`
     - Handle datasets with millions of points
     - 15 min
   * - 6
     - :doc:`06_gpu_acceleration`
     - Set up and use GPU acceleration
     - 20 min

Prerequisites
-------------

- Python 3.12 or higher
- Basic Python knowledge (variables, functions, imports)
- Basic understanding of scientific data (x, y coordinates)

No prior curve fitting experience is required - we'll cover everything from the basics.

Next Steps
----------

After completing the tutorials, explore:

- :doc:`/howto/index` - Solve specific problems
- :doc:`/explanation/index` - Understand concepts in depth
- :doc:`/reference/index` - API reference documentation
