• Aucun résultat trouvé

2 En physique

N/A
N/A
Protected

Academic year: 2022

Partager "2 En physique"

Copied!
8
0
0

Texte intégral

(1)
(2)

I. Avec Numpy/Scipy

from math import *

from scipy.integrate import odeint import numpy as np

import matplotlib.pyplot as plt

omega=sqrt(9.81) T=2*pi/omega def F(X,t):

theta=X[0]

v=X[1]

thetaprim=v

vprim=-omega**2*sin(theta)

return np.array([thetaprim,vprim]) t=np.linspace(0,5*T,1000)

X=odeint(F,np.array([pi/6,0]),t) plt.subplot(2,1,1)

plt.plot(t,X[:,0]) plt.subplot(2,1,2)

plt.plot(X[:,0],X[:,1]) plt.show()

0 1 2 3 4 50 51

6073 6072 6071 070 071 072 073

6073 6072 6071 070 071 072 073

6170 6578 6570 6078 070 078 570 578 170

On a représentéθen fonction de t puis θ en fonction deθ (por- trait de phase).

II. Avec Scilab

omega=sqrt(9.81);

T=2*%pi/omega;

function Xprim=F(t,X) theta=X(1)

v=X(2) dtheta=v

dv=-omega^2*sin(theta) Xprim=[dtheta;dv]

endfunction

t=linspace(0,5*T,1000);

X=ode([%pi/6;0],0,t,F);

subplot(2,1,1) plot(t,X(1,:)) subplot(2,1,2)

plot(X(1,:),X(2,:))

0 1 2 3 4 5 6 7 8 9 10 11 12

0

0.6

0.4

0.2 0.2 0.4 0.6

0.6 0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0

2 2

1 1

1.5

0.5 0.5 1.5

(3)

Exemples de résolution approchée d’éq. di ff . d’ordre 2

from math import *

from scipy.integrate import odeint import numpy as np

import matplotlib.pyplot as plt

1 En mathématiques

Exemple. On veut résoudre sur l’intervalle [0, 10] le problème de Cauchy :

y′′+3y+2y=2 cos(t) y(0)=1 y(0)=0

• Le nouveau système en posantz=y:





y=z

z=−3z−2y+2 cos(t) y(0)=1

z(0)=0

• La fonctionF associée au système avecX =y

z

:

def F(X,t):

y=X[0]

z=X[1]

return [z,-3*z-2*y+2*cos(t)]

• Le vecteurt qui représente l’intervalle de temps considéré : t=np.linspace(0,10,100)

• La résolution avec la commandeodeint: X=odeint(F,[1,0],t)

• Représentation graphique de la solutiony:

plt.clf()

plt.plot(t,X[:,0],’b-’) plt.xlabel("t")

plt.ylabel("y")

(4)

0 1 2 3 4 50 6

7084 7083 7082 7081 080 081 082 083 084 580

0

• Portrait de phase :

plt.clf()

plt.plot(X[:,0],X[:,1],’b-’) plt.xlabel("y")

plt.ylabel("z")

0123 0124 0125 0126 121 126 125 124 123 721

8 0123

0124 0125 0126 121 126 125 124 123

0

2 En physique

Exemple. On considère l’équation différentielle du second ordre sous forme canonique :















 1 ω20

d2u dt2 +2ξ

ω0 du

dt +u=0 u(t=0)=A

du

dt t=0=0

(5)

avecw0=104rad·s−1etA=1 V. On poseT =2π/ω0. Représenter la fonctionusur [0, 4T] pourξ=0.1, 0.2, . . . , 0.9.

• Le nouveau système, en posantv=du dt :





















 du dt =v dv

dt =−ω20

ω0v+u

u(0)=A v(0)=0

• La fonctionF associée au système avecX =u

v

, en prenantξcomme paramètre :

w0=1e4 A=1

T=2*pi/w0

def F(X,t,xi):

u=X[0]

v=X[1]

return [v,-w0**2*(2*xi/w0*v+u)]

• Le vecteurt qui représente l’intervalle de temps considéré : t=np.linspace(0,4*T,100)

• Représentation graphique :

plt.clf()

for xi in [float(k)/10 for k in range(1,10)]:

couleur="r" if xi<0.15 else "b"

X=odeint(F,[A,0],t,args=(xi,)) plt.plot(t,X[:,0],couleur) plt.xlabel("t")

plt.ylabel("u(t)")

(6)

010000 010002 010030 010032 010040 010042 010050 6

7018 7019 701 7014 010 014 01 019 018 310

0123

3 Autre exemple en physique

Exemple. On étudie la chute d’un grêlon de massem=3.6·10−3kg. On noteyson ordon- née sur un axe vertical descendant et on a l’équation différentielle :













md2y

dt2 =mg−k2

dy dt

2

y(t=0)=0 (valeur arbitraire) dy

dt t=0=0

(modèle des frottements quadratiques,k2=9.2·10−5). On prendra y(t =0)=0 (valeur ar- bitraire). Représenter y en fonction de t sur l’intervalle [0, 15]. Représenter la vitesse en fonction du temps sur le même intervalle.

• Le nouveau système en posantv=dy dt :





















 dy dt =v dv

dt =g−k2

mv2 y(0)=0

v(0)=0

• La fonctionF associée au système avecX =y

v

:

(7)

m=3.6e-3 k2=9.2e-5 g=9.81

def F(X,t):

y=X[0]

v=X[1]

return [v,g-k2/m*v**2]

• Le vecteurt qui représente l’intervalle de temps considéré : t=np.linspace(0,15,100)

• La résolution avec la commandeodeint: X=odeint(F,[0,0],t)

• Représentation graphique de la solutiony:

plt.clf()

plt.plot(t,X[:,0],’b-’) plt.xlabel("t")

plt.ylabel("y")

0 1 2 3 4 50 51 52 53

6 0

70 500 570 100 170 800

0

• Représentation graphique de la vitesse :

plt.clf()

plt.plot(t,X[:,1],’b-’) plt.xlabel("t")

plt.ylabel("v")

(8)

0 1 2 3 4 50 51 52 53 6

0 7 50 57 10

0

Références

Documents relatifs

(ii) adjacent countrie s should guard against excessive competition against o~e ano~her in the granting of such incentives; otherwise th e r e m i g ht result

permettent de modifier la direction d’un nombre donné de degrés dans le sens trigonométrique (pour left) ou des aiguilles d’une montre (pour right).. Dans l’exemple

[r]

Pour les simulations informatiques sous Python, on importera les bibliothèques scientifiques à l’aide des ins- tructions suivantes :. import numpy

On rappelle la 2 ème loi de Képler : le rayon vecteur OM - reliant le soleil à une planète - balaie des aires égales pendant des durées égales.. Par conséquent, on peut dire

[r]

Si vous fermez la fenêtre alors la commande plt.xlabel(&#34;ce que vous voulez&#34;) se contentera de faire afficher une fenêtre graphique avec axe des abcisses, des or- données

[r]