Cherche formule pour trouver une constante à partir de coordonnées X et Y

lelectricien

XLDnaute Junior
Bonjour à toutes et à tous,

J'ai un tableau de coordonnées (X et Y), et pour les coordonnées entrées, je voudrais avoir les constantes de sorte qu'en utilisant ces constantes dans une autre formule, je puisse trouver Y en fonction de X.

Mon problème ici est que je connais ma deuxième formule, mais je ne sais pas du tout comment trouver ces constantes. Pourriez-vous m'aider?, Je vous met un classeur en annexe.

Merci d'avance.
 

Pièces jointes

  • 1.xlsx
    11.9 KB · Affichages: 75
  • 1.xlsx
    11.9 KB · Affichages: 77
  • 1.xlsx
    11.9 KB · Affichages: 69

Fred0o

XLDnaute Barbatruc
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Bonjour lelectricien,

Ceci est la détermination des coefficients d'une fonction affine de type "Y = aX + b". Les coefficients à trouver sont au nombre de deux. C'est le coefficient "a" qui est le coefficient directeur de la droite on peut le définir si on a au minimum 2 point A et B, ce qui ets le cas ici. Il se calcule ainsi : X = (Y(B) - Y(A)) / ((X(B) - X(A)).

Le coefficient b est le décallage à l'origine. Cela correspond à la valeur de Y quand X = 0. On peut le calculer avec cette formule :
b = Y - aX

J'en ai fait l'application dans ton fichier.

A+
 

Pièces jointes

  • lelectricien_V1.xlsx
    12.6 KB · Affichages: 87

Dranreb

XLDnaute Barbatruc
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Bonjour
Il y a tout lieu de penser que les constantes que vous cherchez sont des coefficient de fonctions de x, et que la somme de ces produits doit donner y. Si tel est le cas, ça se résout aisément. Encore faut-il connaitre les fonctions…
Est-ce périodique tout cela ? Est ce une courbe conique devant passer par tous les points ? Qu'est-ce que c'est ?
Voulez vous que je vous écrive un module dans lequel vous calculez vos fonctions comme vous voulez ?

P.S. J'ai vu seulement après avoir posté ma réponse votre formule en G15.
Ce n'est pas une somme de fonctions affectée de coefficients mais ça me paraît avoir un air de famille avec une conique !
Ça vous intéresserait-il que je voie le problème comme ça ? Je vous calculerais juste un Logique en plus pour lever une ambiguïté: deux courbes pour un x peuvent suivre les paramètres d'une conique.

À +
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Bonjour lelectricien,

Pas compris ce que vous voulez, mais je pense que vous vous emmêlez les pédales.

Vous savez ce qu'est une constante ?? Par exemple 1, 2, 10, 100...

Dans le fichier joint je propose la fonction TENDANCE pour calculer Y en fonction de X.

Cette fonction utilise une régression linéaire.

Edit : salut Fred0o et Dranreb, pas rafraîchi.

A+
 

Pièces jointes

  • Classeur(1).xls
    27 KB · Affichages: 73
  • Classeur(1).xls
    27 KB · Affichages: 65
  • Classeur(1).xls
    27 KB · Affichages: 58
Dernière édition:

lelectricien

XLDnaute Junior
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Je connais cette méthode mais je cherche vraiment à passer par 5 constantes, je pense que j'ai presque réussie, mais parfois ca marche et parfois sa ne marche pas, je pense qu'il y a une erreur mais je ne trouve pas. Je le met en fichier joint:
 

Pièces jointes

  • 11.xlsx
    21.4 KB · Affichages: 75
  • 11.xlsx
    21.4 KB · Affichages: 75
  • 11.xlsx
    21.4 KB · Affichages: 71

Dranreb

XLDnaute Barbatruc
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

mais parfois ca marche et parfois sa ne marche pas
Avec une racine comme ça au milieu il ne peut pas y avoir de solution si 3 points sont parfaitement alignés.
Ou plus exactement: c'est une forme simplifiée d'une paire d'hyperboles pour laquelle je ne peux pas appliquer les coefs du cas général, parce qu'elles se ramènent à 2 droites qui se coupent. Et si 4 point sont alignés elle n'est pas définie.

P.S. Dans votre dernier classeur, j'ai d'abord eu peur: j'ai vu votre formule en B23 avec un terme en x², et j'ai pensé que je ne savais pas calculer ça, et j'allais vous conseiller d'utiliser le solveur.

Et puis je suis tombé ensuite seulement (allez savoir pourquoi) sur la A20 … !? !!!!
C'est de ça que vous partez en fin de compte ?
Mais c'est à 99% la relation canonique définissant une courbe conique ça !
Je sais très bien résoudre ça. Mais arrêtez d'aligner des points, sans ça, ça marche pas !

Je joins ma programmation à votre 1er classeur. Il y a un module MConiques. Étudiez le pour vérifier si c'est bien ce qu'il vous faut.

À +
 

Pièces jointes

  • ConiqueLElectricien.xls
    221.5 KB · Affichages: 42
Dernière édition:

job75

XLDnaute Barbatruc
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Re,

Pour déterminer les coefficients de la conique, on peut utiliser cette fonction macro (dans Module1) :

Code:
Function COEF(plage As Variant)
Dim i As Byte, mat#(1 To 5, 1 To 5), id%(1 To 5, 1 To 1)
For i = 1 To 5
  mat(i, 1) = plage(i, 1) ^ 2
  mat(i, 2) = 2 * plage(i, 1) * plage(i, 2)
  mat(i, 3) = plage(i, 2) ^ 2
  mat(i, 4) = 2 * plage(i, 1)
  mat(i, 5) = 2 * plage(i, 2)
  id(i, 1) = -1
Next
COEF = Application.MMult(Application.MInverse(mat), id)
End Function
MInverse c'est INVERSEMAT et MMult c'est PRODUITMAT.

La fonction est utilisée dans les cellules E14 à E18.

Fichier joint.

Edit 1 : attention, le fichier de votre post #6 était en calcul manuel, je l'ai remis en automatique.

Edit 2 : on peut aussi entrer la formule en validant matriciellement sur la plage E14:E18, fichier (2).

A+
 

Pièces jointes

  • Conique(1).xls
    35.5 KB · Affichages: 50
  • Conique(2).xls
    35.5 KB · Affichages: 48
Dernière édition:

lelectricien

XLDnaute Junior
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Merci Job75, c'est exactement ce que je voulais!, mais il y a tout de même un hic.: Pour x = 10000-20000-30000-40000-50000 si je met en y 8-12-16-20-24 la ca coince, ca me marque "#Nombre!" . Pourrais-tu m'éclairer sur ce dernier point? D'avance merci.
 

Dranreb

XLDnaute Barbatruc
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Je me suis expliqué en long et en large là dessus, c'est parce qu'il y a des alignements de 3 points ou plus.
Ça conduit au mieux à une limite qui consiste en 2 droites qui se coupent et non à une ellipse ni une paire d'hyperboles, encore moins à une parabole.
Avez vous regardé mon classeur ?
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Re,

La fonction COEF renvoie une valeur d'erreur quand le déterminant de la matrice est nul, c'est à dire quand une ligne (ou plusieurs) est une combinaison linéaire des autres.

Par ailleurs l'équation d'une conique est du second degré.

Donc ne pas oublier que pour une valeur X il y a toujours 2 valeurs de Y (Y1 et Y2), réelles ou imaginaires, distinctes ou confondues.

Voir fichier (3).

A+
 

Pièces jointes

  • Conique(3).xls
    35.5 KB · Affichages: 48

Dranreb

XLDnaute Barbatruc
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Bonjour.
Et c'est pourquoi ma fonction SolConiq rend un 6ième paramètre booléen qui indique si la racine positive est celle qui définit la courbe passant par la majorité des 5 points imposés. Mais 2 au plus peuvent appartenir à l'autre courbe que j'ai donc également représentée dans le graphique, avec ma fonction Coniq, en inversant ce dernier paramètre.
À +
 

job75

XLDnaute Barbatruc
Re : Cherche formule pour trouver une constante à partir de coordonnées X et Y

Re,

Pour éviter que le déterminant de la matrice soit nul, on peut ruser.

Il suffit de multiplier les éléments de la matrice par un nombre aléatoire "très proche" de 1 :

Code:
Function COEF(plage As Variant)
Dim i As Byte, mat#(1 To 5, 1 To 5), id%(1 To 5, 1 To 1)
Application.Volatile
Randomize
For i = 1 To 5
  mat(i, 1) = plage(i, 1) ^ 2 * (1 + Rnd * 0.0000000001)
  mat(i, 2) = 2 * plage(i, 1) * plage(i, 2) * (1 + Rnd * 0.0000000001)
  mat(i, 3) = plage(i, 2) ^ 2 * (1 + Rnd * 0.0000000001)
  mat(i, 4) = 2 * plage(i, 1) * (1 + Rnd * 0.0000000001)
  mat(i, 5) = 2 * plage(i, 2) * (1 + Rnd * 0.0000000001)
  id(i, 1) = -1
Next
COEF = Application.MMult(Application.MInverse(mat), id)
End Function

Ainsi on trouve toujours une conique "passant" par les 5 points d'une droite...

Voir fichier (4).

Nota : appuyer sur F9 pour recalculer la conique.

A+
 

Pièces jointes

  • Conique(4).xls
    38.5 KB · Affichages: 55

Discussions similaires

Réponses
9
Affichages
193

Statistiques des forums

Discussions
312 360
Messages
2 087 598
Membres
103 604
dernier inscrit
CAROETALEX59