RによるHückel分子軌道法計算

  1. 行列要素を記述し、関数matrixで行列に変換します。
  2. 関数eigenで固有値と固有ベクトルを求めます。

Ethylene

H <- matrix(c(0, 1, 1, 0), ncol=2)

H

    [,1] [,2]
[1,]  0   1
[2,]  1   0

eigen(H)

$values
[1]   1   -1

$vectors
        [,1]           [,2]
[1,] 0.7071068 -0.7071068
[2,] 0.7071068 0.7071068

E_1 =  α + β      \[CurlyPhi]_1 = c_1 (φ_1 + φ_2)
E_2 =  α - β      \[CurlyPhi]_1 = c_2 (φ_1 - φ_2)

と求められました。

Allyl

H <- matrix(c(0, 1, 0, 1, 0, 1, 0, 1, 0), ncol=3)

H

      [,1] [,2]  [,3]
[1,]   0    1    0
[2,]   1    0    1
[3,]   0    1    0

eigen(H)

$values
[1] 1.414214e+00 1.554312e-15 -1.414214e+00

$vectors
        [,1]               [,2]              [,3]
[1,] 0.5000000   -7.071068e-01   -0.5000000
[2,] 0.7071068   -9.420555e-16   0.7071068
[3,] 0.5000000   7.071068e-01   -0.5000000

E_1 =  α + 1.414 β      \[CurlyPhi]_1 = c_1 (φ_1 + 1.414 φ_2 + φ_3)
E_2 =  α                      \[CurlyPhi]_2 = c_2 (φ_1 - φ_2)
E_3 =  α - 1.414β       \[CurlyPhi]_3 = c_1 (φ_1 - 1.414 φ_2 + φ_3)

と求められました。

Butadiene

H <- matrix(c(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0), ncol=4)

H

      [,1]  [,2]  [,3]  [,4]
[1,]   0     1    0    0
[2,]   1     0    1    0
[3,]   0     1    0    1
[3,]   0     0    1    0

eigen(H)

$values
[1] 1.618034   0.618034  -0.618034  -1.618034

$vectors
        [,1]          [,2]           [,3]          [,4]
[1,] 0.371748   0.601501    0.601501   0.371748
[2,] 0.601501   0.371748   -0.371748  -0.601501
[3,] 0.601501  -0.371748   -0.371748   0.601501
[4,] 0.371748  -0.601501    0.601501  -0.371748

  E_1 =  α + 1.618β    
  E_2 =  α + 0.618β     
  E_3 =  α  - 0.618β    
   =  α - 1.618β     

 と求められました。


メニューに戻る