Je cherche =E0 identifier deux maximums dans une m=EAme plage
de donn=E9e. Ces deux maximum n'ont pas n=E9cessairement la
m=EAme valeur. Comment faire ?
Bien sur, tu as un coup d'avance, c'est l'étape obligée. Je viens de le mettre en graphique et quand on déplace à la souris les points du nuage, c'est impressionant de simplicité. Ça fonctionne sur une reconnaissance d'extrême à 3 points : inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va relancer la recherche... C'est pas la solution complète mais un sérieux outil qui pourra être habillée par un filtrage.
ah là là merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" a écrit dans le message de news: u0A#
Slt,
Bien sur, tu as un coup d'avance, c'est l'étape obligée.
Je viens de le mettre en graphique et quand on déplace à la souris les
points du nuage, c'est impressionant de simplicité.
Ça fonctionne sur une reconnaissance d'extrême à 3 points :
inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va
relancer la recherche...
C'est pas la solution complète mais un sérieux outil qui pourra être
habillée par un filtrage.
ah là là
merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives.
Rajouter
G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" <twinleym@hotmail.com> a écrit dans le message de news: u0A#uA51EHA.1124@tk2msftngp13.phx.gbl...
Bien sur, tu as un coup d'avance, c'est l'étape obligée. Je viens de le mettre en graphique et quand on déplace à la souris les points du nuage, c'est impressionant de simplicité. Ça fonctionne sur une reconnaissance d'extrême à 3 points : inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va relancer la recherche... C'est pas la solution complète mais un sérieux outil qui pourra être habillée par un filtrage.
ah là là merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" a écrit dans le message de news: u0A#
Slt,
jps
j'espère qu'on ne vous dérange pas trop... jps
"twinley" a écrit dans le message de news:%
Bien sur, tu as un coup d'avance, c'est l'étape obligée. Je viens de le mettre en graphique et quand on déplace à la souris les points du nuage, c'est impressionant de simplicité. Ça fonctionne sur une reconnaissance d'extrême à 3 points : inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va relancer la recherche... C'est pas la solution complète mais un sérieux outil qui pourra être habillée par un filtrage.
ah là là merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" a écrit dans le message de news: u0A#
Slt,
j'espère qu'on ne vous dérange pas trop...
jps
"twinley" <twinleym@hotmail.com> a écrit dans le message de
news:%2394UUl81EHA.1152@TK2MSFTNGP14.phx.gbl...
Bien sur, tu as un coup d'avance, c'est l'étape obligée.
Je viens de le mettre en graphique et quand on déplace à la souris les
points du nuage, c'est impressionant de simplicité.
Ça fonctionne sur une reconnaissance d'extrême à 3 points :
inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va
relancer la recherche...
C'est pas la solution complète mais un sérieux outil qui pourra être
habillée par un filtrage.
ah là là
merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives.
Rajouter
G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" <twinleym@hotmail.com> a écrit dans le message de news:
u0A#uA51EHA.1124@tk2msftngp13.phx.gbl...
Bien sur, tu as un coup d'avance, c'est l'étape obligée. Je viens de le mettre en graphique et quand on déplace à la souris les points du nuage, c'est impressionant de simplicité. Ça fonctionne sur une reconnaissance d'extrême à 3 points : inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va relancer la recherche... C'est pas la solution complète mais un sérieux outil qui pourra être habillée par un filtrage.
ah là là merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" a écrit dans le message de news: u0A#
Slt,
twinley
c'est nous jps, c'est nous, excuse nous pour le bruit. Viens quand tu veux, y'a toujours un pichet au frais... C'est toujours un plaisir de te voir et d'avoir de tes nouvelles.
à+twinley
jps wrote:
j'espère qu'on ne vous dérange pas trop... jps
"twinley" a écrit dans le message de news:%
Bien sur, tu as un coup d'avance, c'est l'étape obligée. Je viens de le mettre en graphique et quand on déplace à la souris les points du nuage, c'est impressionant de simplicité. Ça fonctionne sur une reconnaissance d'extrême à 3 points : inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va relancer la recherche... C'est pas la solution complète mais un sérieux outil qui pourra être habillée par un filtrage.
ah là là merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" a écrit dans le message de news:
u0A#
Slt,
c'est nous jps, c'est nous, excuse nous pour le bruit.
Viens quand tu veux, y'a toujours un pichet au frais...
C'est toujours un plaisir de te voir et d'avoir de tes nouvelles.
à+twinley
jps wrote:
j'espère qu'on ne vous dérange pas trop...
jps
"twinley" <twinleym@hotmail.com> a écrit dans le message de
news:%2394UUl81EHA.1152@TK2MSFTNGP14.phx.gbl...
Bien sur, tu as un coup d'avance, c'est l'étape obligée.
Je viens de le mettre en graphique et quand on déplace à la souris les
points du nuage, c'est impressionant de simplicité.
Ça fonctionne sur une reconnaissance d'extrême à 3 points :
inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va
relancer la recherche...
C'est pas la solution complète mais un sérieux outil qui pourra être
habillée par un filtrage.
ah là là
merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives.
Rajouter
G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" <twinleym@hotmail.com> a écrit dans le message de news:
c'est nous jps, c'est nous, excuse nous pour le bruit. Viens quand tu veux, y'a toujours un pichet au frais... C'est toujours un plaisir de te voir et d'avoir de tes nouvelles.
à+twinley
jps wrote:
j'espère qu'on ne vous dérange pas trop... jps
"twinley" a écrit dans le message de news:%
Bien sur, tu as un coup d'avance, c'est l'étape obligée. Je viens de le mettre en graphique et quand on déplace à la souris les points du nuage, c'est impressionant de simplicité. Ça fonctionne sur une reconnaissance d'extrême à 3 points : inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va relancer la recherche... C'est pas la solution complète mais un sérieux outil qui pourra être habillée par un filtrage.
ah là là merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" a écrit dans le message de news:
u0A#
Slt,
RaMA
l'as tu reçu (expéditeur relais MohMoh)
Salutations RaMa -- . "twinley" a écrit dans le message de news: %
c'est nous jps, c'est nous, excuse nous pour le bruit. Viens quand tu veux, y'a toujours un pichet au frais... C'est toujours un plaisir de te voir et d'avoir de tes nouvelles.
à+twinley
jps wrote:
j'espère qu'on ne vous dérange pas trop... jps
"twinley" a écrit dans le message de news:%
Bien sur, tu as un coup d'avance, c'est l'étape obligée. Je viens de le mettre en graphique et quand on déplace à la souris les points du nuage, c'est impressionant de simplicité. Ça fonctionne sur une reconnaissance d'extrême à 3 points : inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va relancer la recherche... C'est pas la solution complète mais un sérieux outil qui pourra être habillée par un filtrage.
ah là là merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" a écrit dans le message de news:
u0A#
Slt,
l'as tu reçu (expéditeur relais MohMoh)
Salutations
RaMa
--
.
"twinley" <twinleym@hotmail.com> a écrit dans le message de news:
%23arnhr81EHA.2316@TK2MSFTNGP15.phx.gbl...
c'est nous jps, c'est nous, excuse nous pour le bruit.
Viens quand tu veux, y'a toujours un pichet au frais...
C'est toujours un plaisir de te voir et d'avoir de tes nouvelles.
à+twinley
jps wrote:
j'espère qu'on ne vous dérange pas trop...
jps
"twinley" <twinleym@hotmail.com> a écrit dans le message de
news:%2394UUl81EHA.1152@TK2MSFTNGP14.phx.gbl...
Bien sur, tu as un coup d'avance, c'est l'étape obligée.
Je viens de le mettre en graphique et quand on déplace à la souris les
points du nuage, c'est impressionant de simplicité.
Ça fonctionne sur une reconnaissance d'extrême à 3 points :
inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va
relancer la recherche...
C'est pas la solution complète mais un sérieux outil qui pourra être
habillée par un filtrage.
ah là là
merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives.
Rajouter
G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" <twinleym@hotmail.com> a écrit dans le message de news:
Salutations RaMa -- . "twinley" a écrit dans le message de news: %
c'est nous jps, c'est nous, excuse nous pour le bruit. Viens quand tu veux, y'a toujours un pichet au frais... C'est toujours un plaisir de te voir et d'avoir de tes nouvelles.
à+twinley
jps wrote:
j'espère qu'on ne vous dérange pas trop... jps
"twinley" a écrit dans le message de news:%
Bien sur, tu as un coup d'avance, c'est l'étape obligée. Je viens de le mettre en graphique et quand on déplace à la souris les points du nuage, c'est impressionant de simplicité. Ça fonctionne sur une reconnaissance d'extrême à 3 points : inférieur, supérieur, inférieur.
Vraiment bien cette merveille. Je sens que cette avancée majeure va relancer la recherche... C'est pas la solution complète mais un sérieux outil qui pourra être habillée par un filtrage.
ah là là merci
à+twinley
Alain CROS wrote:
Re
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
Alain CROS
"twinley" a écrit dans le message de news:
u0A#
Slt,
twinley
ouaip, merci beaucoup. J'étudie et je te dis la suite.
à+twinley
RaMA wrote:
l'as tu reçu (expéditeur relais MohMoh)
Salutations RaMa
ouaip, merci beaucoup. J'étudie et je te dis la suite.
ouaip, merci beaucoup. J'étudie et je te dis la suite.
à+twinley
RaMA wrote:
l'as tu reçu (expéditeur relais MohMoh)
Salutations RaMa
twinley
Slt,
J'ai reçu ton mail, mes les miens reviennent. Je persiste pour essayer de te joindre. Patience.
twinley
YannX wrote:
Bnsr,
Il faudra prévoir une régression polynomiale d'ordre >= 2 * N pour atteindre les N premiers maxima. Dans le meme ordre d'idées, comment peux-tu injecter depuis VB dans un vecteur : ActiveChart.SeriesCollection(2).XValues = tableauX ActiveChart.SeriesCollection(2).Values = tableauY (ceci ayant pour but d'accélerer la générationd e la courbe)
Merci
PS je mets en eouvre ton source !
"twinley" a écrit dans le message de news:
oui, Voici ma sub qui extrait l'équation du graphique et qui la pose dans une var et des cellules aussi . C'est pour y=ax+b. Je viens de voir qu'une courbe de régression d'ordre six collait bien au nuage. Il faudra adapter.
Garnote m'avait montré une façon de faire pour avoir les coef a et b dans une cell avec des formule mais j'avais un résultat faux. Donc j'ai privilégié l'extraction de la chaîne de car.
Sub equat() equation = ActiveSheet.ChartObjects("Graphique1").Chart _ .SeriesCollection(6).Trendlines(1).DataLabel.Text positionx = InStr(equation, "x") Select Case Mid(equation, 5, 1) Case "+" 'y = +3644.5 a = "" b = Mid(equation, positionx) * 1 Case "-" If Mid(equation, 6, 1) = "x" Then 'y = -x + 3644.5 a = -1 b = Mid(equation, positionx + 4) * 1 Else 'y = -2.456x +3644.5 a = Mid(equation, 5, positionx - 5) * 1 b = Mid(equation, positionx + 1) * 1 End If Case "x" 'y = x +3644.5 a = 1 b = Mid(equation, positionx + 2) * 1 Case Else If positionx = 0 Then 'y = +3644.5 a = "" b = Mid(equation, 5) * 1 Else 'y = 2.456x +3644.5 a = Mid(equation, 5, positionx - 5) * 1 b = Mid(equation, positionx + 1) * 1 End If End Select Sheets("Graph1").Range("D1") = a Sheets("Graph1").Range("E1") = b ' valeur de la droite de regression y=ax+b avec x=1 sur le dernier cours Sheets("Graph1").[O12] = Sheets("Graph1").[D1] +
Sheets("Graph1").[E1]
Sheets("Graph1").Range("F1").Select End Sub
C'est un des premier truc que j'ai fais en VBA alors c'est assez détaillé en pas à pas. Je pensais la condenser un jour, mais j'ai pas eu le temps.
twinley
YannX wrote:
Oui, en direct à l'écran, je connais... Mais parce que tu sais faire cela direct en VBA ; et meme en VB
peut-etre
?????? Alors là on va pouvoir faire quelque chose de bien... depuis le temps que je galère sur ce truc...... je dis bien en VB et CreateObject...
Sinon, il me manque la recherche de zéros, mais a la limite on multiplie la série de Y par -1*son signe et on appliquera les GRANDE.VALEUR que j'ai appris ici
Si c'st OK, on va couper le fil pour s'y mettre....
YannX
"twinley" a écrit dans le message de news:
Pour ce qui d'afficher l'équation de ta série de données En nuage de points, clic droit sur la série, ajouter une courbe de
tendance
Tu choisi le type régression et dans l'autre onglet Options afficher l'équation. Cette équation appairait dans le graphe et tu peux la copier ou tu veux, si tu as besoin je chercherai le code VBA pour la tripatouiller.
twinley
YannX wrote:
Si des experts graphiques Excel VBA veulent bien se signaler.... La solution sera...... Donc merci a eux !
"twinley" a écrit dans le message de news:%23Wp%
Alors là ! tu vas me dire que c'est simple comme bonjour.
Ben exactement : FAUCON YAKA....
Si les dérivées ... permettent de trouver l'algorithme des points tournants d'une courbe qui fait des vagues successives,
Mais si, c'est exactement cela !
. Et qu'on puisse identifier deux sommets... ou deux creux. Je suis preneur.
Bien sur : un sommet c'est quand la courbe monte (dérivée positive) puis descend (négative). Donc un sommet ou un vallon -> dérivée nulle
Tu auras au moins une oreille attentive. Celle qui me reste, car
l'autre
je l'ai perdu en écoutant chanter jps.
Ou d'autres cacatoUès...... ;-)
Bon : qui peut/veut m'aider sur VB->ExcelGraphiques ?
YannX wrote:
Ensuite, il me semble qu'une solution implicite se dégage.... Identifier les maximas d'une courbe d'un nuage de points, c'est : 1°/ générer son approxiamtion polynomiale,
La question est donc : comment obtenir dans Excel, et en VBA svp la formule de la regression d'un tableau de points
2°/ identifier les points à dérivée changeant de signe (vers
negatif)
3°/ appliquer GRANDE.VALEUR sur la série extraite
4°/ il pourra y avoir uen approximation, selon que HRV doit avoir les points théoriques (de l'approximation polynomiale) ou les valeurs des points réellement proposés dans le
tableau
initial
Elements dispo. 1°) En VBA j'ai trouvé une classe de régression polynomiale, si celle d'Excel ne suffit pas. 2°) Y= SIGMA : An * (X ** N) dérivée : Y' = SIGMA : An * N * ( X ** N-1) Trouver les zeros, j'ai pas cela en tete c'est dommage que le partenaire ExcelLabo soit absent..... 3°) Merci de me l'avoir apprise...
Je gage que Misange rajoutera le VBA dans son site...
@+ YannX
"twinley" a écrit dans le message de news:
tout à fait. C'est aussi le domaine de la reconnaissance de forme. Excel n'est pas forcement l'outil le plus adapté.
twinley
JpPradier wrote:
Oui on fait du lissage en fait. Après tout dépends sur combien de
points. Il y a un compromis à
adopter. On peut aussi tester si il y a un creux entre les deux sommets. Et
il
faut donner un seuil à ce
creux. Là on est presque dans le domaine du traitement du signal.
j-p
Slt,
J'ai reçu ton mail, mes les miens reviennent. Je persiste pour essayer
de te joindre.
Patience.
twinley
YannX wrote:
Bnsr,
Il faudra prévoir une régression polynomiale d'ordre >= 2 * N
pour atteindre les N premiers maxima.
Dans le meme ordre d'idées, comment peux-tu injecter
depuis VB dans un vecteur :
ActiveChart.SeriesCollection(2).XValues = tableauX
ActiveChart.SeriesCollection(2).Values = tableauY
(ceci ayant pour but d'accélerer la générationd e la courbe)
Merci
PS je mets en eouvre ton source !
"twinley" <twinleym@hotmail.com> a écrit dans le message de
news:eiWdOb71EHA.3336@TK2MSFTNGP11.phx.gbl...
oui,
Voici ma sub qui extrait l'équation du graphique et qui la pose dans une
var et des cellules aussi . C'est pour y=ax+b.
Je viens de voir qu'une courbe de régression d'ordre six collait bien au
nuage. Il faudra adapter.
Garnote m'avait montré une façon de faire pour avoir les coef a et b
dans une cell avec des formule mais j'avais un résultat faux. Donc j'ai
privilégié l'extraction de la chaîne de car.
Sub equat()
equation = ActiveSheet.ChartObjects("Graphique1").Chart _
.SeriesCollection(6).Trendlines(1).DataLabel.Text
positionx = InStr(equation, "x")
Select Case Mid(equation, 5, 1)
Case "+" 'y = +3644.5
a = ""
b = Mid(equation, positionx) * 1
Case "-"
If Mid(equation, 6, 1) = "x" Then 'y = -x + 3644.5
a = -1
b = Mid(equation, positionx + 4) * 1
Else 'y = -2.456x +3644.5
a = Mid(equation, 5, positionx - 5) * 1
b = Mid(equation, positionx + 1) * 1
End If
Case "x" 'y = x +3644.5
a = 1
b = Mid(equation, positionx + 2) * 1
Case Else
If positionx = 0 Then 'y = +3644.5
a = ""
b = Mid(equation, 5) * 1
Else 'y = 2.456x +3644.5
a = Mid(equation, 5, positionx - 5) * 1
b = Mid(equation, positionx + 1) * 1
End If
End Select
Sheets("Graph1").Range("D1") = a
Sheets("Graph1").Range("E1") = b
' valeur de la droite de regression y=ax+b avec x=1 sur le
dernier cours
Sheets("Graph1").[O12] = Sheets("Graph1").[D1] +
Sheets("Graph1").[E1]
Sheets("Graph1").Range("F1").Select
End Sub
C'est un des premier truc que j'ai fais en VBA alors c'est assez
détaillé en pas à pas. Je pensais la condenser un jour, mais j'ai pas eu
le temps.
twinley
YannX wrote:
Oui, en direct à l'écran, je connais...
Mais parce que tu sais faire cela direct en VBA ; et meme en VB
peut-etre
??????
Alors là on va pouvoir faire quelque chose de bien...
depuis le temps que je galère sur ce truc......
je dis bien en VB et CreateObject...
Sinon, il me manque la recherche de zéros,
mais a la limite on multiplie la série de Y par -1*son signe
et on appliquera les GRANDE.VALEUR que j'ai appris ici
Si c'st OK, on va couper le fil pour s'y mettre....
YannX
"twinley" <twinleym@hotmail.com> a écrit dans le message de
news:OxaRIG71EHA.3000@TK2MSFTNGP15.phx.gbl...
Pour ce qui d'afficher l'équation de ta série de données
En nuage de points, clic droit sur la série, ajouter une courbe de
tendance
Tu choisi le type régression et dans l'autre onglet Options afficher
l'équation.
Cette équation appairait dans le graphe et tu peux la copier ou tu veux,
si tu as besoin je chercherai le code VBA pour la tripatouiller.
twinley
YannX wrote:
Si des experts graphiques Excel VBA veulent bien se signaler....
La solution sera...... Donc merci a eux !
"twinley" <twinleym@hotmail.com> a écrit dans le message de
news:%23Wp%23U061EHA.824@TK2MSFTNGP11.phx.gbl...
Alors là ! tu vas me dire que c'est simple comme bonjour.
Ben exactement : FAUCON YAKA....
Si les dérivées ... permettent de
trouver l'algorithme des points tournants d'une courbe qui fait des
vagues successives,
Mais si, c'est exactement cela !
. Et qu'on puisse identifier deux
sommets... ou deux creux. Je suis preneur.
Bien sur : un sommet c'est quand la courbe
monte (dérivée positive) puis descend (négative).
Donc un sommet ou un vallon -> dérivée nulle
Tu auras au moins une oreille attentive. Celle qui me reste, car
l'autre
je l'ai perdu en écoutant chanter jps.
Ou d'autres cacatoUès...... ;-)
Bon : qui peut/veut m'aider sur VB->ExcelGraphiques ?
YannX wrote:
Ensuite, il me semble qu'une solution implicite se dégage....
Identifier les maximas d'une courbe d'un nuage de points,
c'est :
1°/ générer son approxiamtion polynomiale,
La question est donc : comment obtenir dans Excel,
et en VBA svp la formule de la regression d'un tableau de points
2°/ identifier les points à dérivée changeant de signe (vers
negatif)
3°/ appliquer GRANDE.VALEUR sur la série extraite
4°/ il pourra y avoir uen approximation, selon que HRV
doit avoir les points théoriques (de l'approximation
polynomiale)
ou les valeurs des points réellement proposés dans le
tableau
initial
Elements dispo.
1°) En VBA j'ai trouvé une classe de régression polynomiale,
si celle d'Excel ne suffit pas.
2°) Y= SIGMA : An * (X ** N)
dérivée : Y' = SIGMA : An * N * ( X ** N-1)
Trouver les zeros, j'ai pas cela en tete
c'est dommage que le partenaire ExcelLabo soit absent.....
3°) Merci de me l'avoir apprise...
Je gage que Misange rajoutera le VBA dans son site...
@+
YannX
"twinley" <twinleym@hotmail.com> a écrit dans le message de
news:Oz3SlP61EHA.3132@TK2MSFTNGP14.phx.gbl...
tout à fait.
C'est aussi le domaine de la reconnaissance de forme.
Excel n'est pas forcement l'outil le plus adapté.
twinley
JpPradier wrote:
Oui on fait du lissage en fait. Après tout dépends sur combien de
points. Il y a un compromis à
adopter.
On peut aussi tester si il y a un creux entre les deux sommets. Et
il
faut donner un seuil à ce
creux.
Là on est presque dans le domaine du traitement du signal.
J'ai reçu ton mail, mes les miens reviennent. Je persiste pour essayer de te joindre. Patience.
twinley
YannX wrote:
Bnsr,
Il faudra prévoir une régression polynomiale d'ordre >= 2 * N pour atteindre les N premiers maxima. Dans le meme ordre d'idées, comment peux-tu injecter depuis VB dans un vecteur : ActiveChart.SeriesCollection(2).XValues = tableauX ActiveChart.SeriesCollection(2).Values = tableauY (ceci ayant pour but d'accélerer la générationd e la courbe)
Merci
PS je mets en eouvre ton source !
"twinley" a écrit dans le message de news:
oui, Voici ma sub qui extrait l'équation du graphique et qui la pose dans une var et des cellules aussi . C'est pour y=ax+b. Je viens de voir qu'une courbe de régression d'ordre six collait bien au nuage. Il faudra adapter.
Garnote m'avait montré une façon de faire pour avoir les coef a et b dans une cell avec des formule mais j'avais un résultat faux. Donc j'ai privilégié l'extraction de la chaîne de car.
Sub equat() equation = ActiveSheet.ChartObjects("Graphique1").Chart _ .SeriesCollection(6).Trendlines(1).DataLabel.Text positionx = InStr(equation, "x") Select Case Mid(equation, 5, 1) Case "+" 'y = +3644.5 a = "" b = Mid(equation, positionx) * 1 Case "-" If Mid(equation, 6, 1) = "x" Then 'y = -x + 3644.5 a = -1 b = Mid(equation, positionx + 4) * 1 Else 'y = -2.456x +3644.5 a = Mid(equation, 5, positionx - 5) * 1 b = Mid(equation, positionx + 1) * 1 End If Case "x" 'y = x +3644.5 a = 1 b = Mid(equation, positionx + 2) * 1 Case Else If positionx = 0 Then 'y = +3644.5 a = "" b = Mid(equation, 5) * 1 Else 'y = 2.456x +3644.5 a = Mid(equation, 5, positionx - 5) * 1 b = Mid(equation, positionx + 1) * 1 End If End Select Sheets("Graph1").Range("D1") = a Sheets("Graph1").Range("E1") = b ' valeur de la droite de regression y=ax+b avec x=1 sur le dernier cours Sheets("Graph1").[O12] = Sheets("Graph1").[D1] +
Sheets("Graph1").[E1]
Sheets("Graph1").Range("F1").Select End Sub
C'est un des premier truc que j'ai fais en VBA alors c'est assez détaillé en pas à pas. Je pensais la condenser un jour, mais j'ai pas eu le temps.
twinley
YannX wrote:
Oui, en direct à l'écran, je connais... Mais parce que tu sais faire cela direct en VBA ; et meme en VB
peut-etre
?????? Alors là on va pouvoir faire quelque chose de bien... depuis le temps que je galère sur ce truc...... je dis bien en VB et CreateObject...
Sinon, il me manque la recherche de zéros, mais a la limite on multiplie la série de Y par -1*son signe et on appliquera les GRANDE.VALEUR que j'ai appris ici
Si c'st OK, on va couper le fil pour s'y mettre....
YannX
"twinley" a écrit dans le message de news:
Pour ce qui d'afficher l'équation de ta série de données En nuage de points, clic droit sur la série, ajouter une courbe de
tendance
Tu choisi le type régression et dans l'autre onglet Options afficher l'équation. Cette équation appairait dans le graphe et tu peux la copier ou tu veux, si tu as besoin je chercherai le code VBA pour la tripatouiller.
twinley
YannX wrote:
Si des experts graphiques Excel VBA veulent bien se signaler.... La solution sera...... Donc merci a eux !
"twinley" a écrit dans le message de news:%23Wp%
Alors là ! tu vas me dire que c'est simple comme bonjour.
Ben exactement : FAUCON YAKA....
Si les dérivées ... permettent de trouver l'algorithme des points tournants d'une courbe qui fait des vagues successives,
Mais si, c'est exactement cela !
. Et qu'on puisse identifier deux sommets... ou deux creux. Je suis preneur.
Bien sur : un sommet c'est quand la courbe monte (dérivée positive) puis descend (négative). Donc un sommet ou un vallon -> dérivée nulle
Tu auras au moins une oreille attentive. Celle qui me reste, car
l'autre
je l'ai perdu en écoutant chanter jps.
Ou d'autres cacatoUès...... ;-)
Bon : qui peut/veut m'aider sur VB->ExcelGraphiques ?
YannX wrote:
Ensuite, il me semble qu'une solution implicite se dégage.... Identifier les maximas d'une courbe d'un nuage de points, c'est : 1°/ générer son approxiamtion polynomiale,
La question est donc : comment obtenir dans Excel, et en VBA svp la formule de la regression d'un tableau de points
2°/ identifier les points à dérivée changeant de signe (vers
negatif)
3°/ appliquer GRANDE.VALEUR sur la série extraite
4°/ il pourra y avoir uen approximation, selon que HRV doit avoir les points théoriques (de l'approximation polynomiale) ou les valeurs des points réellement proposés dans le
tableau
initial
Elements dispo. 1°) En VBA j'ai trouvé une classe de régression polynomiale, si celle d'Excel ne suffit pas. 2°) Y= SIGMA : An * (X ** N) dérivée : Y' = SIGMA : An * N * ( X ** N-1) Trouver les zeros, j'ai pas cela en tete c'est dommage que le partenaire ExcelLabo soit absent..... 3°) Merci de me l'avoir apprise...
Je gage que Misange rajoutera le VBA dans son site...
@+ YannX
"twinley" a écrit dans le message de news:
tout à fait. C'est aussi le domaine de la reconnaissance de forme. Excel n'est pas forcement l'outil le plus adapté.
twinley
JpPradier wrote:
Oui on fait du lissage en fait. Après tout dépends sur combien de
points. Il y a un compromis à
adopter. On peut aussi tester si il y a un creux entre les deux sommets. Et
il
faut donner un seuil à ce
creux. Là on est presque dans le domaine du traitement du signal.
j-p
twinley
Rama,
C'est Noël avant l'heure ! Encore une petite merveille pour la finale.
Bravo !! je ne sais pas comment vous trouvez ça, mais chapeau bas à tous et à toi en particulier. Il me manquait les crochets pour dire que c'était en matriciel... Avec trois sommets, c'est l'Himalaya...
Solide poignée de main et bonne soirée.
twinley
RaMA wrote:
Veux tu le classeur test en Bal
Salutations RaMa
Rama,
C'est Noël avant l'heure ! Encore une petite merveille pour la finale.
Bravo !! je ne sais pas comment vous trouvez ça, mais chapeau bas à tous
et à toi en particulier.
Il me manquait les crochets pour dire que c'était en matriciel...
Avec trois sommets, c'est l'Himalaya...
C'est Noël avant l'heure ! Encore une petite merveille pour la finale.
Bravo !! je ne sais pas comment vous trouvez ça, mais chapeau bas à tous et à toi en particulier. Il me manquait les crochets pour dire que c'était en matriciel... Avec trois sommets, c'est l'Himalaya...
Solide poignée de main et bonne soirée.
twinley
RaMA wrote:
Veux tu le classeur test en Bal
Salutations RaMa
Daniel.M
Bonjour,
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
ou pour les furieux de l'optimisation ;-) =G1
G1: =MIN(A2:A17)
H2: =SI(ET(G3<=G2;G2>G1);G2;"")
Copie H2 jusqu'à Hx
Salutations,
Daniel M.
Bonjour,
Au cas ou pour des valeurs négatives.
Rajouter
G18=PETITE.VALEUR(A2:A17;1)
Au cas ou pour des valeurs négatives. Rajouter G18=PETITE.VALEUR(A2:A17;1)
ou pour les furieux de l'optimisation ;-) =G1
G1: =MIN(A2:A17)
H2: =SI(ET(G3<=G2;G2>G1);G2;"")
Copie H2 jusqu'à Hx
Salutations,
Daniel M.
RaMA
Twinley,
cette fois-ci j'apprécie les {accolades} plus que les [crochets] <{:-)} Amicalement RaMa -- . "twinley" a écrit dans le message de news:
Rama,
C'est Noël avant l'heure ! Encore une petite merveille pour la finale.
Bravo !! je ne sais pas comment vous trouvez ça, mais chapeau bas à tous et à toi en particulier. Il me manquait les crochets pour dire que c'était en matriciel... Avec trois sommets, c'est l'Himalaya...
Solide poignée de main et bonne soirée.
twinley
RaMA wrote:
Veux tu le classeur test en Bal
Salutations RaMa
Twinley,
cette fois-ci j'apprécie les {accolades} plus que les [crochets]
<{:-)}
Amicalement
RaMa
--
.
"twinley" <twinleym@hotmail.com> a écrit dans le message de news:
uudOez91EHA.924@TK2MSFTNGP14.phx.gbl...
Rama,
C'est Noël avant l'heure ! Encore une petite merveille pour la finale.
Bravo !! je ne sais pas comment vous trouvez ça, mais chapeau bas à tous
et à toi en particulier.
Il me manquait les crochets pour dire que c'était en matriciel...
Avec trois sommets, c'est l'Himalaya...
cette fois-ci j'apprécie les {accolades} plus que les [crochets] <{:-)} Amicalement RaMa -- . "twinley" a écrit dans le message de news:
Rama,
C'est Noël avant l'heure ! Encore une petite merveille pour la finale.
Bravo !! je ne sais pas comment vous trouvez ça, mais chapeau bas à tous et à toi en particulier. Il me manquait les crochets pour dire que c'était en matriciel... Avec trois sommets, c'est l'Himalaya...
Solide poignée de main et bonne soirée.
twinley
RaMA wrote:
Veux tu le classeur test en Bal
Salutations RaMa
twinley
hola, ça pas pas mieux. Je devais avoir faim pour voir des crochets, quant à l'accolade, nul doute que si tu étais une femme je serai plus affectueux...
Bons rêves
twinley
RaMA wrote:
Twinley,
cette fois-ci j'apprécie les {accolades} plus que les [crochets] <{:-)} Amicalement RaMa
hola, ça pas pas mieux.
Je devais avoir faim pour voir des crochets, quant à l'accolade, nul
doute que si tu étais une femme je serai plus affectueux...
Bons rêves
twinley
RaMA wrote:
Twinley,
cette fois-ci j'apprécie les {accolades} plus que les [crochets]
<{:-)}
Amicalement
RaMa
hola, ça pas pas mieux. Je devais avoir faim pour voir des crochets, quant à l'accolade, nul doute que si tu étais une femme je serai plus affectueux...
Bons rêves
twinley
RaMA wrote:
Twinley,
cette fois-ci j'apprécie les {accolades} plus que les [crochets] <{:-)} Amicalement RaMa