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…') 
Paultpearson (talk  contribs) (Add link to PGML version in OPL) 

(11 intermediate revisions by 3 users not shown)  
Line 1:  Line 1:  
<h2>Polynomial Factoring</h2> 
<h2>Polynomial Factoring</h2> 

−  <p style="backgroundcolor:#eeeeee;border:black solid 1px;padding:3px;"> 

+  
+  [[File:FactoredPolynomial1.png300pxthumbrightClick to enlarge]] 

+  <p style="backgroundcolor:#f9f9f9;border:black solid 1px;padding:3px;"> 

This PG code shows how to require students to factor a polynomial. 
This PG code shows how to require students to factor a polynomial. 

−  <ul> 

−  <li>Download file: [[File:FactoredPolynomial1.txt]] (change the file extension from txt to pg when you save it)</li> 

−  <li>File location in NPL: <code>NationalProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg</code></li> 

−  </ul> 

</p> 
</p> 

+  * File location in OPL: [https://github.com/openwebwork/webworkopenproblemlibrary/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg] 

+  * PGML location in OPL: [https://github.com/openwebwork/webworkopenproblemlibrary/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.pg FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.pg] 

+  <br clear="all" /> 

<p style="textalign:center;"> 
<p style="textalign:center;"> 

[[SubjectAreaTemplatesTemplates by Subject Area]] 
[[SubjectAreaTemplatesTemplates by Subject Area]] 

Line 41:  Line 42:  
<pre> 
<pre> 

DOCUMENT(); 
DOCUMENT(); 

+  
loadMacros( 
loadMacros( 

"PGstandard.pl", 
"PGstandard.pl", 

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

−  "contextLimitedPolynomial.pl", 

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

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

Line 55:  Line 56:  
<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 66:  Line 67:  
<pre> 
<pre> 

# 
# 

−  # 
+  # Expanded form 
# 
# 

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 81:  
message => "either 0 or 1", 
message => "either 0 or 1", 

); 
); 

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

</td> 
</td> 

Line 99:  Line 87:  
<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> 

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. 

</p> 
</p> 

Line 117:  Line 99:  
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 110:  
<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 122:  
$showPartialCorrectAnswers = 1; 
$showPartialCorrectAnswers = 1; 

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

</pre> 
</pre> 

Line 155:  Line 128:  
<p> 
<p> 

<b>Answer Evaluation:</b> 
<b>Answer Evaluation:</b> 

−  Everything is as expected. 

</p> 
</p> 

</td> 
</td> 

Line 191:  Line 163:  
[[Category:Top]] 
[[Category:Top]] 

−  [[Category: 
+  [[Category:Sample Problems]] 
+  [[Category:Subject Area Templates]] 
Latest revision as of 16:54, 7 June 2015
Polynomial Factoring
This PG code shows how to require students to factor a polynomial.
 File location in OPL: FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg
 PGML location in OPL: FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.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 
# # Expanded 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: 
Context()>texStrings; BEGIN_SOLUTION ${PAR}SOLUTION:${PAR} Solution explanation goes here. END_SOLUTION Context()>normalStrings; COMMENT('MathObject version.'); ENDDOCUMENT(); 
Solution: 