def do_plot(n, l, color="k"): x = arange(0, 100, 0.1) var("z") f = R_nl(n, l, 1, z) y = [f.subs(z, _x) for _x in x] plot(x, y, color + "-", lw=2, label="$R_{%d%d}$" % (n, l)) xlabel("$\\rho$") ylabel("$R_{nl}(\\rho)$") title("Eigenvectors (l=%d, Z=1)" % l) legend()
Integral_Coulumb1=0 Integral_Coulumb2=0 Integral_Intercambio1=0 Integral_Intercambio2=0 if l1==l2: for m in range(-l1,l1+1): Integral_Coulumb1=Integral_Coulumb1+Integral(Integral(r1**2*r2**2*Psi1**2*Psi2**2* a[n1-1][l1][l1].subs({rmayor:r1,rmenor:r2,lq:0}),(r2,0,r1)),(r1,0,oo)).doit() Integral_Coulumb2=Integral_Coulumb2+Integral(Integral(r1**2*r2**2*Psi1**2*Psi2**2* a[n1-1][l1][l1].subs({rmayor:r2,rmenor:r1,lq:0}),(r2,r1,oo)),(r1,0,oo)).doit() Integral_CoulumbT=Integral_Coulumb1+Integral_Coulumb2 else: Integral_CoulumbT=0 if l1!=l2: Integral_Intercambio1=Integral(Integral(r1**2*r2**2*Psi1*Psi2*Psi1.subs({r1:r2})*Psi2.subs({r2:r1})* a[n1-1][l1][l1].subs({rmayor:r1,rmenor:r2,lq:0}),(r2,0,r1)),(r1,0,oo)).doit() Integral_Intercambio2=Integral(Integral(r1**2*r2**2*Psi1*Psi2*Psi1.subs({r1:r2})*Psi2.subs({r2:r1})* a[n1-1][l1][l1].subs({rmayor:r2,rmenor:r1,lq:0}),(r2,r1,oo)),(r1,0,oo)).doit() Integral_IntercambioT=Integral_Intercambio1+Integral_Intercambio2 else: Integral_IntercambioT=0 # In[166]: # Programa funciona para 1s # Encontrar la manera de hacer matrices nxlxm que puedan ser llenadas con variables para posteriormente revisar # como encontrar las integrales aprovechando ortogonalidad de los armónicos esféricos. # Una opción para la matriz puedes hacer una lista y hacer reshape cada ciertas iteraciones en el ciclo for