Existem maneiras simples de resolver numericamente a equação de Schrödinger dependente do tempo?


34

Gostaria de executar algumas simulações simples de dispersão de pacotes de ondas a partir de potenciais simples em uma dimensão.

Existem maneiras simples de resolver numericamente o TDSE unidimensional para uma única partícula? Eu sei que, em geral, tentar usar abordagens ingênuas para integrar equações diferenciais parciais pode terminar rapidamente em desastre. Estou, portanto, procurando algoritmos que

  • são numericamente estáveis,
  • são simples de implementar ou têm implementações de bibliotecas de códigos facilmente acessíveis,
  • correr razoavelmente rápido e espero
  • são relativamente simples de entender.

Eu também gostaria de orientar relativamente os métodos espectrais, e particularmente os métodos que são pouco mais do que resolver a equação de Schrödinger independente do tempo, como de costume. No entanto, eu estaria interessado em métodos pseudo-espectrais que usam splines B ou outros enfeites. Se o método pode assumir um potencial dependente do tempo, isso é definitivamente um bônus.

Obviamente, qualquer método desse tipo sempre terá várias desvantagens, então eu gostaria de ouvir sobre elas. Quando isso não funciona? Quais são as armadilhas comuns? De que maneiras ele pode ser empurrado e de que maneira não pode?



@EmilioPisanty Adicionei uma discussão de erros ao escrever sobre o SSFM: Percebo (depois de escrever minha resposta, desculpe) que você não gosta de métodos espectrais, mas apenas no caso ...

Rosca limpa; removendo a discussão da atualidade da Física.
Geoff Oxberry 23/02


3
@GeoffOxberry, você poderia disponibilizar uma captura de tela desses comentários?
Emilio Pisanty

Respostas:


24

A equação de Schroedinger é efetivamente uma equação de difusão de reação (todas as constantes são 1). Quando se trata de qualquer equação diferencial parcial, há duas maneiras de resolvê-lo:

(1)iψt=2ψ+Vψ
  1. Método implícito (adv: grandes etapas de tempo e incondicionalmente estável, disadv: requer solucionador de matriz que pode fornecer dados incorretos)
  2. Método explícito (adv: fácil de implementar, desadv: requer pequenos intervalos de tempo para estabilidade)

Para equações parabólicas (linear em e 2ª ordem em ), o método implícito é muitas vezes a melhor escolha. O motivo é que a condição de estabilidade para o método explícito requer , que será muito pequeno. Você pode evitar esse problema usando o método implícito, que não tem essa limitação no intervalo de tempo (embora na prática você normalmente não o faça incrivelmente grande porque pode perder parte da física). O que descrevo a seguir é o método Crank-Nicolson , um esquema implícito comum de segunda ordem (espaço e tempo).xtxdtdx2

Iniciantes

Para resolver computacionalmente um PDE, é necessário discretizá-lo (ajuste as variáveis ​​em uma grade). A mais direta é uma grade cartesiana retangular. A seguir, representa o índice de tempo (e é sempre um super script) o índice de posição (sempre um índice). Ao empregar uma expansão de Taylor para a variável dependente da posição, a Equação (1) se torna Onde assumimos quej i vF 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). O que acontece a seguir é um agrupamento de índices espaciais e temporais (você pode verificar a matemática): Esta equação tem a forma (A0A-00A+A0A-00A+A0A-)(ψ n + 1 0 ψ n 1
(2)12dtdx2ψj+1n+1+(idtdx212Vj)ψjn+1+12dtdx2ψj1n+1=iψjn12dtdx2(ψj+1n2ψjn+ψj1n)+12Vjψjn
ivF n + 1 j
(A0A00A+A0A00A+A0A)(ψ0n+1ψ1n+1ψJ1n+1)=(ψ0nψ1nψJ1n)
que é chamada de matriz tri-diagonal e tem uma solução conhecida (além de exemplos de trabalho, incluindo um escrito por mim!). O método explícito risca todo o lado esquerdo (ou devo dizer a linha superior?) Da Equação (2), exceto pelo .iψjn+1

Problemas

O maior problema que encontrei com métodos implícitos é que eles são fortemente dependentes das condições de contorno. Se você tiver condições de contorno mal definidas / implementadas, poderá obter oscilações espúrias em suas células que podem levar a maus resultados (consulte minha publicação do SciComp sobre um tópico semelhante). Isso leva a ter uma precisão de primeira ordem no espaço, em vez da segunda que o seu esquema deve fornecer.

Métodos implícitos também são supostamente difíceis de paralelizar, mas eu os usei apenas para equações de calor 1D e não precisava de suporte paralelo, portanto não posso verificar nem negar a reivindicação.

Também não tenho certeza de como a natureza complexa da função de onda afetará os cálculos. O trabalho que eu fiz usa as equações dinâmicas dos fluidos de Euler e, portanto, é totalmente real com magnitudes não-negativas.

Potencial dependente do tempo

Se você tem um potencial analítico dependente do tempo (por exemplo, ), basta usar o tempo atual, , para o no RHS de (2) e o tempo futuro, , no LHS. Não acredito que isso possa criar problemas, mas não o testei, portanto não posso verificar ou negar esse aspecto também.t V j t + d tVcos(ωt)tVjt+dt

Alternativas

Existem algumas alternativas interessantes para o método Crank-Nicolson também. O primeiro é o chamado método "super-time-stepping". Nesse método explícito, você o passo de tempo ( ) e usa as raízes dos polinômios de Chebyshev para obter um conjunto otimizado de intervalos de tempo que somam mais rapidamente do que executar as etapas vezes você obtém modo que cada passo avança você d t d t / N N Δ T = N 2 d t N N d tdtdx2dtdt/NNΔT=N2dtNNdtem tempo). (Empreguei esse método na minha pesquisa porque você tem um "fluxo" bem definido de uma célula para outra que é usado para mesclar dados de um processador para outro, usando o esquema Crank-Nicolson que não consegui fazer isso).

EDITAR É importante notar que esse método é de primeira ordem preciso no tempo, mas se você usar um método Runge-Kutta 2 em conjunto, ele fornecerá um esquema preciso de segunda ordem no tempo.

O outro é chamado explícito de direção alternada . Este método requer que você tenha condições de contorno conhecidas e bem definidas. Depois, ele resolve a equação usando o limite diretamente no cálculo (não é necessário aplicá-lo após cada etapa). O que acontece nesse método é que você resolve o PDE duas vezes, uma vez para cima e outra para baixo. A varredura para cima usa enquanto a varredura para baixo usa para a equação de difusão enquanto os outros termos permaneceriam os mesmos. O passo no tempo2ψ

2ψx2ψj1n+1ψjn+1ψjn+ψj+1ndx2
n+1
2ψx2ψj+1n+1ψjn+1ψjn+ψj1ndx2
n+1 é resolvido calculando a média das duas varreduras direcionais.

1
Ótima resposta, a única reclamação é que você me venceu!
Kev8

@ChrisWhite: Eu estava pensando sobre como isso poderia ser feito mais cedo esta manhã ea única coisa que eu vim com é estar fazendo isso de uma vez por e uma vez para . Vou dar uma olhada nesse artigo (e mais importante no código livre que eles divulgam) e ver como eles sugerem fazê-lo. IRI
Kyle Kanos

@ChrisWhite Talvez o sorrateiro seja para o cálculo de autofunções, que eu já vi calculadas por timestap imaginário: você organiza a direção do passo para que a função autógena de menor energia possua o menor valor negativo de e, portanto, a deterioração mais lenta. Ao iterar em uma entrada aleatória, muito rapidamente resta apenas a forma da função própria de energia mais baixa. Então você subtrai isso da entrada aleatória e faz o processo novamente: agora a próxima função própria de energia mais baixa é a dominante. E assim por diante. Parece um pouco desonesto (especialmente ficando mais alto eigenfuncs), mas funciona! - hhνhν

1
@ DavidKetcheson: Uma equação de difusão da reação assume a forma . No caso da equação de Schrodinger, ; pode Eu, então, perguntar como que é não uma equação do tipo RD? E, curiosamente, a equação de Schrodinger realmente aparece no artigo wiki de difusão de reação que referi. Esse equívoco que fiz também aparece em muitos periódicos e textos publicados (vá em frente e procure). Talvez fosse melhor para mim aconselhar o uso de bibliotecas padrão (como é o MO comum aqui), como PETSc, deal.ii ou pyCLAW? R ( u ) = V utu=Dx2u+R(u)R(u)=Vu
Kyle Kanos

1
@KyleKanos: Seu post é bom. De fato, no artigo publicado por DavidKetcheson, Crank-Nicolson é defendido pela primeira referência. A comparação com a difusão da reação é boa; como você observa, a comparação com a difusão da reação aparece em muitas fontes publicadas. Acho que David Ketcheson estava procurando algo como "equação de onda dispersiva" mencionada anteriormente.
Geoff Oxberry 23/02

22

No início dos anos 90, estávamos procurando um método para resolver o TDSE com rapidez suficiente para fazer animações em tempo real em um PC e encontramos um método explícito surpreendentemente simples, estável e descrito por PB Visscher em Computers in Physics : " Um algoritmo explícito rápido para a equação de Schrödinger dependente do tempo ". Visscher observa que, se você dividir a função de onda em partes reais e imaginárias, , o SE se tornará o sistema:ψ=R+iI

dRdt=HIdIdt=HRH=12m2+V

Se você calcular e em momentos escalonados ( em e em , obterá a discretização:I R 0 ,RIRI 0,5 Δ t , 1,5 Δ t , . . . )0,Δ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)

com (Laplaciano padrão de três pontos).

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

Isso é explícito, muito rápido de calcular e precisa de segunda ordem em .Δt

Definindo a densidade de probabilidade como

P(x,t)=R2(x,t)+I(x,t+12Δt)I(x,t12Δt)
em etapas de tempo inteiro e,

P(x,t)=R(x,t+12Δt)R(x,t12Δt)+I2(x,t)
em etapas de tempo meio inteiro

torna o algoritmo unitário, conservando a probabilidade.

Com bastante otimização de código, conseguimos obter animações muito boas computadas em tempo real em máquinas 80486. Os alunos poderiam "desenhar" qualquer potencial, escolher uma energia total e observar a evolução temporal de um pacote gaussiano.


Esse é um truque muito interessante para resolver os componentes reais e imaginários! Observe também que você pode obter equações grandes e centralizadas usando $$ ... $$. Tomei a liberdade de fazer isso por você, espero que não se importe!
Kyle Kanos

Ficamos encantados em encontrar o algoritmo - era fácil programar e rodar rapidamente. A parte mais difícil foi acertar as condições iniciais, R em t = 0 e eu em 0,5dt ... Não me importo com a edição, fiquei feliz em obter equações.

1
@ user40172 Estávamos fazendo a mesma coisa para guias de onda na mesma época e decidimos pelo BPM descrito em minha resposta. O motivo foi que, na época, poderíamos executar as FFTs separadamente da CPU principal usando uma placa DSP. Pensávamos que éramos tão inteligentes, mas devo dizer que apresentar uma solução de hardware essencialmente para um problema de software parece bastante desagradável em 2014! A versão mais recente do Visual Studio C ++ vetoriza automaticamente o código nas CPUs e faz um belo trabalho com a FFT.

1
@ user40172 Como você finalmente conseguiu as condições iniciais de ? Apenas propagando a solução para aquela época usando outro método? 0.5dt

1
@Rusian Como estávamos fazendo a dispersão, usamos um pacote de ondas Gaussian de partículas livres padrão, mas certificamo-nos de iniciá-lo "suficientemente longe" de qualquer região onde o potencial era diferente de zero. Veja, por exemplo: demonstrations.wolfram.com/EvolutionOfAGaussianWavePacket

10

A resposta de Kyle Kanos parece ser muito completa, mas pensei em acrescentar minha própria experiência. O método Fourier (SSFM) em etapas divididas é extremamente fácil de executar e mexer; você pode prototipá-lo em algumas linhas do Mathematica e é extremamente estável numericamente. Isso envolve transmitir apenas operadores unitários no seu conjunto de dados, para que ele automaticamente economize probabilidade / poder (o último se você estiver resolvendo as equações de Maxwell com ele, que é onde está minha experiência). Para uma equação de Schrödinger unidimensional (ou seja, apenas variação e ), é extremamente rápida, mesmo como código do Mathematica. E se você precisar acelerar, realmente precisará de um bom código FFT no idioma de destino (minha experiência está em C ++).xt

O que você estaria fazendo é uma versão disfarçada do Método de Propagação de Feixe para propagação óptica por meio de um guia de ondas de seção transversal variável (análogo aos potenciais variáveis ​​no tempo), portanto, seria útil procurar isso também.

A maneira como vejo o SSFM / BPM é a seguinte. Sua fundamentação é a fórmula do produto Trotter da teoria de Lie:

(1)limm(exp(Dtm)exp(Vtm))m=exp((D+V)t)

que às vezes é chamado de operador de equação de divisão neste contexto. Seu conjunto de dados é uma grade discreta ou de valores complexos que representam em um determinado momento . Então você imagina isso (você não precisa fazer isso; eu ainda estou falando conceitualmente) grade gritante escrita como um vetor de coluna de elemento (para uma grade , temos ) e, em seguida, sua equação de Schrödinger tem a forma:xyxyzψ(x,y,z)tNΨ1024×1024N=10242=1048576

(2)dtΨ=KΨ=(D+V(t))Ψ

onde é uma matriz enviesada-Hermitiana, um elemento de e será mapeado com o tempo crescente por um elemento daquele grupo de parâmetros . ( fator no no RHS para que eu possa falar mais facilmente em termos teóricos de Lie). Dado o tamanho de , o habitat natural dos operadores é um grupo de mentiras completamente colossal, portanto PHEW! Sim, eu ainda estou falando em termos totalmente teóricos! Agora, o queK=D+VN×Nu(N)Ψexp(Kt)iK=D+VNU(N)D+Vparece? Ainda imaginando por enquanto, poderia ser pensada como uma versão de diferença finita de , em que é um potencial "médio" conveniente para o problema em questão.i2/(2m)i1V0+i1(V0V(x,y,z,t0))V0

Nós deixamos:

(3)D=i2m2i1V0V=i1(V0V(x,y,z,t))

Por que eu os dividi assim ficará claro abaixo.

O ponto sobre é que ele pode ser trabalhado analiticamente para uma onda plana: é um operador de multiplicação simples em coordenadas de momento. Portanto, para elaborar , aqui estão as três primeiras etapas de um ciclo SSFM / BPM:DΨexp(ΔtD)Ψ

  1. Atribua FFT ao conjunto de dados para transformá-lo em um conjunto de pesos de superposição de ondas planas: agora as coordenadas da grade foram alteradas de para ;ΨΨ~x,y,zkx,ky,kz
  2. Compartilhe simplesmente multiplicando cada ponto da grade por ;Ψ~exp(ΔtD)Ψ~exp(iΔt(V0kx2+ky2+kz2)/)
  3. Distribua FFT inverso para mapear nossa grade de volta paraexp(ΔtD)Ψ

    Agora, estamos de volta ao domínio da posição. Este é o melhor domínio para transmitir ao operador claro: aqui é um operador de multiplicação simples. Então, aqui está o seu último passo no seu ciclo algorítmico:VV

  4. Distribua o operador simplesmente multiplicando cada ponto da grade pelo fator de faseΨexp(ΔtV)Ψexp(iΔt(V0V(x,y,z,t))/)

.... e então você inicia sua próxima etapa e alterna repetidamente. Claramente, é muito fácil inserir potenciais de variação temporal no código.ΔtV(x,y,z,t)

Então você vê que simplesmente escolhe pequeno o suficiente para que a fórmula Trotter (1) entre em ação: você está simplesmente aproximando a ação do operador e você alterna com sua FFT entre coordenadas de posição e momento, ou seja, os domínios em que e são operadores simples de multiplicação.Δtexp(D+VΔt)exp(DΔt)exp(VΔt)VD

Observe que você está sempre transmitindo, mesmo no mundo discreto, operadores unitários: FFTs e fatores de fase pura.

Um ponto que você precisa ter cuidado é que, à medida que seu se torna pequeno, você deve garantir que o espaçamento da grade espacial também diminua. Caso contrário, suponha que o espaçamento da grade espacial seja . Então, o significado físico de uma etapa discreta é que os efeitos de difração estão viajando a uma velocidade ; ao simular as equações e guias de ondas de Maxwell, é necessário garantir que essa velocidade seja muito menor que . Ouso dizer que limites se aplicam à equação de Schrödinger: não tenho experiência direta aqui, mas parece divertido e talvez você possa postar seus resultados em algum momento!ΔtΔxΔx/Δtc

Um segundo ponto de "experiência" com esse tipo de coisa - eu quase apostaria que é assim que você seguirá suas idéias. Muitas vezes temos idéias que queremos fazer simulações simples, rápidas e sujas, mas nunca funciona dessa maneira! Eu começaria com o SSFM, como descrevi acima, pois é muito fácil executar e você verá rapidamente se seus resultados são físicos ou não. Posteriormente, você pode usar seu código, digamos, Mathematica SSFM, para verificar os resultados de um código mais sofisticado que você pode acabar criando, digamos, um código Crank Nicolson, seguindo as linhas da resposta de Kyle Kanos .


Limites de erro

A realização da fórmula de Dynkin do teorema de Baker-Campbell-Hausdorff:

exp(DΔt)exp(V)Δt)=exp((D+V)Δt+12[D,V]Δt2+)
convergindo para alguns mostra que o método é preciso segunda ordem e pode mostrar que:Δt>0

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

Em teoria, você pode, portanto, usar o termo para estimar o erro e defina seu acordo. Isso não é tão fácil quanto parece e, na prática, os limites acabam sendo estimativas aproximadas do erro. O problema é que:exp(V)Δt)exp(12[D,V]Δt2)Δt

Δt22[D,V]=iΔt22m(x2V(x,t)+2xV(x,t)x)

e não há prontamente transformados em coordenadas em que seja um operador de multiplicação simples. Portanto, você deve se contentar com e use-o para estimar seu erro, calculando para o seu solução em desenvolvimento atualmente e usando-a para definir seu[D,V]exp(12[D,V]Δt2)eiφΔt2(id(12[D,V]iφ(t))Δt2)(id(12[D,V]iφ(t))Δt2)ψψ(x,t)Δtimediatamente após cada ciclo do algoritmo. É claro que você pode fazer dessas idéias a base para um controlador de tamanho de etapa adaptável para sua simulação. Aqui é uma fase global retirada do conjunto de dados para minimizar a norma ; é claro que muitas vezes você pode eliminar uma fase global: dependendo do que você está fazendo com os resultados da simulação, muitas vezes não somos incomodados por uma fase constante global .φ(12[D,V]iφ(t))Δt2exp(φdt)

Um documento relevante sobre erros no SSFM / BPM é:

Lars Thylén. "O método de propagação de feixe: uma análise de sua aplicabilidade", Optical and Quantum Electronics 15 (1983) pp433-439 .

Lars Thylén pensa nos erros em termos teóricos que não são de Lie (os grupos de mentiras são meus propensos, então eu gosto de procurar interpretações deles), mas suas idéias são essencialmente as mesmas que as anteriores.


1
Rod, você provavelmente está ciente de que pode fazer melhor se usar a chamada aproximação de operador dividido, em que . De fato, você pode fazer uma divisão adicional para levar o erro a potências mais altas . Ver, por exemplo, Bandrauk e Shen, Chem. Phys. Lett. 176, 428 (1991). Obviamente, seu termo cinético não pode depender das coordenadas, ou seja, não funciona bem em coordenadas curvilíneas. Δ texp[Δt(D+V)]exp[ΔtV/2]exp[ΔtD]exp[ΔtV/2]Δt

1
Caso contrário, essa coisa de operador dividido, acoplada à avaliação FFT do operador de energia cinética, é um dos procedimentos padrão para resolver o TDSE em uma representação baseada em grade na Física Molecular.

@ perplexity Muito obrigado. É bom saber quais campos diferentes usam. A data de 1991 em sua referência é interessante: eu sempre tive certeza de que a ideia de duas etapas surgiu da simulação do guia de ondas no final da década de 1970 - então talvez eu esteja errado.

1
Você não está errado. Essa foi realmente a inspiração. O primeiro trabalho que traduz essas idéias para QM, que eu tenho conhecimento, é Feit, Fleck e Steiger, J. Comput. Phys. 47, 412 (1982), onde, se bem me lembro, eles usam essencialmente os mesmos truques com a vantagem de o operador aqui ser unitário por construção (diferente das ondas clássicas). A abordagem baseada na grade FFT para esse tipo de simulação foi proposta pela primeira vez por Ronnie Kosloff, acredito. Ele tem uma resenha muito boa sobre esse assunto em sua página da web.

Outra boa referência em meu campo é o livro de David Tannor sobre Mecânica Quântica: uma perspectiva dependente do tempo. Felicidades.

5

Eu posso recomendar o uso do método de domínio de tempo de diferença finita (FDTD). Até escrevi um tutorial há algum tempo que deveria responder à maioria das suas perguntas:

JR Nagel, "Uma revisão e aplicação do algoritmo no domínio do tempo com diferenças finitas aplicado à equação de Schrödinger", ACES Journal, vol. 24, nº 1, fevereiro de 2009

Eu tenho alguns códigos Matlab que funcionam muito bem para sistemas 1D. Se você tem experiência com o FDTD fazendo eletromagnetismo, também funciona muito bem para a mecânica quântica. Posso postar meus códigos se você estiver interessado.

Basicamente, ele apenas opera diretamente nas funções de onda, dividindo os derivativos em diferenças finitas. É meio semelhante ao esquema Crank-Nicholson, mas não exatamente. Se você conhece o FDTD da teoria das ondas eletromagnéticas, o FDTD será muito intuitivo ao resolver a equação de Schrodinger.


4

O método mais simples de diferença finita é rápido e fácil de entender, mas não é unitário no tempo - portanto, a probabilidade não é conservada. Crank-Nicholson-Crout calcula a média dos métodos de diferença finita para frente e para trás para produzir um método implícito / explícito híbrido que ainda é bastante fácil de entender e implementar e é unitário no tempo. Este site explica bem o método, fornece pseudocódigo e fornece as propriedades relevantes:

http://www.physics.utah.edu/~detar/phycs6730/handouts/crank_nicholson/crank_nicholson/ Nota: Há um sinal - faltando no LHS da equação um deste link, que se propaga por toda a página.

De onde vem a não-unidade?

Em uma casca de noz, resolver o TDSE se resume a descobrir como lidar com

|ψ(x,t)=eiHt|ψ(x,0)

que contém um operador diferencial em um exponencial.

A aplicação de uma diferença finita direta transforma o operador diferencial em uma matriz tridiagonal (convertendo os reais em uma grade) e o exponencial nos dois primeiros termos de sua série Taylor

eiHt1iHt

Essa discretização e linearização é o que dá origem à não-unidade. (Você pode mostrar que a matriz tridiagonal não é unitária pelo cálculo direto.) Combinar a diferença finita direta com a diferença finita anterior produz a aproximação

eiHt112iHt1+12iHt

que, gentilmente, é unitário (novamente, você pode mostrá-lo por computação direta).


Obrigado pela resposta rápida. Você poderia fornecer mais detalhes sobre esses dois métodos? Como eles funcionam e por quê? De onde vem a não-unidade?
Emilio Pisanty

Eu ficaria feliz em fornecer mais detalhes, mas para evitar perder meu público-alvo, seria útil saber quanta educação e experiência você teve em cada um dos seguintes campos: Cálculo, Equações Diferenciais, Álgebra Linear, Mecânica Quântica e Métodos numéricos (especificamente Métodos de diferença finita).

Por favor, assuma o quanto você precisa da física e da matemática padrão (embora as referências às partes mais complicadas provavelmente ajudem). Meus métodos numéricos estão um pouco enferrujados, no entanto.
Emilio Pisanty

Existem diferenças entre esta e a resposta de Kyle Kanos ? Quero dizer, não é óbvio como implementar sua última equação - como você escreveu, envolve a inversão de um operador completo - você está simplesmente dizendo que o método CN é simplesmente, através da solução de sua equação tridiagonal, funcionando ? Ou há uma sutileza que eu perdi? Na verdade, sua última equação é uma boa renderização, na medida em que torna explícita a unitariedade para a CN, fato que não é claro em muitas descrições da CN. (1+i2Ht)1(1+i2Ht)ψ

Não, é o mesmo algoritmo dado por Kyle Kanos. Eu apenas escrevi desta maneira para dar uma maneira diferente de ver. Eu esperava que fosse mais fácil conceituar - enquanto o dele é mais fácil de implementar. Sim, você acaba resolvendo uma equação tridiagonal. Havia um artigo antigo (1967) no AJP que não encontrei anteriormente, que o descreve muito bem: ergodic.ugr.es/cphys/lecciones/SCHROEDINGER/ajp.pdf Eles usaram o CN para produzir loops de filmes de 8 mm de pacotes de ondas gaussianas dispersando vários potenciais. Você ainda pode encontrar esses filmes em muitas bibliotecas de demonstração de física da universidade.

3

Algumas respostas e comentários aqui confundem confusamente o TDSE com uma equação de onda; talvez uma questão semântica, até certo ponto. O TDSE é a versão quantizada do hamiltoniano não relativista clássico Com as regras (como discutido no capítulo 1 de d'Espagnat, Fundamentos conceituais da mecânica quântica, https://philpapers.org/rec/ESPCFO ), portanto, lê portanto é claramente uma equação semelhante à difusão. Se alguém usou a energia relativística, que contém um termo E , uma equação de onda como

H=p22m+V(x)=E.
pix,  Eit,  xx,
[22mxx+V(x)]ψ=itψ,
2
xxψ=ttψ+
obteria (para V = 0 por simplicidade), como as equações de Pauli ou Klein-Gordon. Mas isso é, obviamente, uma questão completamente diferente.

Agora, voltando ao TDSE, o método óbvio é Crank-Nicolson, como já foi mencionado, porque é uma expansão de pequeno tempo que conserva a unitariedade da evolução (o FTCS, por exemplo, não). Para o caso 1-space-D, ele pode ser tratado como uma iteração de matriz, lendo com a matriz de identidade e (Detalhes, por exemplo, em Métodos numéricos para física, http://algarcia.org/nummeth/nummeth.html , de AL Garcia). Como mais claramente visto em condições de contorno periódicas, um espaço localizado

ψn+1=(I+iτ2H~)1(Iiτ2H~)ψn
Iipipips=eikx/
Hjk=(H~)jk=22m[δj+1,k+δj1,k2δjkh2]+Vjδjk.
ψ espalha no tempo: isso é esperado, porque o localizado inicial não é um auto-estatuto da equação estacionária de Schroedinger, mas uma superposição dela. O (partícula livre maciça clássica clássica) eigenstado com momento fixo (para o operador cinético não relativista) é simplesmente , ou seja, completamente deslocalizado conforme o princípio de Heisenberg, com densidade de probabilidade constante 1 / L em todos os lugares (observe que estou evitando problemas de normalização com estados contínuos fazendo minha partícula viver em uma linha finita e periodicamente repetida). Usando CN, a norma ψ| ip | 2dxcp=Ecicx=itψs=eikx/L
|ψ|2dx
é conservado, graças à unitariedade (esse não é o caso em outros esquemas, como o FTCS, por exemplo). Aliás, observe que a partir de uma energia exacta como com fixo, você obteria isto é, a equação de advecção, que não tem dispersão (se integrada adequadamente com Lax-Wendroff métodos) e seu pacote de ondas não se espalhará com o tempo nesse caso. O análogo quântico é a equação de Dirac de partículas sem massa.
cp=E
c
icx=it
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.