Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168733
Image: ubuntu2004
""" Calcul de l'energie potentielle d'une chaine en rotation Exemple de l'utilisation de l'interface SAGE pour effectuer des simulations Mars 2012 Bruno KIEFFER """
""" 1. Nous utiliserons la bibliotheque NUMPY pour le calcul et le module d'optimisation de SCIPY """ import numpy as np from scipy import optimize
""" 2. On defini la fonction Energie potentielle en utilisant le langage PYTHON """ def pot(X,mu,L,w): """ Fonction energie potentielle X est u t-uple contenant les angles teta1 et teta2 ainsi que le parametre a mu, L et w sont des parametres additionels mu : masse lineique L longueur totale w vitesse angulaire de rotation (200 a 2000 tr.min-1)""" (t1,t2,a) = X g = 9.8 # Acceleration terrestre st1 = np.sin(t1) ct1 = np.cos(t1) st2 = np.sin(t2) ct2 = np.cos(t2) ep1 = 0.5*mu*g*(L**2)*(a*(a-2)*ct1-ct2*(a-1)**2) ep2 = (1./6)*mu*(w**2)*(L**3)*(a**3*st2**2-3*a*(a-1)**2*st1*st2-a**2*(2*a-3)*st1**2) ep = ep1+ep2 return ep
""" 3. On peut maintenant evaluer cette fonctions pour differents parametres Par exemple : """ mu = 1. L = 0.5 w = 0.2 pars = (mu,L,w) X_ini = (np.pi/3,np.pi/2,0.8) print'Le potentiel est %8.3f ' % pot(X_ini,mu,L,w)
Le potentiel est -0.587
""" 4. Le minimum de la fonction pot peut maintenant etre cherche a l'aide du minimiseur fmin (algorithme du simplex ) """ mu = 1. L = 0.5 w = 0.2 pars = (mu,L,w) X_ini = (np.pi/3,np.pi/2,0.8) X_opt = optimize.fmin(pot, X_ini, args = pars, xtol = 0.0001) print X_opt
Optimization terminated successfully. Current function value: -1.225000 Iterations: 108 Function evaluations: 199 [ 8.07020870e-07 3.14159373e+00 9.99999522e-01]
""" On peut constater que si l'on augmentente la vitesse de rotation (w), on trouve des valeurs differentes qui ne varient plus a partir de 20 rad.s-1 """ mu = 1. L = 0.5 w = 100 pars = (mu,L,w) X_ini = (np.pi/2,np.pi/2,0.5) X_opt = optimize.fmin(pot, X_ini, args = pars, xtol = 0.0001) print X_opt
Optimization terminated successfully. Current function value: -56.786294 Iterations: 73 Function evaluations: 134 [ 1.55978588 1.56018123 0.19098703]