qiskit-simulators
Table of Contents
Simulators
Simulators are classical backends that emulate quantum circuits on a classical computer. Qiskit's main simulator is AerSimulator, which tracks the full $2^n$-dimensional state vector and applies unitary operations to it. Simulators are noiseless by default, but you can add noise models to study real hardware effects.
Simulators are fast for small circuits (up to ~20 qubits) and useful for development and debugging. Beyond 20 qubits, memory and time grow exponentially, making simulation impractical.
from qiskit_aer import AerSimulator from qiskit import QuantumCircuit qc = QuantumCircuit(3, 3) qc.h([0, 1, 2]) qc.measure([0, 1, 2], [0, 1, 2]) sim = AerSimulator() result = sim.run(qc, shots=1000).result() print(result.get_counts(qc))
Simulator Types
- AerSimulator (default): general-purpose, fast, supports statevector, density matrix, and stabilizer modes
- StatevectorSimulator: returns the full state vector (for circuits without measurement)
- DensityMatrixSimulator: tracks mixed states (useful for noisy circuits)
- UnitarySimulator: returns the unitary matrix of the circuit
Noise Simulation
Add noise models to study how real hardware imperfections affect your circuit:
from qiskit_aer.noise import NoiseModel, depolarizing_error noise_model = NoiseModel() noise_model.add_all_qubit_quantum_error( depolarizing_error(0.1, 1), ['h', 'x'] ) result = sim.run(qc, shots=1000, noise_model=noise_model).result()
Noisy simulation is slower but helps you design robust algorithms before hardware.
qiskit-simulators.md · Last modified: by 127.0.0.1
