# ExpandedPolynomial1

## Polynomial Multiplication (Expanding)

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

PG problem file Explanation

Problem tagging:

```DOCUMENT();

"PGstandard.pl",
"MathObjects.pl",
"contextLimitedPolynomial.pl",
);

TEXT(beginproblem());
```

Initialization: We must load `contextLimitedPolynomial.pl`

```#
#  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: The macro `contextLimitedPolynomial.pl` provides two contexts:

```Context("LimitedPolynomial");
Context("LimitedPolynomial-Strict");
```

The strict version does not allow any mathematical operations within coefficients, so `(5+3)x` must be simplified to `8x`. For more details, see contextLimitedPolynomial.pl.html

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. Notice that we called the `->reduce()` method on the expanded form of the polynomial, which will ensure that the polynomial will be displayed as `x^2 - 6x + 4` instead of `x^2 + -6x + 4`.

```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() );

```

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

COMMENT('MathObject version.');

ENDDOCUMENT();
```

Solution: