Dans la plate-forme non linéaire, je peux fournir ma propre équation et ensuite demander à JMP de résoudre les coefficients. Dans l'interface visuelle, je peux verrouiller certains de ces paramètres et leur donner une valeur prédéfinie. Comment est-ce que je fais ceci en scriptant?
dt = Open("$SAMPLE_DATA\Big Class.jmp");
dt << New Column( "PredictorFormula",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Parameter(
{b0 = 0.5, b1 = 0.6, b2 = 0.7},
b0 + b1 * :height + b2 * :height ^ 2
)
),
);
nln = Nonlinear( Y( :weight ), X( :PredictorFormula ), By( :sex ), Newton );Maintenant, je veux parler à nln et verrouiller le deuxième paramètre (b1) dans la première instance et changer la valeur par défaut à 0,55 et verrouiller b2 dans l'instance 2 avec la valeur par défaut 1.
À l'aide de Xpath, je peux sélectionner les NumberColEditBox et modifier leurs valeurs, mais je ne peux pas manipuler les coches de verrouillage de cette façon.
ValuesBoxes = nln << xpath("//NumberColEditBox/NumberColEditBoxHeader[text()='Current Value']/..");
templist = (ValuesBoxes[1] << get())[1];
templist[2] = 0.55;
ValuesBoxes[1] << set(templist);
templist = (ValuesBoxes[2] << get())[1];
templist[3] = 1;
ValuesBoxes[2] << set(templist);Je peux sélectionner la colonne de case à cocher et interroger ou définir la première case à cocher, mais rien de plus.
CheckBoxes = nln << xpath("//CheckBoxBox");
CheckBoxes[1] << get();
CheckBoxes[1] << set(1); //Only does a toggle of the first checkbox, cannot do any other checboxEt juste après avoir posté la question, j'ai décidé d'essayer à nouveau et j'ai trouvé comment le résoudre:
CheckBoxes[1] << get(2);
CheckBoxes[1] << set(2,1);
Voici comment vérifier et définir la deuxième case à cocher.
À partir de l'index de script, la plate-forme non linéaire accepte un message Verrouiller les paramètres.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/CES Production Function.jmp" );
obj = Nonlinear( Y( :Name( "log($ value)" ) ), X( :Model ) );
obj << Set Parameter( B0 = 0.2 );
obj << Lock Parameter( B0 );
obj << Finish;
Voici l'exemple tiré directement de l'index de script sur les paramètres de verrouillage
Aide ==> Index de script ==> Non linéaire ==> Paramètre de verrouillage
Names Default To Here( 1 );
dt = Open(
"$SAMPLE_DATA/Nonlinear Examples/CES Production Function.jmp"
);
obj = Nonlinear(
Y( :Name( "log($ value)" ) ),
X( :Model )
);
obj << Set Parameter( B0 = 0.2 );
obj << Lock Parameter( B0 );
obj << Finish;