FAQ-768 Wie kann ich die Werte der Anpassungsparameter in nichtlinearen Anpassungen bei jeder Iteration erhalten?

Letztes Update: 26.07.2018


Sie können die Labtalk-Funktionen Nlbegin und Nlfit verwenden, um eine nichtlineare Anpassung durchzuführen und die Anpassungsparameterwerte in nichtlinearen Anpassungen bei jeder Iteration zu erhalten.

// import sample data into a new book newbook; fname$=system.path.program$ + "Samples\Curve Fitting\Exponential Growth.dat"; //prepare data impASC; // Start a fitting session; nlbegin iy:=2 func:=ExpDec1 nltree:=tt; getnumber -s (Input the iterations) n;     //Construct a dialog to enable user enter the iteration he want to perform double aa=0; loop (i,1,n) { nlfit $(i);  //run the i-th iteration of fitting type "The parameter value in $(i) iteration"; type "y0= $(tt.y0,%4.6f)";  //output the parameter values type "A1= $(tt.A1,%4.6f)"; type "t1= $(tt.t1,%4.6f)"; if (tt.fitstatus == 100) { type "Fit converged, no more iteration will be done"; break; } } nlend;

Wenn Sie Wert 8 in das Iterationseingabefeld eingeben, wenn Sie das Skript ausführen, können Sie Ergebnisse ähnlich wie dieses erhalten:

The parameter value in 1 iteration y0= -0.162869 A1= 1.283508 t1= -0.998789 The parameter value in 2 iteration y0= -0.038538 A1= 1.195022 t1= -0.968684 The parameter value in 3 iteration y0= -0.038365 A1= 1.194898 t1= -0.968641 Fit converged, no more iteration will be done

Schlüsselwörter:LabTalk, nichtlineare Anpassung, Iteration, Anpassungsparameter