Skip to contents

The Unitary Time Evolution Operator of a Continuous-Time Quantum Walk

Usage

# S3 method for ctqwalk
unitary_matrix(object, t, ...)

Arguments

object

an instance of class ctqwalk.

t

it will be returned the evolution operator at time t.

...

further arguments passed to or from other methods.

Value

unitary_matrix() returns the unitary time evolution operator of the CTQW evaluated at time t.

Details

If \(|\psi(t) \rangle\) is the quantum state of the system at time \(t\), and \(H\) the Hamiltonian operator, then the evolution is governed by the Schrodinger equation

$$\frac{\partial}{\partial t}|\psi(t) \rangle = iH|\psi(t) \rangle$$

and if \(H\) is time-independent its solution is given by

$$|\psi(t) \rangle = U(t)|\psi(0) \rangle = e^{iHt}|\psi(0) \rangle$$

The evolution operator is the result of the complex matrix exponential and it can be calculated as

$$U(t) = e^{iHt} = \sum_r e^{i t \lambda_r}E_r$$

in which \(H = \sum_r \lambda_r E_r\).

Examples

walk <- ctqwalk(matrix(c(0,1,0,1,0,1,0,1,0), nrow=3))

# Returns the operator at time t = 2*pi, U(2pi)
unitary_matrix(walk, t = 2*pi)
#>                        [,1]                  [,2]                   [,3]
#> [1,]  0.07089191+0.0000000i  0.0000000+0.3629497i -0.92910809-0.0000000i
#> [2,]  0.00000000+0.3629497i -0.8582162-0.0000000i  0.00000000+0.3629497i
#> [3,] -0.92910809-0.0000000i  0.0000000+0.3629497i  0.07089191+0.0000000i