Difference between revisions of "ExpandedPolynomial1"

From WeBWorK_wiki
Jump to navigation Jump to search
(Created page with '<h2>Polynomial Multiplication (Expanding)</h2> <p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> This PG code shows how to require students to expand poly…')
 
Line 45: Line 45:
 
"MathObjects.pl",
 
"MathObjects.pl",
 
"contextLimitedPolynomial.pl",
 
"contextLimitedPolynomial.pl",
"contextPolynomialFactors.pl",
 
"contextLimitedPowers.pl",
 
 
);
 
);
   
Line 55: Line 53:
 
<p>
 
<p>
 
<b>Initialization:</b>
 
<b>Initialization:</b>
We need all of these macros.
 
 
</p>
 
</p>
 
</td>
 
</td>
Line 69: Line 66:
 
#
 
#
 
Context("Numeric");
 
Context("Numeric");
$n = list_random(4,6);
 
  +
$h = 3;
$a = random(2,4,1);
+
$k = 5;
$b = ($a+$n);
 
$h = ($b-$a)/2;
 
$k = $h**2+$a*$b;
 
 
$vertexform = Compute("(x-$h)^2-$k");
 
$vertexform = Compute("(x-$h)^2-$k");
   
Line 77: Line 74:
 
#
 
#
 
Context("LimitedPolynomial-Strict");
 
Context("LimitedPolynomial-Strict");
$p[0] = $h**2 - $k;
+
$b = -2 * $h;
$p[1] = 2*$h;
+
$c = $h**2 - $k;
$expandedform = Formula("x^2 - $p[1] x + $p[0]")->reduce;
+
$expandedform = Formula("x^2 + $b x + $c")->reduce();
 
#
 
# Factored form
 
#
 
Context("PolynomialFactors-Strict");
 
Context()->flags->set(singleFactors=>0);
 
LimitedPowers::OnlyIntegers(
 
minPower => 0, maxPower => 1,
 
message => "either 0 or 1",
 
);
 
$factoredform = Compute("(x+$a)(x-$b)");
 
 
</pre>
 
</pre>
 
</td>
 
</td>
Line 85: Line 82:
 
<p>
 
<p>
 
<b>Setup:</b>
 
<b>Setup:</b>
To construct this quadratic, we choose a nice factored form <code>(x+$a)(x-$b)</code> and from it we construct its vertex form (a(x-h)^2+k) and expanded form (ax^2+bx+c).
 
  +
We use the <code>LimitedPolynomial-Strict</code> context, construct the coefficients <code>$b</code> and <code>$c</code> as Perl reals, and then construct <code>$expandedform</code> using these pre-computed coefficients. This is because the LimitedPolynomial-Strict context balks at answers that are not already simplified completely.
</p>
 
<p>
 
For the expanded form we use the <code>LimitedPolynomial-Strict</code> context, construct the coefficients <code>$p[0]</code> and <code>$p[1]</code> as Perl reals, and then construct <code>$expandedform</code> using these pre-computed coefficients. This is because the LimitedPolynomial-Strict context balks at answers that are not already simplified completely.
 
</p>
 
<p>
 
For the factored form we need to change to the <code>PolynomialFactors-Strict</code> context and restrict the allowed powers to either 0 or 1 using the <code>LimitedPowers::OnlyIntegers</code> block of code. Note: restricting all exponents to 0 or 1 means that repeated factors will have to be entered in the form <code>k(ax+b)(ax+b)</code> instead of <code>k(ax+b)^2</code>. Also, restricting all exponents to 0 or 1 means that the polynomial must factor as a product of linear factors (no irreducible quadratic factors can appear). Of course, we could allow exponents to be 0, 1, or 2, but then students would be allowed to enter <i>reducible</i> quadratic factors. There are no restrictions on the coefficients, i.e., the quadratic could have any nonzero leading coefficient. We set <code>singleFactors=>0</code> so that repeated, non-simplified factors do not generate errors.
 
 
</p>
 
</p>
 
</td>
 
</td>
Line 104: Line 95:
 
BEGIN_TEXT
 
BEGIN_TEXT
 
The quadratic expression \( $vertexform \)
 
The quadratic expression \( $vertexform \)
is written in vertex form.
+
is written in vertex form. Write the
  +
expression in expanded form
  +
\( ax^2 + bx + c \).
 
$BR
 
$BR
$BR
 
(a) Write the expression in expanded form
 
\( ax^2 + bx + c \).
 
 
$BR
 
$BR
 
\{ ans_rule(30) \}
 
\{ ans_rule(30) \}
$BR
 
$BR
 
(b) Write the expression in factored form
 
\( k(ax+b)(cx+d) \).
 
$BR
 
\{ ans_rule(30)\}
 
 
END_TEXT
 
END_TEXT
 
Context()->normalStrings;
 
Context()->normalStrings;
Line 123: Line 105:
 
<p>
 
<p>
 
<b>Main Text:</b>
 
<b>Main Text:</b>
Everything here is as usual. To help students understand how to format their answers, we give examples <code>ax^2+bx+c</code> and <code>k(ax+b)(cx+d)</code> of what the answers should look like.
+
To help students understand how to format their answers, we give an example <code>ax^2+bx+c</code> of what the answer should look like.
 
</p>
 
</p>
 
</td>
 
</td>
Line 136: Line 118:
   
 
ANS( $expandedform->cmp() );
 
ANS( $expandedform->cmp() );
ANS( $factoredform->cmp() );
 
   
 
</pre>
 
</pre>

Revision as of 13:29, 1 December 2010

Polynomial Multiplication (Expanding)

This PG code shows how to require students to expand polynomial multiplication.

  • Download file: File:ExpandedPolynomial1.txt (change the file extension from txt to pg when you save it)
  • File location in NPL: NationalProblemLibrary/FortLewis/Authoring/Templates/Algebra/ExpandedPolynomial1.pg

Templates by Subject Area

PG problem file Explanation

Problem tagging data

Problem tagging:

DOCUMENT();
loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"contextLimitedPolynomial.pl",
);

TEXT(beginproblem()); 

Initialization:

#
#  Vertex form
#
Context("Numeric");
$h = 3;
$k = 5;
$vertexform = Compute("(x-$h)^2-$k");

#
#  Expanded form
#
Context("LimitedPolynomial-Strict");
$b = -2 * $h;
$c = $h**2 - $k;
$expandedform = Formula("x^2 + $b x + $c")->reduce();

Setup: We use the LimitedPolynomial-Strict context, construct the coefficients $b and $c as Perl reals, and then construct $expandedform using these pre-computed coefficients. This is because the LimitedPolynomial-Strict context balks at answers that are not already simplified completely.

Context()->texStrings;
BEGIN_TEXT
The quadratic expression \( $vertexform \)
is written in vertex form.  Write the 
expression in expanded form 
\( ax^2 + bx + c \).
$BR
$BR
\{ ans_rule(30) \}
END_TEXT
Context()->normalStrings;

Main Text: To help students understand how to format their answers, we give an example ax^2+bx+c of what the answer should look like.

$showPartialCorrectAnswers = 1;

ANS( $expandedform->cmp() );

Answer Evaluation: Everything is as expected.


Context()->texStrings;
BEGIN_SOLUTION
${PAR}SOLUTION:${PAR}
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();

Solution:

Templates by Subject Area