Lissage simple de courbes

brugogo Messages postés 2 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 8 juin 2009 - 4 juin 2009 à 14:58
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 9 juin 2009 à 12:04
Bonjour à tous!
Je me retrouve bien embété car je n'arrive pas à trouver un lissage de courbes simple d'utilisation. Mon tableau de valeurs comporte des erreurs de mesures flagrantes dues à l'automate... Donc je dois lisser tous sa. Et je ne parle pas du bruit. Si vous avez aussi un filtre passe haut..
Merci d'avance!

3 réponses

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
4 juin 2009 à 23:56
Bonsoir,

Mais peux-tu en dire un peu plus... Quelle est la question exactement ? Recherches-tu une méthode mathématique de lissage ? Quel genre de lissage as-tu besoin ? Est-ce qu'une moyenne mobile est suffisant ? Quel précision doit avoir le lissage ? ou bien, faut-il un test statistique pour repérer les erreurs aberrantes uniquement ?
Bref, il faudrait plus de chose, et voir un petit extrait de donnée pour qu'on puisse répondre... Le mieux serait de dire quelle est le résultat final tu voudrais obtenir en donnant les données initiales...

Amicalement,
Us.
0
brugogo Messages postés 2 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 8 juin 2009
8 juin 2009 à 10:51
Merci déjà pour ta réponse.
Alors :
J'ai tenté d'utiliser un système simple qui consiste a comparer ma valeur a celle d'avant et celle d'aprés. Je me contente ainsi de vérifier la cohérence des variation. Sa donne :
If Abs( i+1 + i)/ i >1 et Abs( i-1 + i)/ i > 1 Then
i = (i+1 + i-1) /2

Le problème reste que je ne connais pas les définition de variable sous VB (VBa ds ce cas) pour définir mon tableau Excel. De plus je ne sais pas comment définir le lancement de la macro quan la case 100 se rempli...
J'éspère que cela t'aidera a mieux comprendre le problème.


 


Amicalement,


GO
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
9 juin 2009 à 12:04
Bonjour,

Visiblement ton problème principal c'est déjà de programmer... Ne sachant pas quel est ton niveau, je ne peux que de conseiller de consulter des tutoriels.
En qlq mots pour t'aiguiller...

Pour stocker un tableau de valeur (ou encore Array), il y a plusieurs possibilités en VB (ou VBA c'est identique) :
1er : utiliser Dim : ex : "Dim Valeur(100) As Double"
Dim = signifie Déclaration d'une variable
Valeur = nom que tu choisi pour désigner la variable
Valeur() = Les parenthèses signifie que c'est une série de valeurs
Valeur(100) = avec 100 on dit qu'on fixe tout de suite la taille à 101 éléments (de 0 à 100)
As Double = définie le type de la variable comme (As) Double. Double correspondant aux nombres entiers ou décimaux...

Ensuite, pour affecter une valeur, on fait : A(30) = 11
Pour en faire un calcul : b = 2* A(30)
ici b  vaut alors 22... etc...

2ième : C'est un peu près le même principe, mais on utilise une déclaration différente "Array"... je te renvoi sur un tuto...

Sous Excel, on peut accéder aux cellules du tableurs par différentes méthodes... En gros, il faut regarder soit le mot clé "Range" ou "Cells"... Le principe d'accès aux contenus des cellules n'est pas sans rappeler "Dim", surtout pour Cells... mais il faut vraiment que tu lise un tuto... je n'ai pas la prétention de faire un tuto dans un forum...

Pour détecter quand une cellule particulière sera rempli, il faudra regarder du côté des événements... Un événement veut dire que la feuille peut déclencher une partie de code quand un élément est activé (par ex: quand on change de cellule, un événement "SelectionChange" se déclenche, et dans la section prévue à cet effet on peut exécuter un code)... Bref, il faut que tu découvre l'environnement de programmation (VBE) et regarder Worksheet_SelectionChange...

Amicalement,
Us.
0
Rejoignez-nous