Вы находитесь на странице: 1из 25

Integração da equação de Schrödinger

Os métodos de integração de equações diferenciais apresentados atá agora pressupõem que as condições fronteira do problema são dadas no ponto inicial

Problemas deste tipo (Initial Value Problems) são, por exemplo, os problemas típicos da mecânica newtoniana, em que são conhecidas a posição e a velocidade inicial de todas as partículas em jogo

Integração da equação de Schrödinger

Mas, tipicamente, ao integrar a equação de

Schrödinger, as condições fronteira são dadas em

pontos diferentes

o valor da função de onda na

origem e no infinito, o valor da função de onda nos dois extremos de uma caixa, etc.

Esta classe de problemas (Boundary Value Problems) pode obviamente ser resolvida recorrendo aos integradores “standard” (Runge- Kutta, por exemplo), mas é preciso reformular o processo de inclusão das condições fronteira

Integração da equação de Schrödinger

Exemplo : partícula numa caixa de paredes infinitas

V ( x ) = 0 ,

0 x a

1 , x< 0 ou x>a

A equação de Schrödinger fica:

1

2 00 ( x ) = E ( x )

( x ) = 0 se x < 0 ou x>a

Integração da equação de Schrödinger

Para integrar a partir de x=0, e como a equação é de 2ª ordem, necessitamos de duas condições fronteira, mas só temos uma:

(0) = 0

O mesmo se passa se quisermos integrar a equação partindo de x=a :

( a )=0

Integração da equação de Schrödinger

Como podemos então proceder?

Escolher arbitrariamente um valor para a derivada em x=0

Integrar de x=0 até um certo x=x m

Escolher arbitrariamente um valor para a derivada em x=a

Integrar de x=a até x=x m

! ( x m )
! ( x m )
( x m )
(
x m )

Integração da equação de Schrödinger

Para fazer estas integrações é necessário escolher um valor para a energia, visto ainda não conhecermos os seus valores próprios

Podemos comparar as duas integrações em x m e analisar o resultado

Como a função de onda tem de ser contínua em x m , podemos multiplicar uma delas por um factor de escala apropriado:

( x )

( x )

! ( x m )

( x m )

F90
F90

PROGRAM numerov

IMPLICIT NONE INTEGER, PARAMETER :: r8=8, n_esq=1000,n_dir=1500 INTEGER :: i REAL(r8), PARAMETER :: a=1.0_r8, dx=a/(n_esq+n_dir-2) REAL(r8) :: psi_esq(n_esq), psi_dir(n_dir), x_esq, x_dir, E, f

E=4.0

psi_esq(1) = 0.0_r8 psi_esq(2) = 0.1_r8 x_esq = dx DO i=2, n_esq-1 psi_esq(i+1)=(psi_esq(i)*(2.0_r8+5.0_r8*f(x_esq,E)*dx**2/6.0_r8)+ & psi_esq(i-1)*(f(x_esq-dx,E)*dx**2/12.0_r8-1.0_r8))/ &

(1.0_r8-f(x_esq+dx,E)*dx**2/12.0_r8)

x_esq = x_esq + dx END DO

psi_dir(1) = 0.0_r8 psi_dir(2) = 0.33_r8 x_dir = a-dx DO i=2, n_dir-1 psi_dir(i+1)=(psi_dir(i)*(2.0_r8+5.0_r8*f(x_dir,E)*dx**2/6.0_r8)+ & psi_dir(i-1)*(f(x_dir+dx,E)*dx**2/12.0_r8-1.0_r8))/ &

(1.0_r8-f(x_dir-dx,E)*dx**2/12.0_r8)

x_dir = x_dir - dx END DO

END PROGRAM numerov

F90
F90
Para escrever a função de onda
Para
escrever
a função
de onda

x_esq = 0.0_r8 DO i=1, n_esq WRITE(*,*) x_esq, psi_esq(i) x_esq = x_esq + dx END DO

x_dir = a-(n_dir-1)*dx DO i=n_dir, 1, -1 WRITE(*,*) x_dir, (psi_esq(n_esq)/psi_dir(n_dir))*psi_dir(i) x_dir = x_dir + dx END DO

x_dir = x_dir + dx END DO FUNCTION f(x,E) IMPLICIT NONE INTEGER, PARAMETER :: r8 =

FUNCTION f(x,E)

IMPLICIT NONE INTEGER, PARAMETER :: r8 = 8 REAL(r8), INTENT(IN) :: x, E REAL(r8) :: f

f = -2.0_r8*E

END FUNCTION f

Integração da equação de Schrödinger

100 E=1 90 80 70 60 50 40 30 20 10 0 0 0.1 0.2
100
E=1
90
80
70
60
50
40
30
20
10
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x/a
psi(x)

Integração da equação de Schrödinger

O resultado não foi brilhante

Além de contínua em x m , a função de onda devia também ter derivada contínua nesse ponto

Que podemos fazer?

Escolher outro valor para a energia!

Integração da equação de Schrödinger

100 E=1 E=2 90 80 70 60 50 40 30 20 10 0 0 0.1
100
E=1
E=2
90
80
70
60
50
40
30
20
10
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x/a
psi(x)

Integração da equação de Schrödinger

100 E=1 E=2 90 E=4 80 70 60 50 40 30 20 10 0 0
100
E=1
E=2
90
E=4
80
70
60
50
40
30
20
10
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x/a
psi(x)

Integração da equação de Schrödinger

O que procuramos?

o valor de E para o qual a derivada da função de onda é contínua em x m

d ! ( x )

dx

x = x m

= d

( x )

dx

d ! ( x ; E )

dx

x = x m

As soluções dependem do valor escolhido para E
As soluções
dependem do valor
escolhido para E

x = x m

= 0

x = x m

d

( x ; E )

dx

Integração da equação de Schrödinger

Pode-se então definir uma função

z ( E ) = d ! ( x ; E )

dx

x = x m

d

( x ; E )

dx

x = x m

=

! (x m ; E ) ! ( x m h; E )

h

(x m + h; E )

( x m ; E )

h

=

2 ! ( x m ; E ) ! ( x m h ; E )

( x m + h ; E )

h

que

e procurar os seus zeros serão os valores próprios da energia!

Integração da equação de Schrödinger

80 n=1 n=4 70 E n = n 2 ⇡ 2 2 60 50 40
80
n=1
n=4
70
E n = n 2 ⇡ 2
2
60
50
40
30
20
10
0
-10
-20
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x/a
psi(x)

Integração da equação de Schrödinger

As funções de onda não ficam normalizadas

Olhando para o problema inicial, vemos que foi necessário arbitrar 3 valores:

As derivadas da função de onda nos extremos da caixa

A energia do estado

Integração da equação de Schrödinger

Mas podemos impôr 3 condições:

Continuidade da função de onda em x m

Continuidade da derivada da função de onda em x m

Normalização da função de onda

Zeros de uma função

Frequentemente é necessário encontrar o zero de uma função complicada resolvendo uma equação não linear

Vamos começar por considerar apenas funções de uma variável (voltaremos a este problema mais tarde )

Há vários métodos numéricos bastante simples e poderosos para o fazer, sendo o mais robusto deles o chamado método da bissecção

Método da bissecção

Seja f(x)=0 a equação que pretendemos resolver

Um sinal de que há um zero de f num certo intervalo [a,b] é

f ( a ) · f ( b ) < 0

Comecemos então por procurar dois pontos a e b para os quais esta condição se verifique

Método da bissecção

Se

Determina-se f(c), em que:

f ( a ) · f ( c ) < 0

f ( c ) · f ( b ) < 0

c = a + b a

2

f ( c ) · f ( b ) < 0 c = a + b

há um zero de f em [a,c]

< 0 c = a + b a 2 há um zero de f em [a,c]

há um zero de f em [c,b]

Recomeça-se o processo com o novo intervalo

Método da bissecção

Método da bissecção f(x) a e d c b x Tuesday, March 27, 12

f(x)

a e d c b
a
e d
c
b
Método da bissecção f(x) a e d c b x Tuesday, March 27, 12

x

Método da falsa posição

O método da bissecção é extremamente robusto mas não é muito rápido

Em muitos casos é possível melhorar o processo de busca do zero de f se o novo extremo do intervalo de procura for encontrado fazendo passar uma recta pelos extremos do intervalo e determinando o ponto onde essa recta cruza o eixo

Este método é conhecido por método da falsa posição e é, em geral, mais rápido que o método da bissecção. Mas não é tão robusto, podendo não encontrar o zero

Método da falsa posição

Método da falsa posição f(x) a e d c b x Tuesday, March 27, 12

f(x)

a e d c b
a
e d
c
b
Método da falsa posição f(x) a e d c b x Tuesday, March 27, 12

x

Método da secante

Um outro método, semelhante ao método da falsa posição, é o método da secante

Se [ x n , x n+1 ] for o intervalo de busca do zero na enésima iteração, o intervalo para a iteração seguinte é [ x n+1 , x n+2 ] sendo x n+2 o ponto onde a recta que passa pelos pontos ( x n , f(x n )) e ( x n+1 , f(x n+1 )) intersecta o eixo dos x

Neste método não há garantia que o zero se encontre no intervalo de busca

Tal como o método da falsa posição, este método nem sempre é bem sucedido!

Método da secante

Método da secante f(x) a c b x d Tuesday, March 27, 12

f(x)

a c b
a
c
b
Método da secante f(x) a c b x d Tuesday, March 27, 12

x

d

Método da secante f(x) a c b x d Tuesday, March 27, 12