You are on page 1of 11

Degenerancia_caja_3D

June 10, 2020

0.1 Análisis computacional de los grados de degenerancia para el pozo de po-


tencial infinito en 3D

[2]: import numpy as np


from numpy import linalg as la
import matplotlib.pyplot as plt
import pandas as pd

Hacemos el análisis para 1,2,3 y comparar el resultado obtenido a mano.


[3]: A=[]

for i in range (1,4):


for j in range (1,4):
for k in range (1,4):

a=[]
a.append(i)
a.append(j)
a.append(k)
A.append(a)

AA=np.array(A)
n2=[]

for i in range (np.shape(AA)[0]):

n2.append(np.inner(AA[i],AA[i]))

N2=np.array(n2)

unique_elements, counts_elements = np.unique(N2, return_counts=True)


values= np.array(unique_elements)
freq= np.array(counts_elements)

1
#plt.figure(figsize=(50,50))
plt.plot(values,freq,'o')
plt.xlabel("Niveles")
plt.ylabel("Grado de degenerancia")
plt.grid()
plt.yticks(np.arange(0, freq.max()+1, 1))
plt.xticks(np.arange(0, values.max()+1, 1))
cur_axes = plt.gca()
cur_axes.axes.get_xaxis().set_ticklabels([])

[3]: []

Hacemos el análisis para un conjunto de numeros de 1 a 10


[21]: A=[]

for i in range (1,11):


for j in range (1,11):
for k in range (1,11):

a=[]
a.append(i)
a.append(j)
a.append(k)
A.append(a)

2
AA=np.array(A)
n2=[]

for i in range (np.shape(AA)[0]):

n2.append(np.inner(AA[i],AA[i]))

N2=np.array(n2)

unique_elements, counts_elements = np.unique(N2, return_counts=True)


values= np.array(unique_elements)
freq= np.array(counts_elements)

plt.figure(figsize=(100,30))
plt.plot(values,freq,'o', markersize=40)
plt.xlabel("Niveles",fontsize=100)
plt.ylabel("Grado de degenerancia",fontsize=100)
plt.grid()
plt.yticks(np.arange(0, freq.max()+1, 1))
plt.xticks(np.arange(0, values.max()+1, 1))
cur_axes = plt.gca()
cur_axes.axes.get_xaxis().set_ticklabels([])

[21]: []

Realizamos una tabla como la hecha a mano para más niveles de energía
[8]: d = {'Nivel energía': np.arange(1,len(values)+1),'Valor de N': values,␣
,→'Degenerancia': freq}

df = pd.DataFrame(data=d)
print(df.to_string(index=False))

3
Nivel energía Valor de N Degenerancia
1 3 1
2 6 3
3 9 3
4 11 3
5 12 1
6 14 6
7 17 3
8 18 3
9 19 3
10 21 6
11 22 3
12 24 3
13 26 6
14 27 4
15 29 6
16 30 6
17 33 6
18 34 3
19 35 6
20 36 3
21 38 9
22 41 9
23 42 6
24 43 3
25 44 3
26 45 6
27 46 6
28 48 1
29 49 6
30 50 6
31 51 6
32 53 6
33 54 12
34 56 6
35 57 6
36 59 9
37 61 6
38 62 12
39 65 6
40 66 12
41 67 3
42 68 3
43 69 12
44 70 6
45 72 3
46 73 3
47 74 12

4
48 75 7
49 76 3
50 77 12
51 78 6
52 81 12
53 82 3
54 83 9
55 84 6
56 86 15
57 88 3
58 89 15
59 90 12
60 91 6
61 93 6
62 94 12
63 96 3
64 97 3
65 98 12
66 99 9
67 101 18
68 102 6
69 104 6
70 105 12
71 106 6
72 107 9
73 108 4
74 109 6
75 110 18
76 113 9
77 114 12
78 115 6
79 116 6
80 117 12
81 118 9
82 120 6
83 121 9
84 122 12
85 123 3
86 125 12
87 126 12
88 129 15
89 131 9
90 132 6
91 133 6
92 134 15
93 136 3
94 137 9
95 138 6

5
96 139 6
97 140 6
98 141 6
99 142 6
100 144 3
101 145 6
102 146 12
103 147 1
104 149 12
105 150 9
106 152 6
107 153 12
108 154 6
109 155 6
110 158 6
111 161 12
112 162 3
113 163 3
114 164 3
115 165 12
116 166 9
117 168 6
118 170 6
119 171 3
120 172 3
121 173 6
122 174 6
123 177 3
124 178 3
125 179 3
126 180 6
127 181 6
128 182 6
129 185 12
130 187 3
131 189 6
132 190 6
133 192 1
134 194 6
135 197 6
136 198 6
137 200 6
138 201 3
139 204 3
140 206 6
141 209 6
142 211 3
143 213 6

6
144 216 3
145 217 6
146 225 3
147 226 3
148 228 3
149 230 6
150 236 3
151 243 1
152 245 6
153 249 3
154 262 3
155 264 3
156 281 3
157 300 1
Hacemos el análisis para un conjunto de numeros de 1 a 100, pero ya se obtienen resultados difíciles
de distinguir uno del otro.
[23]: A=[]

for i in range (1,101):


for j in range (1,101):
for k in range (1,101):

a=[]
a.append(i)
a.append(j)
a.append(k)
A.append(a)

AA=np.array(A)
n2=[]

for i in range (np.shape(AA)[0]):

n2.append(np.inner(AA[i],AA[i]))

N2=np.array(n2)

unique_elements, counts_elements = np.unique(N2, return_counts=True)


values= np.array(unique_elements)
freq= np.array(counts_elements)

plt.figure(figsize=(100,30))
plt.plot(values,freq,'o', markersize=40)

7
plt.xlabel("Niveles",fontsize=100)
plt.ylabel("Grado de degenerancia",fontsize=100)
plt.yticks(np.arange(0, freq.max()+1, 1))
plt.xticks(np.arange(0, values.max()+1, 1))
cur_axes = plt.gca()
cur_axes.axes.get_xaxis().set_ticklabels([])

[23]: []

[ ]:

You might also like