Partage
  • Partager sur Facebook
  • Partager sur Twitter

équation pour trouver le rebond d'un ballon

gardant la même hauteur et faisant le rebond d'une manière périodique

Sujet résolu
    11 juillet 2018 à 12:20:51

    Bonjour,

    Mon probléme est un peu simple pour vous les matheux mais vue que je suis nul en Math je demande l'aide.

    Alors j'aimerai faire une simulation matlab d'un ballon qui fait des rebond d'une manières périodique et qui garde la même hauteur le soucis que j'ai et que j'arrive pas a trouver une équation de vecteur de déplacement qui me permettra de faire cette simulation. 

    l'image ci-dessous représente ce que je veux faire:

    déplacement d'un ballon

    désolé pour le dessin dégueulasse :D, en tout cas:

    X représente la distance entre chaque deux rebond (période) il peut changer,  le ballon atteindra une hauteur de 10 a chaque fois,

    merci Beaucoup .

    • Partager sur Facebook
    • Partager sur Twitter
      11 juillet 2018 à 14:55:18

      Tu as 2 options. 

      1. C'est l'option que tu sembles considérer. Le rebond est 'parfait', il n'y a aucune perte, et donc toutes les arches de ta courbe sont identiques.

      2. L'option plus réaliste : au moment du rebond, il y a une perte d'énergie, et les arches sont de plus en plus petites.

      Dans l'option 1, ce qu'il faut, c'est déterminer une arche. Ensuite, toutes les arches sont identiques. Pour une arche, le mieux est de chercher 'Trajectoire Parabolique' sur le net. Tu auras plein de trucs très détaillés, inutile de tout recopier ici.

      • Partager sur Facebook
      • Partager sur Twitter
        11 juillet 2018 à 16:27:15

        normalement mon rebond est parfait, j'essaie de faire une animation Matlab d'un ballon qui rebondit, mais à un certain moment (aléatoire) le ballon rebondira dans les airs. c'est a dire qu'il touchera pas l'axe X.

        par exemple au rebond 3 (définit) par l'ordinateur aléatoirement  le ballon rebondira à y=2 

        -
        Edité par ocrazy 11 juillet 2018 à 16:28:53

        • Partager sur Facebook
        • Partager sur Twitter
          11 juillet 2018 à 17:11:21

          Hello,

          il semblerait qu'il y ait toute une page wikipedia concernant la modélisation d'une balle rebondissante. Dans ton cas, ta trajectoire entre deux rebonds est parabolique. En utilisant les formules que tu trouveras sur la page wiki (partieGravity), je te propose la simulation suivante :

          • conditions initiales : \(v_x^0, v_y^0, x^0, y^0\) (vitesse x et y, position x et y)
          • pour chaque rebond, connaissant \(y^1\) (ordonnée d'arrivée du premier rebond, que tu choisis aléatoirement), tu en déduis le temps d'arrivée \(t^1\) puis tu en déduis l’abscisse \(x^1\) de ton rebond, \(v_x^1, v_y^1\). Comme ton ballon ne frotte pas, sa vitesse le long de l'axe x est conservée et celle le long de l'axe y est multipliée par -1, ce qui te sert de condition initiale pour le rebond suivant.
          • Partager sur Facebook
          • Partager sur Twitter

          Avez-vous entendu parler de Julia ? Laissez-vous tenter ...

            11 juillet 2018 à 22:02:50

            ca sera dur d'appliquer cette equation car si par exemple je veux un premier rebond à y=8, on aura theta inconnu et T qui est inconnu donc on pourra pas en déduire x , donc ca serai pas possible d'appliquer cette formule, le ballon dans mon application ne rebondira pas forcement sur la terre donc sin(teta) != 0 (dans l'une des rebond)

            on faite j'essaie de faire une animation avec Matlab ou l'un des rebonds sera sur un Y aléatoire par exemple y=8, ce genre d'equation est applicable je pense que si le rebond est sur la terre .

            je suis pas sur mais j'aimerai savoir si vous pouvez me passer des exo corriger afin de m'inspirer 

            • Partager sur Facebook
            • Partager sur Twitter
              11 juillet 2018 à 22:54:48

              Je cite : si par exemple je veux un premier rebond à y=8, 

              Ce n'est pas clair. Classiquement, le sol est la droite d'équation y=0. 

              Oublions les maths, et passons dans la vraie vie. Tu as une table, à une hauteur d'1m, et tu as un ballon posé sur cette table. Tu fais rouler le ballon, à la vitesse de ton choix. Si tu veux que le ballon tombe à 50cm du bord de la table, tu vas donner une vitesse relativement faible au ballon.  Et si tu veux que le ballon touche le sol à 2m du bord de la table, il va falloir lui donner une très grande vitesse.  Et si tu veux que le ballon tombe à 10 mètres de la table, dans la théorie, tu peux, mais dans la pratique, il faudrait donner une vitesse énorme au ballon. 

              Je ne sais pas si ça t'aide, mais ça devrait te remettre sur les bons rails.

              • Partager sur Facebook
              • Partager sur Twitter
                11 juillet 2018 à 23:05:08

                oui mais c'est ce que j'essaie de dire c'est pas une simulation de ce qui se passe au ballon dans la vrai vie mais c'est une animation Matlab  (elle peut être réel ou non), on m'avait demandé ça pour des études psychologiques de comportement humain c'est le cahier de charge qui m'oblige a faire ça :), sinon je l'aurai fais avec un logiciel d’animation et ça aura été beaucoup plus simple. 

                Le problème que j'ai, c'est que le l'un des rebonds (aléatoire choisis par matlab) devra se faire à une hauteur y!=0

                • Partager sur Facebook
                • Partager sur Twitter
                  12 juillet 2018 à 9:12:12

                  Si, tu peux en déduire tout ce que tu veux. Pour y, c'est une équation polynomiale du second degré en t (si tu ne sais pas comment la résoudre, tu trouveras explicitement les formules sur wiki). Une fois \(t_1\) calculé, tu as x, etc.

                  Si le python te parle un peu, je peux poster un code (c'est très similaire à matlab).

                  ocrazy a écrit:

                  ca sera dur d'appliquer cette equation car si par exemple je veux un premier rebond à y=8, on aura theta inconnu et T qui est inconnu donc on pourra pas en déduire x , donc ca serai pas possible d'appliquer cette formule, le ballon dans mon application ne rebondira pas forcement sur la terre donc sin(teta) != 0 (dans l'une des rebond)

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Avez-vous entendu parler de Julia ? Laissez-vous tenter ...

                    12 juillet 2018 à 9:43:12

                    En fait, tu as 2 choses à faire. Tu n'es pas très serein ni sur l'une ni sur l'autre, et c'est ça qui t'arrête. Il faut décomposer les problèmes.

                    Ton premier besoin, c'est de savoir gérer le parcours de la balle quand le sol est 'plat'. Résoud ce problème là, de A à Z. Dessine le parcours du ballon avec cette hypothèse, en faisant 5 ou 6 rebonds.

                    Quand tu auras résolu ce 1er problème, tu pourras t'attaquer au 2ème problème : au 3ème rebond, introduire un support, placé à 8 mètres du sol.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 juillet 2018 à 10:29:08

                      Bonjour,

                      Voici mon programme pour faire le circuit de mon ballon la partie la plus difficile c'est de faire le rebond aléatoire, 

                      clear all;close all;clc
                      longeur=40;
                      distance=20;
                      axis(gca,'equal');
                      axis([0 5*longeur 0 (longeur+10)]);
                      k=1;
                      
                      rebounce_position=[1,1,1,1];
                      pos=randi(length(rebounce_position));
                      rebounce=rebounce_position(pos);
                      
                      rebounce_position1=[0,15,14,16,18];
                      pos1=randi(length(rebounce_position1));
                      rebounce1=rebounce_position1(pos1);
                      
                          for theta=pi/2:-pi/400:0
                              p2=[distance*abs(cos(theta)) longeur*abs(sin(theta))];
                              p2_traj= viscircles(p2,0.01);
                              pause(0.001);
                                  x=distance*abs(cos(theta));
                                  y=longeur*abs(sin(theta));
                                  
                         
                            end
                      
                       
                       for i=1:1:4
                          
                          for t= pi/2:-pi/400:0
                              
                              p2=[(x*i)+(x*abs(cos(t)))  longeur*abs(sin(2*t))];
                              p2_traj= viscircles(p2,0.01);
                              pause(0.001);
                              delete( p2_traj)
                          end
                          
                       end



                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 juillet 2018 à 11:02:18

                        Non, c'est faux. Dans ton  programme, tu considères que chaque 'arche' est un demi-cercle, (ou une demi-ellipse). C'est faux.

                        La trajectoire d'un projectile (un ballon, un caillou, ce que l'on veut), ça ne suit pas un demi-cercle, mais ça suit une parabole.  Il ne devrait pas y avoir de fonction sin ou cos dans ton programme. Je te redis : cherche 'Trajectoire Parabolique' sur le net.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 juillet 2018 à 12:16:59

                          okey, j'ai lue sur la trajectoire parabole mais ça m'aide pas trop à résoudre mon problème car comme j'avais expliqué toute à l'heur ma balle devrais faire un rebond aléatoire sans qu'il soit obligé de toucher le sol ce qui veut dire que à un moment donner j'aurai plus alpha pour dessiner la prochaine courbe, ce qui veut dire cette équation peut juste m'aidé  à lancer ma balle et savoir ou elle va tomber et c'est pas ce que je veux, car je sais déja que ma balle va tombé à un x= (donnée par l'utilisateur) et qu'il atteindra tout le temps une hauteur maximal de 100 (le même point du lancement du ballon).

                          sinon pour la trajectoire parabolique il y'a des sin des cos et même des tangentes sur les formules qu'ils donnent sur internet.

                          merci beaucoup pour votre réponse.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            12 juillet 2018 à 16:05:32

                            Salut,

                            J'ai peut-être mal compris mais si tu fixes la distance (suivant x) entre deux rebonds, comment tu veux que le ballon rebondisse à des y différents de 0 ?

                            EDIt : ou alors justement tu veux fixer la hauteur du rebond et donc en déduire le x correspondant ?

                            -
                            Edité par Stormweaker 12 juillet 2018 à 16:07:56

                            • Partager sur Facebook
                            • Partager sur Twitter
                              12 juillet 2018 à 16:20:39

                              normalement j'ai le ymax sera fixé à 100 mais le x sera donner par l'utilisateur c'est à dire l'utilisateur peut dire qu'il veut 4 rebond sur 80 metre par exemple du coup les rebonds se feront chaque 20 mettre . il y'aura un rebond parmi les 4 qui se fera à un y!=0 le rebond parmi les 4 sera choisi aléatoirement. le rebond aléatoire se fera sois a y=2 à 4, , 6 ou 8 mais les autres continueront d'une maniére normale il vont atteindre le sol
                              • Partager sur Facebook
                              • Partager sur Twitter
                                12 juillet 2018 à 17:09:13

                                Encore une fois, tu essaies de bruler les étapes. 

                                Pour t'aider et essayer de comprendre ton besoin, on a ton 1er dessin.

                                Dans ton 1er dessin, le premier rebond est une demi-parabole. Puis tu as des paraboles complètes. Donc si tu veux 4 rebonds sur 80 mètres, le premier rebond sera à 80/7 mètres, et les suivants seront à 80*3/7 mètres, puis 80*5/7 mètres , et enfin à 80 mètres. 

                                Et pas à 20 mètres puis 40 mètres puis 60 mètres puis 80 mètres.

                                Avant de tenter de résoudre le problème complexe, avec un des rebonds à une hauteur intermédiaire, il faut déjà bien appréhender le problème dans le cas général. Et il faut savoir mettre en équation une arche de parabole.

                                C'est l'étape n°1. Vouloir passer à l'étape 2 ou l'étape 3, sans faire l'étape 1, ce n'est pas possible.

                                Une parabole, c'est une courbe de la forme y = ax²+bx+c ...

                                Prenons la 1ère arche de la parabole. (celle où on a seulement une demi-arche) ; Quand x vaut 0, y vaut 100. Donc dans mon équation y = ax²+bx+c, c vaut 100.

                                Et ma parabole est 'symétrique' par rapport à l'axe x=0, donc b=0

                                Donc pour cette arche, l'équation est y = ax²+100. 

                                Pour commencer, parce qu'il faut bien commencer, je vais chercher a pour que le 4ème rebond soit obtenu pour x = 80.

                                Donc comme dit ci-dessus, il faut que le 1er rebond soit à x = 80/7,  etdonc il faut choisir a = -100 * (7/80)² = -0.765625

                                Maintenant, attaquons le problème plus compliqué, on veut la même chose, mais un des rebonds intermédiaires n'est pas au niveau du sol, il est au niveau  y=8.

                                Donc, le parcours complet, au lieu d'avoir 7 demi-arches, on a 5 demi-arches d'une hauteur de 100 mètres et 2 demi-arches d'une hauteur de 92 mètres.

                                Pour une parabole d'équation y = ax²+100, il faut donc qu'on calcule à quelle valeur de x cette parabole touche le sol, et à quelle valeur  de x cette parabole touche le niveau y = 8.

                                X0 = largeur d'une demi-arche non tronquée = racine (-100/a)

                                X1 = largeur d'une demi-arche tronquée = racine (-92/a)

                                Et donc on cherche a, pour avoir :  5*X0+2*X1= 80

                                soit : 5*racine(-100/a)+ 2*racine(-92/a) = 80.  Ca se factorise :

                                racine(-1/a) * ( 5*racine(100) +2*racine(92) ) = 80  Et donc on peut trouver a=-0.747864  

                                La valeur trouvée est assez proche du 1er calcul ... c'est rassurant.

                                Donc pour l'exemple donné, longueur totale = 80m, un des rebonds est au niveau y=8m, il faut commencer par la parabole y = ax²+100, avec a=-0.747864 , puis faire des paraboles semblables, décalées de xxx mètres vers la droite.

                                Ici, j'ai fait tout le calcul avec les valeurs que tu as données ( 80m en tout, 4 rebonds en tout, hauteur de 8 mètres pour un des rebonds). Mais ça se généralise avec n'importe quelles valeurs.

                                -
                                Edité par tbc92 12 juillet 2018 à 17:11:41

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  12 juillet 2018 à 18:16:20

                                  merci bien pour tes explications je me rends compte que ca fait super longtemps que j'ai pas fais des maths hahahahah 

                                  merci encore une fois pour cette réponse détaillé et pertinente

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  équation pour trouver le rebond d'un ballon

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown