Matlab(Octave) Pendule de Foucault [URGENT]
Fermé
PandaHugsU
Messages postés
16
Date d'inscription
vendredi 29 avril 2011
Statut
Membre
Dernière intervention
9 mai 2013
-
29 avril 2011 à 22:03
Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022 - 3 mai 2011 à 22:48
Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022 - 3 mai 2011 à 22:48
A voir également:
- Matlab(Octave) Pendule de Foucault [URGENT]
- Octave logiciel - Télécharger - Édition & Programmation
- Pendule ortf à vendre - Forum Bureautique
- Loi normale matlab - Forum Matlab
- Moyenne glissante matlab - Forum Matlab
- Fonction triangle matlab - Forum Matlab
2 réponses
Nyctaclope
Messages postés
5315
Date d'inscription
dimanche 6 avril 2008
Statut
Membre
Dernière intervention
11 décembre 2022
1 253
29 avril 2011 à 22:42
29 avril 2011 à 22:42
Bonsoir
Ce n'est pas une heure honnête pour poser des questions pareilles :))
Et j'ai d'abord cru que tes équations n'étaient pas homogènes par rapport au temps, et ai failli râler ..
Une petite piste : il me semble qu'avec un changement de variable du genre
u=X+Y
v=X-Y ou quelque chose comme cela
et en additionnant et soustrayant membre à membre tes deux équations, cela devrait simplifier ton système de 2 équations ...
Ensuite une dérivation à faire pour reporter dans l'autre équation en éliminant u ou v.
Pas le courage ce soir d'aller plus loin, mais j'y rejette un oeil demain
Quelle vie ... :)
A+
Nyctaclope
Ce n'est pas une heure honnête pour poser des questions pareilles :))
Et j'ai d'abord cru que tes équations n'étaient pas homogènes par rapport au temps, et ai failli râler ..
Une petite piste : il me semble qu'avec un changement de variable du genre
u=X+Y
v=X-Y ou quelque chose comme cela
et en additionnant et soustrayant membre à membre tes deux équations, cela devrait simplifier ton système de 2 équations ...
Ensuite une dérivation à faire pour reporter dans l'autre équation en éliminant u ou v.
Pas le courage ce soir d'aller plus loin, mais j'y rejette un oeil demain
Quelle vie ... :)
A+
Nyctaclope
Nyctaclope
Messages postés
5315
Date d'inscription
dimanche 6 avril 2008
Statut
Membre
Dernière intervention
11 décembre 2022
1 253
Modifié par Nyctaclope le 3/05/2011 à 23:02
Modifié par Nyctaclope le 3/05/2011 à 23:02
Re
Désolé, je t'ai rédigé tout à l'heure un ( très ) long post, et j'ai tout perdu lors de la validation ... impossible de récupérer ..
J'essaye de te reprendre ici l'essentiel, quant à la méthode de calcul.
Je ne connais pas Octave, mais tu n'as pas besoin de dérivées ni première ni seconde.
En calculant l'historique de X(t) et Y(t) tu obtiens l'équivalent de Y(X) en paramétriques.
Tes équations de départ ( que je n'ai pas vérifiées ) :
(1) d/dt(dX/dt) = -(g/L)X - 2Omega*sin(phi)*dY/dt
(2) d/dt(dY/dt) = -(g/L)Y + 2*Omega*sin(phi)*dx/dt
Tu utilises les fonctions annexes ( ou "vecteurs", comme tu veux ):
X
U = dX/dt ... dérivée première de X(t)
V = d/dt(dX/dt) ... dérivée seconde de X(t)
et de même pour Y
Y
W = dY/dt ... dérivée première de Y(t)
Z = d/dt(dY/dt) ... dérivée seconde de Y(t)
Tu pars d'un instant initial t=0, avec positions et vitesses initiales.
Par exemple, pour un lancer du pendule dans le plan vertical
t = 0
Xo = 0
(dX/dt)o = Vmax = Racine(2GL) ( le pendule ira jusqu'à l'horizontale )
tu as le droit de choisir ce paramètre, il ne joue que sur l'amplitude.
Donc Uo = Vmax
Yo = 0
(dY/dt)o = 0
Donc Wo = 0
Tes équations (1) et (2) te donnent alors pour les dérivées secondes :
(1) Vo = 0
(2) Zo = 2*Omega*sin(phi)*Vmax
Tu donnes ensuite à t un accroissement différentiel dt , par exemple 1/2 ou 1 seconde ( ce qui ferait 36 points par période du pendule ), et tu remplaces t par t + dt :
t=>t+dt
X=>X+dX = X + U.dt ... U étant la valeur précédente Uo
U=>U+dU = U + V.dt ....V étant la valeur précédente Vo
Y=>Y+dY = Y + W.dt
W=>W+dW = W + Z.dt
puis (1) et (2) te donnent les nouvelles valeurs de V et Z
Et tu incrémentes à nouveau t de dt , d'où les nouvelles valeurs pour X Y ... etc..
La boucle doit être facile à rédiger ..
Il suffit que tu mémorises les historiques complets X(t) et Y(t)
Pour les dérivées U,V, W, Z inutile de stocker leur historique, il suffit pour chacune d'une variable , où tu remplace la valeur précédente par la nouvelle ...
J'espère n'avoir pas fait d'erreur dans les notations ..
Pour le reste, j'avais fait une petite étude, montrant que selon les conditions initiales, tu obtiens des courbes extrêmement variées en forme.
Pour le cas ci-dessus, tu obtiens une sorte de "marguerite", dont deux pétales sont distants de 0,15° correspondant à la rotation terrestre pendant une période de 36 secondes environ.
Si Vmax > Racine(2GL) ( le pendule, supposé "rigide" tend à faire le tour complet ) alors les pétales deviennent anguleux sur le rayon L, et reviennent vers l'intérieur en formant un "bonnet d'âne" ).
Si cela t'intéresse ...
Espérant t'avoir un peu aidé ...
A+
Nyctaclope
Le plus joli des poèmes de la mathématique : e^(i.PI)=i^2
trois nombres "sacrés" d'horizons différents qui se donnent la main ...
Désolé, je t'ai rédigé tout à l'heure un ( très ) long post, et j'ai tout perdu lors de la validation ... impossible de récupérer ..
J'essaye de te reprendre ici l'essentiel, quant à la méthode de calcul.
Je ne connais pas Octave, mais tu n'as pas besoin de dérivées ni première ni seconde.
En calculant l'historique de X(t) et Y(t) tu obtiens l'équivalent de Y(X) en paramétriques.
Tes équations de départ ( que je n'ai pas vérifiées ) :
(1) d/dt(dX/dt) = -(g/L)X - 2Omega*sin(phi)*dY/dt
(2) d/dt(dY/dt) = -(g/L)Y + 2*Omega*sin(phi)*dx/dt
Tu utilises les fonctions annexes ( ou "vecteurs", comme tu veux ):
X
U = dX/dt ... dérivée première de X(t)
V = d/dt(dX/dt) ... dérivée seconde de X(t)
et de même pour Y
Y
W = dY/dt ... dérivée première de Y(t)
Z = d/dt(dY/dt) ... dérivée seconde de Y(t)
Tu pars d'un instant initial t=0, avec positions et vitesses initiales.
Par exemple, pour un lancer du pendule dans le plan vertical
t = 0
Xo = 0
(dX/dt)o = Vmax = Racine(2GL) ( le pendule ira jusqu'à l'horizontale )
tu as le droit de choisir ce paramètre, il ne joue que sur l'amplitude.
Donc Uo = Vmax
Yo = 0
(dY/dt)o = 0
Donc Wo = 0
Tes équations (1) et (2) te donnent alors pour les dérivées secondes :
(1) Vo = 0
(2) Zo = 2*Omega*sin(phi)*Vmax
Tu donnes ensuite à t un accroissement différentiel dt , par exemple 1/2 ou 1 seconde ( ce qui ferait 36 points par période du pendule ), et tu remplaces t par t + dt :
t=>t+dt
X=>X+dX = X + U.dt ... U étant la valeur précédente Uo
U=>U+dU = U + V.dt ....V étant la valeur précédente Vo
Y=>Y+dY = Y + W.dt
W=>W+dW = W + Z.dt
puis (1) et (2) te donnent les nouvelles valeurs de V et Z
Et tu incrémentes à nouveau t de dt , d'où les nouvelles valeurs pour X Y ... etc..
La boucle doit être facile à rédiger ..
Il suffit que tu mémorises les historiques complets X(t) et Y(t)
Pour les dérivées U,V, W, Z inutile de stocker leur historique, il suffit pour chacune d'une variable , où tu remplace la valeur précédente par la nouvelle ...
J'espère n'avoir pas fait d'erreur dans les notations ..
Pour le reste, j'avais fait une petite étude, montrant que selon les conditions initiales, tu obtiens des courbes extrêmement variées en forme.
Pour le cas ci-dessus, tu obtiens une sorte de "marguerite", dont deux pétales sont distants de 0,15° correspondant à la rotation terrestre pendant une période de 36 secondes environ.
Si Vmax > Racine(2GL) ( le pendule, supposé "rigide" tend à faire le tour complet ) alors les pétales deviennent anguleux sur le rayon L, et reviennent vers l'intérieur en formant un "bonnet d'âne" ).
Si cela t'intéresse ...
Espérant t'avoir un peu aidé ...
A+
Nyctaclope
Le plus joli des poèmes de la mathématique : e^(i.PI)=i^2
trois nombres "sacrés" d'horizons différents qui se donnent la main ...
30 avril 2011 à 09:04
En gros il faut faire appel a des vecteur on défini un veteur u = (x y dx dy)
et donc du = (u(3) u(4) ddx ddy) avec ddx et ddy connu on peut remonter a x et y avec la fonction commande ode23 ou ode45 pour Mathlab (lsode pour Octave) mais ne sais pas comment T_T !
Je suis bloqué a cet etape la ...
1 mai 2011 à 21:43
Je ne t'ai pas oublié, simplement un peu à la bourre ..
J'ai qq chose pour toi, pas encore eu le temps de le rédiger ..
A bientôt
Nyctaclope