DMUG-Archiv 1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

Designmatrix

Eine Beschreibung Über das, was beim Fit vorgeht, findet
man in Press et al, Numerical Recipes in C, 2nd ed., 
Cambridge, 1992 (ISBN0 521 43108 5) auf Seite 671ff.
Dort ist auch die Verallgemeinerung mit Gewichten an
den Meßwerten beschrieben.

Hier ein kleines Beispiel als Mathematica-Code:

(* Für den Fit seien Daten da={{x1,y1},....,{xn,yn}} 
   gegeben. z.B.:
*)
f[x_]:=3.21+9.26x + 2.1*x^2+0.1*Random[];
da=Table[{x,f[x]},{x,1.,10}];


Clear[x];
funs={1,x,x^2};                                 (* Funktionen, auf die gefittet werden soll *)
vars={x};
design=Table[funs/.{x->da[[i,1]]}       (* die DESIGN-Matrix des Fit-Problems *)
            ,{i,Length[da]}
            ];
Print["Designmatrix: ",Dimensions[design],"     Funktionen:",funs];
Print[TableForm[design,TableSpacing->{0,3}]];
psi=PseudoInverse[design];
Print["Pseudounverse: ",Dimensions[design]];
Print[TableForm[psi,TableSpacing->{0,1}]];
Print["Me_werte:",da];
Print["Fit mit psi berechnet       : ",psi.Transpose[da][[2]]];
Print["    mit Mathematica-Funktion: ", Fit[da,funs,vars]];
Print["    das wurde gesucht       : ",f[x]];

(* wie gut die Fit-Daten die einzelnen Koeffizienten bestimmt, 
   hängt von der Kondition der Design-Matrix ab.
*)
tol=Automatic;
sv=SingularValues[N[design],Tolerance->tol]; (* SingulatValues geht nicht
                                                mit exakten Zahlen! *)
Print["Sval, dim W =",Length[sv[[2]]]," tol=",tol];
Print["    Diag:",sv[[2]]];             (* Auf erste/letzte Zahl kommt es an! *)
Print["    Kond:",First[sv[[2]]]/Last[sv[[2]]]];  (* gut: kleine Zahl! *)

Schade, daß Mathematica die Matrixkondition nicht als "Nebenergebnis"
mit anzeigt, dann wüßte man direkt, was man von den Fitparametern
halten kann, wenn man die Streuungen der Y-Werte kennt.

Gute Kondition und kleine Mesawertstreuung wünscht

Dipl-Math. Adalbert Hanaen <hsse@XXXXXXX.de>



Verweise:
Designmatrix
Timm Reinisch, 29.01.1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 08.09.2003 20:44