Bonjour pour un projet que je dois rendre dans 2 jours j'ai réalisé un programme me permettant de simuler la trajectoire d'un satellite en orbite autour de la Terre et je l'ai ensuite complété en simulant sa chute, j'ai utilisé des équations différentielles pour ça et pour la seconde simulation j'ai juste rajouté les forces de frottement dans les équa diffs. Mais j'obtient une erreur quand je lance mon programme pour la simulation avec frottement .
Voilà mon programme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
from math import *
import numpy as np
import matplotlib.pyplot as plt
import decimal
 
from pylab import *
 
m=11000
C=0.5
 
A=31416
def f(x, y,x_1,y_1,g=9.82):
 
    l=0.001*math.exp(-0.15*(x-600000))
    y_2 =(-g*y/((x**2+y**2)**0.5)-(1/2*m)*A*C*l*(y_1)**2)
 
 
    x_2 =(-g*x/((x**2+y**2)**0.5)-(1/2*m)*A*C*l*(x_1)**2)
 
    return x_2, y_2
 
 
 
temps_finale= 5500
dt = 0.001
N= int(temps_finale / dt)
print ('N=',N)
 
 
 
x_1 = [0]
y_1= [0]
 
x_0 = [0]
y_0= [0]
 
 
 
 
x_0[0], y_0[0] = (6745752,0) 
 
x_1[0], y_1[0] = (0,7600)
 
 
for i in range(N):
 
    x_dot, y_dot = f(x_0[i], y_0[i],x_1[i], y_1[i])
 
    x_1_i = x_1[i] + (x_dot * dt)
    y_1_i = y_1[i] + (y_dot * dt)
 
 
    x_0_i = x_0[i] + (x_1[i] * dt)
    y_0_i = y_0[i] + (y_1[i] * dt)
 
 
    x_1.append(x_1_i)
    y_1.append(y_1_i)
 
 
    x_0.append(x_0_i)
    y_0.append(y_0_i)
 
 
x,y=x_0,y_0  
 
X=[a*10**(-5) for a in x] 
Y=[a*10**(-5) for a in y]
 
plt.plot(X,Y)
 
 
plt.legend()
plt.show()
Et voilà l'erreur
runfile('C:/Users/samy_/Desktop/traj2.py', wdir='C:/Users/samy_/Desktop')
N= 5500000
Traceback (most recent call last):

File "<ipython-input-23-3a3e81023870>", line 1, in <module>
runfile('C:/Users/samy_/Desktop/traj2.py', wdir='C:/Users/samy_/Desktop')

File "C:\Users\samy_\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)

File "C:\Users\samy_\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/samy_/Desktop/traj2.py", line 54, in <module>
x_dot, y_dot = f(x_0[i], y_0[i],x_1[i], y_1[i])

File "C:/Users/samy_/Desktop/traj2.py", line 21, in f
l=0.001*math.exp(-0.15*(x-600000))

OverflowError: math range error
Quelqu'un a une idée de ce que je pourrai faire sachant que je suis vraiment débutant sur python et que le temps presse?