Verehrte Gäste,
Ich werde zunächst versuchen, das Problem, mit dem ich konfrontiert bin, anhand eines Beispiels darzustellen. Stellen Sie sich eine Tabelle mit 100 Zeilen und 6 Spalten (PAR1, PAR2, VAR, MOD, MEA, ERR) vor.
Die Spalte MOD enthält ein Modell (=eine Formel), das von 3 Parametern P1, P2 und VAR abhängt.
Die Werte der Spalten P1 und P2 sind fest und für jede Zeile unterschiedlich.
Die Spalte VAR enthält den dritten Parameter, der zu Beginn mit einem Standardwert initialisiert wird (sagen wir 1). Um ein konkretes Beispiel zu geben, stellen wir uns vor, dass MOD die folgende Formel enthält: MOD[i] = 3.P1[i]^3+COS(2.P2[i]^2+VAR[i]).
Die Spalte MEA enthält die Ergebnisse einer Messung, unterschiedlich für jede Zeile.
Und schließlich enthält ERR den quadratischen Fehler zwischen dem Modell und der Messung, also: ERR[i] = (MOD[i] - MEA[i])^2.
Mein Ziel ist es, für jede Zeile den Wert von VAR[i] zu bestimmen, sodass der Wert des Modells dem der Messung entspricht.
In Excel würde ich dazu den Solver verwenden. Wir können uns auch ein JSL-Skript vorstellen, in dem für jede Zeile ein Algorithmus (einfache Dichotomie, Newton, Brent, ...) die Wurzel der Funktion F[i] = MOD[i] - MEA[i] findet Minimierung der Menge ERR[i].
Aber ich frage mich, ob es dafür eine einfachere Alternative gibt? Mit einer JMP-Plattform?
Ich warte auf Ihre freundliche Antwort.
Stéphane
PS: Seien Sie nachsichtig mit meinem ersten Beitrag/Frage in der Community! 

Perfekt! Ich wusste nicht, dass diese beiden Funktionen – Minimize() und Constrained Minimize() – existieren. Vielen Dank für Ihre Hilfe
Sie könnten minim() wahrscheinlich für Ihre gewünschte Kostenfunktion verwenden, um den optimalen Wert von VAR zu erhalten und jede Zeile in einer Schleife zu optimieren.So könnten Sie so etwas einrichten:
dt = Current Data Table();
cost = expr(abs(3 * :PAR1[i] ^ 3 + Cos( 2 * :PAR1[i] ^ 2 + VAR1 ) - :MEA[i]));
for(i=1, i<=N Row(dt), i++,
:VAR[i] = Minimize(cost,{VAR1(-5, 5)});
);Da Sie nur einen Fehler optimieren (keine Notwendigkeit, die Summe quadrierter Fehler zu minimieren), können Sie einfach die einfachere Kostenfunktion des Fehlers ohne Quadrierung verwenden.
Es gibt viele weitere Argumente, die Sie mit minim() verwenden können.Schauen Sie sich auch Constrained Minimize() an.Dies schien bei meiner von mir eingerichteten Testtabelle zu funktionieren und die Fehler wurden minimiert, solange ich einen angemessenen Wert für MEA eingegeben habe.