better formalisation

This commit is contained in:
Didictateur 2026-02-17 00:29:29 +01:00
parent 3e78407bcc
commit 96bc3c2620
6 changed files with 17 additions and 19 deletions

View file

@ -1,5 +1,7 @@
# LeGrandChien - Système de Simulation Physique Symbolique # LeGrandChien - Système de Simulation Physique Symbolique
> **⚠️ Warning:** ne pas considérer ce projet sérieusement
## Description ## 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. **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.

View file

@ -29,10 +29,8 @@ V += m2 * g * x2
L = T - V L = T - V
init = { init = {
"theta1" : -3 * np.pi/4, "theta1" : [-3 * np.pi/4, 0], # theta1, theta1.diff()
"d_theta1" : 0, "theta2" : [-np.pi/2, 0], # theta2, theta2.diff()
"theta2" : -np.pi/2,
"d_theta2" : 0
} }
dt = 0.01 dt = 0.01

View file

@ -33,14 +33,10 @@ V += k2 * (r2 - r20) * (r2 - r20)
L = T - V L = T - V
init = { init = {
"theta1" : - np.pi/4, "theta1" : [- np.pi/4, 0],
"d_theta1" : 0, "theta2" : [- np.pi/4, 0],
"theta2" : - np.pi/4, "r1" : [1, 0],
"d_theta2" : 0, "r2" : [1, 0],
"r1" : 1,
"d_r1" : 0,
"r2" : 1,
"d_r2" : 0
} }
dt = 0.001 dt = 0.001

View file

@ -466,7 +466,12 @@ class Equation:
self.compile() self.compile()
return self.compiled_function(dico) 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() self.simplify()
variables = self.getAllVar() variables = self.getAllVar()

View file

@ -20,10 +20,8 @@ V = m * g * r * lgc.cos(theta) + k * (r - r0) * (r - r0)
L = T - V L = T - V
init = { init = {
"theta" : -3.14/2, "theta" : [-3.14/2, 0], # theta, theta.diff()
"d_theta" : 0, "r" : [1.2, 0], # r, r.diff()
"r" : 1.2,
"d_r" : 0,
} }
dt = 0.001 dt = 0.001

View file

@ -18,8 +18,7 @@ V = m * g * r * lgc.cos(theta)
L = T - V L = T - V
init = { init = {
"theta" : -3 * 3.14/4, "theta" : [-3 * 3.14/4, 0], # theta, theta.diff()
"d_theta" : 0,
} }
dt = 0.01 dt = 0.01