Difference between revisions of "FactoredPolynomial1"
(Created page with '<h2>Polynomial Factoring</h2> <p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> This PG code shows how to require students to factor a polynomial. <ul> <l…') |
(add historical tag and give links to newer problems.) |
||
(13 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{historical}} |
||
+ | |||
+ | <p style="font-size: 120%;font-weight:bold">This problem has been replaced with [https://openwebwork.github.io/pg-docs/sample-problems/Algebra/FactoredPolynomial.html a newer version of this problem]</p> |
||
+ | |||
+ | |||
<h2>Polynomial Factoring</h2> |
<h2>Polynomial Factoring</h2> |
||
− | <p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> |
||
+ | |||
+ | [[File:FactoredPolynomial1.png|300px|thumb|right|Click to enlarge]] |
||
+ | <p style="background-color:#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/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg]--> |
||
+ | * PGML location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.pg FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.pg] |
||
+ | <br clear="all" /> |
||
<p style="text-align:center;"> |
<p style="text-align:center;"> |
||
[[SubjectAreaTemplates|Templates by Subject Area]] |
[[SubjectAreaTemplates|Templates by Subject Area]] |
||
Line 16: | Line 22: | ||
<tr valign="top"> |
<tr valign="top"> |
||
− | <th> PG problem file </th> |
+ | <th style="width: 50%"> PG problem file </th> |
<th> Explanation </th> |
<th> Explanation </th> |
||
</tr> |
</tr> |
||
Line 41: | Line 47: | ||
<pre> |
<pre> |
||
DOCUMENT(); |
DOCUMENT(); |
||
− | loadMacros( |
||
+ | |||
− | "PGstandard.pl", |
||
+ | loadMacros('PGstandard.pl','MathObjects.pl','PGML.pl','PGcourse.pl'); |
||
− | "MathObjects.pl", |
||
− | "contextLimitedPolynomial.pl", |
||
− | "contextPolynomialFactors.pl", |
||
− | "contextLimitedPowers.pl", |
||
− | ); |
||
TEXT(beginproblem()); |
TEXT(beginproblem()); |
||
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 65: | Line 66: | ||
<td style="background-color:#ffffdd;border:black 1px dashed;"> |
<td style="background-color:#ffffdd;border:black 1px dashed;"> |
||
<pre> |
<pre> |
||
− | # |
||
− | # Vertex form |
||
− | # |
||
− | Context("Numeric"); |
||
− | $n = list_random(4,6); |
||
− | $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 |
# Expanded form |
||
− | # |
||
+ | Context('Numeric'); |
||
− | Context("LimitedPolynomial-Strict"); |
||
+ | $poly = Compute('8x^2+28x+12'); |
||
− | $p[0] = $h**2 - $k; |
||
− | $p[1] = 2*$h; |
||
− | $expandedform = Formula("x^2 - $p[1] x + $p[0]")->reduce; |
||
− | # |
||
# Factored form |
# Factored form |
||
− | # |
||
+ | Context('PolynomialFactors-Strict'); |
||
− | Context("PolynomialFactors-Strict"); |
||
Context()->flags->set(singleFactors=>0); |
Context()->flags->set(singleFactors=>0); |
||
LimitedPowers::OnlyIntegers( |
LimitedPowers::OnlyIntegers( |
||
− | minPower => 0, maxPower => 1, |
+ | minPower => 0, maxPower => 1, |
− | message => |
+ | message => 'either 0 or 1', |
); |
); |
||
− | $ |
+ | $factored = Compute('4(2x+1)(x+3)'); |
</pre> |
</pre> |
||
</td> |
</td> |
||
Line 99: | Line 83: | ||
<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). |
||
− | </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. |
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> |
||
Line 115: | Line 93: | ||
<td style="background-color:#ffdddd;border:black 1px dashed;"> |
<td style="background-color:#ffdddd;border:black 1px dashed;"> |
||
<pre> |
<pre> |
||
− | Context()->texStrings; |
||
+ | BEGIN_PGML |
||
− | BEGIN_TEXT |
||
+ | Write the quadratic expression [` [$poly] `] |
||
− | The quadratic expression \( $vertexform \) |
||
+ | in factored form |
||
− | is written in vertex form. |
||
+ | [` k(ax+b)(cx+d) `]. |
||
− | $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 |
||
− | \{ ans_rule(30)\} |
||
− | END_TEXT |
||
− | Context()->normalStrings; |
||
− | </pre> |
||
− | <td style="background-color:#ffcccc;padding:7px;"> |
||
− | <p> |
||
− | <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. |
||
− | </p> |
||
− | </td> |
||
− | </tr> |
||
− | <!-- Answer section --> |
||
+ | [____________________]{$factored} |
||
− | <tr valign="top"> |
||
+ | [@ helpLink('formulas') @]* |
||
− | <td style="background-color:#eeddff;border:black 1px dashed;"> |
||
+ | END_PGML |
||
− | <pre> |
||
− | $showPartialCorrectAnswers = 1; |
||
− | |||
− | ANS( $expandedform->cmp() ); |
||
− | ANS( $factoredform->cmp() ); |
||
</pre> |
</pre> |
||
− | <td style="background-color:# |
+ | <td style="background-color:#ffcccc;padding:7px;"> |
<p> |
<p> |
||
− | <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> |
||
</tr> |
</tr> |
||
− | |||
<!-- Solution section --> |
<!-- Solution section --> |
||
Line 168: | Line 118: | ||
<pre> |
<pre> |
||
− | Context()->texStrings; |
||
+ | BEGIN_PGML_SOLUTION |
||
− | BEGIN_SOLUTION |
||
− | ${PAR}SOLUTION:${PAR} |
||
Solution explanation goes here. |
Solution explanation goes here. |
||
− | END_SOLUTION |
||
+ | END_PGML_SOLUTION |
||
− | Context()->normalStrings; |
||
− | |||
− | COMMENT('MathObject version.'); |
||
ENDDOCUMENT(); |
ENDDOCUMENT(); |
||
Line 192: | Line 137: | ||
[[Category:Top]] |
[[Category:Top]] |
||
− | [[Category: |
+ | [[Category:Sample Problems]] |
+ | [[Category:Subject Area Templates]] |
Latest revision as of 04:48, 18 July 2023
This problem has been replaced with a newer version of this problem
Polynomial Factoring
This PG code shows how to require students to factor a polynomial.
- PGML location in OPL: FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1_PGML.pg
PG problem file | Explanation |
---|---|
Problem tagging: |
|
DOCUMENT(); loadMacros('PGstandard.pl','MathObjects.pl','PGML.pl','PGcourse.pl'); TEXT(beginproblem()); |
Initialization:
We require additional contexts provided by |
# Expanded form Context('Numeric'); $poly = Compute('8x^2+28x+12'); # Factored form Context('PolynomialFactors-Strict'); 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 |
BEGIN_PGML Write the quadratic expression [` [$poly] `] in factored form [` k(ax+b)(cx+d) `]. [____________________]{$factored} [@ helpLink('formulas') @]* END_PGML |
Main Text:
We should explicitly tell students to enter answers in the form |
BEGIN_PGML_SOLUTION Solution explanation goes here. END_PGML_SOLUTION ENDDOCUMENT(); |
Solution: |