VectorParametric1
A Vector Parametric Curve in the Plane
This PG code shows how to ask students for a vector parametric curve through two points and allows them to specify the time interval.
- Download file: File:VectorParametric1.txt (change the file extension from txt to pg when you save it)
- File location in NPL:
FortLewis/Authoring/Templates/Parametric/VectorParametric1.pg
PG problem file | Explanation |
---|---|
Problem tagging: |
|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "parserVectorUtils.pl", "parserMultiAnswer.pl", ); TEXT(beginproblem()); |
Initialization:
Since it is a vector parametric curve, we will want vector utilities from |
Context("Vector2D"); #Context("Vector"); # for 3D vectors Context()->variables->are(t=>"Real"); Context()->variables->set(t=>{limits=>[0,5]}); Context()->flags->set( ijk=>0 ); $a = random(2,5,1); $Q = Point($a,$a**2); $multians = MultiAnswer(Vector("<t,t**2>"),0,$a)->with( singleResult => 1, checker => sub { my ($correct,$student,$self) = @_; # get the parameters my ($f,$x1,$x2) = @{$student}; # extract student answers if ( ( ($f . i)**2 == ($f . j) ) && ($f->eval(t=>$x1) == Vector("<0,0>")) && ($f->eval(t=>$x2) == Vector("<$a,$a**2>")) ) { return 1; } elsif ( ( ($f . i)**2 == ($f . j) ) && ($f->eval(t=>$x1) == Vector("<0,0>")) ) { $self->setMessage(3,"Your right endpoint is not correct."); return 0; } elsif ( ( ($f . i)**2 == ($f . j) ) && ($f->eval(t=>$x2) == Vector("<$a,$a**2>")) ) { $self->setMessage(2,"Your left endpoint is not correct."); return 0; } elsif ( ( ($f . i)**2 == ($f . j) ) ) { $self->setMessage(2,"Your left endpoint is not correct."); $self->setMessage(3,"Your right endpoint is not correct."); return 0; } else { return 0; } } ); |
Setup:
The student's vector-valued function is stored in |
Context()->texStrings; BEGIN_TEXT Find a vector parametric equation for the parabola \( y = x^2 \) from the origin to the point \( $Q \) using \( t \) as a parameter. $BR $BR \( \vec{r}(t) = \) \{$multians->ans_rule(20)\} for \{$multians->ans_rule(5)\} \( \leq t \leq \) \{$multians->ans_rule(5)\} END_TEXT Context()->normalStrings; |
Main Text: |
$showPartialCorrectAnswers = 1; ANS( $multians->cmp() ); |
Answer Evaluation: |
Context()->texStrings; BEGIN_SOLUTION ${PAR}SOLUTION:${PAR} Solution explanation goes here. END_SOLUTION Context()->normalStrings; COMMENT('MathObject version.'); ENDDOCUMENT(); |
Solution: |