Jag har ekvationen

 y = a + b Exp[-x/c] data = {{462.36, 8872}, {408.18, 8780}, {374.4, 8915}, {322.8, 8937}, {274.00, 8919}, {243.03, 911‌4}, {209.32, 9277}, {178.91, 9394}, {140.71, 9508}, {113.08, 9592}}; nlm = FindFit[data, y = a + b Exp[-x/c], {{a, 100}, {b, 100}, {c, 10}}, x] Show[ ListPlot[data, PlotStyle -> {Darker@Green, PointSize[0.03]}], Plot[y/. nlm, {x, 1, 600}]] 

Ovanstående är hur jag för närvarande har allt som fungerar och grafer.

Uppdatering

Jag har faktiskt nästan allt fungerat jag har theline bieing drwan det enda problemet jag har är att de första 2 datapunkterna och början på raden startas faktiskt före y-axeln i diagrammet, så om du tittar på diagrammet är det snett åt vänster. Jag försöker förstå vilket värde jag kommer att behöva ändra för att flytta detta tillbaka till höger och jag kämpar lite. någon hjälp kommer att uppskattas.

hur kan jag skriva in det i FindFit -funktionen?

FindFit[data, model, parms]; 

Jag har mina data, jag kan bara inte ta reda på hur jag får in det här i model och params korrekt. Detta är ekvation som fick mig för data och bara inte vet hur man matar in den eller visar att det kommer att bli en exponentiell kurva.

Kommentarer

  • Ok, här är min fråga jag ' har fått allt att fungera för det mesta. det enda jag har ett problem är att X-axeln börjar vid 150 och min första punkt är vid 113. du ser problemet, det ritar bakom y-axeln. Så finns det ett sätt att initiera x-axeln.
  • din uppdaterade fråga handlar bara om att ställa in plotområdet tror jag. I det här fallet fungerar det manuellt, placera PlotRange – > {{0, 800}, {8000, 11000}} i din ListPlot.

Svar

Det är bättre att använda NonlinearModelFit:

data = {{0, 10}, {1, 5}, {3, 2}, {5, 1}, {6, 0}, {7, 0}}; nlm = NonlinearModelFit[data, a + b Exp[-x/c], {a, b, c}, x] Show[Plot[nlm[x], {x, 0, 7}] ,ListPlot[data, PlotStyle -> {Darker@Green, PointSize[0.03]}] ] 

ange bildbeskrivning här

För att se parametrar kan du använda nlm["BestFitParameters"] för att få

{a-> 0.100889, b-> 9.76356, c-> 1.62293}

Uppdatering

Med dina nya testdata med @ george2079-tips får du:

data = {{462.36,8872},{408.18,8780},{374.4,8915},{322.8,8937}, {274.00,8919},{243.03,9114},{209.32,9277},{178.91,9394}, {140.71,9508},{113.08,9592}}; nlm=NonlinearModelFit[data, a + b Exp[-x /c], {{a, 100}, {b, 100}, {c, 10}},x] Show[ListPlot[data, PlotStyle -> {Darker@Green, PointSize[0.03]}] ,Plot[nlm[x],{x,1,600}] ] 

ange bildbeskrivning här

Kommentarer

  • Jag har problem med att få den icke-linjära Modelfit att plotta det ger mig syntaxfel. Jag tror att det är något med ListPlot som det inte gillar.
  • Du kan lägga till några exempeldata i din fråga så att vi kan testa den.
  • @Bill redigera din fråga istället av usi ng kommentarer.
  • Jag har lagt till data och de funktioner som jag försöker använda i min ursprungliga fråga. alla förslag kommer att uppskattas mycket.
  • Det här fungerar bra. det enda problemet jag har är att få linjen att visa. Jag får data att plotta men ' t får faktiskt kurvan för att plotta. någon aning om vad jag kan göra fel.

Svar

I det här fallet hittar FindFit och NonlinearModelFit inte lätt du måste ange rimliga startvärden för parametrarna:

data = {{462.36, 8872}, {408.18, 8780}, {374.4, 8915}, {322.8, 8937}, {274.00, 8919}, {243.03, 9114}, {209.32, 9277}, {178.91, 9394}, {140.71, 9508}, {113.08, 9592}} FindFit[data, a + b Exp[-x /c], {a, b, c}, x] 

(* fel Stegstorleken i sökningen har blivit mindre än toleransen. .. *)

FindFit[data, a + b Exp[-x /c], {{a, 100}, {b, 100}, {c, 10}}, x] 

(* {a -> 8692.35, b -> 1910.19, c -> 161.513} *)

Det här ser bra ut, tyvärr kan jag inte lägga upp grafik.

Så hur kommer du på startvärden? Jag plottade uttrycket och lekte med konstanterna för hand tills jag kom ganska nära. Ledsen om det är otillfredsställande, men det finns verkligen en del konst till datatillbehör som går utöver vad mathematica kan göra på ett helt automatiskt sätt.

Kommentarer

  • Jag fick faktiskt linjen att rita med din kod men jag får fortfarande en sned graf. några idéer.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *