¿Hay formas simples de resolver numéricamente la ecuación de Schrödinger dependiente del tiempo?


34

Me gustaría ejecutar algunas simulaciones simples de dispersión de paquetes de ondas de potenciales simples en una dimensión.

¿Hay formas simples de resolver numéricamente el TDSE unidimensional para una sola partícula? Sé que, en general, tratar de usar enfoques ingenuos para integrar ecuaciones diferenciales parciales puede terminar rápidamente en un desastre. Por lo tanto, estoy buscando algoritmos que

  • son numéricamente estables,
  • son fáciles de implementar o tienen implementaciones de biblioteca de códigos fácilmente accesibles,
  • correr razonablemente rápido, y con suerte
  • son relativamente simples de entender.

También me gustaría mantenerme relativamente alejado de los métodos espectrales, y en particular de los métodos que son poco más que resolver la ecuación de Schrödinger independiente del tiempo como de costumbre. Sin embargo, me interesarían los métodos pseudo-espectrales que usan B-splines o cualquier otra cosa. Si el método puede tomar un potencial dependiente del tiempo, entonces definitivamente es una ventaja.

Por supuesto, cualquier método de este tipo siempre tendrá una serie de desventajas, por lo que me gustaría conocerlas. ¿Cuándo no funciona? ¿Cuáles son las trampas comunes? ¿De qué maneras puede ser empujado y de qué manera no?



@EmilioPisanty He agregado una discusión de errores a mi redacción de la SSFM: Noto (después de escribir mi respuesta, lo siento) que no te interesan los métodos espectrales, pero por las

Hilo limpiado; eliminando la discusión de actualidad de la física.
Geoff Oxberry


3
@ GeoffOxberry, ¿podría poner a disposición una captura de pantalla de esos comentarios?
Emilio Pisanty

Respuestas:


24

La ecuación de Schroedinger es efectivamente una reacción de difusión de la ecuación (todas las constantes son: 1). Cuando se trata de una ecuación diferencial parcial, hay dos formas de resolverla:

(1)iψt=2ψ+Vψ
  1. Método implícito (adv: pasos de tiempo largos e incondicionalmente estable, desaconsejable: requiere un solucionador de matrices que pueda proporcionar datos incorrectos)
  2. Método explícito (adv: fácil de implementar, disadv: requiere pequeños pasos de tiempo para la estabilidad)

Para las ecuaciones parabólicas (lineal en segundo orden en ), el método implícito es a menudo la mejor opción. La razón es que la condición para la estabilidad del método explícito requiere , que será muy pequeño. Puede evitar este problema utilizando el método implícito, que no tiene esa limitación en el intervalo de tiempo (aunque en la práctica normalmente no lo hace increíblemente grande porque puede perder parte de la física). Lo que describo a continuación es el método de Crank-Nicolson , un esquema implícito preciso de segundo orden común (espacio y tiempo).x d t d x 2txdtdx2

Entrantes

Para resolver computacionalmente un PDE, debe discretizarlo (hacer que las variables se ajusten a una cuadrícula). La más sencilla es una cuadrícula cartesiana rectangular. Aquí, representa el índice de tiempo (y siempre es un súper script) y el índice de posición (siempre un subíndice). Al emplear una expansión Taylor para la variable dependiente de la posición, la ecuación (1) se convierte en Donde hemos supuesto quej i ψ n + 1 j - ψ jnjV=V(x) 1

iψjn+1ψjdt=12(ψj+1n+12ψjn+1+ψj1n+1dx2+ψj+1n2ψjn+ψj1ndx2)+12(Vjψjn+1+Vjψjn)
V=V(x). Lo que sucede a continuación es una agrupación de índices espaciales y temporales similares (es posible que desee verificar las matemáticas): Esta ecuación tiene la forma (A0A-00A+A0A-00A+A0A-)(ψ n + 1 0 ψ n + 1 1ψ n + 1 J - 1 )=(ψ n 0
(2)12dtdx2ψj+1n+1+(idtdx212Vj)ψjn+1+12dtdx2ψj1n+1=iψjn12dtdx2(ψj+1n2ψjn+ψj1n)+12Vjψjn
iψ n + 1 j
(A0A00A+A0A00A+A0A)(ψ0n+1ψ1n+1ψJ1n+1)=(ψ0nψ1nψJ1n)
Que se llama matriz tri-diagonal y tiene una solución conocida (más ejemplos de trabajo, incluyendo uno escrito por mí! El método explícito tacha todo el lado izquierdo (¿o debería decir la línea superior?) De la Ecuación (2) excepto por el término .iψjn+1

Cuestiones

El mayor problema que he encontrado con los métodos implícitos es que dependen mucho de las condiciones de contorno. Si tiene condiciones de contorno mal definidas / implementadas, puede obtener oscilaciones espurias en sus celdas que pueden conducir a malos resultados (consulte mi publicación SciComp sobre un tema similar). Esto lleva a tener realmente una precisión de primer orden en el espacio, en lugar de la segunda que su esquema debería dar.

Los métodos implícitos también son supuestamente difíciles de paralelizar, pero solo los he usado para ecuaciones de calor 1D y no necesito soporte paralelo, por lo que no puedo verificar ni negar la afirmación.

Tampoco estoy seguro de cómo la naturaleza compleja de la función de onda afectará los cálculos. El trabajo que he realizado utiliza las ecuaciones dinámicas de fluidos de Euler y, por lo tanto, son completamente reales con magnitudes no negativas.

Potencial dependiente del tiempo

Si tiene un potencial analítico dependiente del tiempo (por ejemplo, ), entonces simplemente usaría el tiempo actual, , para en el RHS de (2) y el tiempo futuro, , en el LHS. No creo que esto cree ningún problema, pero no lo he probado, así que tampoco puedo verificar o negar este aspecto.t V j t + d tVcos(ωt)tVjt+dt

Alternativas

También hay algunas alternativas interesantes al método de Crank-Nicolson. El primero es el llamado método de "super-paso de tiempo". En este método explícito, toma el paso de tiempo ( ) y usa las raíces de los polinomios de Chebyshev para obtener un conjunto optimizado de pasos de tiempo que suman rápidamente a más rápido que haciendo pasos veces (efectivamente obtienes para que cada paso te avancedtdx2d t / N N Δ T = N 2 d t N N d tdtdt/NNΔT=N2dtNNdta tiempo). (Utilizo este método en mi investigación porque tiene un "flujo" bien definido de una celda a otra que se usa para fusionar datos de un procesador a otro, usando el esquema de Crank-Nicolson. No pude hacer esto).

EDITAR Una cosa a tener en cuenta es que este método es de primer orden preciso en el tiempo, pero si usa un método Runge-Kutta 2 en conjunto, le dará un esquema preciso de segundo orden a tiempo.

El otro se llama explícito en dirección alterna . Este método requiere que tenga condiciones de contorno conocidas y bien definidas. Luego procede a resolver la ecuación utilizando el límite directamente en el cálculo (no es necesario aplicarlo después de cada paso). Lo que sucede en este método es que resuelve el PDE dos veces, una en un barrido hacia arriba y otra en un barrido hacia abajo. El barrido hacia arriba usa mientras que el barrido hacia abajo usa para la ecuación de difusión, mientras que los otros términos seguirían siendo los mismos. El paso de tiempo2ψ

2ψx2ψj1n+1ψjn+1ψjn+ψj+1ndx2
n+1
2ψx2ψj+1n+1ψjn+1ψjn+ψj1ndx2
n+1 luego se resuelve promediando los dos barridos direccionales.

1
Gran respuesta, ¡la única queja es que me ganaste!
Kyle

@ChrisWhite: Estaba pensando en lo que podría hacerse a principios de esta mañana y lo único que se me ocurrió se estaría haciendo una vez por y una vez para . Echaré un vistazo a ese documento (y, lo que es más importante, al código gratuito que ofrecen) y veré cómo sugieren hacerlo. IRI
Kyle Kanos

@ChrisWhite Tal vez la astucia sea para calcular las funciones propias, que he visto calculadas por pasos de tiempo imaginarios: usted organiza la dirección del paso para que la función propia de energía más baja tenga el menor valor negativo de y, por lo tanto, la disminución más lenta. Al iterar en una entrada aleatoria, muy rápidamente solo queda la forma de la función propia de energía más baja. Luego resta esto de la entrada aleatoria y vuelve a realizar el proceso: ahora la siguiente función propia de energía más baja es la dominante. Y así. Suena un poco dudoso (especialmente cada vez más alto eigenfuncs) pero funciona! - hhνhν

1
@DavidKetcheson: una ecuación de reacción-difusión toma la forma . En el caso de la ecuación de Schrodinger, ; ¿puedo preguntar cómo entonces que es no una ecuación de tipo RD? Y, curiosamente, la ecuación de Schrodinger en realidad aparece en el artículo wiki de reacción-difusión al que hice referencia. Este error que hice también aparece en muchas revistas y textos publicados (adelante y búscalo). ¿Quizás hubiera sido mejor para mí recomendar el uso de bibliotecas estándar (como es el MO común aquí), como PETSc, deal.ii o pyCLAW? R ( u ) = V utu=Dx2u+R(u)R(u)=Vu
Kyle Kanos

1
@KyleKanos: Tu publicación es buena. De hecho, en el artículo publicado por DavidKetcheson, Crank-Nicolson es defendido por la primera referencia. La comparación con la reacción-difusión está bien; Como observa, la comparación con la reacción-difusión aparece en muchas fuentes publicadas. Creo que DavidKetcheson estaba buscando algo como la "ecuación de onda dispersiva" mencionada anteriormente.
Geoff Oxberry

22

A principios de los 90 estábamos buscando un método para resolver el TDSE lo suficientemente rápido como para hacer animaciones en tiempo real en una PC y encontramos un método sorprendentemente simple, estable y explícito descrito por PB Visscher en Computers in Physics : " Un algoritmo rápido y explícito para la ecuación de Schrödinger dependiente del tiempo ". Visscher señala que si divide la función de onda en partes reales e imaginarias, , el SE se convierte en el sistema:ψ=R+iI

dRdt=HIdIdt=HRH=12m2+V

Si luego calcula e en tiempos escalonados ( en e en , obtiene la discretización:I R 0 , Δ t , 2 Δ t , . . . I 0,5 Δ t , 1,5 Δ t , . . . )RIR0,Δt,2Δt,...I0.5Δt,1.5Δt,...)

R(t+12Δt)=R(t12Δt)+ΔtHI(t)

I(t+12Δt)=I(t12Δt)ΔtHR(t)

con (laplaciano estándar de tres puntos).

2ψ(r,t)=ψ(r+Δr,t)2ψ(r,t)+ψ(rΔr,t)Δr2

Esto es explícito, muy rápido de calcular y preciso de segundo orden en .Δt

Definiendo la densidad de probabilidad como

PAGS(X,t)=R2(X,t)+yo(X,t+12Δt)yo(X,t-12Δt)
en pasos de tiempo entero y,

PAGS(X,t)=R(X,t+12Δt)R(X,t-12Δt)+yo2(X,t)
en pasos de tiempo medio entero

hace que el algoritmo sea unitario, conservando así la probabilidad.

Con suficiente optimización de código, pudimos obtener animaciones muy agradables calculadas en tiempo real en máquinas 80486. Los estudiantes podrían "dibujar" cualquier potencial, elegir una energía total y observar la evolución temporal de un paquete gaussiano.


¡Ese es un truco muy bueno para resolver los componentes reales e imaginarios! Tenga en cuenta también que puede obtener ecuaciones grandes y centradas mediante el uso $$ ... $$. Me he tomado la libertad de hacer esto por ti, ¡espero que no te importe!
Kyle Kanos

Estábamos encantados de encontrar el algoritmo: era fácil de programar y funcionaba rápido. La parte más difícil fue obtener las condiciones iniciales correctas, R en t = 0 y yo en 0.5dt ... No me importa la edición, estaba feliz de obtener ecuaciones en absoluto.

1
@ user40172 Estábamos haciendo lo mismo para las guías de ondas aproximadamente al mismo tiempo, y nos decidimos por el BPM descrito en mi respuesta. La razón era que en ese momento podíamos ejecutar las FFT por separado de la CPU principal usando una placa DSP. Pensamos que éramos muy inteligentes, pero debo decir que encontrar una solución de hardware para un problema de software parece bastante desagradable en 2014. La última versión de Visual Studio C ++ vectoriza automáticamente el código sobre las CPU y hace un trabajo excelente con la FFT.

1
@ user40172 ¿Cómo finalmente las condiciones iniciales en ? ¿Simplemente propagando la solución a ese momento usando otro método? 0,5ret

1
@Rusian Como estábamos haciendo dispersión, utilizamos un paquete estándar de onda gaussiana de partículas libres, pero nos aseguramos de iniciarlo "lo suficientemente lejos" de cualquier región donde el potencial no fuera cero. Ver, por ejemplo: demonstrations.wolfram.com/EvolutionOfAGaussianWavePacket

10

La respuesta de Kyle Kanos parece ser muy completa, pero pensé en agregar mi propia experiencia. El método de Fourier de pasos divididos (SSFM) es extremadamente fácil de ejecutar y manipular; puede crear un prototipo en algunas líneas de Mathematica y es extremadamente estable numéricamente. Implica impartir solo operadores unitarios en su conjunto de datos, por lo que conserva automáticamente la probabilidad / potencia (esto último si está resolviendo las ecuaciones de Maxwell con él, que es donde radica mi experiencia). Para una ecuación de Schrödinger unidimensional (es decir, solo variación de y ), es extremadamente rápida incluso como código de Mathematica. Y si necesita acelerarlo, realmente solo necesita un buen código FFT en su idioma de destino (mi experiencia radica en C ++).tXt

Lo que estaría haciendo es una versión encubierta del Método de propagación del haz para la propagación óptica a través de una guía de onda de sección transversal variable (análoga a potenciales variables en el tiempo), por lo que sería útil buscar esto también.

La forma en que miro el SSFM / BPM es la siguiente. Su fundamento es la fórmula del producto Trotter de la teoría de Lie:

(1)limmetro(exp(retmetro)exp(Vtmetro))metro=exp((re+V)t)

que a veces se llama la ecuación de división del operador en este contexto. Su conjunto de datos es una cuadrícula discreta o de valores complejos que representa en un momento dado . Entonces imaginas esto (no tienes que hacer esto; todavía estoy hablando conceptualmente) una cuadrícula enorme escrita como un vector de columna de elemento (para una cuadrícula tenemos ) y luego su ecuación de Schrödinger tiene la forma:X-yX-y-zψ(X,y,z)tnorteΨ1024×1024norte=10242=1048576

(2)retΨ=KΨ=(re+V(t))Ψ

donde es una matriz oblicua-hermitiana , un elemento de , y va a ser mapeado con un tiempo creciente por un elemento grupo de parámetros . (He absorbido el factor en en el RHS para poder hablar más fácilmente en términos teóricos de Lie). Dado el tamaño de , el hábitat natural de los operadores es un grupo de Lie completamente colosal, ¡así que PHEW! Sí, todavía estoy hablando en términos totalmente teóricos. Ahora, ¿qué significaK=re+Vnorte×nortetu(norte)Ψexp(Kt)yoK=re+VnorteU(norte)re+V¿parece? Todavía imaginando por ahora, podría considerarse como una versión de diferencia finita de , donde es un potencial "medio" conveniente para el problema en cuestión.yo2/ /(2metro)-yo-1V0 0+yo-1(V0 0-V(X,y,z,t0 0))V0 0

Dejamos:

(3)re=yo2metro2-yo-1V0 0V=yo-1(V0 0-V(X,y,z,t))

Por qué los he dividido así quedará claro a continuación.

El punto sobre es que puede calcularse analíticamente para una onda plana: es un simple operador de multiplicación en coordenadas de momento. Entonces, para resolver , estos son los primeros tres pasos de un ciclo SSFM / BPM:reΨexp(Δtre)Ψ

  1. Impartir FFT al conjunto de datos para transformarlo en un conjunto de pesos de superposición de ondas planas: ahora las coordenadas de la cuadrícula se han cambiado de a ;ΨΨ~X,y,zkX,ky,kz
  2. Impartir simplemente multiplicando cada punto en la cuadrícula por ;Ψ~exp(Δtre)Ψ~exp(yoΔt(V0 0-kX2+ky2+kz2)/ /)
  3. Impartir FFT inversa para asignar nuestra cuadrícula de nuevo aexp(Δtre)Ψ

    . Ahora estamos de vuelta en el dominio de posición. Este es el mejor dominio para impartir el operador por supuesto: aquí es un simple operador de multiplicación. Así que aquí está tu último paso de tu ciclo algorítmico:VV

  4. Impartir el operador simplemente multiplicando cada punto de la cuadrícula por el factor de faseΨexp(ΔtV)Ψexp(yoΔt(V0 0-V(X,y,z,t))/ /)

.... y luego comienza su próximo paso y realiza un ciclo una y otra vez. Claramente, es muy fácil poner potenciales de tiempo variable en el código.ΔtV(X,y,z,t)

Entonces verá que simplemente elige suficientemente pequeño como para que la fórmula Trotter (1) entre en acción: simplemente está aproximando la acción del operador y usted va y viene con su FFT entre las coordenadas de posición y momento, es decir, los dominios donde y son simples operadores de multiplicación.Δtexp(re+VΔt)exp(reΔt)exp(VΔt)Vre

Tenga en cuenta que solo está impartiendo, incluso en el mundo discreto, operadores unitarios: FFT y factores de fase pura.

Un punto que debe tener cuidado es que a medida que su vuelve pequeña, debe asegurarse de que el espaciado de la cuadrícula espacial también se reduzca. De lo contrario, suponga que el espaciado de la cuadrícula espacial es . Entonces, el significado físico del único paso discreto es que los efectos de difracción viajan a una velocidad ; Al simular las ecuaciones y guías de onda de Maxwell, debe asegurarse de que esta velocidad sea mucho menor que . Me atrevo a decir que los límites se aplican a la ecuación de Schrödinger: no tengo experiencia directa aquí, pero suena divertido y tal vez podrías publicar tus resultados en algún momento.ΔtΔXΔX/ /Δtdo

Un segundo punto de "experiencia" con este tipo de cosas: estaría casi dispuesto a apostar que así es como terminará siguiendo sus ideas. A menudo tenemos ideas de que queremos hacer simulaciones simples, rápidas y sucias, ¡pero nunca funciona así! Comenzaría con el SSFM como describí anteriormente, ya que es muy fácil de ejecutar y verá rápidamente si sus resultados son físicos o no. Más adelante puede usar su código de Mathematica SSFM, verifique los resultados de un código más sofisticado que podría terminar construyendo, digamos, un código de Crank Nicolson en la línea de la respuesta de Kyle Kanos .


Límites de error

La realización de la fórmula Dynkin del teorema de Baker-Campbell-Hausdorff:

exp(reΔt)exp(V)Δt)=exp((re+V)Δt+12[re,V]Δt2+)
convergentes para algunos muestra que el método es exacto a segundo orden y puede mostrar que:Δt>0 0

exp(reΔt)exp(V)Δt)exp(-12[re,V]Δt2)=exp((re+V)Δt+O(Δt3))

En teoría, puede usar el término para estimar el error y establecer su consecuencia. Esto no es tan fácil como parece y en la práctica los límites terminan siendo estimaciones aproximadas del error. El problema es ese:exp(V)Δt)exp(-12[re,V]Δt2)Δt

Δt22[re,V]=-yoΔt22metro(X2V(X,t)+2XV(X,t)X)

y no se transforman fácilmente en coordenadas en las que es un simple operador de multiplicación. Por lo tanto, debe contentarse con y use esto para estimar su error, trabajando para su solución en evolución actual y usar esto para configurar su[re,V]exp(-12[re,V]Δt2)mi-yoφΔt2(yore-(12[re,V]-yoφ(t))Δt2)(yore-(12[re,V]-yoφ(t))Δt2)ψψ(X,t)Δtsobre la marcha después de cada ciclo del algoritmo. Por supuesto, puede hacer que estas ideas sean la base de un controlador adaptativo de pasos para su simulación. Aquí es una fase global extraída del conjunto de datos para minimizar la norma de ; por supuesto, a menudo puede eliminar esa eliminación global: dependiendo de lo que esté haciendo con los resultados de la simulación, a menudo no nos molesta una fase constante global .φ(12[re,V]-yoφ(t))Δt2exp(φret)

Un documento relevante sobre errores en el SSFM / BPM es:

Lars Thylén. "El método de propagación del haz: un análisis de su aplicabilidad", Optical and Quantum Electronics 15 (1983) pp433-439 .

Lars Thylén piensa en los errores en términos teóricos que no son de Lie (los grupos de Lie son mi inclinación, por lo que me gusta buscar interpretaciones de ellos) pero sus ideas son esencialmente las mismas que las anteriores.


1
Rod, probablemente sepa que puede hacerlo mejor si usa la llamada aproximación de operador dividido, donde . De hecho, puede hacer una división adicional para llevar el error a poderes más altos . Ver por ejemplo Bandrauk y Shen, Chem. Phys. Letón. 176, 428 (1991). Obviamente, su término cinético no puede depender de las coordenadas, es decir, no funciona bien en coordenadas curvilíneas. exp[Δt(re+V)]exp[ΔtV/ /2]exp[Δtre]exp[ΔtV/ /2]Δt

1
De lo contrario, esta cosa del operador dividido junto con la evaluación FFT del operador de energía cinética es uno de los procedimientos estándar para resolver el TDSE en una representación basada en la cuadrícula en Física Molecular.

@ perplejidad Muchas gracias. Es bueno saber qué usan los diferentes campos. La fecha de 1991 en su referencia es interesante: siempre estuve bastante seguro de que la idea del paso dividido surgió de la simulación de guía de onda a fines de la década de 1970, así que tal vez me equivoque.

1
No te equivocas en absoluto. Esa fue la inspiración de hecho. El primer trabajo que traduzco estas ideas a QM que conozco es Feit, Fleck y Steiger, J. Comput. Phys. 47, 412 (1982) donde, si recuerdo correctamente, esencialmente usan los mismos trucos con la ventaja de que el operador aquí es unitario por construcción (a diferencia de las ondas clásicas). El enfoque basado en la cuadrícula FFT para este tipo de simulaciones fue propuesto por primera vez por Ronnie Kosloff, creo. Tiene una muy buena reseña sobre este tema en su página web.

Otra buena referencia en mi campo es el libro de David Tannor sobre mecánica cuántica: una perspectiva dependiente del tiempo. Aclamaciones.

5

Puedo recomendar el uso del método de dominio de tiempo de diferencia finita (FDTD). Incluso escribí un tutorial hace algún tiempo que debería responder la mayoría de tus preguntas:

JR Nagel, "Una revisión y aplicación del algoritmo de dominio de tiempo de diferencia finita aplicado a la ecuación de Schrödinger", ACES Journal, vol. 24, N ° 1, febrero de 2009

Tengo algunos códigos de Matlab que funcionan bien para sistemas 1D. Si tiene experiencia con FDTD haciendo electromagnetismo, también funciona muy bien para la mecánica cuántica. Puedo publicar mis códigos si estás interesado.

Básicamente, solo opera en las funciones de onda directamente al dividir los derivados en diferencias finitas. Es algo similar al esquema de Crank-Nicholson, pero no exactamente. Si está familiarizado con FDTD de la teoría de ondas electromagnéticas, entonces FDTD será muy intuitivo al resolver la ecuación de Schrodinger.


4

El método de diferencia finita más directo es rápido y fácil de entender, pero no es unitario en el tiempo, por lo que no se conserva la probabilidad. Crank-Nicholson-Crout promedia los métodos de diferencia finita hacia adelante y hacia atrás para producir un método híbrido implícito / explícito que todavía es bastante fácil de entender e implementar y es unitario en el tiempo. Este sitio explica bien el método, proporciona un pseudocódigo y ofrece las propiedades relevantes:

http://www.physics.utah.edu/~detar/phycs6730/handouts/crank_nicholson/crank_nicholson/ Nota: Falta un signo - en el LHS de la ecuación uno de este enlace, que se propaga por toda la página.

¿De dónde viene la no unidad?

En pocas palabras, resolver el TDSE se reduce a descubrir cómo lidiar con

El |ψ(X,t)=mi-yoHtEl |ψ(X,0 0)

que contiene un operador diferencial en un exponencial.

La aplicación de una diferencia finita hacia adelante convierte el operador diferencial en una matriz tridiagonal (convirtiendo los Reales en una cuadrícula) y el exponencial en los dos primeros términos de su serie Taylor

mi-yoHt1-yoHt

Esta discretización y linealización es lo que da lugar a la no unidad. (Puede mostrar que la matriz tridiagonal no es unitaria por cálculo directo). La combinación de la diferencia finita hacia adelante con la diferencia finita hacia atrás produce la aproximación

mi-yoHt1-12yoHt1+12yoHt

que, amablemente, resulta ser unitario (de nuevo, puede mostrarlo mediante cálculo directo).


Gracias por la rápida respuesta. ¿Podría proporcionar más detalles sobre ambos métodos? ¿Cómo funcionan y por qué? ¿De dónde viene la no unidad?
Emilio Pisanty

Me complacería proporcionar más detalles, pero para evitar perder mi público objetivo, sería útil saber cuánta educación y experiencia ha tenido en cada uno de los siguientes campos de fondo: Cálculo, Ecuaciones diferenciales, Álgebra lineal, Mecánica cuántica y Métodos numéricos (específicamente Métodos de diferencia finita).

Suponga todo lo que necesite de física y matemática estándar (aunque las referencias a las partes más complicadas probablemente ayudarían). Sin embargo, mis métodos numéricos están un poco oxidados.
Emilio Pisanty

¿Hay alguna diferencia entre esto y la respuesta de Kyle Kanos ? Quiero decir, no es obvio cómo implementar su última ecuación, como lo ha escrito implica invertir un operador completo, ¿simplemente está diciendo que el método CN simplemente está, a través de la solución de su ecuación tridiagonal, funcionando ? ¿O hay una sutileza que me he perdido? En realidad, la última ecuación es una buena representación en la medida en que hace explícita la unitaridad para CN, un hecho que no está claro en muchas descripciones de CN. (1+yo2Ht)-1(1+yo2Ht)ψ

No, es el mismo algoritmo dado por Kyle Kanos. Lo acabo de escribir de esta manera para dar una forma diferente de verlo. Esperaba que fuera más fácil de conceptualizar, mientras que el suyo es más fácil de implementar. Sí, en última instancia, solo estás resolviendo una ecuación tridiagonal. Había un artículo antiguo (1967) en AJP que no pude encontrar antes y que lo describe muy bien: ergodic.ugr.es/cphys/lecciones/SCHROEDINGER/ajp.pdf Usaron CN para producir bucles de película de 8 mm de paquetes de ondas gaussianas. dispersando varios potenciales. Todavía puede encontrar esos bucles de película en muchas bibliotecas de demostración de física de la universidad.

3

Algunas respuestas y comentarios aquí combinan confusamente el TDSE con una ecuación de onda; quizás un problema semántico, hasta cierto punto. El TDSE es la versión cuantificada del hamiltoniano clásico no relativista Con las reglas (como se discutió en el capítulo 1 de d'Espagnat, Fundamentos conceptuales de la mecánica cuántica, https://philpapers.org/rec/ESPCFO ), por lo tanto, se lee por lo que es claramente una ecuación de difusión. Si uno usa la energía relativista, que contiene un término E , entonces una ecuación de onda como

H=pags22metro+V(X)=mi.
pagsyoX,  miyot,  XX,
[-22metroXX+V(X)]ψ=yotψ,
2
XXψ=ttψ+...
obtendría (para V = 0 por simplicidad), como las ecuaciones de Pauli o Klein-Gordon. Pero eso es, por supuesto, un asunto completamente diferente.

Ahora, volviendo al TDSE, el método obvio es Crank-Nicolson como se ha mencionado, porque es una expansión de poco tiempo que conserva la unitaridad de la evolución (FTCS, por ejemplo, no). Para el caso 1-space-D, puede tratarse como una iteración matricial, leyendo con la matriz de identidad y (Detalles, por ejemplo, en Métodos numéricos para la física, http://algarcia.org/nummeth/nummeth.html , por AL Garcia). Como se ve más claramente en condiciones de contorno periódicas, un espacio localizado

ψnorte+1=(yo+yoτ2H~)-1(yo-yoτ2H~)ψnorte
yoψψψs=eikx/
Hjk=(H~)jk=-22metro[δj+1,k+δj-1,k-2δjkh2]+Vjδjk.
ψ extiende en el tiempo: esto es de esperar, porque la localizada inicial no es un estado propio de la ecuación de Schroedinger estacionaria, sino una superposición de la misma. El eigenstate (partícula libre masiva clásica) con momento fijo (para el operador cinético no relativista) es simplemente , es decir, completamente deslocalizado según el principio de Heisenberg, con densidad de probabilidad constante 1 / L en todas partes (tenga en cuenta que estoy evitando problemas de normalización con estados continuos al hacer que mi partícula viva en una línea finita repetida periódicamente). Usando CN, la norma ψ| ψ | 2dxcp=Ecicx=itψs=miyokX/ /L
El |ψEl |2reX
se conserva, gracias a la unitaridad (este no es el caso en otros esquemas, como FTCS, por ejemplo). Por cierto, observe que a partir de una expresión de energía como con fija, obtendrá es decir, la ecuación de advección, que no tiene dispersión (si se integra correctamente con Lax-Wendroff métodos), y su paquete de ondas no se extenderá a tiempo en ese caso. El análogo cuántico es la ecuación de Dirac de partículas sin masa.
dopags=mi
do
yodoX=yot
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.