1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| """
Résoudre une équadiff via un programme Python
"""
#Soit x"=-kx + cx'
from math import pi, sin, cos
import matplotlib.pyplot as plt
#Données
k = 120
c = 20
m = 15
g = 100
t0 = 0
A = 10
w = 2*pi*g
def f(xb, x1b, xm, x1m):
return (k/m)*(xb-xm)+(c/m)*(x1b-x1m)
def equadiff():
xm=0
x1m=0
t=0
tmax = 10
T =10
dt = 0.1
M=[]
while t < tmax :
xb = A*sin(g*t)
x1b = A*g*cos(g*t)
a = f(xb, x1b, xm, x1m)
x1m += a * dt
xm += x1m * dt
t+= dt
M.append([xm, x1m, a, t])
print(M)
return M
equadiff() |
Partager