Fitxer:One dimensional quantum random walk.svg

De testwiki
Salta a la navegació Salta a la cerca
Fitxer original (fitxer SVG, nominalment 576 × 432 píxels, mida del fitxer: 29 Ko)

Aquest fitxer prové de Wikimedia Commons i pot ser usat per altres projectes. La descripció de la seva pàgina de descripció es mostra a continuació.

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 Creative Commons Reconeixement-CompartirIgual 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 creeu a partir del material, heu de distribuir les vostres contribucions sota una llicència similar o una de compatible amb l'original.

Llegendes

Afegeix una explicació d&#039;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)wikimediacommons>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: