Método de Hückel
Contents
16. Método de Hückel#
El método de Hückel fue propuesto por Erich Hückel en 1930 y permite modelar de una forma muy aproximada a sistemas \(\pi\) conjugados, el cual establece un Hamiltoniano para los electrones \(\pi\).
Descripción del Hamiltoniano de electrones \(\pi\)
donde a \(h^{\rm eff}(i)\) se le conoce como Hamiltoniano efectivo, y representa las interacciones promediadas del i-ésimo electrón \(\pi\) con los núcleos y los otros electrones. Se debe cumplir la ecuación
donde \(\phi_i\) son los orbitales moleculares de Hückel. Aplicaremos la combinación lineal de orbitales atómicos
donde \( \mu (\vec{r}-\vec{r}_i)\) es un orbital atómico \(\mu\) centrado en la posición del núcleo \(i\) (\(\vec{r}_i\)).
Determinaremos los coeficientes que minimicen la energía, resolviendo la ecuación del método variacional lineal
Importe las siguientes librerías
numpy
sympy
pyplot de matplotlib
# Librerías
import numpy as np
import sympy as sp
from matplotlib import pyplot as plt
El método de Hückel implica las siguientes aproximaciones
El traslape entre el mismo orbital es uno, y entre orbitales distintos es cero.
Los elementos diagonales, \(h^{\rm eff}_{ii}\) valen \(\alpha\)
Los elementos \(h^{\rm eff}_{ij}\) valen \(\beta\) si el i-ésimo átomo y el j-ésimo átomo son vecinos, y cero si no lo son.
El valor de \(\alpha\) y \(\beta\) es negativo.
16.1. Butadieno#
Considere al butadieno con la numeración que se muestra sobre cada carbono.
Defina los símbolos \(\alpha\) y \(\beta\) con sympy.
# Defina alpha y beta
alpha = sp.Symbol("alpha")
beta = sp.Symbol("beta")
Construya la matriz S de \(4 \times 4\), donde cada columna y cada renglón corresponde a un renglón según su numeración. Por ejemplo, la primera columna corresponde al carbono con el número 1, la segunda columna al carbono con el número 2, etc. Recuerde que
Note que \(S\) es la matriz identidad.
S = sp.zeros(4)
S[0,0] = 1
S[1,1] = 1
S[2,2] = 1
S[3,3] = 1
S
Construya la matriz \(H\) de \(4 \times 4\), donde cada columna y cada renglón corresponde a un renglón según su numeración. Por ejemplo, la primera columna corresponde al carbono con el número 1, la segunda columna al carbono con el número 2, etc. Recuerde que
# Matriz H
H = sp.zeros(4)
H[0,0] = alpha
H[1,1] = alpha
H[2,2] = alpha
H[3,3] = alpha
H[0,1] = beta
H[1,0] = beta
H[1,2] = beta
H[2,1] = beta
H[2,3] = beta
H[3,2] = beta
H
Hay que resolver
Note que como \(S\) es la matriz identidad, en realidad hay que resolver
es decir, hay que calcular los vectores y valores propios de \(H\).
Para ello utilizaremos la instrucción
H.eigenvects(simplify=True)
El primer número es el valor propio (energía orbital), el segundo número su repetición (degeneración) y el tercer número son los coeficientes no normalizados (orbital molecular).
# Valores y vectores propios de H
sp.pprint(H.eigenvects(simplify=True))
⎡⎛ ⎡⎡ -1 ⎤⎤⎞ ⎛ ⎡⎡ 1 ⎤⎤⎞ ⎛ ⎡⎡ -1 ⎤⎤⎞ ⎛ ⎡⎡ 1 ⎤⎤⎞⎤
⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥
⎢⎜ ⎢⎢ 1 √5 ⎥⎥⎟ ⎜ ⎢⎢1 √5⎥⎥⎟ ⎜ ⎢⎢ 1 √5 ⎥⎥⎟ ⎜ ⎢⎢1 √5⎥⎥⎟⎥
⎢⎜ ⎢⎢ ─ - ── ⎥⎥⎟ ⎜ ⎢⎢─ + ──⎥⎥⎟ ⎜ ⎢⎢ ─ + ── ⎥⎥⎟ ⎜ ⎢⎢─ - ──⎥⎥⎟⎥
⎢⎜ β √5⋅β ⎢⎢ 2 2 ⎥⎥⎟ ⎜ β √5⋅β ⎢⎢2 2 ⎥⎥⎟ ⎜ √5⋅β β ⎢⎢ 2 2 ⎥⎥⎟ ⎜ √5⋅β β ⎢⎢2 2 ⎥⎥⎟⎥
⎢⎜α - ─ + ────, 1, ⎢⎢ ⎥⎥⎟, ⎜α + ─ + ────, 1, ⎢⎢ ⎥⎥⎟, ⎜α - ──── - ─, 1, ⎢⎢ ⎥⎥⎟, ⎜α - ──── + ─, 1, ⎢⎢ ⎥⎥⎟⎥
⎢⎜ 2 2 ⎢⎢ 1 √5⎥⎥⎟ ⎜ 2 2 ⎢⎢1 √5⎥⎥⎟ ⎜ 2 2 ⎢⎢ √5 1⎥⎥⎟ ⎜ 2 2 ⎢⎢1 √5⎥⎥⎟⎥
⎢⎜ ⎢⎢- ─ + ──⎥⎥⎟ ⎜ ⎢⎢─ + ──⎥⎥⎟ ⎜ ⎢⎢- ── - ─⎥⎥⎟ ⎜ ⎢⎢─ - ──⎥⎥⎟⎥
⎢⎜ ⎢⎢ 2 2 ⎥⎥⎟ ⎜ ⎢⎢2 2 ⎥⎥⎟ ⎜ ⎢⎢ 2 2⎥⎥⎟ ⎜ ⎢⎢2 2 ⎥⎥⎟⎥
⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥
⎣⎝ ⎣⎣ 1 ⎦⎦⎠ ⎝ ⎣⎣ 1 ⎦⎦⎠ ⎝ ⎣⎣ 1 ⎦⎦⎠ ⎝ ⎣⎣ 1 ⎦⎦⎠⎦
Extra. Dibuje a mano una representación esquemática del diagrama de orbitales moleculares según las energías que obtuvo. Las energías son
alpha = -1
beta = -1
plt.hlines(alpha + (-1-np.sqrt(5))/2*beta,1,2,label=r'$\varepsilon_1 = \alpha + \left(\frac{-1-\sqrt{5}}{2}\right)\beta$',colors='y')
plt.hlines(alpha + (1-np.sqrt(5))/2*beta,1,2,label=r'$\varepsilon_1 = \alpha + \left(\frac{1-\sqrt{5}}{2}\right)\beta$',colors='r')
plt.hlines(alpha + (-1+np.sqrt(5))/2*beta,1,2,label=r'$\varepsilon_1 = \alpha + \left(\frac{-1+\sqrt{5}}{2}\right)\beta$',colors='b')
plt.hlines(alpha + (1+np.sqrt(5))/2*beta,1,2,label=r'$\varepsilon_1 = \alpha + \left(\frac{1+\sqrt{5}}{2}\right)\beta$',colors='g')
plt.xlim(0,4)
plt.legend()
plt.show()
16.2. Benceno#
Considere al benceno con la numeración que se muestra sobre cada carbono.
Defina los símbolos \(\alpha\) y \(\beta\) con sympy.
# Defina alpha y beta
alpha = sp.Symbol("alpha")
beta = sp.Symbol("beta")
Construya la matriz S de \(6 \times 6\), donde cada columna y cada renglón corresponde a un renglón según su numeración.
S = sp.zeros(6)
S[0,0] = 1
S[1,1] = 1
S[2,2] = 1
S[3,3] = 1
S[4,4] = 1
S[5,5] = 1
S
Construya la matriz \(H\) de \(4 \times 4\), donde cada columna y cada renglón corresponde a un renglón según su numeración. Por ejemplo, la primera columna corresponde al carbono con el número 1, la segunda columna al carbono con el número 2, etc. Recuerde que
# Matriz H
H = sp.zeros(6)
H[0,0] = alpha
H[1,1] = alpha
H[2,2] = alpha
H[3,3] = alpha
H[4,4] = alpha
H[5,5] = alpha
H[0,1] = beta
H[0,5] = beta
H[1,0] = beta
H[1,2] = beta
H[2,1] = beta
H[2,3] = beta
H[3,2] = beta
H[3,4] = beta
H[4,3] = beta
H[4,5] = beta
H[5,4] = beta
H[5,0] = beta
H
Note que \(H\) en benceno es similar, pero no igual al caso del butadieno.
Hay que resolver
Note que como \(S\) es la matriz identidad, en realidad hay que resolver
# Valores y vectores propios de H
sp.pprint(H.eigenvects(simplify=True))
⎡⎛ ⎡⎡-1⎤⎤⎞ ⎛ ⎡⎡-1⎤ ⎡-1⎤⎤⎞ ⎛ ⎡⎡-1⎤ ⎡1 ⎤⎤⎞ ⎛ ⎡⎡1⎤⎤⎞⎤
⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥
⎢⎜ ⎢⎢1 ⎥⎥⎟ ⎜ ⎢⎢1 ⎥ ⎢0 ⎥⎥⎟ ⎜ ⎢⎢-1⎥ ⎢0 ⎥⎥⎟ ⎜ ⎢⎢1⎥⎥⎟⎥
⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥
⎢⎜ ⎢⎢-1⎥⎥⎟ ⎜ ⎢⎢0 ⎥ ⎢1 ⎥⎥⎟ ⎜ ⎢⎢0 ⎥ ⎢-1⎥⎥⎟ ⎜ ⎢⎢1⎥⎥⎟⎥
⎢⎜α - 2⋅β, 1, ⎢⎢ ⎥⎥⎟, ⎜α - β, 2, ⎢⎢ ⎥, ⎢ ⎥⎥⎟, ⎜α + β, 2, ⎢⎢ ⎥, ⎢ ⎥⎥⎟, ⎜α + 2⋅β, 1, ⎢⎢ ⎥⎥⎟⎥
⎢⎜ ⎢⎢1 ⎥⎥⎟ ⎜ ⎢⎢-1⎥ ⎢-1⎥⎥⎟ ⎜ ⎢⎢1 ⎥ ⎢-1⎥⎥⎟ ⎜ ⎢⎢1⎥⎥⎟⎥
⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥
⎢⎜ ⎢⎢-1⎥⎥⎟ ⎜ ⎢⎢1 ⎥ ⎢0 ⎥⎥⎟ ⎜ ⎢⎢1 ⎥ ⎢0 ⎥⎥⎟ ⎜ ⎢⎢1⎥⎥⎟⎥
⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥
⎣⎝ ⎣⎣1 ⎦⎦⎠ ⎝ ⎣⎣0 ⎦ ⎣1 ⎦⎦⎠ ⎝ ⎣⎣0 ⎦ ⎣1 ⎦⎦⎠ ⎝ ⎣⎣1⎦⎦⎠⎦
Extra. Dibuje una representación esquemática del diagrama de orbitales moleculares según las energías que obtuvo. Las energías son
Note que hay degeneración.
alpha = -1
beta = -1
plt.hlines(alpha - 2*beta,1,2,label=r'$\varepsilon_1 = \alpha - 2\beta$',colors='g')
plt.hlines(alpha - beta,0,1,label=r'$\varepsilon_2 = \alpha - \beta$',colors='b')
plt.hlines(alpha - beta,2,3,label=r'$\varepsilon_3 = \alpha - \beta$',colors='b')
plt.hlines(alpha + beta,0,1,label=r'$\varepsilon_4 = \alpha + \beta$',colors='r')
plt.hlines(alpha + beta,2,3,label=r'$\varepsilon_5 = \alpha + \beta$',colors='r')
plt.hlines(alpha + 2*beta,1,2,label=r'$\varepsilon_6 = \alpha + 2\beta$',colors='y')
plt.xlim(0,4)
plt.legend()
plt.show()
16.3. Referencias#
E.F. Healy, Huckel Calculations using Mathematica, J. Chem. Educ. 72, A120 (1995).
R.M. Hanson, Huckel Determinant Solver, J. Chem. Educ. 79, 1379 (2002).
L.J. Schaad y B.A. Hess, Huckel theory and aromatically, J. Chem. Educ. 51, 640 (1974).
Z. Chen, Graphical Representation of Hückel Molecular Orbitals, J. Chem. Educ. 97, 448 (2020).
P. W. Atkins, y R. Friedman, Molecular Quantum Mechanics (Oxford University Press, 2005).