# EquationImplicitFunction1

## Answer is an Equation that Implicitly Defines a Function

This PG code shows how to have an answer that is an equation that implicitly defines a function.

PG problem file Explanation

Problem tagging:

```DOCUMENT();

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

TEXT(beginproblem());
```

Initialization:

```Context("ImplicitEquation");
Context()->{error}{msg}{
"Can't find any solutions to your equation"} = " ";
Context()->{error}{msg}{
"Can't generate enough valid points for comparison"} = " ";

Context()->variables->set(
x=>{limits=>[-6,11]},
y=>{limits=>[-6,11]},
);

\$a = random(1,5,1);
\$b = random(1,5,1);
\$r = random(2,5,1);

"(x-\$a)^2 + (y-\$b)^2 = \$r^2",
solutions=>[
[\$a,\$b+\$r],
[\$a,\$b-\$r],
[\$a+\$r,\$b],
[\$a-\$r,\$b],
[\$a+\$r*sqrt(2)/2,\$b+\$r*sqrt(2)/2],
]
);
```

Setup: We quash some error messages by redefining them to be a blank string `" "` (notice the space). Since the circle will always be contained in a rectangle with two opposite corners at ```(-4,-4) and (10,10), we set the limits for the variables x and y to be outside of this rectangle. The ImplicitEquation object allows us to specify as many solutions as we like, and doing so should improve the accuracy of the answer evaluator. ```

``` If your equation is linear of the form x=3, 4x+3y=12, or 4x+3y+5z=21, or..., you should probably use the [ImplicitPlane1 implicit plane] context and answer evaluator. ```
```Context()->texStrings;
BEGIN_TEXT
Enter an equation for a circle in the xy-plane
of radius \( \$r \) centered at \( (\$a,\$b) \).
\$BR
\$BR
\{ ans_rule(40) \}
END_TEXT
Context()->normalStrings;
```

Main Text:

```\$showPartialCorrectAnswers = 1;

```

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

COMMENT("MathObject version.");

ENDDOCUMENT();
```

Solution: