Difference between revisions of "VectorParametric1"
Paultpearson (talk | contribs) m |
Paultpearson (talk | contribs) |
||
Line 5: | Line 5: | ||
This PG code shows how to ask students for a vector parametric curve through two points and allows them to specify the time interval. |
This PG code shows how to ask students for a vector parametric curve through two points and allows them to specify the time interval. |
||
</p> |
</p> |
||
− | * Download file: [[File:VectorParametric1.txt]] (change the file extension from txt to pg when you save it) |
||
+ | * File location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Parametric/VectorParametric1.pg FortLewis/Authoring/Templates/Parametric/VectorParametric1.pg] |
||
− | * File location in NPL: <code>FortLewis/Authoring/Templates/Parametric/VectorParametric1.pg</code> |
||
<br clear="all" /> |
<br clear="all" /> |
||
Line 173: | Line 172: | ||
Context()->texStrings; |
Context()->texStrings; |
||
BEGIN_SOLUTION |
BEGIN_SOLUTION |
||
− | ${PAR}SOLUTION:${PAR} |
||
Solution explanation goes here. |
Solution explanation goes here. |
||
END_SOLUTION |
END_SOLUTION |
Revision as of 16:18, 16 June 2013
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.
- File location in OPL: 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 Solution explanation goes here. END_SOLUTION Context()->normalStrings; COMMENT('MathObject version.'); ENDDOCUMENT(); |
Solution: |