VectorFields2D: Difference between revisions
No edit summary |
(added historical tag and gave updated problem link) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<h2>Vector Field Graphs | {{historical}} | ||
<p style="font-size: 120%;font-weight:bold">This problem has been replaced with [https://openwebwork.github.io/pg-docs/sample-problems/VectorCalc/VectorFieldGraph2D.html a newer version of this problem]</p> | |||
<h2>Vector Field Graphs in Two Dimensions</h2> | |||
<!-- Header for these sections -- no modification needed --> | <!-- Header for these sections -- no modification needed --> | ||
<p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> | <p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> | ||
<em>This PG code shows how to plot a vector field in two dimensions.</em> | <em>This PG code shows how to plot a vector field in two dimensions. | ||
<br /> | |||
<br /> | |||
You may also be interested in [[SlopeFields|Slope Fields]], which also provides a different way to graph a vector field. | |||
</em> | |||
</p> | </p> | ||
Line 132: | Line 139: | ||
<b>Answer Evaluation:</b> | <b>Answer Evaluation:</b> | ||
We didn't ask any questions, so this is uninteresting. | We didn't ask any questions, so this is uninteresting. | ||
</p> | |||
</td> | |||
</tr> | |||
</table> | |||
<p style="text-align:center;"> | |||
[[IndexOfProblemTechniques|Problem Techniques Index]] | |||
</p> | |||
[[Category:Problem Techniques]] | |||
<p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> | |||
<em>It is also possible, though not recommended, to plot a two dimensional vector field using LiveGraphics3D.</em> | |||
</p> | |||
<p style="text-align:center;"> | |||
[[IndexOfProblemTechniques|Problem Techniques Index]] | |||
</p> | |||
<table cellspacing="0" cellpadding="2" border="0"> | |||
<tr valign="top"> | |||
<th> PG problem file </th> | |||
<th> Explanation </th> | |||
</tr> | |||
<!-- Load specialized macro files section --> | |||
<tr valign="top"> | |||
<td style="background-color:#ddffdd;border:black 1px dashed;"> | |||
<pre> | |||
DOCUMENT(); | |||
loadMacros( | |||
"PGstandard.pl", | |||
"MathObjects.pl", | |||
"parserVectorUtils.pl", | |||
"PGcourse.pl", | |||
"LiveGraphicsVectorField2D.pl", | |||
); | |||
TEXT(beginproblem()); | |||
</pre> | |||
</td> | |||
<td style="background-color:#ccffcc;padding:7px;"> | |||
<p> | |||
<b>Initialization:</b> | |||
</p> | |||
</td> | |||
</tr> | |||
<!-- Setup section --> | |||
<tr valign="top"> | |||
<td style="background-color:#ffffdd;border:black 1px dashed;"> | |||
<pre> | |||
Context("Numeric"); | |||
Context()->variables->are(x=>"Real",y=>"Real",z=>"Real"); | |||
$plot = VectorField2D( | |||
Fx => Formula("y"), | |||
Fy => Formula("-x"), | |||
xvar => 'x', | |||
yvar => 'y', | |||
xmin => -1, | |||
xmax => 1, | |||
ymin => -1, | |||
ymax => 1, | |||
xsamples => 4, | |||
ysamples => 4, | |||
axesframed => 1, | |||
xaxislabel => "X", | |||
yaxislabel => "Y", | |||
vectorcolor => "RGBColor[1.0,0.0,0.0]", | |||
vectorscale => 0.25, | |||
vectorthickness => 0.01, | |||
outputtype => 4, | |||
); | |||
</pre> | |||
</td> | |||
<td style="background-color:#ffffcc;padding:7px;"> | |||
<p> | |||
<b>Setup:</b> | |||
The <code>VectorField2D()</code> routine provided by the <code>LiveGraphicsVectorField2D.pl</code> macro is different from the routine by the same name provided by the <code>VectorField2D.pl</code> macro. Its features are the same as for [[VectorFields3D|vector fields in three dimensions]]. | |||
</p> | |||
</td> | |||
</tr> | |||
<!-- Question text section --> | |||
<tr valign="top"> | |||
<td style="background-color:#ffdddd;border:black 1px dashed;"> | |||
<pre> | |||
Context()->texStrings; | |||
BEGIN_TEXT | |||
$BCENTER | |||
\{ | |||
Live3Ddata( | |||
$plot, | |||
image => "cool-vector-field.png", | |||
size => [400,400], | |||
tex_size => 600, | |||
tex_center => 1, | |||
scale => 1.5, | |||
Live3D => [MOUSE_DRAG_ACTION => "NONE"] | |||
); | |||
\} | |||
$ECENTER | |||
END_TEXT | |||
Context()->normalStrings; | |||
</pre> | |||
<td style="background-color:#ffcccc;padding:7px;"> | |||
<p> | |||
<b>Main Text:</b> | |||
This is just like plotting a three dimensional vector field using the <code>LiveGraphics3D.pl</code> macro, except that | |||
we must specify <code>Live3D => [MOUSE_DRAG_ACTION => "NONE"]</code> so that the graph is immovable. | |||
</p> | |||
</td> | |||
</tr> | |||
<!-- Answer section --> | |||
<tr valign="top"> | |||
<td style="background-color:#eeddff;border:black 1px dashed;"> | |||
<pre> | |||
$showPartialCorrectAnswers = 1; | |||
ENDDOCUMENT(); | |||
</pre> | |||
<td style="background-color:#eeccff;padding:7px;"> | |||
<p> | |||
<b>Answer Evaluation:</b> | |||
</p> | </p> | ||
</td> | </td> |
Latest revision as of 14:54, 29 June 2023
This problem has been replaced with a newer version of this problem
Vector Field Graphs in Two Dimensions
This PG code shows how to plot a vector field in two dimensions.
You may also be interested in Slope Fields, which also provides a different way to graph a vector field.
PG problem file | Explanation |
---|---|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "PGgraphmacros.pl", "VectorField2D.pl", ); TEXT(beginproblem()); $refreshCachedImages = 1; |
Initialization:
We need to include the macros file |
Context()->variables->add(y=>"Real"); # # Create a graph canvas # foreach my $i (0) { $gr[$i] = init_graph(-5,-5,5,5,grid=>[10,10],axes=>[0,0],pixels=>[400,400]); $gr[$i]->lb('reset'); foreach my $j (1..4) { $gr[$i]->lb( new Label(-4.7, $j, $j,'black','center','middle')); $gr[$i]->lb( new Label(-4.7, -$j,-$j,'black','center','middle')); $gr[$i]->lb( new Label( $j,-4.7, $j,'black','center','middle')); $gr[$i]->lb( new Label( -$j,-4.7,-$j,'black','center','middle')); } $gr[$i]->lb( new Label(4.7,0.2,'x','black','center','middle')); $gr[$i]->lb( new Label(0.2,4.7,'y','black','center','middle')); } VectorField2D( graphobject => $gr[0], Fx => Formula("x/(x^2+y^2)"), Fy => Formula("y/(x^2+y^2)"), xvar => "x", yvar => "y", xmin => -5, xmax => 5, ymin => -5, ymax => 5, xsamples => 10, ysamples => 10, vectorcolor => "blue", vectorscale => 1.5, vectorthickness => 2, xavoid=>0, yavoid=>0, ); |
Setup:
We create a blank graph canvas and add labels to it. Then, using the |
BEGIN_TEXT This is a velocity vector field for an explosion at the origin that decreases in speed the farther the distance is from the origin. $PAR $BCENTER \{ image(insertGraph($gr[0]),width=>400,height=>400,tex_size=>700) \} $ECENTER END_TEXT |
Main Text: The problem text section of the file is as we'd expect. |
$showPartialCorrectAnswers = 1; ENDDOCUMENT(); |
Answer Evaluation: We didn't ask any questions, so this is uninteresting. |
It is also possible, though not recommended, to plot a two dimensional vector field using LiveGraphics3D.
PG problem file | Explanation |
---|---|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "parserVectorUtils.pl", "PGcourse.pl", "LiveGraphicsVectorField2D.pl", ); TEXT(beginproblem()); |
Initialization: |
Context("Numeric"); Context()->variables->are(x=>"Real",y=>"Real",z=>"Real"); $plot = VectorField2D( Fx => Formula("y"), Fy => Formula("-x"), xvar => 'x', yvar => 'y', xmin => -1, xmax => 1, ymin => -1, ymax => 1, xsamples => 4, ysamples => 4, axesframed => 1, xaxislabel => "X", yaxislabel => "Y", vectorcolor => "RGBColor[1.0,0.0,0.0]", vectorscale => 0.25, vectorthickness => 0.01, outputtype => 4, ); |
Setup:
The |
Context()->texStrings; BEGIN_TEXT $BCENTER \{ Live3Ddata( $plot, image => "cool-vector-field.png", size => [400,400], tex_size => 600, tex_center => 1, scale => 1.5, Live3D => [MOUSE_DRAG_ACTION => "NONE"] ); \} $ECENTER END_TEXT Context()->normalStrings; |
Main Text:
This is just like plotting a three dimensional vector field using the |
$showPartialCorrectAnswers = 1; ENDDOCUMENT(); |
Answer Evaluation: |