Difference between revisions of "FactoredPolynomial1"
(Created page with '<h2>Polynomial Factoring</h2> <p style="backgroundcolor:#eeeeee;border:black solid 1px;padding:3px;"> This PG code shows how to require students to factor a polynomial. <ul> <l…') 

Line 44:  Line 44:  
"PGstandard.pl", 
"PGstandard.pl", 

"MathObjects.pl", 
"MathObjects.pl", 

−  "contextLimitedPolynomial.pl", 

"contextPolynomialFactors.pl", 
"contextPolynomialFactors.pl", 

"contextLimitedPowers.pl", 
"contextLimitedPowers.pl", 

Line 55:  Line 54:  
<p> 
<p> 

<b>Initialization:</b> 
<b>Initialization:</b> 

−  We need all of these macros. 

+  We require additional contexts provided by <code>contextPolynomialFactors.pl</code> and <code>contextLimitedPowers.pl</code> 

</p> 
</p> 

</td> 
</td> 

Line 69:  Line 68:  
# 
# 

Context("Numeric"); 
Context("Numeric"); 

−  $n = list_random(4,6); 

+  $poly = Compute("8x^2+28x+12"); 

−  $a = random(2,4,1); 

−  $b = ($a+$n); 

−  $h = ($b$a)/2; 

−  $k = $h**2+$a*$b; 

−  $vertexform = Compute("(x$h)^2$k"); 

−  
−  # 

−  # Expanded form 

−  # 

−  Context("LimitedPolynomialStrict"); 

−  $p[0] = $h**2  $k; 

−  $p[1] = 2*$h; 

−  $expandedform = Formula("x^2  $p[1] x + $p[0]")>reduce; 

# 
# 

Line 93:  Line 79:  
message => "either 0 or 1", 
message => "either 0 or 1", 

); 
); 

−  $ 
+  $factored = Compute("4(2x+1)(x+3)"); 
</pre> 
</pre> 

</td> 
</td> 

Line 99:  Line 85:  
<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(xh)^2+k) and expanded form (ax^2+bx+c). 

−  </p> 

−  <p> 

−  For the expanded form we use the <code>LimitedPolynomialStrict</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 precomputed coefficients. This is because the LimitedPolynomialStrict context balks at answers that are not already simplified completely. 

−  </p> 

<p> 
<p> 

For the factored form we need to change to the <code>PolynomialFactorsStrict</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, nonsimplified factors do not generate errors. 
For the factored form we need to change to the <code>PolynomialFactorsStrict</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, nonsimplified factors do not generate errors. 

Line 117:  Line 98:  
Context()>texStrings; 
Context()>texStrings; 

BEGIN_TEXT 
BEGIN_TEXT 

−  +  Write the quadratic expression \( $poly \) 

−  +  in factored form 

+  \( k(ax+b)(cx+d) \). 

$BR 
$BR 

−  $BR 

−  (a) Write the expression in expanded form 

−  \( ax^2 + bx + c \). 

−  $BR 

−  \{ ans_rule(30) \} 

−  $BR 

−  $BR 

−  (b) Write the expression in factored form 

−  \( k(ax+b)(cx+d) \). 

$BR 
$BR 

\{ ans_rule(30)\} 
\{ ans_rule(30)\} 

Line 137:  Line 109:  
<p> 
<p> 

<b>Main Text:</b> 
<b>Main Text:</b> 

−  +  We should explicitly tell students to enter answers in the form <code>k(ax+b)(cx+d)</code>. 

</p> 
</p> 

</td> 
</td> 

Line 149:  Line 121:  
$showPartialCorrectAnswers = 1; 
$showPartialCorrectAnswers = 1; 

−  ANS( $ 
+  ANS( $factored>cmp() ); 
−  ANS( $factoredform>cmp() ); 

</pre> 
</pre> 
Revision as of 15:20, 1 December 2010
Polynomial Factoring
This PG code shows how to require students to factor a polynomial.
 Download file: File:FactoredPolynomial1.txt (change the file extension from txt to pg when you save it)
 File location in NPL:
NationalProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg
PG problem file  Explanation 

Problem tagging: 

DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "contextPolynomialFactors.pl", "contextLimitedPowers.pl", ); TEXT(beginproblem()); 
Initialization:
We require additional contexts provided by 
# # Vertex form # Context("Numeric"); $poly = Compute("8x^2+28x+12"); # # Factored form # Context("PolynomialFactorsStrict"); Context()>flags>set(singleFactors=>0); LimitedPowers::OnlyIntegers( minPower => 0, maxPower => 1, message => "either 0 or 1", ); $factored = Compute("4(2x+1)(x+3)"); 
Setup:
For the factored form we need to change to the 
Context()>texStrings; BEGIN_TEXT Write the quadratic expression \( $poly \) in factored form \( k(ax+b)(cx+d) \). $BR $BR \{ ans_rule(30)\} END_TEXT Context()>normalStrings; 
Main Text:
We should explicitly tell students to enter answers in the form 
$showPartialCorrectAnswers = 1; ANS( $factored>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: 