Skip to main content

Section 1.2 Review of Functions: Part A

Learning Objectives.

  1. Use functional notation to evaluate a function.

  2. Determine the domain and range of a function.

  3. Draw the graph of a function.

  4. Find the zeros of a function.

  5. Recognize a function from a table of values.

In this section, we provide a formal definition of a function and examine several ways in which functions are represented—namely, through tables, formulas, and graphs. We study formal notation and terms related to functions. We also define composition of functions and symmetry properties. Most of this material will be a review for you, but it serves as a handy reference to remind you of some of the algebraic techniques useful for working with functions.

Subsection 1.2.1 Functions

Given two sets \(A\) and \(B\text{,}\) a set with elements that are ordered pairs \((x,y) \) where \(x\) is an element of \(A\) and \(y\) is an element of \(B\text{,}\) is a relation from \(A\) to \(B\text{.}\) A relation from \(A\) to \(B\) defines a relationship between those two sets. A function is a special type of relation in which each element of the first set is related to exactly one element of the second set. The element of the first set is called the input; the element of the second set is called the output. Functions are used all the time in mathematics to describe relationships between two sets. For any function, when we know the input, the output is determined, so we say that the output is a function of the input. For example, the area of a square is determined by its side length, so we say that the area (the output) is a function of its side length (the input). The velocity of a ball thrown in the air can be described as a function of the amount of time the ball is in the air. The cost of mailing a package is a function of the weight of the package. Since functions have so many uses, it is important to have precise definitions and terminology to study them.

Definition 1.10.

A function\(f\) consists of a set of inputs, a set of outputs, and a rule for assigning each input to exactly one output. The set of inputs is called the domain of the function. The set of outputs is called the range of the function.

For example, consider the function \(f\text{,}\) where the domain is the set of all real numbers and the rule is to square the input. Then, the input \(x=3\) is assigned to the output \(3^2=9\text{.}\) Since every nonnegative real number has a real-value square root, every nonnegative number is an element of the range of this function. Since there is no real number with a square that is negative, the negative real numbers are not elements of the range. We conclude that the range is the set of nonnegative real numbers. For a general function \(f\) with domain \(D\text{,}\) we often use \(x\) to denote the input and \(y\) to denote the output associated with \(x\text{.}\) When doing so, we refer to \(x\) as the independent variable and \(y\) as the dependent variable, because it depends on \(x\text{.}\) Using function notation, we write \(y=f(x)\) and we read this equation as “\(y\) equals \(f\) of \(x\text{.}\)” For the squaring function described earlier, we write \(f(x)=x^2.\)

The concept of a function can be visualized using Figure 1.11, Figure 1.12 and Figures 1.13.

An image with three items. The first item is text that reads Input. An arrow points from the first item to the second item, which is a box with the label function. An arrow points from the second item to the third item, which is text that reads Output, f(x).
Figure 1.11. A function can be visualized as an input/output device.
An image with two items. The first item is a bubble labeled domain. Within the bubble are the numbers 1, 2, 3, and 4. An arrow with the label f; points from the first item to the second item, which is a bubble labeled range. Within this bubble are the numbers 2, 4, and 6. An arrow points from the 1 in the domain bubble to the 6 in the range bubble. An arrow points from the 1 in the domain bubble to the 6 in the range bubble. An arrow points from the 2 in the domain bubble to the 4 in the range bubble. An arrow points from the 3 in the domain bubble to the 2 in the range bubble. An arrow points from the 4 in the domain bubble to the 2 in the range bubble.
Figure 1.12. A function maps every element in the domain to exactly one element in the range. Although each input can be sent to only one output, two different inputs can be sent to the same output.
An image of a graph. The y axis runs from 0 to 3 and has the label dependent variable, y = f(x). The x axis runs from 0 to 5 and has the label independent variable, x. There are three points on the graph. The first point is at (1, 2) and has the label (1, f(1)) = (1, 2). The second point is at (2, 1) and has the label (2, f(2))=(2,1). The third point is at (3, 2) and has the label (3, f(3)) = (3,2). There is text along the y axis that reads range = \{1, 2} and text along the x axis that reads domain = \{1,2,3}
Figure 1.13. In this case, a graph of a function f has a domain of {1,2,3} and a range of {1,2}. The independent variable is x and the dependent variable is y.

We can also visualize a function by plotting points \((x,y)\) in the coordinate plane where \(y=f(x)\text{.}\) The graph of a function is the set of all these points. For example, consider the function \(f\) where the domain is the set \(D=\{1,2,3\}\) and the rule is \(f(x)=3-x.\) In Figure 1.15, we plot a graph of this function.

An image of a graph. The y axis runs from 0 to 5. The x axis runs from 0 to 5. There are three points on the graph at (1, 2), (2, 1), and (3, 0). There is text along the y axis that reads “range = {0,1,2}” and text along the x axis that reads “domain = {1,2,3}”.
Figure 1.15. Here we see a graph of the function \(f\) with domain \(\{1,2,3\}\) and rule \(f(x)=3-x.\) The graph consists of the points \((x,f(x))\) for all \(x\) in the domain.

Every function has a domain. However, sometimes a function is described by an equation, as in \(f(x)=x^2,\) with no specific domain given. In this case, the domain is taken to be the set of all real numbers \(x\) for which \(f(x)\) is a real number. For example, since any real number can be squared, if no other domain is specified, we consider the domain of \(f(x)=x^2\) to be the set of all real numbers. On the other hand, the square root function \(f(x)=\sqrt{x}\) only gives a real output if \(x\) is nonnegative. Therefore, the domain of the function \(f(x)=\sqrt{x}\) is the set of nonnegative real numbers, sometimes called the natural domain.

For the functions \(f(x)=x^2\) and \(f(x)=\sqrt{x},\) the domains are sets with an infinite number of elements. Clearly we cannot list all these elements. When describing a set with an infinite number of elements, it is often helpful to use set-builder or interval notation. When using set-builder notation to describe a subset of all real numbers, denoted \(\mathbb{R}],\) we write

\begin{equation*} \{x|x \text{ has some property} \}. \end{equation*}

We read this as the set of real numbers \(x\) such that \(x\) has some property. For example, if we were interested in the set of real numbers that are greater than one but less than five, we could denote this set using set-builder notation by writing

\begin{equation*} \{x | 1 < x < 5 \}. \end{equation*}

A set such as this, which contains all numbers greater than \(a\) and less than \(b,\) can also be denoted using the interval notation \((a,b).\) Therefore,

\begin{equation*} (1,5)=\{x| 1\lt x \lt 5\}. \end{equation*}

The numbers \(1\) and \(5\) are called the endpoints of this set. If we want to consider the set that includes the endpoints, we would denote this set by writing

\begin{equation*} [1,5]=\{x|1\leq x\leq5\}. \end{equation*}

We can use similar notation if we want to include one of the endpoints, but not the other. To denote the set of nonnegative real numbers, we would use the set-builder notation

\begin{equation*} \{x|0\leq x\}. \end{equation*}

The smallest number in this set is zero, but this set does not have a largest number. Using interval notation, we would use the symbol \(\infty ,\) which refers to positive infinity, and we would write the set as

\begin{equation*} [0,\infty)=\{x|0 \leq x\}. \end{equation*}

It is important to note that \(\infty\) is not a real number. It is used symbolically here to indicate that this set includes all real numbers greater than or equal to zero. Similarly, if we wanted to describe the set of all nonpositive numbers, we could write

\begin{equation*} (-\infty,0]=\{x|x \leq 0\}. \end{equation*}

Here, the notation \(-\infty\) refers to negative infinity, and it indicates that we are including all numbers less than or equal to zero, no matter how small. The set

\begin{equation*} (-\infty,\infty)=\{x|x \text{ is any real number }\} \end{equation*}

refers to the set of all real numbers.

Some functions are defined using different equations for different parts of their domain. These types of functions are known as piecewise-defined functions. For example, suppose we want to define a function \(f\) with a domain that is the set of all real numbers such that \(f(x)=3x+1\) for \(x \geq 2\) and \(f(x)=x^2\) for \(x < 2.\) We denote this function by writing

\begin{equation*} f(x)=\begin{cases} 3x+1 \amp x \geq 2 \\ x^2 \amp x < 2 .\end{cases} \end{equation*}

When evaluating this function for an input \(x,\) the equation to use depends on whether \(x \geq 2\) or \(x < 2.\) For example, since \(5 \ge 2,\) we use the fact that \(f(x)=3x+1\) for \(x \geq 2\) and see that \(f(5)=3(5)+1=16.\) On the other hand, for \(x=-1,\) we use the fact that \(f(x)=x^2\) for \(x < 2\) and see that \(f(-1)=1.\)

Example 1.16. Evaluating Functions.

For the function \(f(x)=3x^2+2x-1,\) evaluate

  1. \(\displaystyle f(-2)\)

  2. \(\displaystyle f(\sqrt{2})\)

  3. \(\displaystyle f(a+h)\)

Solution.

Substitute the given value for \(x \) in the formula for \(f(x).\)

  1. \(\displaystyle f(-2)=3(-2)^2+2(-2)-1=12-4-1=7\)

  2. \(\displaystyle f(\sqrt{2})=3(\sqrt{2})^2+2\sqrt{2}-1=6+2\sqrt{2}-1=5+2\sqrt{2}\)

  3. \begin{align*} f(a+h)=3(a+h)^2+2(a+h)-1 \amp =3(a^2+2ah+h^2)+2a+2h-1\\ \amp =3a^2+6ah+3h^2+2a+2h-1 \end{align*}

Checkpoint 1.17.

For \(f(x)=x^2-3x+5,\) evaluate \(f(1)\) and \(f(a+h).\)

Hint.

Substitute \(1\) and \(a+h\) for \(x\) in the formula for \(f(x).\)

Solution.

\(f(1)=3\) and \(f(a+h)=a^2+2ah+h^2-3a-3h+5\)

Example 1.18. Finding Domain and Range.

For each of the following functions, determine the a. domain and b. range.

  1. \(\displaystyle f(x)=(x-4)^2+5\)

  2. \(\displaystyle f(x)=\sqrt{3x+2}-1\)

  3. \(\displaystyle f(x)=\frac{3}{x-2}\)

Solution.
  1. Consider \(f(x)=(x-4)^2+5.\)

    1. Since \(f(x)=(x-4)^2+5\) is a real number for any real number \(x,\) the domain of \(f\) is the interval \((-\infty, \infty).\)

    2. Since \((x-4)^2 \geq 0,\) we know \(f(x)=(x-4)^2+5 \geq 5.\) Therefore, the range must be a subset of \(\{y|y \geq 5\}.\) To show that every element in this set is in the range, we need to show that for a given \(y\) in that set, there is a real number \(x\) such that \(f(x)=(x-4)^2+5=y.\) Solving this equation for \(x,\) we see that we need \(x\) such that

      \begin{equation*} (x-4)^2=y-5. \end{equation*}
      This equation is satisfied as long as there exists a real number \(x\) such that
      \begin{equation*} x-4= \pm \sqrt{y-5}. \end{equation*}
      Since \(y \geq 5,\) the square root is well-defined. We conclude that for \(x=4 \pm \sqrt{y-5},f(x)=y,\) and therefore the range is \(\{y|y \geq 5\}.\)

  2. Consider \(f(x)=\sqrt{3x+2}-1.\)

    1. To find the domain of \(f,\) we need the expression \(3x+2 \geq 0.\) Solving this inequality, we conclude that the domain is \(\{x|x\geq-2/3\}.\)

    2. To find the range of \(f,\) we note that since \(\sqrt{3x+2}\geq 0,f(x)=\sqrt{3x+2}-1\geq -1.\) Therefore, the range of \(f\) must be a subset of the set \(\{y|y\geq-1\}.\) To show that every element in this set is in the range of \(f,\) we need to show that for all \(y\) in this set, there exists a real number \(x\) in the domain such that \(f(x)=y.\) Let \(y\geq-1.\) Then, \(f(x)=y\) if and only if

      \begin{equation*} \sqrt{3x+2}-1=y. \end{equation*}

      Solving this equation for \(x,\) we see that \(x\) must solve the equation

      \begin{equation*} \sqrt{3x+2}=y+1. \end{equation*}

      Since \(y\geq-1,\) such an \(x\) could exist. Squaring both sides of this equation, we have

      \begin{equation*} 3x+2=(y+1)^2. \end{equation*}

      Therefore, we need

      \begin{equation*} 3x=(y+1)^2-2, \end{equation*}

      which implies

      \begin{equation*} x=\frac{1}{3}(y+1)^2-\frac{2}{3}. \end{equation*}

      We just need to verify that \(x\) is in the domain of \(f.\) Since the domain of \(f\) consists of all real numbers greater than or equal to \(-2/3,\) and

      \begin{equation*} \frac{1}{3}(y+1)^2-\frac{2}{3}\geq -\frac{2}{3}, \end{equation*}

      there does exist an \(x\) in the domain of \(f.\) We conclude that the range of \(f\) is \(\{y|y\geq-1\}.\)

  3. Consider \(f(x)=3/(x-2).\)

    1. Since \(3/(x-2)\) is defined when the denominator is nonzero, the domain is \(\{x|x \neq 2\}.\)

    2. To find the range of \(f,\) we need to find the values of \(y\) such that there exists a real number \(x\) in the domain with the property that

      \begin{equation*} \frac{3}{x-2}=y. \end{equation*}
      Solving this equation for \(x,\) we find that
      \begin{equation*} x=\frac{3}{y}+2. \end{equation*}
      Therefore, as long as \(y\neq 0,\) there exists a real number \(x\) in the domain such that \(f(x)=y.\) Thus, the range is \(\{y|y \neq 0\}.\)

Checkpoint 1.19.

Find the domain and range for \(f(x)=\sqrt{4-2x}+5.\)

Hint.

Use \(4-2x\geq0.\)

Solution.

Domain = \(\{x|x \leq 2\},\) range = \(\{y|y\geq 5\}\)

Subsection 1.2.2 Representing Functions

Typically, a function is represented using one or more of the following tools:

  • A table

  • A graph

  • A formula

We can identify a function in each form, but we can also use them together. For instance, we can plot on a graph the values from a table or create a table from a formula.

Subsubsection 1.2.2.1 Tables

Functions described using a table of values arise frequently in real-world applications. Consider the following simple example. We can describe temperature on a given day as a function of time of day. Suppose we record the temperature every hour for a 24-hour period starting at midnight. We let our input variable \(x\) be the time after midnight, measured in hours, and the output variable \(y\) be the temperature \(x\) hours after midnight, measured in degrees Fahrenheit. We record our data in Table 1.20.

Table 1.20. Temperature as a Function of Time of Day
Hours after Midnight Temperature (\(^\circ\)F) Hours after Midnight Temperature (\(^\circ\)F)
0 58 12 84
1 54 13 85
2 53 14 85
3 52 15 83
4 52 16 82
5 55 17 80
6 60 18 77
7 64 19 74
8 72 20 69
9 75 21 65
10 78 22 60
11 80 23 58

We can see from the table that temperature is a function of time, and the temperature decreases, then increases, and then decreases again. However, we cannot get a clear picture of the behavior of the function without graphing it.

Subsubsection 1.2.2.2 Graphs

Given a function \(f\) described by a table, we can provide a visual picture of the function in the form of a graph. Graphing the temperatures listed in Table 1.20 can give us a better idea of their fluctuation throughout the day. Figure 1.21 shows the plot of the temperature function.

"An image of a graph. The y axis runs from 0 to 90 and has the label “Temperature in Fahrenheit”. The x axis runs from 0 to 24 and has the label “hours after midnight”. There are 24 points on the graph, one at each increment of 1 on the x-axis. The first point is at (0, 58) and the function decreases until x = 4, where the point is (4, 52) and is the minimum value of the function. After x=4, the function increases until x = 13, where the point is (13, 85) and is the maximum of the function along with the point (14, 85). After x = 14, the function decreases until the last point on the graph, which is (23, 58)."
Figure 1.21. The graph of the data from Table 1.20 shows temperature as a function of time.

From the points plotted on the graph in Figure 1.21, we can visualize the general shape of the graph. It is often useful to connect the dots in the graph, which represent the data from the table. In this example, although we cannot make any definitive conclusion regarding what the temperature was at any time for which the temperature was not recorded, given the number of data points collected and the pattern in these points, it is reasonable to suspect that the temperatures at other times followed a similar pattern, as we can see in Figure 1.22.

"An image of a graph. The y axis runs from 0 to 90 and has the label “Temperature in Fahrenheit”. The x axis runs from 0 to 24 and has the label “hours after midnight”. There are 24 points on the graph, one at each increment of 1 on the x-axis. The first point is at (0, 58) and the function decreases until x = 4, where the point is (4, 52) and is the minimum value of the function. After x=4, the function increases until x = 13, where the point is (13, 85) and is the maximum of the function along with the point (14, 85). After x = 14, the function decreases until the last point on the graph, which is (23, 58). A line connects all the points on the graph."
Figure 1.22. Connecting the dots in Figure 1.21 shows the general pattern of the data.

Subsubsection 1.2.2.3 Algebraic Formulas

Sometimes we are not given the values of a function in table form, rather we are given the values in an explicit formula. Formulas arise in many applications. For example, the area of a circle of radius \(r\) is given by the formula \(A(r)=\pi r^2.\) When an object is thrown upward from the ground with an initial velocity \(v_0\) ft/s, its height above the ground from the time it is thrown until it hits the ground is given by the formula \(s(t)=-16t^2+v_0 t.\) When \(P\) dollars are invested in an account at an annual interest rate \(r\) compounded continuously, the amount of money after \(t\) years is given by the formula \(A(t)=Pe^{rt}.\) Algebraic formulas are important tools to calculate function values. Often we also represent these functions visually in graph form.

Given an algebraic formula for a function \(f,\) the graph of \(f\) is the set of points \((x,f(x)),\) where \(x\) is in the domain of \(f\) and \(f(x)\) is in the range. To graph a function given by a formula, it is helpful to begin by using the formula to create a table of inputs and outputs. If the domain of \(f\) consists of an infinite number of values, we cannot list all of them, but because listing some of the inputs and outputs can be very useful, it is often a good way to begin.

When creating a table of inputs and outputs, we typically check to determine whether zero is an output. Those values of \(x\) where \(f(x)=0\) are called the zeros of a function. For example, the zeros of \(f(x)=x^2-4\) are \(x=±2.\) The zeros determine where the graph of \(f\) intersects the \(x\)-axis, which gives us more information about the shape of the graph of the function. The graph of a function may never intersect the x-axis, or it may intersect multiple (or even infinitely many) times.

Another point of interest is the \(y\)-intercept, if it exists. The \(y\)-intercept is given by \((0,f(0)).\)

Since a function has exactly one output for each input, the graph of a function can have, at most, one \(y\)-intercept. If \(x=0\) is in the domain of a function \(f,\) then \(f\) has exactly one \(y\)-intercept. If \(x=0\) is not in the domain of \(f,\) then \(f\) has no \(y\)-intercept. Similarly, for any real number \(c,\) if \(c\) is in the domain of \(f,\) there is exactly one output \(f(c),\) and the line \(x=c\) intersects the graph of \(f\) exactly once. On the other hand, if \(c\) is not in the domain of \(f,f(c)\) is not defined and the line \(x=c\) does not intersect the graph of \(f.\) This property is summarized in the vertical line test.

Note 1.23. Rule: Vertical Line Test.

Given a function \(f,\) every vertical line that may be drawn intersects the graph of \(f\) no more than once. If any vertical line intersects a set of points more than once, the set of points does not represent a function.

We can use this test to determine whether a set of plotted points represents the graph of a function (Figure 1.24 ).

"An image of two graphs. The first graph is labeled “a” and is of the function “y = f(x)”. Three vertical lines run through 3 points on the function, each vertical line only passing through the function once. The second graph is labeled “b” and is of the relation “y not equal to f(x)”. Two vertical lines run through the relation, one line intercepting the relation at 3 points and the other line intercepting the relation at 3 different points."
Figure 1.24. (a) The set of plotted points represents the graph of a function because every vertical line intersects the set of points, at most, once. (b) The set of plotted points does not represent the graph of a function because some vertical lines intersect the set of points more than once.
Example 1.25. Finding Zeros and \(y\)-Intercepts of a Function.

Consider the function \(f(x)=-4x+2.\)

  1. Find all zeros of \(f.\)

  2. Find the \(y\)-intercept (if any).

  3. Sketch a graph of \(f.\)

Solution.
  1. To find the zeros, solve \(f(x)=-4x+2=0.\) We discover that \(f\) has one zero at \(x=1/2.\)

  2. The \(y\)-intercept is given by \((0,f(0))=(0,2).\)

  3. Given that \(f\) is a linear function of the form \(f(x)=mx+b\) that passes through the points \((1/2,0)\) and \((0,2),\) we can sketch the graph of \(f\) (Figure 1.26).
    "An image of a graph. The y axis runs from -2 to 5 and the x axis runs from -2 to 5. The graph is of the function “f(x) = -4x + 2”, which is a decreasing straight line. There are two points plotted on the function at (0, 2) and (1/2, 0)."
    Figure 1.26. The function \(f(x)=-4x+2\) is a line with \(x\)-intercept \((1/2,0)\) and \(y\)-intercept \((0,2).\)
Example 1.27. Using Zeros and \(y\)-Intercepts to Sketch a Graph.

Consider the function \(f(x)=\sqrt{x+3}+1.\)

  1. Find all zeros of \(f.\)

  2. Find the \(y\)-intercept (if any).

  3. Sketch a graph of \(f.\)

Solution.
  1. To find the zeros, solve \(\sqrt{x+3}+1=0.\) This equation implies \(\sqrt{x+3}=-1.\) Since \(\sqrt{x+3}\geq 0\) for all \(x,\) this equation has no solutions, and therefore \(f\) has no zeros.

  2. The \(y\)-intercept is given by \((0,f(0))=(0,\sqrt{3}+1).\)

  3. To graph this function, we make a table of values. Since we need \(x+3 \geq 0,\) we need to choose values of \(x\geq -3.\) We choose values that make the square-root function easy to evaluate.
    Table 1.28.
    \(x\) \(-3\) \(-2\) \(1\)
    \(f(x)\) \(1\) \(2\) \(3\)

Making use of the table and knowing that, since the function is a square root, the graph of \(f\) should be similar to the graph of \(y=\sqrt{x},\) we sketch the graph (Figure 1.29).

"An image of a graph. The y axis runs from -2 to 4 and the x axis runs from -3 to 2. The graph is of the function “f(x) = (square root of x + 3) + 1”, which is an increasing curved function that starts at the point (-3, 1). There are 3 points plotted on the function at (-3, 1), (-2, 2), and (1, 3). The function has a y intercept at (0, 1 + square root of 3)."
Figure 1.29. The graph of \(f(x)=\sqrt{x+3}+1\) has a \(y\)-intercept but no \(x\)-intercepts.
Checkpoint 1.30.

Find the zeros of \(f(x)=x^3-5x^2+6x.\)

Hint.

Factor the polynomial.

Solution.

\(x=0,2,3\)

Example 1.31. Finding the Height of a Free-Falling Object.

If a ball is dropped from a height of \(100\) ft, its height \(s\) at time \(t\) is given by the function \(s(t)=-16t^2+100,\) where \(s\) is measured in feet and \(t\) is measured in seconds. The domain is restricted to the interval \([0,c],\) where \(t=0\) is the time when the ball is dropped and \(t=c\) is the time when the ball hits the ground.

  1. Create a table showing the height \(s(t)\) when \(t=0,0.5,1,1.5,2, \) and \(2.5.\) Using the data from the table, determine the domain for this function. That is, find the time \(c\) when the ball hits the ground.

  2. Sketch a graph of \(s.\)

Solution.
  1. Table 1.32. Height \(s\) as a Function of Time \(t\)
    \(t\) \(0\) \(0.5\) \(1\) \(1.5\) \(2\) \(2.5\)
    \(s(t)\) \(100\) \(96\) \(84\) \(64\) \(36\) \(0\)

    Since the ball hits the ground when \(t=2.5,\) the domain of this function is the interval \([0,2.5].\)

  2. "An image of a graph. The y axis runs from 0 to 100 and is labeled “s(t), height in feet”. The x axis runs from 0 to 3 and is labeled “t, time in seconds”. The graph is of the function “s(t) = -16 t squared + 100”, which is a decreasing curved function that starts at the y intercept point (0, 100). There are 6 points plotted on the function at (0, 100), (0.5, 96), (1, 84), (1.5, 64), (2, 36), and (2.5, 0). The function has a x intercept at the last point (2.5, 0).">
    Figure 1.33.

This book is a custom edition based on OpenStax Calculus Volume 1. You can download the original for free at https://openstax.org/details/books/calculus-volume-1. 2 

Additional practice exercises are available in at the bottom on this section in OpenStax Calculus Volume 1: https://openstax.org/books/calculus-volume-1/pages/1-1-review-of-functions

http://www.openstax.org/l/grapherrors
https://openstax.org/details/books/calculus-volume-1