# VectorParametric2

## Motion and Velocity with a Parametric Curve

Click to enlarge

This PG code shows how to construct a custom answer checker that extracts the component functions from the student's answer and makes some derivative calculations with them.

PG problem file Explanation

Problem tagging:

DOCUMENT();

"PGstandard.pl",
"MathObjects.pl",
"parserVectorUtils.pl",
);

TEXT(beginproblem());


Initialization: Although not necessary for the code below, we load parserVectorUtils.pl because you may want to use some of its methods when you use this template file.

Context("Vector2D");
#Context("Vector"); # for 3d vectors
Context()->variables->are(t=>"Real");
Context()->variables->set(t=>{limits=>[0,5]});
Context()->flags->set( ijk=>0, ijkAnyDimension => 1 );

$answer = Vector("<2t,(2t)^2>");  Setup: We choose not to display the answer using ijk notation. Also, use ijkAnyDimension => 1 to require a dimension match between i,j,k vectors and either the student or the correct answer when doing vector operations. Context()->texStrings; BEGIN_TEXT Find a vector parametric function $$\vec{r}(t)$$ for a bug that moves along the parabola $$y = x^2$$ with velocity $$\vec{v}(t) = \langle 2, 8t \rangle$$ for all $$t$$.$BR
$BR $$\vec{r}(t) =$$ \{ ans_rule(20) \} \{ AnswerFormatHelp("vectors") \} END_TEXT Context()->normalStrings;  Main Text: $showPartialCorrectAnswers = 1;

sub mycheck {
my ($correct,$student, $ansHash) = @_; my$xstu = $student . Vector(1,0); my$ystu = $student . Vector(0,1); if ( ($xstu->D('t')==Formula("2")) &&
($ystu->D('t')==Formula("8t")) ) { return 1; } else { return 0; } } ANS($answer->cmp( checker=>~~&mycheck ) );


Answer Evaluation: Use dot products of the student answer with the vectors Vector(1,0) and Vector(0,1) to get the components $xstu and $ystu of the student answer. Then, we can differentiate the components just like any MathObject formula. Notice that the argument to cmp( checker => ~~&mycheck ) is our subroutine that is a custom answer checker.

Context()->texStrings;
BEGIN_SOLUTION
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();


Solution: