Am ecuația

 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}]] 

Mai sus este cum am în prezent totul funcționează și grafic.

Actualizare

De fapt am aproape tot ceea ce funcționează. Am linia bieing drwan. Singura problemă pe care o am este că primele 2 puncte de date și începutul liniei fiind desenat în mod efectiv începe înainte de axa y pe grafic, deci dacă te uiți la grafic este înclinat spre stânga. Încerc să înțeleg ce valoare va trebui să schimb pentru a reveni la dreapta și mă lupt puțin. orice ajutor va fi apreciat.

cum pot introduce acest lucru în funcția FindFit?

FindFit[data, model, parms]; 

Am datele mele, nu pot să dau seama cum să introduc acest lucru în model și params corect. Acesta este precauție care mi-a fost dată pentru date și pur și simplu nu știu cum să le introduc sau să arăt că va fi o curbă exponențială.

Comentarii

  • Bine, iată întrebarea mea. Am ' am funcționat în cea mai mare parte. singurul lucru care am o problemă este că axa X începe de la 150 și primul meu punct este la 113. vedeți problema, se complotează în spatele axei y. Așadar, există o modalitate de a iniția axa X.
  • Întrebarea dvs. actualizată este doar despre setarea intervalului de parcela, cred. În acest caz, setarea manuală funcționează cel mai bine, introduceți PlotRange – > {{0, 800}, {8000, 11000}} în ListPlot.

Răspuns

Este mai bine să folosiți 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]}] ] 

introduceți descrierea imaginii aici

Pentru a vedea parametrii puteți utiliza nlm["BestFitParameters"] pentru a obține

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

Actualizați

Utilizând noile date de testare cu @ george2079 tip veți obține:

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}] ] 

introduceți descrierea imaginii aici

Comentarii

  • Am probleme cu obținerea modelului nonlinear în plan, îmi dă erori de sintaxă. Cred că este ceva cu ListPlot care nu-i place.
  • Puteți adăuga câteva exemple de date în întrebarea dvs., astfel încât să le putem testa.
  • @Bill editați-vă de usi Comentarii.
  • Am adăugat date și funcțiile pe care încerc să le folosesc la întrebarea mea inițială. orice sugestie va fi foarte apreciată.
  • Acest lucru funcționează excelent. singura problemă pe care o am este să primesc de fapt linia de afișat. Primesc datele de trasat, dar nu ' nu obțin curba de trasat. orice idee despre ceea ce pot face greșit.

Răspuns

În acest caz FindFit și NonlinearModelFit nu găsesc cu ușurință o potrivire bună, trebuie să furnizați valori de pornire rezonabile pentru parametrii:

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] 

(* eroare Dimensiunea pasului în căutare a devenit mai mică decât toleranța. .. *)

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

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

Aceasta este o potrivire bună, îmi pare rău că nu pot posta grafică.

Deci, cum ajungeți la valorile inițiale? Am trasat expresia și m-am jucat cu constantele cu mâna până m-am apropiat destul de mult. Ne pare rău dacă acest lucru nu este satisfăcător, dar există într-adevăr o arta de adaptare a datelor care depășește ceea ce mathica poate face într-un mod complet automat.

Comentarii

  • De fapt, am primit linia pentru a grafica cu codul dvs., dar încă primesc un grafic înclinat. orice idei.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *