---
title: LeastSquaresSolve (latest version)
description: API reference for qiskit_noise_learning.analysis.LeastSquaresSolve in the latest version of qiskit-noise-learning
source: https://quantum.cloud.ibm.com/docs/en/api/qiskit-noise-learning/generated/analysis-least-squares-solve
---

# qiskit\_noise\_learning.analysis.LeastSquaresSolve

*class* `qiskit_noise_learning.analysis.LeastSquaresSolve(non_negative: bool = True, solver: Literal['cvxpy', 'scipy'] | None = None)`

[GitHub](https://github.com/Qiskit/qiskit-noise-learning/tree/stable/0.1/qiskit_noise_learning/analysis/model_solve.py)

Bases: `ModelSolve`

Solves for [`ModelData`](/docs/api/qiskit-noise-learning/generated/data-model-data "qiskit_noise_learning.data.ModelData") by least squares, with optional non-negativity constraints.

Minimizes $\|A x - b\|_2^2$ over the design matrix `A` and target `b`. See `ModelSolve` for the general responsibility of a model solver in this library.

**Parameters**

- **non\_negative** – Whether to constrain the solution to be non-negative (`x >= 0`). Defaults to `True`.
- **solver** – Either `"cvxpy"` (default) or `"scipy"`. If `"cvxpy"` is requested but not installed, warns and falls back to `"scipy"`.

**Raises**

[**ValueError**](https://docs.python.org/3/builtins/exceptions.html#ValueError) – If `solver` is not `"cvxpy"` or `"scipy"`.

### \_\_init\_\_

`__init__(non_negative: bool = True, solver: Literal['cvxpy', 'scipy'] | None = None)`

## Methods

|                                                                                                                                                                |                                                                                                                                                                       |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`__init__`](#qiskit_noise_learning.analysis.LeastSquaresSolve.__init__ "qiskit_noise_learning.analysis.LeastSquaresSolve.__init__")(\[non\_negative, solver]) |                                                                                                                                                                       |
| `run`(fit)                                                                                                                                                     | Run this stage, returning a new [`Fit`](/docs/api/qiskit-noise-learning/generated/analysis-fit "qiskit_noise_learning.analysis.Fit") with the output level populated. |

## Attributes

|                |                                   |
| -------------- | --------------------------------- |
| `input_level`  | The data level this stage reads.  |
| `output_level` | The data level this stage writes. |
