2013-04-11 4 views
1

Hy everyones,Somme des données sinus raccord avec Mathematica

J'ai un petit problème avec un script Mathematica dont j'ai besoin pour les points de données de montage avec une somme de 3 fonctions sinus:

fit = NonlinearModelFit[Data,a1*Sin[b1*x + c1] + a2*Sin[b2*x + c2] + a3*Sin[b3*x + c3], {a1, b1,c1, a2, b2, c2, a3, b3, c3}, x] 

I obtenir cette erreur:

NonlinearModelFit::cvmit: Failed to converge to the requested accuracy or precision within 100 iterations 

J'ai essayé avec différentes valeurs de départ et MaxIteration mis à 10.000 ... Peut-être pas la bonne façon de faire ce genre de montage. Est-ce que quelqu'un a une idée à ce sujet?

Merci!

Répondre

0

Peut-être que vos données est trop mauvaise, mais il fonctionne bien avec un bon échantillon:

data = Table[{x, Sin[ x + .3] + 2 Sin[1.2 x] + 3 Sin[1.5 x + .5]}, 
      {x, .01, 8 Pi, .001}]; 
fit = NonlinearModelFit[data, 
      a1*Sin[b1*x + c1] + a2*Sin[b2*x + c2] + a3*Sin[b3*x + c3], 
      {a1, b1, c1, a2, b2, c2, a3, b3, c3}, x] 

Show[ListPlot[data], Plot[fit[x], {x, 0, 8 Pi}, PlotStyle -> Red], Frame -> True] 

enter image description here

+0

Le problème est que je ne peux pas augmenter le nombre de données ... chaque point est de prendre 3 jours pour calculer sur 32 CPU ...: D (j'ai 20 points de données) d'autres idées? –

+0

@ B.jour Avec 20 points de données et neuf paramètres gratuits je pense que vous êtes en difficulté :) –