"AlgebraicValue" (Comparison Method)
代数操作を含まない計算は行いながら,代数解を求める問題に適した方法で数式を比較する.
詳細
- 代数解の比較法は,Solve,SolveValues,Fit,Reduce等の求解操作を行うことなく2つの式が等価であるなら両者が同等であるとみなす.
- 解答集と解答の値は,当てたものと厳密に等しい値を保持するために,どちらもホールドされた式Hold[expr]として指定できる.値がホールドされている場合でも,代数関数(Solve並びにこれと同等の関数)以外の評価は,評価中に行われる.常に答をホールドすることが推奨される.
- "AlgebraicValue"の評価は,問題の中の変数を指定するための設定"OptionalResultName"を許容する:AssessmentFunction[key,<"ComparisonMethod""AlgebraicValue","OptionalResultName"var >]
- "OptionalResultName"var が含まれるときは,以下の任意の形式が答 ans の正しい形として受け入れられる.
-
ans Hold[var=ans] Hold[var==ans] varans - 次は,var のサポートされるオプション値である.
-
var 送信された結果の変数 var を受け入れる False (デフォルト) ans として提供された答だけをマッチする True key から var を推測しようとする
例題
すべて開くすべて閉じる例 (1)
代数問題のAssessmentFunctionを作成する:
スコープ (4)
アプリケーション (3)
複数の正解がある代数問題についてのQuestionObject を作成する:
幾何の問題のQuestionObjectを作成する:
値を見付けるのに役立つプロットを含む多項式解法問題を作成する."OptionalResultName" を設定すると,受け入れられる解答形式に柔軟性が生まれる:
特性と関係 (3)
代数とはみなされない操作の評価は,答がホールドされていても実行される:
値がホールドされているときは,大域定義が評価中に無視される:
変数がホールドされていないと,大域的定義が"OptionalResultName"に対して指定された名前と衝突することもある:
HoldまたはHoldPatternで変数を包み込んで大域的定義を無視する:
"AlgebraicValue"法では,Plusのように代数問題は解かない関数の評価が許容される:
考えられる問題 (1)
複数の変数について,Solveを使って解答集を作成する:
デフォルトの"ListAssessment"設定でAssessmentFunctionを作成すると,解答集の中の各リストが単一の答として扱われる:
"OptionalResultName"Trueと設定しても,変数名がない値は不正解になる:
代りに,"AllElementsOrderless"または"AllElementsOrdered"を"ListAssessment"設定として使って各部分値を個別に評価する:
解答集の個別の要素と答が別々にマッチされ,"OptionalResultName"設定は予想通りに動作する:
等号を含む解答を与える場合は,Holdを使って値の設定を防ぐ: