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 :
* 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!
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
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
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.
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.
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.
pardon, je parlais d'approximation logarithmique, je voulais plutôt parler d'approximation exponentielle...
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.
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.
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).
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :