JSLで微分関数をループする
JMP ユーザー コミュニティの皆様、こんにちは。私は JSL 関数で長い間苦労しており、皆さんの助けが得られるかどうか知りたくて連絡を取りました。
スクリプトでやりたいことは、基本的に多項式回帰モデルから式を取得し、そこに含まれる各因子について偏微分を構築することです。理想的には、式に含まれるすべての因子のリストを作成し、リストをループ処理して、因子を1つずつ導関数に代入し、すべての偏微分式を計算して個別に保存します。問題は、導関数が受け入れ可能な形式で因子名をフォーマットするループ処理をどのようにして作成すればよいのかが分からないことです。既に色々試してみましたが、どれもうまくいきません。偏微分を正しく計算できる方法は2つだけあり、JSLサンプルファイルに添付しました。
この関数を使った経験のある方、またはループ内の微分関数の正しい入力形式の作成を手伝ってくれる方はいらっしゃいますか?ご協力いただければ幸いです。
自動化とスクリプトRe: JSL で微分関数をループするデリバティブとして評価できる
Names Default To Here(1);
formula_expr = Expr(
48.5137619590147 + -5.01848924914286 * :"Factor 1"n + -6.30434548201033 * :"Factor 2"n
+4.98953779772742 * :"Factor 3"n + 4.94156314686837 * :"Factor 4"n + -8.10632041659685 *
:"Factor 5"n + -15.9138137782692 * :"Factor 1"n * :"Factor 1"n + 5.67284677635098 *
:"Factor 2"n * :"Factor 2"n
);
///// Working example 1
derivative_expr = Derivative(Name Expr(formula_expr), :Name("Factor 1"));
Show(derivative_expr);
///// Working example 2
derivative_expr = Derivative(Name Expr(formula_expr), :"Factor 1"n);
Show(derivative_expr);
//// What the loop should look like (not working)
factorList = {:"Factor 1"n, :"Factor 2"n, :"Factor 3"n, :"Factor 4"n, :"Factor 5"n};
For Each({factor_item}, factorList,
derivative_expr = Eval(EvalExpr(
Derivative(Name Expr(formula_expr), Expr(Name Expr(factor_item)));
));
Show(derivative_expr);
);
Re: JSL で微分関数をループするjthiさん、本当にありがとうございます!これで直りました:)スクリプトにそれを正常に実装しました。
あなたの助けに感謝します