[Uso de matplotlib y numpy] Potencial de Morse

Iniciado por fortil, Octubre 05, 2012, 01:02:29 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hola a todxs

Como yo estudio química me incursioné un poco en python para científicos (matplotlib y numpy, entre otros) y he echo una programita sobre el potencial del Morse, que sirve para describir la energía de las funciones de onda etc. xD

acá se los dejo, además puede servir de ejemplo para muchas cosas mas, como transformar nuestra cámara normal en una "infrarojo" (entre comillas porque no mas es efecto de imagen) luego le investigo mas sobre el tema y les paso como.

Código: python

##POTENCIAL DE MORSE BY FORTIL##

import numpy as np
import matplotlib.pyplot as plt

def rango(x,x1):
    return np.arange(x,x1,0.1)

def f(x,v0):
    return v0*(1-x)**2

def ex(x, a=0.5, x0 = 2.0, v0 = 0.05):
    return f(np.exp(-a*((x)-x0)),v0)

def coseno(x,a):
    return a+0.0005*np.cos(10*x+np.pi)
   
x = np.arange(0, 80.0, 0.1)

fig = plt.figure()
ax1 = fig.add_subplot(111)

ax1.plot(x, ex(x), 'b-',x,ex(x,0.05),'r-')
ax1.set_title("Potencial de Morse por Fortil", fontsize=16)
ax1.set_ylabel(r'$V_f$')
ax1.set_xlabel(r'$X$')

ax1.text(20,0.025,r"$\alpha_1 $ mayor",fontsize=12, color='r')
ax1.text(7,0.035, r"$\alpha_2 $ menor", fontsize=12, color='b')
ax1.text(60,0.051, r"$V_0 = 0.05$", fontsize=12, color='y')
ax1.text(60,0.009, r"$X_0 = 2.0$", fontsize=12, color='black')
ax1.text(20,0.06,r"$\alpha_2 = \frac{\alpha_1}{10} $",
         fontsize=14, color='g')
ax1.text(25,0.12,r"$V_f = V_0\times[1-e^{-\alpha(X-X_0)}]$",
         fontsize=18, color='black')

ax1.plot(rango(ex(0.6),80.0),
         coseno(rango(ex(0.6),80.0),0.05),'c-')
ax1.acorr(x, usevlines=False, normed=True, maxlags=1, lw=2)
ax1.set_ylim(0,0.16)
ax1.set_xlim(0,70)

plt.show()