Intersection de courbes
Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 22 Oct 2013, 13:30
Bonjour,
Je cherche à calculer l'intersection de 2 courbes
y = a + b.exp(c.x) (C1)
y = d + e.x (C2)
A première vue, il n'y a pas de méthode algébrique.
Cette intersection se passe assez mal puisque en ce point la tangente à C1 est très voisine de C2, mais de signe contraire. Par contre, je connais un point approché.
Etant donné le contexte, ce problème admet toujours une solution unique
Quelqu'un aurait-il une idée ?
Merci d'avance.
-
leon1789
- Membre Transcendant
- Messages: 5486
- Enregistré le: 27 Nov 2007, 15:25
-
par leon1789 » 22 Oct 2013, 13:42
Dlzlogic a écrit:Cette intersection se passe assez mal puisque en ce point la tangente à C1 est très voisine de C2, mais de signe contraire.
C'est quoi le signe d'une (droite) tangente ?
Dlzlogic a écrit:Etant donné le contexte, ce problème admet toujours une solution unique
Dans ce cas, la solution à ton problème se calcule algébriquement sans problème car une droite qui intersecte une courbe exponentielle
en un seul point (puisque solution unique) est une tangente à la courbe...
-
Sourire_banane
- Membre Irrationnel
- Messages: 1355
- Enregistré le: 23 Juil 2013, 11:48
-
par Sourire_banane » 22 Oct 2013, 13:56
Dlzlogic a écrit:Bonjour,
Je cherche à calculer l'intersection de 2 courbes
y = a + b.exp(c.x) (C1)
y = d + e.x (C2)
A première vue, il n'y a pas de méthode algébrique.
Cette intersection se passe assez mal puisque en ce point la tangente à C1 est très voisine de C2, mais de signe contraire. Par contre, je connais un point approché.
Etant donné le contexte, ce problème admet toujours une solution unique
Quelqu'un aurait-il une idée ?
Merci d'avance.
Salut Dlzlogic

y = a + b.exp(c.x) (C1)
y = d + e.x (C2)
On cherche x tel que a+b.exp(c.x)=d+e.x
Il nous faut étudier la fonction d'expression f(x)=b.exp(c.x)-e.x+(a-d)
Pour cela, on dérive, on regarde s'il existe un ou plusieurs réels en lesquels f' s'annule : Ce sont nos possibles extrema. Entre deux extrema, si f est continue (il n'y a pas de raisons pour lesquelles elle ne le serait pas), il est possible qu'elle s'annule sous certaines conditions.
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 22 Oct 2013, 14:16
Salut Sourire,
Ca c'est la solution math, théorique.
En fait il faudrait résoudre l'équation de la forme A.exp(x) + B.x +C =0, et je crois qu'on sait pas faire.
Par contre, j'ai un très bon point approché. Au point d'intersection, la droite et la courbe sont comme un accent circonflexe, d'où mon expression un peu imagée "de signe contraire".
Pour l'instant, je ne vois pas autre chose qu'une méthode itérative, type Newton.
-
Skullkid
- Habitué(e)
- Messages: 3075
- Enregistré le: 08 Aoû 2007, 19:08
-
par Skullkid » 22 Oct 2013, 17:53
L'équation A*exp(x) + B*x + C = 0 se résout formellement avec la fonction W de Lambert si B est non nul.
Si A et B sont de même signe il y a une seule solution x = -W(A*exp(-C/B)/B) - C/B
Si A et B sont de signes distincts, la résolution dépend du signe de D = 1 + A*exp(1 - C/B)/B. Si D > 0 il y a deux solutions qui s'expriment comme ci-dessus avec les deux branches de W, si D = 0 il y a une unique solution x = 1 - C/B, si D < 0 il n'y a pas de solution
Soit tu as une libraire qui implémente les deux branches de W, soit tu peux les tabuler à l'avance en utilisant une méthode numérique quelconque, soit tu implémentes une méthode numérique en dur mais il faut vérifier à l'avance l'existence et le nombre de solutions.
-
Sourire_banane
- Membre Irrationnel
- Messages: 1355
- Enregistré le: 23 Juil 2013, 11:48
-
par Sourire_banane » 22 Oct 2013, 17:58
Dlzlogic a écrit:Salut Sourire,
Ca c'est la solution math, théorique.
En fait il faudrait résoudre l'équation de la forme A.exp(x) + B.x +C =0, et je crois qu'on sait pas faire.
Par contre, j'ai un très bon point approché. Au point d'intersection, la droite et la courbe sont comme un accent circonflexe, d'où mon expression un peu imagée "de signe contraire".
Pour l'instant, je ne vois pas autre chose qu'une méthode itérative, type Newton.
Je comptais te faire faire une dichotomie via tableur en fait ^^
Et j'avais depuis toujours (mes premières séances maple) entendu parler de Lambert, mais je ne savais pas que cela avait ce genre d'applications !

-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 22 Oct 2013, 18:21
Bon, j'ai pas précisé le contexte exact, donc je l'explique.
J'ai une fonction (la courbe C2) qu'on appelle "affine" je crois. Bref, c'est y=a+bx.
Arrivée à un certain point (x0,y0) que je connais à peu près (point proche), cette fonction se transforme en une courbe C1.
Je connais les deux fonctions, ce que je cherche est une valeur précise pour le point approché (x0,y0). C'est à dire l'intersection des deux courbes.
Je n'ai aucune librairie particulière.
Oui, la dichotomie serait une solution sauf que je n'ai pas envie de développer l'étude de la fonction, c'est plus simple de calculer la dérivée au point x0, puis x1 etc.
"tableur" je sais pas ce que c'est, je veux faire un truc automatique en C.
@ Sulkild, j'ai déjà entendu parler de la fonction W de Lambert, mais pas plus, je l'avoue. Par contre, pour ma culture personnelle, ça m'intéresserait d'en savoir un peu plus.
-
Skullkid
- Habitué(e)
- Messages: 3075
- Enregistré le: 08 Aoû 2007, 19:08
-
par Skullkid » 22 Oct 2013, 19:26
Pour la culture, l'article wiki n'est pas mal fait.
Pour ce qui est de ton problème, pré-tabuler W (ce que tu peux faire avec une méthode Newton par exemple) n'est intéressant que si tu vas devoir résoudre le même problème un grand nombre de fois en changeant les valeurs de tes coefficients. Si tu dois juste le résoudre pour quelques jeux de coefficients, c'est plus simple de faire du Newton (ou dichotomie, ou autres) directement (soit sur la fonction de graphe C1-C2, soit pour calculer W(A*exp(-C/B)/B)), surtout si tu sais qu'il y a une unique solution.
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 22 Oct 2013, 19:34
Merci,
Je vais regarder ça.
En fait, il est probable que le nombre de calculs à faire sera limité (en nombre et dans le temps) mais je vais regarder ça.
Je te dirai ce que j'ai compris.
De toute façon, ça peut servir, on ne sait jamais, je continue à me former (mais là, j'en sui au stade de l'autodidacte)
Bonne soirée.
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 23 Oct 2013, 14:34
Bonjour Skullkid,
J'ai lu très attentivement l'article sur la fonction W de Lambert.
Une phrase qui m'a amusée, en gros, cette fonction est connue depuis la fin du XVIII ème, est "redécouverte" environ tous les 10 ans, mais il a fallu attendre la fin du XX ème pour éviter de la redécouvrir régulièrement.
Il n'y a pas de forme algébrique simple pour la calculer et la méthode de Newton semble la plus efficace.
Avec la série de Taylor, on ne doit pas converger très vite.
Par curiosité, j'ai cherché une approximation de la fonction entre ]-1/e et 4], je trouve Y = 1.33 -1.45 exp(-1.04X)
l'écart-type est 0.15.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités