Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Vitesse instantannée d'un train

Posté par
Alba1337
04-06-12 à 17:19

Bonsoir à tous!

Je suis en train de développer un petit projet java, et je me heurte un un problème purement mathématique... Et j'avoue ne pas avoir touché aux maths depuis un petit moment.
Aussi, je viens quérir vos lumières.

Mon problème est constituée de différentes étapes.
D'abord, je dois trouver une fonction d'allure logarithmique qui évolue à peu près comme ceci :

Vitesse instantannée d\'un train
* Tom_Pascal > image recadrée puis placée sur le serveur de l', merci d'en faire autant la prochaine fois Alba1337... *
(désolé, le dessin n'est pas à l'échelle).


Vous êtes encore là?

Ensuite, pour obtenir ma vitesse, je n'aurai, non pas le temps depuis lequel je roule, mais bien, ma vitesse actuelle. Comme un calcul sera fait toutes les 0.3s, cela revient à vouloir calculer :
Connaissant ma vitesse actuelle, et la fonction ci-dessus, quelle sera ma vitesse dans 0.3s?

Vous me sauveriez la vie si vous m'aidiez!

Merci en tout cas!

Posté par
flight
re : Vitesse instantannée d'un train 04-06-12 à 17:59

le mieux serait serait d'obtenir à partir du graphique une équation du type v(t)

ca pourrait se faire facilement avec un polynome d'interpolation de lagrange , il faudrait que tu fournisse

plus de points parce qu'avec 4 points sur ta courbe c'est pas suffisant  

Posté par
flight
re : Vitesse instantannée d'un train 04-06-12 à 18:02



sinon en prenant les points donnés à partir de ta courbe on obtient :


V(t) = 7.7046321387909E-5 .t^3 + -0.031640616636641.t^2 + 5.325241273454.t + -57.620550259498

Posté par
Alba1337
re : Vitesse instantannée d'un train 04-06-12 à 18:08

Re-bonsoir.

Arf, je n'ai pas plus de points pour l'instant... Je n'ai pu avoir les bons chiffres encore.

Bon, si demain j'arrive à trouver cette fonction v=f(t)...
Comment faire pour trouver f(t+0,33) si j'ai f(t)?

Merci.

Posté par
otto
re : Vitesse instantannée d'un train 04-06-12 à 18:09

Salut,
l'idée de flight n'est pas mauvaise.
Cependant, si tu veux voir ce qui se passe en dehors des bornes de ton intervalle d'étude (donc si tu veux faire une extrapolation des valeurs), il sera préférable de ne pas utiliser une approximation polynômiale parce que c'est très clair que ta fonction n'est pas polynômiale. En fait, comme tu le remarques tu as quelque chose de concave, ce qui se modélise mal avec un polynôme.

Ici, je te suggère peut être d'utiliser une approximation logarithmique, peut être avec une méthode des moindres carrés.
Comme 500 semble être une vitesse limite, un modèle du type

500(1-exp(-At)) semble être une bonne idée.
Peut être que tu peux même le modifier et l'améliorer en fonction de ce que tu cherches à faire.

Posté par
otto
re : Vitesse instantannée d'un train 04-06-12 à 18:11

Comment faire pour trouver f(t+0,33) si j'ai f(t)?
C'est impossible si tu ne connais pas exactement ta fonction en tout point. Même là, tu peux tirer des conclusions que si tu as des fonctions bien particulières.

C'est pour ça que l'on développe des outils d'approximation...

Je te propose un modèle, flight aussi, à toi de voir ce qui "fit" le mieux en fonction de tes besoins.

Posté par
otto
re : Vitesse instantannée d'un train 04-06-12 à 18:12

pardon, je parlais d'approximation logarithmique, je voulais plutôt parler d'approximation exponentielle...

Posté par
otto
re : Vitesse instantannée d'un train 04-06-12 à 18:22

Note que dans mon modèle tu ne connais pas la valeur de A. C'est donc une valeur à trouver (dans le modèle de flight il y en a 4, ce qui est presque le maximum d'information disponible sur ton graphe).

Tu pourrais le complexifier et tirer profit de plus d'informations disponibles.

Ici, je te propose une méthode pour trouver A, tu en fais ce que tu veux, mais ça me semble plutôt pas idiot.

Puisque l'accélération semble constante entre 0 et 37 secondes (on pourrait même dire entre 37 et 77 mais pas tout à fait), on peut facilement calculer l'accélération instantanée pusiqu'elle devra être égale à l'accélération moyenne (puisque constante).

Cette accélération sera de 100km/h/s (convertit ça dans les unités que tu veux, celle-ci n'est pas intéressante).

L'accélération en 0 est donc de 100km/h/s mais c'est aussi la dérivée de la vitesse (définition de la vitesse et de l'accélération).

Avec mon modèle, f'(t)=Aexp(-t) et f'(0)= A = 100

Mais c'est un modèle qui risque de ne pas nécessairement bien fonctionner.

Une autre façon de déterminer A serait de faire la minimisation suivante

min(intégrale |f(t)-tacourbe|^2)

La raison pour laquelle on ferait ça est que (f(t)-courbe)^2 mesure la distance entre f et la courbe. En faisant l'intégrale on calcule la distance "globale", c'est à dire la distance point à point et qu'on le fait pour tous les points et que c'est pondéré d'une certaine façon.

Ici, difficile de faire l'intégrale puisque tu ne connais pas la valeur de ta fonction et c'est justement ce que tu cherches. Cela dit, tu connais la valeur en certains points, tu peux donc remplacer l'intégrale par une somme et l'évaluer en ces fameux points.

Tu peux ajouter aussi des contraintes qui tiennent compte des dérivées, comme j'essayais de le faire dans mon modèle très simpliste d'en haut.

etc.

Posté par
Alba1337
re : Vitesse instantannée d'un train 04-06-12 à 18:24

Le train en question est le TGV.

Demain, on devrait me donner les courbes exactes d'accélération/freinage/Décélération.

je calculerai une fonction approchant ces courbes (connaissez vous un logiciel pour ça?).
Et en effet, comme j'ai une vitesse max, il me suffit d'ajouter 0.33 à une variable de temps, et à recalculer en fonction de celle-ci jusqu'à obtention de ma vitesse max...
Si je n'en avait pas, j'aurais eu peur d'obtenir un trop grand chiffre.

Posté par
otto
re : Vitesse instantannée d'un train 04-06-12 à 18:47

Comme nos posts se sont croisés, je te suggère de relire ce que je t'ai dit, peut être que tu n'as pas vu que je viens de rajouter des commentaires.


http://serge.mehl.free.fr/anx/meth_carr.html

Tiens, j'aime beaucoup ce site.


Ça c'est franchement technique, accroche toi...
http://en.wikipedia.org/wiki/Non-linear_least_squares
notamment la partie "other methods"

et ça aussi, toujours technique, mais moins que l'autre. Surtout ne t'arrête pas à la difficulté apparente de la page, il y a des trucs quand même compréhensibles, notamment l'idée générale de la méthode. Certaines formules sont peut être indigestes, mais tu n'es n'as pas nécessairement besoin
http://fr.wikipedia.org/wiki/M%C3%A9thode_des_moindres_carr%C3%A9s

Ce document te prends plus par la main
http://math.unice.fr/~diener/MAB07/MCO.pdf
et semble bien foutu (en fait à vue d'oeil...)
L'exercice 4 peut te donner une idée de comment faire pour adapter la méthode à ton problème.

Sinon, peut être qu'en fouillant dans tes vieux cours de génie, d'éléctronique ou autres (si tu en as fait, je ne connais pas ton background).

Posté par
rover
re : Vitesse instantannée d'un train 09-06-12 à 20:40

Bonsoir à tous,

La courbe bleue correspond à l'équation :
v = 500(1-e-t/160)
Les 4 1erspoints proposés sont sur la courbe.
Le 5ème est à mon avis, dans l'application étudiée, aberrant.
Bonne suite.

Vitesse instantannée d\'un train



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !