Polynome pour courbe de tendance

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Ceubex
Membre Naturel
Messages: 15
Enregistré le: 24 Aoû 2008, 00:32

Polynome pour courbe de tendance

par Ceubex » 19 Juin 2012, 17:00

Bonjour,

J'ai un soucis. Je souhaiterais à partir de 5 points définir une courbe pour modéliser un problème (je me fiche de la fonction en elle-meme, il faut simplement qu'elle est la "bonne forme"). J'ai essayé avec un polynome de degrès 5 mais ça me donne souvent n'importe quoi comme sur l'image ci-dessous (les 5 points sont au début à la fin et en rouge, la modélisation en bleu et ce que j'aimerais obtenir en gros en vert)

Image

Ce qu'il y a de bizarre c'est que lorsque je fais la courbe de tendance polynomiale avec les mêmes points sur Excel, c'est beaucoup mieux.
Pourtant il ne s'agit normalement que d'un système qu'on résoult.

Alors comment puis je faire pour programmer une bonne courbe de tendance ?



Skullkid
Habitué(e)
Messages: 3075
Enregistré le: 08 Aoû 2007, 20:08

par Skullkid » 19 Juin 2012, 18:23

Bonjour, si tu veux une vraiment passer par tous tes points, l'interpolation polynomiale n'est pas une bonne idée, tu viens d'en faire l'expérience. Tu peux essayer d'interpoler par morceaux, par exemple avec des splines ou des courbes de Béziers.

Si tu veux seulement une courbe qui passe pas trop loin de tes points, alors là tu peux essayer de faire une régression polynomiale, à vue de nez de degré 3 (c'est peut-être ce que ton Excel a fait), mais tu n'obtiendras probablement pas une fonction croissante sur [0,1] en résultat. Sinon il te faut juger a priori de la forme mathématique de ta fonction pour faire une régression...

L'interpolation par morceaux me semble la meilleure idée.

hammana
Membre Relatif
Messages: 477
Enregistré le: 24 Avr 2012, 21:26

par hammana » 20 Juin 2012, 15:31

Ceubex a écrit:Bonjour,

J'ai un soucis. Je souhaiterais à partir de 5 points définir une courbe pour modéliser un problème (je me fiche de la fonction en elle-meme, il faut simplement qu'elle est la "bonne forme"). J'ai essayé avec un polynome de degrès 5 mais ça me donne souvent n'importe quoi comme sur l'image ci-dessous (les 5 points sont au début à la fin et en rouge, la modélisation en bleu et ce que j'aimerais obtenir en gros en vert)

Image

Ce qu'il y a de bizarre c'est que lorsque je fais la courbe de tendance polynomiale avec les mêmes points sur Excel, c'est beaucoup mieux.
Pourtant il ne s'agit normalement que d'un système qu'on résoult.

Alors comment puis je faire pour programmer une bonne courbe de tendance ?



Bonjour

Je pense qu'une fonction de la forme (a*x^4+b*x^2+c)/(x^4+d*x^2+e) conviendrait bien, et qu'on pourrait même calculer les constantes a, b, c, d, e pour qu'elle passe exactement par les points donnés. Pourriez-vous me donner les coordonnées de ces 5 points, je ferai aussi une tentative.

hammana
Membre Relatif
Messages: 477
Enregistré le: 24 Avr 2012, 21:26

par hammana » 20 Juin 2012, 22:24

Skullkid a écrit:Bonjour, si tu veux une vraiment passer par tous tes points, l'interpolation polynomiale n'est pas une bonne idée, tu viens d'en faire l'expérience. Tu peux essayer d'interpoler par morceaux, par exemple avec des splines ou des courbes de Béziers.

Si tu veux seulement une courbe qui passe pas trop loin de tes points, alors là tu peux essayer de faire une régression polynomiale, à vue de nez de degré 3 (c'est peut-être ce que ton Excel a fait), mais tu n'obtiendras probablement pas une fonction croissante sur [0,1] en résultat. Sinon il te faut juger a priori de la forme mathématique de ta fonction pour faire une régression...

L'interpolation par morceaux me semble la meilleure idée.


La courbe ci dessous a pour équation (a*x^3+b*x^2+c*x+d)/(x^3+d/3)

Les coefficients sont calculés pour que la courbe passe par les point (0-3;0.15-3.3;0.3-6.5;0.5-8.75;1-10) que j'ai pu relever sur votre graphique.
a=11.02; b=-0.9601;c=-0.02535; d=0.01824
Elle a un comporttement un peu irrégulier pour les petites valeurs de x, mais semble valable pour des valeurs de x supérieures à 1. Si vous êtes intéressé uniquement par l'intervalle 0-1, je pense qu'un polynome du 3ème degré pourrait convenir.

Image

Ceubex
Membre Naturel
Messages: 15
Enregistré le: 24 Aoû 2008, 00:32

par Ceubex » 21 Juin 2012, 00:19

hammana a écrit:La courbe ci dessous a pour équation (a*x^3+b*x^2+c*x+d)/(x^3+d/3)

Les coefficients sont calculés pour que la courbe passe par les point (0-3;0.15-3.3;0.3-6.5;0.5-8.75;1-10) que j'ai pu relever sur votre graphique.
a=11.02; b=-0.9601;c=-0.02535; d=0.01824
Elle a un comporttement un peu irrégulier pour les petites valeurs de x, mais semble valable pour des valeurs de x supérieures à 1. Si vous êtes intéressé uniquement par l'intervalle 0-1, je pense qu'un polynome du 3ème degré pourrait convenir.


Merci pour cette réponse.
En effet c'est pas mal comme résultat. J'hésite pas mal avec une autre solution plus sioux mais qui a le mérite d'être implémenté assez facilement : des splines cubiques monotones.
Je pense que les deux solutions se valent. Par contre pour le polynome de degrès 3, j'ai essayé et c'est trop instable. Ca fait des résultats comme avec mon premier graphique

Skullkid
Habitué(e)
Messages: 3075
Enregistré le: 08 Aoû 2007, 20:08

par Skullkid » 21 Juin 2012, 00:46

Le polynôme de degré 3 (ou 4, ou 5, ...), tu peux le forcer à mieux se comporter en rajoutant des points régulièrement espacés en abscisse le long du chemin que tu désires grosso modo suivre et en faisant une régression au sens des moindres carrés. En gros tu le "cloues" plus sévèrement. Après, la fonction de hammana a l'air de bien marcher donc c'est probablement d'un intérêt limité de refaire des régressions polynomiales par dessus (comme dit, je préfère quand même l'interpolation par morceaux avec des splines).

D'une manière générale, pour les régressions par les moindres carrés, plus y a de points, mieux c'est. Pour les interpolations, en particulier les interpolations polynomiales, le contraire peut se produire...

hammana
Membre Relatif
Messages: 477
Enregistré le: 24 Avr 2012, 21:26

par hammana » 21 Juin 2012, 07:50

Skullkid a écrit:Le polynôme de degré 3 (ou 4, ou 5, ...), tu peux le forcer à mieux se comporter en rajoutant des points régulièrement espacés en abscisse le long du chemin que tu désires grosso modo suivre et en faisant une régression au sens des moindres carrés. En gros tu le "cloues" plus sévèrement. Après, la fonction de hammana a l'air de bien marcher donc c'est probablement d'un intérêt limité de refaire des régressions polynomiales par dessus (comme dit, je préfère quand même l'interpolation par morceaux avec des splines).

D'une manière générale, pour les régressions par les moindres carrés, plus y a de points, mieux c'est. Pour les interpolations, en particulier les interpolations polynomiales, le contraire peut se produire...


Essayez une courbe en cloche de Gauss renversée y=a-b*exp(-c*x*x)
En prenant a=10, b=7, c=6 j'obtiens une courbe très régulière qui passe par les points 0-3;0.5-8.4;1-10

Image

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 32 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