Hallo,
Mein Ziel ist es, dass JSL Werte in zwei Spalten (x1, x2) durchläuft, die in Formeln anderer Spalten verwendet werden, bis sie die Kriterien von [Spalte (y1) - Spalte (y2) = 0; Spalte (z1) - erfüllen. Spalte (z2) = 0]. Beachten Sie, dass die Gleichung, die ich zu lösen versuche, eine verschachtelte nichtlineare Gleichung ist, in der
y1 = f1 (x1, x2, x3, x4 ...)
y2 = f2 (x1, x2, x3, x4 ...)
z1 = y1 + y2
z2 = unabhängiger Wert
In Excel war es einfach genug, die Gleichung in mehrere Spalten aufzuteilen, um leichter nachverfolgen zu können, ob dazwischen Berechnungsfehler aufgetreten sind. Durchlaufen Sie dann jede Zeile und führen Sie einen Löser aus, um x1 und x2 zu wiederholen, bis die Zielkriterien erfüllt sind.
In JMP habe ich Probleme, die Funktion "Eingeschränktes Minimieren" zu verwenden, um dies zu replizieren. Jedes Mal, wenn ich das Skript ausführe, sieht es nicht nach Konvergenz aus, da das Ziel nicht erreicht wird und sich die Werte ständig ändern. Außerdem kann ich nur 1 Zielziel anstelle von 2 festlegen. Unten finden Sie ein Beispiel für meinen JSL-Code. Beachten Sie, dass column_y1 und column_y2 Formelspalten sind, in denen x1- und x2-Variablen enthalten sind.
dt = Current Datatable();
expr1 = abs(:column_y1[i] - :column_y2[i]);
x1 = 0.5;
x2 = 0.2;
For Each Row(
i=Row();
minfun = Constrained Minimize (expr1, {x1(0.1,0.8), x2(0.01,0.5)},
<<MAXITER></MAXITER>Glaubst du, ich muss die GESAMTE verschachtelte Gleichung im Ausdruck haben, damit dies funktioniert? Oder stimmt etwas nicht, was ich hier mache?
Jede Hilfe wird sehr geschätzt. Vielen Dank!