Application obscĂšne



Des matériaux découpés sont fournis dans la piÚce jointe à l'article le chemin des particules : intégrales du chemin, une expérience à double fente sur des atomes froids de néon, des cadres de téléportation de particules et d'autres scÚnes de cruauté et de nature sexuelle.



À mon avis, il ne peut y avoir d'autre moyen de considĂ©rer le formalisme mathĂ©matique comme logiquement cohĂ©rent que de dĂ©montrer que ses consĂ©quences s'Ă©cartent de l'expĂ©rience, ou de prouver que ses prĂ©dictions n'Ă©puisent pas les possibilitĂ©s d'observation.

Niels Bohr



En conclusion, l'auteur tient à préciser que nous ne reconnaissons que deux bonnes raisons d'abandonner une théorie qui explique un large éventail de phénomÚnes. PremiÚrement, la théorie n'est pas cohérente en interne, et deuxiÚmement, elle n'est pas cohérente avec les expériences.

David bom

Plus tĂŽt, nous avons appris d' oĂč vient l'Ă©quation de Schrödinger, pourquoi elle est prise Ă  partir de lĂ  et comment elle est prise par diverses mĂ©thodes.



iℏ∂ι∂t=(−ℏ22m∇2+V)ι



, - . ι=ReiS/ℏ, :



∂S∂t+(∇S)22m−ℏ22m∇2RR+V=0∂R2∂t+∇⋅(R2∇Sm)=0



S — , R — . , , , — -, ( ).



, U=∇S/m. , S -, - - :



S=−iℏ2ln⁡ιι∗



, -, , , , S, , , , . , , . -.





— , . , , , . , , , .





, , , . . . , , , .



, .





, , , . , ( - ). :





()





, , , : ,





, . . .



U=∇S/m=−iℏ2m∇ln⁡ιι∗=ℏmIm(∇ψψ)



-, :



x+=UΔt



using LinearAlgebra, SparseArrays, Plots

const ħ = 1.0546e-34 # J*s
const m = 9.1094e-31 # kg
const q = 1.6022e-19 # Kl
const nm = 1e-9 # m
const fs = 1e-12; # s

function wavefun()

    gauss(x) = exp( -(x-x0)^2 / (2*σ^2) + im*x*k )
    k = m*v/ħ

    #    
    Vm = spdiagm(0 => V )
    H = spdiagm(-1 => ones(Nx-1), 0 => -2ones(Nx), 1 => ones(Nx-1) )
    H *= ħ^2 / ( 2m*dx^2 )
    H += Vm

    A = I + 0.5im*dt/ħ * H #  
    B = I - 0.5im*dt/ħ * H # 
    psi = zeros(Complex, Nx, Nt)
    psi[:,1] = gauss.(x)

    for t = 1:Nt-1

        b = B * psi[:,t]
        #       A*psi = b
        psi[:,t+1] = A \ b
    end

    return psi
end


dx = 0.05nm # x step
dt = 0.01fs # t step
xlast = 400nm
Nt = 260 # Number of time steps
t = range(0, length = Nt, step = dt)

x = [0:dx:xlast;]
Nx = length(x) # Number of spatial steps

a1 = 200nm
a2 = 200.5nm # 5 
a3 = 205nm
a4 = 205.5nm 
#V = [ a1<xi<a2 ? 2q : 0.0 for xi in x ] # 2 eV 
V = [ a1<xi<a2 || a3<xi<a4 ? 2q : 0.0 for xi in x ] # 2 eV 

x0 = 80nm # Initial position
σ = 20nm # gauss width
v = -120nm/fs;

@time Psi = wavefun()
P = abs2.(Psi);

function ψ(xi, j)

    k = findfirst(el-> abs(el-xi)<dx, x)
    k == nothing && ( k = 1 )

    Psi[k, j]
end

function corpusculaz(n)

    X = zeros(n, Nt)
    X[:,1] = x0 .+ σ*randn(n)

    for j in 2:Nt, i in 1:n
        U = ħ/(2m*dx) * imag( ( ψ(X[i,j-1]+dx, j) -  ψ(X[i,j-1]-dx, j) ) /  ψ(X[i,j-1], j) )
        X[i,j] = X[i,j-1] - U*dt
    end

    X
end

@time X = corpusculaz(20);

plot(x, P[:, 1], legend = false)
plot!(x, P[:, 80], legend = false)
scatter!( X[:,1], zeros(20) )
scatter!( X[:,80], zeros(20) )




. — , . :





, . , , !





, . Double-slit interference with ultracold metastable neon atoms — - .







using Random, Gnuplot, Statistics
#  
function trapez(f, a, b, n)
    h = (b - a)/n
    result = 0.5*(f(a) + f(b))
    for i in 1:n-1
        result += f(a + i*h)
    end
    result * h
end
#  
function rk4(f, x, y, h)
    k1 = h * f(x       , y        )
    k2 = h * f(x + 0.5h, y + 0.5k1)
    k3 = h * f(x + 0.5h, y + 0.5k2)
    k4 = h * f(x +    h, y +    k3)

    return y + (k1 + 2*(k2 + k3) + k4)/6.0
end


const ħ = 1.055e-34 # J*s 
const kB = 1.381e-23 # J*K-1
const g = 9.8 # m/s^2

const l1 = 76e-3 # m
const l2 = 113e-3 # m
const yh = 2.8e-3 # m
const d = 6e-6 # m
const b = 2e-6 # m
const a1 = 0.5(- d - b) # 
const a2 = 0.5(- d + b)
const b1 = 0.5(  d - b)
const b2 = 0.5(  d + b)

const m = 3.349e-26 # kg
const T = 2.5e-3 # K
const σv = sqrt(kB*T/m) #  
const σ₀ = 10e-6 # 10 mkm #      
const σz = 3e-4 # 0.3 mm #  z
const σk = m*σv / (ħ*√3) # 2e8 m/s #    

v₀ = zeros(3)
k₀ = zeros(3);


: , , -, .





k



1)ψ0(x,y,z;k0x,k0y,k0z)=ψ0x(x;k0x)ψ0y(z;k0y)ψ0z(z;k0z)=(2πσ02)−1/4e−x2/4σ02eik0xx×(2πσ02)−1/4e−y2/4σ02eik0yy×(2πσz2)−1/4e−z2/4σz2eik0zz



, . , , , . , , .





, . , , — . , , , . , , .



Quantum Mechanics And Path Integrals, A. R. Hibbs, R. P. Feynman, , 3.6 .



,



K(ÎČ,tÎČ;α,tα)=Kx(xÎČ,tÎČ;xα,tα)Ky(yÎČ,tÎČ;yα,tα)Kz(zÎČ,tÎČ;zα,tα)



Kx(xÎČ,tÎČ;xα,tα)=(m2iπℏ(tÎČ−tα))1/2exp⁥imℏ((xÎČ−xα)22(tÎČ−tα))Ky(yÎČ,tÎČ;yα,tα)=(m2iπℏ(tÎČ−tα))1/2exp⁥imℏ((yÎČ−yα)22(tÎČ−tα))Kz(zÎČ,tÎČ;zα,tα)=(m2iπℏ(tÎČ−tα))1/2exp⁥imℏ((zÎČ−zα)22(tÎČ−tα))×exp⁥imℏ(g2(zÎČ+zα)(tÎČ−tα)−g224(tÎČ−tα)3)



Z , . ,



ψ(ÎČ,t)=∫K(ÎČ,t;α,tα)ψ(α,tα)dxα,dyα,dzα



, . , X, . :



ψx(x,t;k0x)=∫K(x,t;xα,0)ψ0(xα)dxαψx(x,t;k0x)=(2πs02(t))−1/4exp⁥[−(x−v0xt)24σ0s0(t)+ik0x(x−v0xt)]ρx(x,t)=(2πΔ02(t))−1/2exp⁥[−x22Δ02(t)]



Δ02(t)=σ02(t)+(htσvm)2σ02(t)=σ02+(ht2mσ02)2



, :



Δ₀(t) = σ₀^2 + ( ħ/(2m*σ₀) * t )^2 + (ħ*t*σv/m)^2
s₀(t) = σ₀ + im*ħ/(2m*σ₀) * t

ρₓ(x, t) = exp( -x^2 / (2Δ₀(t)) ) / sqrt( 2π*Δ₀(t) )

t₁(v, z) = sqrt( 2*(l1-z)/g + (v/g)^2 ) - v/g
tf1 = t₁(v₀[3], 0) # s #    
X1 = range(-100, stop = 100, length = 100)*1e-6 
Z1 = range(0, stop = l1, length = 100)
Cron1 = range(0, stop = tf1, length = 100)

P1 = [ ρₓ(x, t) for t in Cron1, x in X1 ]
P1 /= maximum(P1); #   

@gp "set title 'Wavefun before the slits'" xlab="Z, mkm" ylab="X, mkm"
@gp :- 1000Z1 1000000X1 P1 "w image notit"




— .





, :



ψx(x,t)=ψA+ψBψA=∫AKx(x,t;xa,t1)ψx(xa,t1,k0x)dxaψB=∫BKx(x,t;xb,t1)ψx(xb,t1,k0x)dxb





ρx(x,t)=∫−∞+∞(2πσv2)−1/2exp⁥(−k0x22σv2)|ψx(x,t;k0x)|2dk0x



, :



function ρₓ(xᔹ, tᔹ) 

    Kₓ(xb, tb, xa, ta) = sqrt( m/(2im*π*ħ*(tb-ta)) ) * exp( im*m*(xb-xa)^2 / (2ħ*(tb-ta)) )

    function subintrho(k) 

        ψₓ(x, t) = ( 2π*s₀(t) )^-0.25 * exp( -(x-ħ*k*t/m)^2 / (4σ₀*s₀(t)) + im*k*(x-ħ*k*t/m) )
        subintpsi(x) = Kₓ(xᔹ, tᔹ, x, tf1) * ψₓ(x, tf1)

        ψa = trapez(subintpsi, a1, a2, 200)
        ψb = trapez(subintpsi, b1, b2, 200)

        exp( -k^2 / (2σv^2) ) * abs2(ψa + ψb)
    end

    trapez(subintrho, -10σk, 10σk, 20) / sqrt( 2π*σv^2 )
end


t₂(v, z) = sqrt( 2*(l1+l2-z)/g + (v/g)^2 ) - v/g
tf2 = t₂(v₀[3], 0) # s #    
X2 = range(-800, stop = 800, length = 200)*1e-6
Z2 = range(l1, stop = l2, length = 100)
Cron2 = range(tf1, stop = tf2, length = 100)

@time P2 = [ ρₓ(x, t) for t in Cron2, x in X2 ];

P2 /= maximum(P2[4:end,:]);
@gp "set title 'Wavefun after the slits'" xlab="t, s" ylab="X, mkm"
@gp :- Cron2[4:end] 1000000X2 P2[4:end,:] "w image notit"


2 :











:



v→=∇Sm



. . , ,



v→(x,y,z,t)=∇Sm+∇logâĄÏĂ—s→ms→=(0,0,ℏ/2)∇logâĄÏĂ—s→m=ℏ2mρ(∂ρ∂y,−∂ρ∂x,0)



, ,



dxdt=vx(x,t)=1m∂S∂x+ℏ2mρ∂ρ∂y=v0x+(x−v0xt)ℏ2t4m2σ02σ02(t)−ℏ(y−v0yt)2mσ02(t)dydt=vy(x,t)=1m∂S∂y−ℏ2mρ∂ρ∂x=v0y−(y−v0yt)ℏ2t4m2σ02σ02(t)+ℏ(x−v0xt)2mσ02(t)dzdt=vz(z,t)=1m∂S∂z=v0z+gt+(z−v0zt−gt2/2)ℏ2t4m2σz2σz2(t)



x(t)=v0xt+x02+y02σ0(t)σ0cosâĄÏ†(t)y(t)=v0yt+x02+y02σ0(t)σ0sinâĄÏ†(t)z(t)=v0zt+12gt2+z0σz(t)σz



σ02(t)=σ02+(ℏt2mσ0)2φ(t)=φ0+arctan⁥(−ℏt2mσ02)cos⁥(φ0)=x0x02+y02sin⁥(φ0)=y0x02+y02sin⁥(arctan⁥x)=x1+x2cos⁥(arctan⁥x)=11+x2cos⁥(a+b)=cos⁥acos⁥b−sin⁥asin⁥bsin⁥(a+b)=sin⁥acos⁥b+cos⁥asin⁥b



function xbs(t, xo, yo, vo)

    cosϕ = xo / sqrt( xo^2 + yo^2 )
    sinϕ = yo / sqrt( xo^2 + yo^2 )
    atnx = -ħ*t / (2m*σ₀^2)
    sinatnx = atnx / sqrt( atnx^2 + 1)
    cosatnx =    1 / sqrt( atnx^2 + 1)
    cosϕt = cosϕ * cosatnx - sinϕ * sinatnx
    #sinϕt = sinϕ*cosatnx + cosϕ*sinatnx

    σ₀t = sqrt( σ₀^2 + ( ħ*t / (2*m*σ₀) )^2 )

    vo*t + sqrt(xo^2 + yo^2) * σ₀t/σ₀ * cosϕt
end

@gp "set title 'Trajectories before slits'" xlab="t, s" ylab="X, mkm" # "set yrange [-10:10]"

@time for i in 1:80

    x0 = randn()*σ₀
    y0 = randn()*σ₀
    v0 = randn()*σv*1e-4

    prtclᔹ = [ xbs(t,x0,y0,v0) for t in Cron1 ]

    @gp :- Cron1 1000000prtclᔹ "with lines notit lw 2 lc rgb 'black'"
    # slits -4-> -2, 2->4 mkm
end




, , , , , . . . , .





Y , , . X . .



" " ,



vx(x,t)=1t−t1[x+−12(α2+ÎČt2)(ÎČtIm(C(x,t)H(x,t))+αRe⁥(C(x,t)H(x,t))−ÎČtÎłx,t)]



18+

H(x,t)=∫XA−bXA+bf(x,u,t)du+∫XB−bXB+bf(x,u,t)duC(x,t)=[f(x,u,t)]u=XA−bu=XA+b+[f(x,u,t)]u=XB−bu=XB+bf(x,u,t)=exp⁥[(α+iÎČt)u2+iÎłx,tu]α=−14σ02(1+(ℏt12mσ02)2)ÎČt=m2ℏ(1t−t1+1t1(1+(2mσ02ℏt1)2))Îłx,t=−mxℏ(t−t1)



function Uₓ(t, x)

    γ = -m*x / ( ħ*(t-tf1) )
    ÎČ = m/(2ħ) * ( 1/(t-tf1) + 1 / ( tf1*( 1 + (2m*σ₀^2 / (ħ*tf1) )^2 ) ) )
    α = -( 4σ₀^2 * ( 1 + ( ħ*tf1 / (2m*σ₀^2) )^2 ) )^-1

    f(x, u, t) = exp( ( α + im*ÎČ )*u^2 + im*Îł*u )

    C = f(x, a2, t) - f(x, a1, t) + f(x, b2, t) - f(x, b1, t)
    H = trapez( u-> f(x, u, t) , a1, a2, 400) + trapez( u-> f(x, u, t) , b1, b2, 400)

    return 1/(t-tf1) * ( x - 0.5/(α^2 + ÎČ^2) * ( ÎČ*imag(C/H) + α*real(C/H) - ÎČ*Îł ) )
end

init() = bitrand()[1] ? rand()*(b2 - b1) + b1 : rand()*(a2 - a1) + a1
myrng(a, b, N) = collect( range(a, stop = b, length = N Ă· 2) )




n = 1
xx = 0
Ο = 1e-5
while xx < Cron2[end]-Cron2[1]
    n+=1
    xx += (Ο*n)^2 
end
n

steps = [ (Ο*i)^2 for i in 1:n1 ]
Cronadapt = accumulate(+, steps, init = Cron2[1] )

function modelsolver(Np = 10, Nt = 100)

    #xo = [ init() for i = 1:Np ] # 
    xo = vcat( myrng(a2, a1, Np), myrng(b1, b2, Np) ) # 

    xpath = zeros(Nt, Np)
    xpath[1,:] = xo

    for i in 2:Nt, j in 1:Np
        xpath[i,j] = rk4(Uₓ, Cronadapt[i], xpath[i-1,j], steps[i] )
    end

    xpath
end


@time paths = modelsolver(20, n);

@gp "set title 'Trajectories after the slits'" xlab="t, s" ylab="X, mkm" "set yrange [-800:800]"
for i in 1:size(paths, 2)
    @gp :- Cronadapt 1e6paths[:,i] "with lines notit lw 1 lc rgb 'black'"
end


- 4 , . 2





, : , , .





. , ,



function yas(t, xo, yo, vo)

    cosϕ = xo / sqrt( xo^2 + yo^2 )
    sinϕ = yo / sqrt( xo^2 + yo^2 )
    atnx = -ħ*t / (2m*σ₀^2)
    sinatnx = atnx / sqrt( atnx^2 + 1)
    cosatnx =    1 / sqrt( atnx^2 + 1)
    #cosϕt = cosϕ * cosatnx - sinϕ * sinatnx
    sinϕt = sinϕ*cosatnx + cosϕ*sinatnx

    σ₀t = sqrt( σ₀^2 + ( ħ*t / (2*m*σ₀) )^2 )

    vo*t + sqrt(xo^2 + yo^2) * σ₀t/σ₀ * sinϕt
end

function modelsolver2(Np = 10)

    Nt = length(Cronadapt)
    xo = [ init() for i = 1:Np ]
    #xo = vcat( myrng(a2, a1, Np), myrng(b1, b2, Np) )

    xcoord = copy(xo)
    ycoord = zeros(Np)

    for i in 2:Nt, j in 1:Np
        xcoord[j] = rk4(Uₓ, Cronadapt[i], xcoord[j], steps[i] )
    end

    for (i, x) in enumerate(xo)

        y0 = randn()*yh
        v0 = 0 #randn()*σv*1e-4

        ycoord[i] = yas(Cronadapt[end], x, y0, v0)
    end

    xcoord, ycoord
end

@time X, Y = modelsolver2(100);

@gp "set title 'Impacts on the screen'" xlab="X, mm" ylab="Y, mm"# "set xrange [-1:1]"
@gp :- 1000X 1000Y "with points notit pt 7 ps 0.5 lc rgb 'black'"






, , . , ,





, , , , , — , .






All Articles