ContourPlots
Jump to navigation
Jump to search
Contour Plots
This PG code shows how to construct contour plots.
PG problem file | Explanation |
---|---|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "PGgraphmacros.pl", "unionTables.pl", ); TEXT(beginproblem()); $refreshCachedImages=1; |
Initialization:
Use |
Context("Numeric")->variables->are(x=>"Real",y=>"Real"); # # Create some graph canvases # foreach my $i (0..1) { $gr[$i] = init_graph(-5,-5,5,5,grid=>[10,10],axes=>[0,0],pixels=>[400,400]); $gr[$i]->lb('reset'); $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')); $gr[$i]->new_color("nicegreen",0,110,0); # verdant green $gr[$i]->new_color("darkred", 159, 64, 16); # red-brown } # # Circular contours as parametrized curves # foreach $k (5,10,15,20,25,30,35,40,45) { my $a = sqrt($k); $fn = new Fun( sub { my $t=shift(); return $a * cos($t); }, sub { my $t=shift(); return $a * sin($t);}, $gr[0] ); $fn->domain(0,6.3); $fn->color("nicegreen"); } # # Hyperbolas as parametrized curves # foreach my $k (0,5,10,15,20,25) { # left and right branches $fn = new Fun( sub { my $t=shift(); return sqrt($k+$t**2); }, sub { my $t=shift(); return $t;}, $gr[1] ); $fn->domain(-5,5); $fn->color("darkred"); $fn = new Fun( sub { my $t=shift(); return -sqrt($k+$t**2); }, sub { my $t=shift(); return $t;}, $gr[1] ); $fn->domain(-5,5); $fn->color("darkred"); # top and bottom branches add_functions($gr[1], " sqrt(x^2+$k) for x in <-5,5> using color:darkred and weight:2", "-sqrt(x^2+$k) for x in <-5,5> using color:darkred and weight:2", ); } foreach my $i (0..1) { $fig[$i] = image(insertGraph($gr[$i]),width=>300,height=>300,tex_size=>450); } |
Setup: We create the contour plots as a parametrized family of (parametric) curves. |
BEGIN_TEXT $BCENTER \{ BeginTable(). AlignedRow([$fig[0],$fig[1]]). TableSpace(5,0). AlignedRow(["A","B"]). EndTable(); \} $BR (Click on a graph to enlarge it.) $ECENTER END_TEXT |
Main Text:
We display the contour plots nicely using tables provided by |
$showPartialCorrectAnswers = 1; ENDDOCUMENT(); |
Answer Evaluation: We did not ask any questions, so there's nothing interesting here. |