"CalculusResult" (比較法)
"CalculusResult" (比較法)
微積分の問題に適した方法で数式を比較する.微積分の操作を含まない計算は実行可能である.
詳細
- 微積分の比較法は,2つの数式が微積分の操作によって異ならない場合はこれらが等しいとみなす.例:D[x^2,x]2x
- たとえ基本的な算術演算や三角関数の表現のように微積分の演算ではない違いが含まれていても,答は正しいとみなされる.
- 解答集と答の値はどちらも,厳密に与えられた値を保持するためにホールドされた式 Hold[expr]として指定できる.たとえ値がホールドされていても,微積分関数以外(つまりDとIntegrate以外)の関数は評価中にホールドされた値の中で実行される. 答は常にホールドすることが奨励される.
- 解答集の値にCで表される積分定数が含まれているとき、デフォルトで,答に含まれる積分定数の任意の適切な記号表現は等価であるとみなされる.例えば,AssessmentFunction[x+C[1],"CalculusResult"]は x+a を正解とする.
- 複数の定数 C[i],C[j],…を含む解答集の値について,解答集と矛盾しない一意的な記号定数を含む任意の答は解答集と一致するとみなされる.
- (一次積分と矛盾しない)expr+C[i]の形式の結果について,デフォルトで,定数項は答では省くことができるので,省かれていても正解になる.以下に示すように"IgnoreConstantTerm"Falseを使って与えられる答に定数項が含まれるようにする.
- AssessmentFunction[key,<|"ComparisonMethod""CalculusResult","IgnoreConstantTerm"->False|>]
- 次の表は,一般的な解答集と提出された可能性のあるいくつかの解答について,"CalculusResult"と他の比較方法との比較を示している.
例題
すべて開く すべて閉じる例 (1)
微積分の問題用のAssessmentFunctionを作成する:
mathasf = AssessmentFunction[3x ^ 2 + 3, "CalculusResult"]mathasf[3(x ^ 2 + 1)]スコープ (4)
calcassess = AssessmentFunction[D[Tan[x], x], "CalculusResult"]calcassess[Hold[D[Tan[x], x]]]calcassess[Hold[Sec[x] ^ 2]]calcassess[Hold[1 / Cos[x] ^ 2]]integrationquiz = AssessmentFunction[{x ^ 2 + 3x + C[1]}, "CalculusResult"]答にC[i]という一意的な記号が含まれているか,あるいは定数が省略されているかすれば,答は正しいとみなされる:
integrationquiz[x ^ 2 + 3x + a]integrationquiz[x ^ 2 + 3x + C[2]]integrationquiz[x ^ 2 + 3x ]integrationquiz[x ^ 2 + 3x + a + b]"IgnoreConstantTerm" Falseと設定して答に定数項が含まれるようにする:
integrationquiz = AssessmentFunction[{x ^ 2 + 3x + C[1]}, <|"ComparisonMethod" -> "CalculusResult", "IgnoreConstantTerm" -> False|>]integrationquiz[x ^ 2 + 3x ]integrationquiz[x ^ 2 + 3x + a]solution = DSolveValue[y''''[x] == y[x], y[x], x]diffeqtest = AssessmentFunction[solution, "CalculusResult"]diffeqtest[ E^xa + E^-xc + b Cos[x] + d Sin[x]]アプリケーション (1)
プロットを含む微積分の問題を生成するQuestionGeneratorを作成する:
qg = QuestionGenerator[{"trig" :> RandomChoice[{Sin, Cos}], "a" :> RandomInteger[{1, 4}]},
Module[{func, der, int},
func = #trig[x] ^ #a;
der = D[func, x];
int = Integrate[func, x];
plot = Plot[Evaluate[{Legended[func, f[x] == func], Legended[der, D[f[x], x]], Legended[int, Integrate[f[x], x]]}], ...];
QuestionObject[QuestionInterface["TextCompletion", <|"Prompt" -> plot, "Template" -> TemplateObject[
{HoldForm[D[f, x]] == TemplateSlot[1], "
", HoldForm[Integrate[f, x]] == TemplateSlot[2]}
], "Interpreter" -> "HeldMathExpression"|>], AssessmentFunction[{{der, int}}, <|"ComparisonMethod" -> "CalculusResult", "ListAssessment" -> "AllElementsOrdered"|>]]]&]qg[]特性と関係 (1)
考えられる問題 (1)
C[i]を使って定数を表すと,有効な任意の記号定数が自動的に許容される:
asmf = AssessmentFunction[{x ^ 2 + C[1]}, <|"ComparisonMethod" -> "CalculusResult", "IgnoreConstantTerm" -> False|>]asmf[x ^ 2 + a]特定の定数が必要な場合にはCを使うべきではない:
asmf = AssessmentFunction[{x ^ 2 + const1}, <|"ComparisonMethod" -> "CalculusResult", "IgnoreConstantTerm" -> False|>]asmf[x ^ 2 + a]asmf[x ^ 2 + const1]関連項目
AssessmentFunction QuestionObject
質問インターフェースタイプ: ShortAnswer MultipleShortAnswers TextCompletion
関連するガイド
-
▪
- 質問と評価