NumPyLinearSolver
class NumPyLinearSolver
Bases: qiskit.algorithms.linear_solvers.linear_solver.LinearSolver
The Numpy Linear Solver algorithm (classical).
This linear system solver computes the exact value of the given observable(s) or the full solution vector if no observable is specified.
Examples
import numpy as np
from qiskit.algorithms import NumPyLinearSolver
from qiskit.algorithms.linear_solvers.matrices import TridiagonalToeplitz
from qiskit.algorithms.linear_solvers.observables import MatrixFunctional
matrix = TridiagonalToeplitz(2, 1, 1 / 3, trotter_steps=2)
right_hand_side = [1.0, -2.1, 3.2, -4.3]
observable = MatrixFunctional(1, 1 / 2)
rhs = right_hand_side / np.linalg.norm(right_hand_side)
np_solver = NumPyLinearSolver()
solution = np_solver.solve(matrix, rhs, observable)
result = solution.observable
Methods
solve
NumPyLinearSolver.solve(matrix, vector, observable=None, observable_circuit=None, post_processing=None)
Solve classically the linear system and compute the observable(s)
Parameters
- matrix (
Union
[ndarray
,QuantumCircuit
]) – The matrix specifying the system, i.e. A in Ax=b. - vector (
Union
[ndarray
,QuantumCircuit
]) – The vector specifying the right hand side of the equation in Ax=b. - observable (
Union
[LinearSystemObservable
,BaseOperator
,List
[BaseOperator
],None
]) – Optional information to be extracted from the solution. Default is the probability of success of the algorithm. - observable_circuit (
Union
[QuantumCircuit
,List
[QuantumCircuit
],None
]) – Optional circuit to be applied to the solution to extract information. Default isNone
. - post_processing (
Optional
[Callable
[[Union
[float
,List
[float
]]],Union
[float
,List
[float
]]]]) – Optional function to compute the value of the observable. Default is the raw value of measuring the observable.
Return type
LinearSolverResult
Returns
The result of the linear system.
Was this page helpful?
Report a bug or request content on GitHub.