FindFit und Fit - Syntax? < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 17:59 Mi 01.12.2010 | Autor: | freeone |
Ich versuche nun schon seit geraumer Zeit Fit oder FindFit zum laufen zu bekommen.
Bei ersterem ist mir nicht klar, wie ich die Fit-Koeffizienten aus dem Ergebnis extrahieren kann, und bei zweiterem gelingt es mir aus nicht die Syntax richtig anzugehen, sodass ich immer Fehlermeldungen bekomme.
1. Fit
Voltages = {0, 100, 200, 800, 1600, 3200, 6400};
ABCDMatrix =
{{0.999, -1.01 , 0, 1},
{1.03383, -1.04964, -0.38693, 1.36012},
{1.06789, -1.08121, -0.77694, 1.72306},
{1.27692, -1.27492, -3.1824 , 3.96054},
{1.56842, -1.5449, -6.56758 , 7.1067},
{2.19729, -2.12689, -13.9753, 13.9828},
{3.65844, -3.4774, -31.6082 , 30.3184}};
linefit = Fit[Transpose[{Voltages, ABCDMatrixAll, 1}], {1, x}, x]
liefert mir zB ein Ergebnis der Art:
0.960583+0.000412822 x
Mit linefit1 kann ich zwar den Y-Achsenabschnitt extrahieren, mit linefit2 aber nur die steigung inklusive dem x, was ich so aber nicht weiter verarbeiten kann. Wie kann ich die Steigung einzeln extrahieren?
2.
Ich versuche FindFit wie folgt auszuführen(die Werte sind Beispielhaft, sonst würde ich die gleichen wie oben benutzen):
model = m *x + n;
FindFit[{{1, 2}, {2, 3}, {3, 4}}, model, {m, n}, x]
Ergebnis:
FindFit::fdssnv: Search specification 0 without variables should be a list with 1-4 elements. >>
und
FindFit[{{1, 2}, {2, 3}, {3, 4}}, 0, {0, 0}, x]
Da es mal funktioniert hat, kann es sich eigentlich um nichts großes handeln, trotzdem, weiß ich nicht woran es grade hängt.
Vielen Dank!
---
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 19:45 Mi 01.12.2010 | Autor: | freeone |
Manchmal kann eine Tasse Tee Wunder bewirken.
Ich habe Mathematica neu gestartet und siehe da, es hat funktioniert. Scheinbar mag es nicht über mehrere Tage laufen, oder es sammelt sich irgendwo Datenmüll an, den man nicht ohne weiteres loswird... *schulterzuck*
Zu FindFit habe ich auch wieder die Möglichkeit gefunden, wie ich die Parameter extrahieren kann:
ABCDfit={m, n} /.
FindFit[Transpose[{Voltages, ABCDMatrixAll, i}], m*x + n, {m, n},
x];
würde ABCDfit die entsprechenden Werte zuweisen.
Eine Frage bleibt aber noch:
Wie kann ich die Parameter aus "Fit" auslesen?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:23 Sa 04.12.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:22 Sa 04.12.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:18 Di 14.12.2010 | Autor: | Peter_Pein |
Hi freeone,
vermutlich hast Du es inzwischen längst herausgefunden, aber dennoch:
1.) Die Koeffizienten eines Polynoms bekommt man z.B. mit
1: | In[46]:= Coefficient[linefit,x,1]
| 2: | Out[46]= 0.000412822 |
wenn nur ein Koeff. gebraucht wird, oder mit
1: | In[47]:= CoefficientList[linefit,x]
| 2: | Out[47]= {0.960583,0.000412822} |
falls alle auf einen Rutsch bestimmt werden sollen.
2.) ein Neustart von Mathematica wäre nicht nötig gewesen; als Du das Problem hattest, waren die Variablen [mm]m, n \text{ und } model[/mm] offenbar jeweils mit 0 belegt.
Nach einem Clear[model,m,n] und erneuter Zuweisung an die Variable [mm]model[/mm] hätte es auch geklappt.
Gruß,
Peter
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:37 Sa 05.02.2011 | Autor: | freeone |
Auch wenns nun eigentlich schon ne Weile her ist. Mir hats jetzt die Tage geholfen, weil ich wieder daran verzweifelt bin die Koeffizienten dort rauszuziehen.
Vielen Dank nochmal dafür! :)
|
|
|
|