Vés al contingut

Fitxer:One dimensional quantum random walk.svg

El contingut de la pàgina no s'admet en altres llengües.
De la Viquipèdia, l'enciclopèdia lliure

Fitxer original (fitxer SVG, nominalment 576 × 432 píxels, mida del fitxer: 29 Ko)

Descripció a Commons

Resum

Descripció
English: Probability distribution resulting from one dimensional discrete time random walks. The quantum walk created using the Hadamard coin is plotted (orange) vs a classical walk (blue) after 50 time steps. The average is marked with a vertical line in the same color. Starting conditions were (1*|↑⟩+0*|↓⟩)*|0⟩.
Data
Font File:One_dimensional_quantum_random_walk.png
Autor shoyer
  1. Code, python3.7:
import numpy as np
import math
import matplotlib.pyplot as plt
import time
import colorsys
import cmath
size=1000

def run_classical_randwalk(itersteps,initsim_mat):
    simmat=initsim_mat
    for iterstep in range(itersteps):
        newsimmat=np.zeros((2*size+1,2), dtype=complex)
        for matindex in range(2*size+1):
            to_right=0.5*simmat[matindex][0]
            to_left=0.5*simmat[matindex][0]
            if(matindex-1>=0):
                newsimmat[matindex-1][0]+=to_left
            if(matindex+1<=2*size):
                newsimmat[matindex+1][0]+=to_right
        simmat=newsimmat

    psisquared=np.zeros(2*size+1)
    for matindex in range(2*size+1):
        psisquared[matindex]+=abs(newsimmat[matindex][0])

    average_x=0
    min_x=0
    max_x=0
    datastartflag=0
    for matindex in range(2*size+1):
        if(datastartflag==0):
            min_x=matindex
        if(psisquared[matindex]>0):
            datastartflag=1
            max_x=matindex
        average_x+=psisquared[matindex]*(matindex-(size+1))
    print(f"validdatarange {max_x-min_x}")
    return(range(min_x-(size+1),max_x-size,2),psisquared[min_x:max_x+1:2],average_x)

def run_quantum_randwalk(itersteps,initsim_mat):
    simmat=initsim_mat
    for iterstep in range(itersteps):
        newsimmat=np.zeros((2*size+1,2), dtype=complex)
        for matindex in range(2*size+1):
            hadamard_spinup=1/math.sqrt(2)*(simmat[matindex][0]+simmat[matindex][1])
            hadamard_spindown=1/math.sqrt(2)*(simmat[matindex][0]-simmat[matindex][1])
            if(matindex-1>=0):
                newsimmat[matindex-1][1]+=hadamard_spindown
            if(matindex+1<=2*size):
                newsimmat[matindex+1][0]+=hadamard_spinup
        simmat=newsimmat

    psisquared=np.zeros(2*size+1)
    for matindex in range(2*size+1):
        psisquared[matindex]+=abs(newsimmat[matindex][0])**2+abs(newsimmat[matindex][1])**2

    average_x=0
    min_x=0
    max_x=0
    datastartflag=0
    for matindex in range(2*size+1):
        if(datastartflag==0):
            min_x=matindex
        if(psisquared[matindex]>0):
            datastartflag=1
            max_x=matindex
        average_x+=psisquared[matindex]*(matindex-(size+1))
    print(f"validdatarange {max_x-min_x}")
    return(range(min_x-(size+1),max_x-size,2),psisquared[min_x:max_x+1:2],average_x)

simmat=np.zeros((2*size+1,2), dtype=complex)
#(-size, ....,-1,0,1, size)
#first index spin up, second index spin down
simmat[size+1][0]=1.0
simmat[size+1][1]=0.0#1.0#1.0j

fig=plt.figure()
plt.xlabel("position")
plt.ylabel("probability of occurence")
q_list_return_50=run_quantum_randwalk(50,simmat)
c_list_return_50=run_classical_randwalk(50,simmat)
plt.plot(q_list_return_50[0],q_list_return_50[1],color="#e67300")
plt.plot(c_list_return_50[0],c_list_return_50[1],color="#0000a0")
xlim=plt.gca().get_xlim()
ylim=plt.gca().get_ylim()
plt.vlines(q_list_return_50[2],*ylim,color="#e67300",alpha=.7)
plt.vlines(c_list_return_50[2],*ylim,color="#0000a0",alpha=.7)
print(fig.axes)
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['right'].set_visible(False)
plt.gca().grid(color='grey', linestyle='-', linewidth=0.25, alpha=0.5)
plt.show()
fig.savefig("One_dimensional_quantum_random_walk.svg")

Llicència

w:ca:Creative Commons
reconeixement compartir igual
Aquest fitxer està subjecte a la llicència de Creative Commons Reconeixement i Compartir Igual 3.0 No adaptada.
Sou lliure de:
  • compartir – copiar, distribuir i comunicar públicament l'obra
  • adaptar – fer-ne obres derivades
Amb les condicions següents:
  • reconeixement – Heu de donar la informació adequada sobre l'autor, proporcionar un enllaç a la llicència i indicar si s'han realitzat canvis. Podeu fer-ho amb qualsevol mitjà raonable, però de cap manera no suggereixi que l'autor us dóna suport o aprova l'ús que en feu.
  • compartir igual – Si modifiqueu, transformeu, o generareu amb el material, haureu de distribuir les vostres contribucions sota una llicència similar o una de compatible com l'original

Llegendes

Afegeix una explicació d'una línia del que representa aquest fitxer
Probability distribution resulting from one dimensional discrete time random walks. The quantum walk created using the Hadamard coin is plotted (orange) vs a classical walk (blue) after 50 time steps.

Elements representats en aquest fitxer

representa l'entitat

Historial del fitxer

Cliqueu una data/hora per veure el fitxer tal com era aleshores.

Data/horaMiniaturaDimensionsUsuari/aComentari
actual19:23, 12 set 2020Miniatura per a la versió del 19:23, 12 set 2020576 × 432 (29 Ko)Benjamin RenzUploaded a work by shoyer from https://commons.wikimedia.org/wiki/File:One_dimensional_quantum_random_walk.png with UploadWizard

La pàgina següent utilitza aquest fitxer:

Ús global del fitxer

Utilització d'aquest fitxer en altres wikis:

Metadades