Shooting method e Método de Crank-Nicolson: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
Dzorrer (discussão | contribs)
Dzorrer (discussão | contribs)
Linha 98: Linha 98:


==Método de Crank-Nicolson==
==Método de Crank-Nicolson==
Seja a equação diferencial <math>\frac{\partial f}{\partial t}=L_1{\textbf{r}}f(\textbf{r},t)</math>, onde <math>L_{\textbf{r}}</math> é um operador diferencial linear em '''r'''.
Seja a equação diferencial  
<center><math>\frac{\partial f}{\partial t}=L_1{\textbf{r}}f(\textbf{r},t)</math></center>,  
onde <math>L_{\textbf{r}}</math> é um operador diferencial linear em '''r'''.


Em forma discretizada no tempo, pode-se escrever
Em forma discretizada no tempo, pode-se escrever
Linha 114: Linha 116:
f^{n+1}(\textbf{r})-f^{n}(\textbf{r})=\frac{dt}{2}(L_{\textbf{r}}f^{n+1}(\textbf{r})+L_{\textbf{r}}f^n(\textbf{r})).
f^{n+1}(\textbf{r})-f^{n}(\textbf{r})=\frac{dt}{2}(L_{\textbf{r}}f^{n+1}(\textbf{r})+L_{\textbf{r}}f^n(\textbf{r})).
</math></center>
</math></center>
Após alguma álgebra:
<center><math> f^{n+1}(\textbf{r})=\left(1-\frac{dt}{2}L_{\textbf{r}}\right)^{-1}\left(1+\frac{dt}{2}L_{\textbf{r}}\right)f^{n}(\textbf{r}) </math></center>.
Chamando <math> M=I+\frac{dt}{2}L_{\textbf{r}} </math> e <math> E=I-\frac{dt}{2}L_{\textbf{r}} </math>, onde ''I'' indica a matriz identidade, pode-se reescrever a equação acima na seguinte maneira:
<center><math> f^{n+1}=E^{-1}Mf^{n} </math></center>.
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 apropriadamente colocadas nos elementos das matrizes ''M'' e ''E''.

Edição das 21h19min de 12 de fevereiro de 2023

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, 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 4% 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 apropriadamente colocadas nos elementos das matrizes M e E.