Nichtlineares SkriptWenn Sie NLR über die Plattform in einer Datentabelle ausführen, werden die erwarteten Ergebnisse generiert (siehe Croucher http://www.walkingrandomly.com/?p=5215). Die Ausführung des entsprechenden Skripts (im Anhang) führt jedoch zu einem Absturz (Zugriffsverletzung) in JMP 7 . [habe nicht gesehen, wie man eine Tabelle anbringt, aber ich kann sie nach Bedarf senden.]
Ich habe ähnliche Skripts [Änderungsdaten und Gleichung] ohne Probleme verwendet.
Irgendwelche Gedanken?
Der Gleichungsabschnitt des Skripts lautet: Parameter ({b0 = 1, b1 = 0,2},
b0 * Cosinus (b1 *: X) + b1 * Sinus (b0 *: X))
Clear Log(); Clear Globals();
xv = [ -2, -1.64, -1.33, -.07, 0, 0.45, 1.2, 1.64, 2.32, 2.9];
yv = [.699369,.700462,.695354,1.030905,1.97389,2.411430,1.910910,0.919576,-0.770975,-1.42001];
dt = New Table( "Croucher Data",
New Column( "x", SetValues( xv ) ),
New Column( "y", SetValues( yv ) ),
); //close New Table
dt <<
Nonlinear(
Y( :y ),
X( :x ),
Model( Parameter( {b0 = 1., b1 = 0.2},
b0 * Cosine( b1 * :x ) + b1 * Sine( b0 * :x ) ) ),
QuasiNewton SR1,Finish,plot(1),
Confidence Limits
);//close NonLinear
Re: Nichtlineares SkriptDanke, Tipp eingeben! Ich habe sie für meine Datei repariert.
Re: Nichtlineares SkriptVielen Dank für das Skript. Es funktioniert gut für mich. Ich habe diese Funktion nicht viel benutzt, ist aber offensichtlich für viele Modelle ideal.
Re: Nichtlineares SkriptAnscheinend sollte einer Ihrer x-Werte -0,7 sein, nicht -0,07.
Re: Nichtlineares SkriptDein Skript funktioniert gut. Im Vergleich zum verknüpften Beispiel gibt es einen geringfügigen Unterschied in den Eingabedaten (vgl. Xv [4] & yv [9]).
Es ist auch möglich, diese nichtlineare Anpassung ohne die Plattform durchzuführen:
Model = Expr(
b0 * Cosine(b1 * xv) + b1 * Sine(b0 * xv)
);
xv = [-2, -1.64, -1.33, -0.7, 0, 0.45, 1.2, 1.64, 2.32, 2.9];
yv = [0.699369, 0.700462, 0.695354, 1.03905, 1.97389, 2.41143, 1.91091, 0.919576, -0.730975, -1.42001];
b0 = 1;
b1 = 0.2;
SSE = Minimize(Sum((Model - yv) ^ 2), {b0, b1});
Eval List({b0, b1, SSE});