"AlgebraicValue" (Comparison Method)

代数操作を含まない計算は行いながら,代数解を求める問題に適した方法で数式を比較する.

詳細

  • 代数解の比較法は,SolveSolveValuesFitReduce等の求解操作を行うことなく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 として提供された答だけをマッチする
    Truekey から var を推測しようとする

例題

すべて開くすべて閉じる

  (1)

代数問題のAssessmentFunctionを作成する:

これを使って同等の形の答を評価する:

スコープ  (4)

直線が円と交わる場所を求める評価関数を作成する:

正しい答にチェックを付ける:

解を求めるコードを定義する:

このコードは代数解を求めるコードを含んでいるので正解にはならない:

正解か否かの評価の前にコードが評価されて正解が出ている場合は,正解となる:

方程式の解を求める:

結果の名前として変数 x を含む答の別の形を許容する評価を作成する:

通常の答は,求める変数名を含んでいる必要はない:

以下は,代替形式として許容されるものである:

これ以外の変数名を使用すると,不正解と評価される:

許可されている代替形式が使用されている場合は,変数名が解答集から推測されることがある:

変数名が答に含まれている必要はない:

方程式簡約問題の解を計算する:

評価関数を定義する:

複数の正解が受け入れられる:

もとの問題は答としては受け入れられない:

アプリケーション  (3)

複数の正解がある代数問題についてのQuestionObject を作成する:

幾何の問題のQuestionObjectを作成する:

値を見付けるのに役立つプロットを含む多項式解法問題を作成する."OptionalResultName" を設定すると,受け入れられる解答形式に柔軟性が生まれる:

特性と関係  (3)

代数とはみなされない操作の評価は,答がホールドされていても実行される:

値がホールドされているときは,大域定義が評価中に無視される:

変数がホールドされていないと,大域的定義が"OptionalResultName"に対して指定された名前と衝突することもある:

HoldまたはHoldPatternで変数を包み込んで大域的定義を無視する:

"AlgebraicValue"法では,Plusのように代数問題は解かない関数の評価が許容される:

代数問題を解く関数は評価されず,不正解とされる:

"CalculusResult"は,代数を解く関数の評価を許容する:

考えられる問題  (1)

複数の変数について,Solveを使って解答集を作成する:

デフォルトの"ListAssessment"設定でAssessmentFunctionを作成すると,解答集の中の各リストが単一の答として扱われる:

解答集と同一の答だけが正しいとみなされる:

"OptionalResultName"Trueと設定しても,変数名がない値は不正解になる:

代りに,"AllElementsOrderless"または"AllElementsOrdered""ListAssessment"設定として使って各部分値を個別に評価する:

解答集の個別の要素と答が別々にマッチされ,"OptionalResultName"設定は予想通りに動作する:

算術面でのみ異なる数学的に等価な結果は受け入れられる:

等号を含む解答を与える場合は,Holdを使って値の設定を防ぐ: