Site Tools


qiskit-simulators

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