"Vector" (比較法)
詳細
- ベクトル比較法は,デフォルトで,2つのベクトル間のユークリッド距離が指定された許容範囲内なら2つのベクトル量は等しいと判断する.
- 数値の許容範囲は,通常,AssessmentFunctionのToleranceオプション使って設定される.デフォルト値の0の場合は機械精度の差のみが許容される.
- DistanceFunctionオプションを使って,それ以外の距離測度を指定することができる.
- 解答集内の複数のベクトルが答の許容範囲内のとき,評価は最も近いベクトルに基づいて行われる.
例題
すべて開く すべて閉じる例 (3)
非零の許容範囲でベクトルを比較するためのAssessmentFunctionを作成する:
vectortolerance = AssessmentFunction[{{1, 2, 3}}, "Vector", Tolerance -> 0.25]vectortolerance[{1, 2, 3.2}]vectoraf = AssessmentFunction[{{2, 0, 2, 4}}, "Vector"]評価中,デフォルトで,等価性が機械精度レベルでテストされる:
vectoraf[{1 + 1, 0, 2., 4.0}]vecsaf = AssessmentFunction[{{1, 0} -> 1, {2, 4} -> 2}, "Vector", Tolerance -> 0.1]vecsaf[{2.04, 4.06}]["Score"]スコープ (2)
vectortolerance = AssessmentFunction[{{x, y, z}}, "Vector", Tolerance -> 0.25]vectortolerance[{x, y + 0.25, z}]許容範囲は,成分レベルではなくベクトルレベルに適用される.デフォルトで,許容範囲は比較されるベクトル間の違いのノルムに対応する:
vectortolerance[{x, y + 0.25, z + 0.01}]"ListAssessment""AllElementsOrdered"を使って,ベクトルの順序付きリストについての評価関数を作成する.ただし,すべての変数が答に含まれていなければならない:
orderedAF = AssessmentFunction[{{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}}, <|
"ComparisonMethod" -> "Vector", "ListAssessment" -> "AllElementsOrdered"|>, Tolerance -> 0.1]orderedAF[{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}]orderedAF[{{1, 0, 0}, {0, 0, 1}, {0, 1, 0}}]orderedAF[{{1, 0, 0}, {0, 1, 0}}]オプション (1)
デフォルトのユークリッド距離以外の任意の距離測度を使うこともできる:
ortho = AssessmentFunction[{{0, 1, 0}}, "Vector", DistanceFunction -> (#1.#2&)]この答は.解答集ではDot積がゼロ距離になる:
ortho[{0, 0, 3}]ortho[{0, 1, 3}]アプリケーション (1)
表から値を読み取るQuestionObjectを作成する:
QuestionObject[
Column[{
"Give the coordinates of the vector",
Graphics[{Arrowheads[Large], Arrow[{{0, 0}, {3, 4}}]}, ...]
}],
AssessmentFunction[{{3, 4}}, "Vector", Tolerance -> 0.2]
]特性と関係 (2)
vecsaf = AssessmentFunction[{{1, 0} -> 1, {1, 0.1} -> 2}, "Vector", Tolerance -> 0.1]解答集にある許容範囲内の最も近いベクトルを使って点数が決定される:
vecsaf[{1, 0.06}]["Score"]vectoraf = AssessmentFunction[{{1, 0, 0} -> 1, {0, 1, 0} -> 2, {0, 0, 1} -> 3}, "Vector", Tolerance -> 0.5]vectoraf[{0.3, 1.4, 0.2}]EuclideanDistance[{0.3, 1.4, 0.2}, {0, 1, 0}]同じベクトルに対して,各要素を数として別々に比較する2番目の評価を行う:
elementaf = AssessmentFunction[{{1, 0, 0} -> 1, {0, 1, 0} -> 2, {0, 0, 1} -> 3}, <|"ComparisonMethod" -> "Number", "ListAssessment" -> "AllElementsOrdered"|>, Tolerance -> 0.5]各成分が別々に解答集の要素と比較される.最初の正解が対応する点数とともに選択される:
elementaf[{0.3, 1.4, 0.2}]距離を手計算で求め,それぞれが許容範囲内であることを確認する:
Abs[{0.3, 1.4, 0.2} - {0, 1, 0}]考えられる問題 (4)
AssessmentFunction[{a,b,c}]の値 a,b,c は,単一のベクトルとしてではなく3つの異なる答として扱われる:
AssessmentFunction[{1, 0, 0}, "Vector"]AssessmentFunction[{{1, 0, 0}}, "Vector"]比較法が指定されていない場合,数値ベクトルには"Vector" 比較法が使われる:
AssessmentFunction[{{1, 0, 0}}]AssessmentFunction[{{a, 0, 0}}]"ListAssessment"を"AllElementsOrderless"あるいは"AllElementsOrdered"に設定すると,解答集の各値の各要素はベクトルでなければならず,結果はネストしたリストになる:
vectorelements = AssessmentFunction[{{{1, 0, 0}}, {{2, 3, 4}, {4, 5, 6}}}, <|"ComparisonMethod" -> "Vector", "ListAssessment" -> "AllElementsOrderless"|>]提出された答は任意の順序のベクトルのリストでなければならない:
vectorelements[{{4, 5, 6}, {2, 3, 4}}]単一のベクトルについて点数が指定されている場合,外側のリストは必要ない:
AssessmentFunction[{{1, 0, 0}} -> 1, <|"ComparisonMethod" -> "Vector", "ListAssessment" -> "AllElementsOrderless"|>]インタラクティブな例題 (1)
QuestionObject[QuestionInterface["ClickLocations", <|"Prompt" -> "Locate the non vertex intersection of each line with the triangle", "Background" -> Image[...], "Labels" -> {"Angle Bisector", "Altitude", "Median"}|>], AssessmentFunction[{{{264, 75}, {150, 285}, {354, 296}} -> 20}, <|"ComparisonMethod" -> "Vector", "ListAssessment" -> "AllElementsOrdered"|>, Tolerance -> 50]]関連項目
AssessmentFunction QuestionObject DistanceFunction
質問インターフェースタイプ: ShortAnswer MultipleShortAnswers ClickLocations
比較法: Number Expression
関連するガイド
-
▪
- 質問と評価