better formalisation
This commit is contained in:
parent
3e78407bcc
commit
96bc3c2620
6 changed files with 17 additions and 19 deletions
|
|
@ -1,5 +1,7 @@
|
|||
# LeGrandChien - Système de Simulation Physique Symbolique
|
||||
|
||||
> **⚠️ Warning:** ne pas considérer ce projet sérieusement
|
||||
|
||||
## Description
|
||||
|
||||
**LeGrandChien** est une bibliothèque Python pour la simulation de systèmes physiques complexes utilisant le calcul symbolique et les équations de Lagrange. Elle permet de définir des systèmes mécaniques (pendules, ressorts, chutes libres) de manière intuitive et de les résoudre numériquement.
|
||||
|
|
|
|||
|
|
@ -29,10 +29,8 @@ V += m2 * g * x2
|
|||
L = T - V
|
||||
|
||||
init = {
|
||||
"theta1" : -3 * np.pi/4,
|
||||
"d_theta1" : 0,
|
||||
"theta2" : -np.pi/2,
|
||||
"d_theta2" : 0
|
||||
"theta1" : [-3 * np.pi/4, 0], # theta1, theta1.diff()
|
||||
"theta2" : [-np.pi/2, 0], # theta2, theta2.diff()
|
||||
}
|
||||
|
||||
dt = 0.01
|
||||
|
|
|
|||
|
|
@ -33,14 +33,10 @@ V += k2 * (r2 - r20) * (r2 - r20)
|
|||
L = T - V
|
||||
|
||||
init = {
|
||||
"theta1" : - np.pi/4,
|
||||
"d_theta1" : 0,
|
||||
"theta2" : - np.pi/4,
|
||||
"d_theta2" : 0,
|
||||
"r1" : 1,
|
||||
"d_r1" : 0,
|
||||
"r2" : 1,
|
||||
"d_r2" : 0
|
||||
"theta1" : [- np.pi/4, 0],
|
||||
"theta2" : [- np.pi/4, 0],
|
||||
"r1" : [1, 0],
|
||||
"r2" : [1, 0],
|
||||
}
|
||||
|
||||
dt = 0.001
|
||||
|
|
|
|||
|
|
@ -466,7 +466,12 @@ class Equation:
|
|||
self.compile()
|
||||
return self.compiled_function(dico)
|
||||
|
||||
def solve(self, dico, tmax=10, dt=0.01, progress_bar=True):
|
||||
def solve(self, init, tmax=10, dt=0.01, progress_bar=True):
|
||||
dico = {}
|
||||
for v_name, v_init in init.items():
|
||||
for i in range(len(v_init)):
|
||||
dico["d_"*i + v_name] = v_init[i]
|
||||
|
||||
self.simplify()
|
||||
variables = self.getAllVar()
|
||||
|
||||
|
|
|
|||
|
|
@ -20,10 +20,8 @@ V = m * g * r * lgc.cos(theta) + k * (r - r0) * (r - r0)
|
|||
L = T - V
|
||||
|
||||
init = {
|
||||
"theta" : -3.14/2,
|
||||
"d_theta" : 0,
|
||||
"r" : 1.2,
|
||||
"d_r" : 0,
|
||||
"theta" : [-3.14/2, 0], # theta, theta.diff()
|
||||
"r" : [1.2, 0], # r, r.diff()
|
||||
}
|
||||
|
||||
dt = 0.001
|
||||
|
|
|
|||
|
|
@ -18,8 +18,7 @@ V = m * g * r * lgc.cos(theta)
|
|||
L = T - V
|
||||
|
||||
init = {
|
||||
"theta" : -3 * 3.14/4,
|
||||
"d_theta" : 0,
|
||||
"theta" : [-3 * 3.14/4, 0], # theta, theta.diff()
|
||||
}
|
||||
|
||||
dt = 0.01
|
||||
|
|
|
|||
Loading…
Reference in a new issue