[Matlab] Exponential fitting

Tout ce qui concerne les différents logiciels mathématiques (Matlab, Maxima, Scilab, R, Maple, Mathematica, ...) et les calculatrices scientifiques.
Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.
> Préciser le nom du logiciel concerné dans le titre de votre message.

[Matlab] Exponential fitting

Messagepar loique13 » Mardi 24 Juin 2008, 11:37

Bonjour,

est-ce que quelqu'un pourrait me dire comment je peux faire des régression su la bases de fonctions exponentiels sous matlab ? i.e. trouver la meilleur exponentiel qui suivent ma courbe expérimentale.

Merci
loique13
Utilisateur
 
Messages: 8
Inscription: Mardi 24 Juin 2008, 11:18
Statut actuel: Post-bac | Doctorat

Publicité

Re: [MATLAB] exponential fitting

Messagepar OG » Mardi 24 Juin 2008, 12:11

En passant au log, ne retrouve-t-on pas une régression linéaire ?
O.G.
OG
Modérateur
 
Messages: 2274
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [MATLAB] exponential fitting

Messagepar loique13 » Mardi 24 Juin 2008, 13:01

Ben oui et non
si $Y=A.e^{B.X}+C$ on a $\ln Y=\ln A+\ln(X+C/A)$. Bon je sais c'est pas insurmontable et je pourrais le faire mais j'ai la flemme :mrgreen:. La question serait plutot : est-ce qu'il existe un truc sous matlab pour faire des régressions autres que polynomiales ?
loique13
Utilisateur
 
Messages: 8
Inscription: Mardi 24 Juin 2008, 11:18
Statut actuel: Post-bac | Doctorat

Re: [MATLAB] exponential fitting

Messagepar OG » Mardi 24 Juin 2008, 13:27

loique13 a écrit:Ben oui et non
si $Y=A.e^{B.X}+C$ on a $\ln Y=\ln A+\ln(X+C/A)$. Bon je sais c'est pas insurmontable et je pourrais le faire mais j'ai la flemme :mrgreen:. La question serait plutot : est-ce qu'il existe un truc sous matlab pour faire des régressions autres que polynomiales ?

alors dans ce cas, Ok ça ne revient pas à de la régression linéaire. Et on tombe sur un pb non linéaire qui pourra
être pénible. Pas moyen d'avoir autrement la valeur de $C$ ?
Pour Matlab je ne sais pas. As-tu visité le site de Matlab ?
O.G.
OG
Modérateur
 
Messages: 2274
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [MATLAB] exponential fitting

Messagepar loique13 » Mardi 24 Juin 2008, 14:27

Bon j'ai écris une belle betise, la faute à la digestion et a la chaleur !
je reprends $Y=A.e^{B.X}+C$ donne $ln Y=ln A+ln (e^{B.X}+C)$ pas glop pas glop ! On peut feinter avec $\frac{dY}{dX}$ qui fait partir le $C$ et puis ça marche en bidouillant.
Mais bon justement j'ai pas envie de bidouiller : j'ai cherhcé et je n'ai trouvé que des régressions polynomiales. Je me demande si je suis pas passé à coté et sinon est-ce qu'il n'existe pas qqs part des bibliotheques de fonctions libres pour matlab ?
loique13
Utilisateur
 
Messages: 8
Inscription: Mardi 24 Juin 2008, 11:18
Statut actuel: Post-bac | Doctorat

Re: [MATLAB] exponential fitting

Messagepar rebouxo » Mardi 24 Juin 2008, 14:50

Et en faisant, $\ln(Y-C) = BX \ln(A)$ ? Parce que cela te ramènes à du cas plus sympathique non ?

Olivier
rebouxo
Modérateur
 
Messages: 6915
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: [MATLAB] exponential fitting

Messagepar loique13 » Mardi 24 Juin 2008, 14:59

J'y ai pensé mais je fais quoi ? Je ne connais pas $C$, ni $A$ ni $B$ d'ailleurs. Supposons que j'ai les deux colonnes X et Y, je vais utiliser 'polyfit' pour faire la régression linaire mais je ne peux pas faire :
Code: Tout sélectionner
p=polyfit(X,Y-C,1)

car je ne connais pas $C$...
Bon tant pis je vais coder (argh !)
loique13
Utilisateur
 
Messages: 8
Inscription: Mardi 24 Juin 2008, 11:18
Statut actuel: Post-bac | Doctorat

Re: [MATLAB] exponential fitting

Messagepar kojak » Mardi 24 Juin 2008, 15:04

bonjour,

As tu essayé avec le tableur d'Openoffice et en particulier fitto : c'est toi qui choisit ta régression : ça sera peut être plus rapide que de coder, à moins que tu aimes ça :mrgreen:
pas d'aide par MP
kojak
Modérateur
 
Messages: 10397
Inscription: Samedi 18 Novembre 2006, 19:50
Statut actuel: Actif et salarié | Enseignant

Re: [MATLAB] exponential fitting

Messagepar loique13 » Mardi 24 Juin 2008, 15:07

matlab forever...
loique13
Utilisateur
 
Messages: 8
Inscription: Mardi 24 Juin 2008, 11:18
Statut actuel: Post-bac | Doctorat

Re: [MATLAB] exponential fitting

Messagepar OG » Mardi 24 Juin 2008, 15:16

As-tu demandé à ton chef ? Que vas-tu coder alors ?

Demain j'essayerai de regarder dans le livre de Walter Gander et Jiri Hrebicek
il y avait des choses sur des régressions par morceaux et peut-être des exponentielles.
Mais la présence d'un $C$ n'est peut-être pas très naturelle ?

Cordialement
O.G.
OG
Modérateur
 
Messages: 2274
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [MATLAB] exponential fitting

Messagepar OG » Mardi 24 Juin 2008, 15:23

OG
Modérateur
 
Messages: 2274
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [MATLAB] exponential fitting

Messagepar loique13 » Mardi 24 Juin 2008, 15:28

Merci O.G. mais sauf si c'est pour ta culture personnelle te casse pas la tete ! Je vais laisser tomber ce morceau pour l'instant, ça aurait fait beau et classe mais c'est pas vital... Reste que ça m'étonne qu'il y ait pas des bibliothèques libres pour matlab.
loique13
Utilisateur
 
Messages: 8
Inscription: Mardi 24 Juin 2008, 11:18
Statut actuel: Post-bac | Doctorat

Re: [Matlab] Exponential fitting

Messagepar nirosis » Mardi 24 Juin 2008, 18:39

Salut,

un truc peut être bourrin, c'est avec la fonction fminunc de matlab (toolbox optimization)

Code: Tout sélectionner
x = fminunc(fun,x0)


x0 est ton jeu de paramètre initial, au pifomètre.

Ensuite fun est ta fonction erreur du style: $\ds \sum_{i=1}^{N} (f_i-\hat{f}(i))^2 $ avec $f_i$ ton observation et $\hat{f}(i)$ ta fonction exponentielle que tu testes (avec le jeu de paramètre associé). $N$ est le nombre de points dans ton nuage.

Sinon, si tu n'as pas cette toolbox, il y a un truc gratuit ici que je n'ai pas testé:
http://www.mathworks.com/matlabcentral/ ... tType=file


Cherche sur le matlab file exchange, y'a peut être d'autres choses!
nirosis
Administrateur
 
Messages: 1806
Inscription: Samedi 28 Mai 2005, 13:48
Localisation: Orsay, France
Statut actuel: Actif et salarié | Maître de conférence

Re: [Matlab] Exponential fitting

Messagepar loique13 » Mercredi 25 Juin 2008, 08:15

eeeeeeeeeeeeeeeet non ! je n'ai pas la fameuse optimization toolbox :evil:
Je vais essayer ton truc et je reviens
loique13
Utilisateur
 
Messages: 8
Inscription: Mardi 24 Juin 2008, 11:18
Statut actuel: Post-bac | Doctorat

Re: [Matlab] Exponential fitting

Messagepar OG » Vendredi 27 Juin 2008, 16:45

Bonjour

Aujourd'hui j'ai pris le livre de Gander et Hrebicek de mon bureau.
Ma mémoire était correcte. Il y a dans 4ème édition un chapitre 30 concernant "Least Squares Fit with Piecewise Functions".
L'exemple final concerne la croissance des cochons, une phrase est assez remarquable :

"table 30.6 suggest an exponential growth of the weight in a first phase followed by an exponential decrease of the growth to a final limit weight (which is not reached since the pigs are transformed to meat before that stage)"


(je ne recopie pas table 30.6, elle n'est pas drôle);
Revenons au sujet ! En gros on cherche sur $[0,\xi[$ une approximation en $a_0+a_1\exp(a_3)$ et sur $]\xi,..[$ $b_0+b_1\exp(b_3t)$, ce qui semble être le problème sans le côté par morceaux. Il est tout de même écrit que la méthode de Gauss-Newton (décrite dans ce chapitre) est assez sensible selon les bons choix de valeurs intiales. Ils utilisent (donc) la régularisation de Levenberg-Marquart qui consiste en gros à ajouter une variable et $\epsilon I$ à la jacobienne ... (je ne connaissais pas)

Ça me semble être un bon projet pour mes étudiants un de ces jours.
Si loique13 est intéressé il lui reste à aller à la bibliothèque ou attendre lundi.

Cordialement
O.G. toujours d'une grande conscience professionnelle !
OG
Modérateur
 
Messages: 2274
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [Matlab] Exponential fitting

Messagepar rebouxo » Vendredi 27 Juin 2008, 17:06

OG a écrit:croissance des cochons, une phrase est assez remarquable :

"table 30.6 suggest an exponential growth of the weight in a first phase followed by an exponential decrease of the growth to a final limit weight (which is not reached since the pigs are transformed to meat before that stage)"


(je ne recopie pas table 30.6, elle n'est pas drôle);


Dans le cochon tout est bon !
rebouxo
Modérateur
 
Messages: 6915
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: [Matlab] Exponential fitting

Messagepar OG » Vendredi 27 Juin 2008, 17:27

rebouxo a écrit:Dans le cochon tout est bon !


Ça sent la fatigue de fin d'année mon cher Olivier.
Qui dit mieux ?
O.G. bientôt à table
OG
Modérateur
 
Messages: 2274
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [Matlab] Exponential fitting

Messagepar rebouxo » Vendredi 27 Juin 2008, 19:09

Au j'aurais pu faire pire. Non, je ne dirais rien de plus.
Cela dit, faire des maths avec du cochon, c'est pas tous les jours que cela arrive.

Olivier
rebouxo
Modérateur
 
Messages: 6915
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: [Matlab] Exponential fitting

Messagepar Framboise » Dimanche 29 Juin 2008, 00:41

L'étude des cochons :

http://www.solvingproblems.inf.ethz.ch/

-> Pavé Download
paragraphe 30
et download des fichiers zippés :

http://www.solvingproblems.inf.ethz.ch/Pig.zip
J'ai le virus des sciences, ça se soigne ?
Framboise
Téra-utilisateur
 
Messages: 1154
Inscription: Lundi 21 Mai 2007, 12:57
Localisation: Dordogne
Statut actuel: Post-bac | Doctorat

Re: [Matlab] Exponential fitting

Messagepar jobherzt » Lundi 30 Juin 2008, 21:24

Pourquoi ne pas essayer avec la fonction leasqr de octave (clone libre et gratuit de matlab) ?

La pour le logiciel : http://www.gnu.org/software/octave/
La pour les fonctions supplementaire (dont de la regression non lineaire avec la methode de Levensberg Marquardt) : http://octave.sourceforge.net/

Sinon il y a l'analyse par intervalles, peu connues mais qui donne d'excellent resultat sur des problemes hautement non lineaires, mal conditionnés, enfin plutot tres moches, quoi :)
jobherzt
Méga-utilisateur
 
Messages: 433
Inscription: Vendredi 13 Janvier 2006, 13:13

Suivante

Retourner vers Logiciels mathématiques

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités