Shooting method e Método de Crank-Nicolson

De Física Computacional
Ir para navegação Ir para pesquisar

O objetivo deste trabalho é aplicar o Shooting method (método do chute) para encontrar as primeiras funções de onda espaciais da Equação de Schrödinger para o caso do poço de potencial infinito. Após, será realizada a evolução temporal através do Método de Crank-Nicolson.

Equação de Schrödinger

A equação de Schrödinger unidimensional pode ser escrita da seguinte maneira:

iΨt=22m2Ψx2+VΨ.

Para resolvê-la é necessário efetuar uma separação de variáveis:

Ψ(x,t)=ψ(x)φ(t).

Aplicando na primeira equação e separando os termos espaciais dos termos temporais, chega-se a uma equação com o seguinte formato:

i1φdφdt=22m1ψd2ψdx2+V.

Pelo fato da parte da esquerda ser dependente de t e a parte da direita ser dependente de x e de ambas estarem relacionadas por uma igualdade, é necessário que ambos os lados sejam constantes: em outras palavras, não é possível modificar um lado sem necessariamente alterar o outro. Através de um raciocínio perspicaz, a constante em questão será denominada E.

Parte temporal

A parte que diz respeito à evolução temporal:

dφdt=iEφ.

A solução geral possui o seguinte formato

φ(t)=CeiEt,

cuja constante C pode, neste caso, ser absorvida, de modo que

φ(t)=eiEt.

Parte espacial

Quanto à parte espacial, utilizando o mesmo raciocínio empregado anteriormente, a equação pode ser escrita como

22md2ψdx2+Vψ=Eψ

Para este caso, no entanto, não há uma única solução, pois esta depende do potencial V escolhido. Para o presente trabalho optou-se por trabalhar com o caso do poço infinito de potencial pelo fato das soluções analíticas já serem conhecidas, de modo a tornar possível avaliar os resultados numéricos obtidos à luz da solução analítica.

Poço de potencial infinito

Esquematicamente, tem-se:

Poço de potencial infinito

O potencial pode ser descrito como:

V(x)={0,se 0xL,,de outra forma.

Dentro do poço, onde $V=0$, o problema pode ser modelado da seguinte maneira

22md2ψdx2=Eψ,

ou

d2ψdx2=k2ψ,

onde

k2mE.

A solução é dada por

ψ(x)=Asen(kx)+Bcos(kx).

Aplicando as condições de contorno ψ(0)=ψ(L)=0 e efetuando a normalização da função de onda, obtém-se a solução geral

ψn(x)=2Lsen(nπLx),

cujas energias discretizadas são

En=2kn22m=n2π222mL2.

Utilizando a equação acima, pode-se calcular os valores da energia de cada estado estacionário. Para o caso de um elétron num poço hipotético de 1m, as energias referentes aos três estados estacionários são E1=0,376 eV, E2=1,504 eV e E3=3,384 eV.

Na próxima seção será feita uma estimativa dos valores acima expostos através do "Shooting method".

Shooting Method

Muitos métodos numéricos (e.g. Runge-Kutta, Forward Euler) requerem os valores da função e de sua derivada no ponto inicial. Acontece que podem haver problemas em que estes valores não estarão disponíveis, principalmente o valor da derivada em questão. Uma alternativa seria conjecturar o valor da condição inicial e integrar, através de um método apropriado, em direção à outra condição de contorno: um "chute" apropriado faria com que a integração evoluísse e retornasse um valor muito próximo, a depender da acurácia necessária, ao da condição de contorno. A ideia seria executar os seguintes passos:

  1. Supor um valor para a condição de contorno desconhecida (e.g. y(0) ou y(0));
  2. Integrar o problema através de um método conhecido até a próxima condição de contorno (e.g., y(L));
  3. Se o chute inicial não fez com que o sistema evoluísse até y(L), então deve-se supor outro valor para a condição inicial e repetir o procedimento.

O método descrito acima de forma simplificada recebe o nome, em inglês, de Shooting method, o que em português seria algo como "Método do tiro" ou "Método do chute". Na próxima seção esse método será aplicado para o caso do poço infinito de potencial.

Poço de potencial infinito

Seja a equação d2ψdx2=kψE, onde k=2m2.

Escrevendo com outra notação: ψ¨=kψE.

Dividindo o problema em Δx's pequenos, pode-se reescrever a equação acima da seguinte forma:

ψ¨=Δψ˙Δx=ψ2˙ψ1˙Δxψ2˙=ψ¨Δx+ψ1˙

.

Também:

ψ˙=ΔψΔx=ψ2ψ1Δxψ2=ψ˙Δx+ψ1

.

Além disso:

Δx=x2x1x2=x1+Δx

.

A integração, então, é realizada utilizando as relações 8, 9, 10 e 11, até que se atinja a borda do poço, isto é, x=L.

Com a discretização acima, foi possível implementar o algoritmo. Das condições de contorno do problema, sabe-se que ψ(0)=0, de modo que ψ1=0. No entanto, o valor da derivada ψ1˙ não é conhecido, de modo que supõe-se que seja uma constante, a saber, ψ1˙=1. Chutando que E=0, utilizando a massa do elétron e L=1, obtém-se a primeira solução estacionária:

Solução estacionária (n=1)

Pode-se observar que o valor de energia obtido numericamente é cerca de 2% menor do que aquele obtido analiticamente.

Para o caso n=2:

Solução estacionária (n=2)

Aqui, o valor obtido numericamente é aproximadamente 5% maior do que o valor obtido analiticamente.

Para o caso n=3:

Solução estacionária (n=3)

Para este caso, o valor numérico é cerca de 1% menor do que o valor analítico.

Método de Crank-Nicolson

Seja a equação diferencial

ft=L1rf(r,t)

,

onde Lr é um operador diferencial linear em r.

Em forma discretizada no tempo, pode-se escrever

fn+1(r)fn(r)=Lrfn(r)dt

.

Por simetria, pode-se escrever a equação acima utilizando um f à direita:

fn+1(r)fn(r)=Lrfn+1(r)dt.

A equação acima é dita "explícita" pois, para o cálculo de fn+1, só é utilizado o valor já explicitamente calculado fn. Já a equação anterior é chamada implícita pois fn+1 está presente explicitamente. Em termos numéricos, um método peca pelo excesso enquanto o outro o faz pela falta, de modo que um resultado mais satisfatório pode ser obtido ao tomar-se a média dos dois:

fn+1(r)fn(r)=dt2(Lrfn+1(r)+Lrfn(r)).

Após alguma álgebra:

fn+1(r)=(1dt2Lr)1(1+dt2Lr)fn(r)

.

Chamando M=I+dt2Lr e E=Idt2Lr, onde I indica a matriz identidade, pode-se reescrever a equação acima na seguinte maneira:

fn+1=E1Mfn

.

Trata-se do método de Crank-Nicolson, mais estável e preciso do que os métodos implícito e explícito. Caso o problema apresentar condições de contorno, estas serão devidamente implementadas nos elementos das matrizes M e E.

Equação de Schrödinger

Seja a equação de Schrödinger unidimensional

iΨt=22m2Ψx2+VΨ

.

Efetuando a discretização das variáveis através do Método de Crank-Nicolson, obtém-se:

Ψt=Ψjn+1ΨjnΔt;
22m2Ψx2=22m[(Ψj+1n+12Ψjn+1+Ψj1n+1)+(Ψj+1n2Ψjn+Ψj1n)2Δx2];
VΨ=12[Vjn+1Ψjn+1+VjnΨjn].

Substituindo as discretizações na eq. de Schrödinger:

i(Ψjn+1ΨjnΔt)=24m(Δx)2[(Ψj+1n+12Ψjn+1+Ψj1n+1)+(Ψj+1n2Ψjn+Ψj1n)]+12[Vjn+1Ψjn+1+VjnΨjn].

Supondo =m=1 e separando as partes explícita e implícita, obtém-se, após alguma álgebra:

Ψjn+1[1+iΔt2(1Δx2+Vjn+1)]+Ψj1n+1[iΔt4Δx2]+Ψj+1n+1[iΔt4Δx2]=Ψjn[1iΔt2(1Δx2+Vjn)]+Ψj1n[iΔt4Δx2]+Ψj+1n[iΔt4Δx2].

Definindo

aiΔt4(Δx)2

e

bj(1+iΔt2)(1Δx2+Vj),

obtém-se:

Ψjn+1bj+Ψj1n+1a+Ψj+1n+1a=Ψjnbj*+Ψj1na*+Ψj+1na*.

A equação acima pode ser escrita em forma matricial, de modo que:

C^Ψn+1=D^Ψn,

onde

C^=[b0a0...0ab1a0...00ab2a0000.........abj1a00...0abj]

e

D^=[b0*a0...0a*b1*a*0...00a*b2*a*0000.........a*bj1*a*00...0a*bj*]

Para avaliar a evolução temporal do sistema, é necessário encontrar Ψn+1. Utilizando resultados anteriores, pode-se obter Ψn+1 através da seguinte relação:

Ψn+1=C^1C*^Ψn

Poço de potencial infinito

Para o presente caso a ideia é obter a evolução temporal do sistema, impondo condições de contorno iguais a zero, de modo que os operadores C^ e D^ ficam:

C^=[100...0aba0...00aba0000.........aba00...001]

e

D^=[100...0a*b*a*00...00a*b*a*0000.........a*b*a*00...001]

A ideia é que o primeiro e o último termo do tanto do vetor Ψn quanto do vetor Ψn+1 seja constante, o que satisfaz as condições de contorno do presente caso. Também é interessante notar que os índices b são todos constantes, visto que no presente caso o potencial dentro do poço é nulo.

Implementando o algoritmo descrito acima, obteve-se:

Evolução temporal (n=1)

Evolução temporal para o caso n=1. Nesta animação e nas subsequentes, foram sobrepostas as partes real e imaginária da equação de Schrödinger: a linha azul diz respeito à parte real enquanto a amarela, à imaginária.

Evolução temporal (n=2)

Na figura acima, tem-se a evolução do caso n=2.

Evolução temporal (n=3)

Por último, o caso n=3.

Códigos

Crank-Nicolson (Poço de potencial infinito)

Shooting method (Poço de potencial infinito)

Referências

Griffiths, David J. Introduction to Quantum Mechanics. Pearson Prentice Hall, 2ª ed. 2005.

Giordano, N. J. Nakanishi, H. Computational Physics. Pearson Prentice Hall, 2ª ed. 2006.

Scherer, C. Métodos Computacionais da Física. Livraria da Física, 2ª ed. 2010.