Défi pour les mathématicien chevronnés...

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
koub37
Membre Naturel
Messages: 10
Enregistré le: 25 Mar 2013, 19:45

Défi pour les mathématicien chevronnés...

par koub37 » 08 Avr 2013, 19:45

Bonsoir à tous,

J'aurai une question pour des mathématiciens expérimentés, ci-dessous un histogramme vertical représentant une série de valeurs aléatoires:

Image

Je cherche à identifier la valeur en rouge sur le graphique, c'est à dire une valeur minimale proche du maximum...

Avez-vous une idée pour la calculer simplement? Ceci n'est qu'un exemple, je serai amené à calculer d'autres séries de valeurs aléatoires, l'important étant de prendre une valeur minimale sous un pic similaire... :mur:

Qu'en pensez-vous?

Cordialement, koub. :hein:



adrien69
Membre Irrationnel
Messages: 1899
Enregistré le: 20 Déc 2012, 12:14

par adrien69 » 09 Avr 2013, 15:58

Salut,
Tu n'aurais pas une définition précise de ce que tu veux ?

koub37
Membre Naturel
Messages: 10
Enregistré le: 25 Mar 2013, 19:45

par koub37 » 09 Avr 2013, 17:40

Bonjour Adrien, effectivement, ce n'est pas très clair...

En fait, par rapport au dessin ci-dessus qui représente un histogramme verticale de valeurs aléatoires, je cherche à identifier par calcul le creux le plus proche du maximum après un pic d'activité, puisqu'un graphique vaut tous les longs discours:

Image

Visuellement il est simple d'identifier ce creux mais je souhaite calculer son seuil à l'aide d'une formule mathématique. Je ne sais pas si cela vous parait plus clair?

Cdt, koub. :hein2:

adrien69
Membre Irrationnel
Messages: 1899
Enregistré le: 20 Déc 2012, 12:14

par adrien69 » 09 Avr 2013, 18:05

Donc si je comprends bien, tu cherches à identifier la première "fin de descente" de tes valeurs. En bref isoler le pic du bruit ambiant ?

S'il s'agit toujours d'un histogramme, il est possible de donner un algorithme (si tu arrives à te donner une définition exacte de "fin de descente" qui ici n'en est pas exactement une) qui te donne le résultat (on a un problème discret donc c'est facile), par contre, s'il s'agit d'un problème continu, avec, non plus des bâtons, mais le tracé d'une fonction (imagine un micro qui te donne la puissance reçue en dB), les outils à employer seront plus compliqués, et je n'en connais pas qui soient du niveau lycée. À vrai dire je n'en connais pas en-dessous du niveau bac+3...

koub37
Membre Naturel
Messages: 10
Enregistré le: 25 Mar 2013, 19:45

par koub37 » 09 Avr 2013, 18:10

adrien69 a écrit:Donc si je comprends bien, tu cherches à identifier la première "fin de descente" de tes valeurs. En bref isoler le pic du bruit ambiant ?

S'il s'agit toujours d'un histogramme, il est possible de donner un algorithme (si tu arrives à te donner une définition exacte de "fin de descente" qui ici n'en est pas exactement une) qui te donne le résultat (on a un problème discret donc c'est facile), par contre, s'il s'agit d'un problème continu, avec, non plus des bâtons, mais le tracé d'une fonction (imagine un micro qui te donne la puissance reçue en dB), les outils à employer seront plus compliqués, et je n'en connais pas qui soient du niveau lycée. À vrai dire je n'en connais pas en-dessous du niveau bac+3...


Merci pour ta réponse, il s'agit effectivement du résultat graphique d'une fonction programmée, mais cela reste des bâtons, il s'agit d'une somme de quantités de différents seuils qui vont du minimum au maximum et je souhaite effectivement identifier cette "fin de descente"... Aurais-tu des pistes pour créer cet algo?

Cdt, koub. :help:

adrien69
Membre Irrationnel
Messages: 1899
Enregistré le: 20 Déc 2012, 12:14

par adrien69 » 09 Avr 2013, 18:25

Eh bien, déjà par fin de descente, je pense qu'il ne faut considérer que les descentes qui sont plus grandes que les montées. (sachant que tu peux sommer deux descentes)

Ensuite voilà l'algorithme auquel je pense :

Tu appelles x(i) la suite de valeurs que prennent tes bâtons.

(0) i:=1
(0') l:=[]
(0'') g:=0
(1) while x(i+1) >= x(i) do i:= i+1 l:= [l,x(i)] end do go to (1)
(2) while x(i+1)(3) if g>=Max(l) then x(i-1) else goto (0'')

Tu peux changer les inégalités pour mettre les critères qui te semblent corrects.
J'ai considéré que tu avais toujours une descente très grande, ce qui n'est peut-être pas le cas (je ne connais pas ton problème de départ), il est donc possible que l'algorithme ne soit pas bien défini et boucle. Mais auquel cas je te fais confiance pour choisir un moyen de l'arrêter (tu peux par exemple prendre un nombre N et dire que s'il n'a pas marché au bout de l'analyse de N pics, c'est qu'il n'y a pas eu d'activité).

koub37
Membre Naturel
Messages: 10
Enregistré le: 25 Mar 2013, 19:45

par koub37 » 09 Avr 2013, 18:38

adrien69 a écrit:Eh bien, déjà par fin de descente, je pense qu'il ne faut considérer que les descentes qui sont plus grandes que les montées. (sachant que tu peux sommer deux descentes)

Ensuite voilà l'algorithme auquel je pense :

Tu appelles x(i) la suite de valeurs que prennent tes bâtons.

(0) i:=1
(0') l:=[]
(0'') g:=0
(1) while x(i+1) >= x(i) do i:= i+1 l:= [l,x(i)] end do go to (1)
(2) while x(i+1)=Max(l) then x(i-1) else goto (0'')

Tu peux changer les inégalités pour mettre les critères qui te semblent corrects.
J'ai considéré que tu avais toujours une descente très grande, ce qui n'est peut-être pas le cas (je ne connais pas ton problème de départ), il est donc possible que l'algorithme ne soit pas bien défini et boucle. Mais auquel cas je te fais confiance pour choisir un moyen de l'arrêter (tu peux par exemple prendre un nombre N et dire que s'il n'a pas marché au bout de l'analyse de N pics, c'est qu'il n'y a pas eu d'activité).


Merci pour ton aide, je ne connais pas ce langage de programmation, j'ai donc un peu de mal à comprendre ta première boucle while " l:= [l,x(i)]" et sur ta ligne (0'), tu déclares l:=[], s'agit-il d'un array (tableau dimensionnel)? Si j'ai bien compris, ce tableau "l" liste la montée d'activité?

Ensuite ta deuxième boucle somme les écarts de descente sur une variable g puis les compare à la valeur maximale du tableau dimensionnel "l"?

En fait, je ne comprends pas, j'ai l'impression que ça part sur une boucle infinie, je me trompe peut-être... je ne programme pas en GoTo, c'est une instruction que je bannis de mes codes... :lol3:

adrien69
Membre Irrationnel
Messages: 1899
Enregistré le: 20 Déc 2012, 12:14

par adrien69 » 09 Avr 2013, 18:47

Voilà, je l'ai programmé en pseudo-langage. Et c'est bien ce qui se passe. Avec l je garde en mémoire la taille des montées pour ensuite pouvoir extraire la plus grande. Mais par exemple tu pourrais mettre x(i+1)-x(i), ça dépend de ce que tu veux, mais là, je ne suis pas dans ta tête ^^

koub37
Membre Naturel
Messages: 10
Enregistré le: 25 Mar 2013, 19:45

par koub37 » 09 Avr 2013, 18:51

adrien69 a écrit:Voilà, je l'ai programmé en pseudo-langage. Et c'est bien ce qui se passe. Avec l je garde en mémoire la taille des montées pour ensuite pouvoir extraire la plus grande. Mais par exemple tu pourrais mettre x(i+1)-x(i), ça dépend de ce que tu veux, mais là, je ne suis pas dans ta tête ^^



Grand merci pour ton aide, cela me parait moins obscur, je me demandais si une formule mathématique toute faite existait. Du coup maintenant, je vais adapter ta réflexion à mes besoins.

Cdt, koub. :id:

adrien69
Membre Irrationnel
Messages: 1899
Enregistré le: 20 Déc 2012, 12:14

par adrien69 » 09 Avr 2013, 18:59

Si jamais ça t'intéresse il existe une "formule" (je dirais plus un principe) pour les fonctions, mais c'est compliqué et je n'ai pas trop le temps ce soir de vulgariser ça. Dis-moi si tu veux un petit topo là dessus. J'essaierai de le faire quand j'aurai 15mn.

koub37
Membre Naturel
Messages: 10
Enregistré le: 25 Mar 2013, 19:45

par koub37 » 09 Avr 2013, 19:07

Merci, j'ai déjà ma petite idée, utiliser une moyenne pour identifier les pics d'activité, découper le graphe en zones, et identifier la valeur la plus basse entre deux pics des deux zones proches du maximum (je ne sais pas si c'est clair, mais pour moi cela me parait limpide), je devrais arriver à un résultat correct.

Donnes toujours le nom de cette formule, je ferai des recherches sur le net, tu m'as déjà beaucoup aidé.

Cdt, koub. :++:

adrien69
Membre Irrationnel
Messages: 1899
Enregistré le: 20 Déc 2012, 12:14

par adrien69 » 09 Avr 2013, 19:22

Je ne pense pas qu'il y ait de formule, mais l'idée que j'ai c'est de trouver les zones d'activité en faisant exploser les pics à ces endroits. Enfin, j'y réfléchirai demain.

Ciao.

koub37
Membre Naturel
Messages: 10
Enregistré le: 25 Mar 2013, 19:45

par koub37 » 13 Avr 2013, 07:38

Salut Adrien,

J'ai finalement opté pour une solution plutôt correcte:

- création d'une première boucle pour identifier la valeur minimale et la valeur maximale + création d'une moyenne entre ces deux valeurs
- cette moyenne me permet d'identifier des zones (actives si > à la moyenne et inactives si < moyenne)
- j'identifie la zone active la plus proche du maximum sur le graphe
- sur une dernière boucle du maximum au minimum, je recherche le seuil de basculement entre cette 1ère zone active et la zone inactive qui la suit

Je ne sais pas si c'est bien clair, mais ça fonctionne bien.

Encore merci pour ton aide précieuse.

Cdt, koub. :lol3:

adrien69
Membre Irrationnel
Messages: 1899
Enregistré le: 20 Déc 2012, 12:14

par adrien69 » 12 Juil 2013, 09:46

Ah je ne t'avais pas dit ! C'est la transformée de Fourier (rapide, donc FFT) qui permet d'analyser comme ça un signal continu. Après il faut réfléchir sur ce qu'on appelle le cepstre. Mais c'est très compliqué.

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 52 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite