Skip to main content
Mathematics LibreTexts

3.4: Product

  • Page ID
    20707
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    The Product Rule

    Now that we have examined the basic rules, we can begin looking at some of the more advanced rules. The first one examines the derivative of the product of two functions. Although it might be tempting to assume that the derivative of the product is the product of the derivatives, similar to the sum and difference rules, the product rule does not follow this pattern. To see why we cannot use this pattern, consider the function \(f(x)=x^2\), whose derivative is \(f′(x)=2x\) and not \(\dfrac{d}{dx}(x)⋅\dfrac{d}{dx}(x)=1⋅1=1.\)

    Product Rule

    Let \(f(x)\) and \(g(x)\) be differentiable functions. Then

    \[\dfrac{d}{dx}(f(x)g(x))=\dfrac{d}{dx}(f(x))⋅g(x)+\dfrac{d}{dx}(g(x))⋅f(x).\]

    That is,

    \[if j(x)=f(x)g(x),thenj′(x)=f′(x)g(x)+g′(x)f(x).\]

    This means that the derivative of a product of two functions is the derivative of the first function times the second function plus the derivative of the second function times the first function.

    Proof

    We begin by assuming that \(f(x)\) and \(g(x)\) are differentiable functions. At a key point in this proof we need to use the fact that, since \(g(x)\) is differentiable, it is also continuous. In particular, we use the fact that since \(g(x)\) is continuous, \(\lim_{h→0}g(x+h)=g(x).\)

    By applying the limit definition of the derivative to \((x)=f(x)g(x),\) we obtain

    \[j′(x)=\lim_{h→0}\dfrac{f(x+h)g(x+h)−f(x)g(x)}{h}.\]

    By adding and subtracting \(f(x)g(x+h)\) in the numerator, we have

    \[j′(x)=\lim_{h→0}\dfrac{f(x+h)g(x+h)−f(x)g(x+h)+f(x)g(x+h)−f(x)g(x)}{h}.\]

    After breaking apart this quotient and applying the sum law for limits, the derivative becomes

    \[j′(x)=\lim_{h→0}\dfrac{(f(x+h)g(x+h)−f(x)g(x+h)}{h})+\lim_{h→0}\dfrac{(f(x)g(x+h)−f(x)g(x)}{h}.\]

    Rearranging, we obtain

    \[j′(x)=\lim_{h→0}\dfrac{(f(x+h)−f(x)}{h}⋅g(x+h))+\lim_{h→0}(\dfrac{g(x+h)−g(x)}{h}⋅f(x)).\]

    By using the continuity of \(g(x)\), the definition of the derivatives of \(f(x)\) and \(g(x)\), and applying the limit laws, we arrive at the product rule,

    \[j′(x)=f′(x)g(x)+g′(x)f(x).\]

    Example \(\PageIndex{7}\): Applying the Product Rule to Constant Functions

    For \(j(x)=f(x)g(x)\), use the product rule to find \(j′(2)\) if \(f(2)=3,f′(2)=−4,g(2)=1\), and \(g′(2)=6\).

    Solution

    Since \(j(x)=f(x)g(x),j′(x)=f′(x)g(x)+g′(x)f(x),\) and hence

    \[j′(2)=f′(2)g(2)+g′(2)f(2)=(−4)(1)+(6)(3)=14.\]

    Example \(\PageIndex{8}\): Applying the Product Rule to Binomials

    For \(j(x)=(x^2+2)(3x^3−5x),\) find \(j′(x)\) by applying the product rule. Check the result by first finding the product and then differentiating.

    Solution

    If we set \(f(x)=x^2+2\) and \(g(x)=3x^3−5x\), then \(f′(x)=2x\) and \(g′(x)=9x^2−5\). Thus,

    \(j′(x)=f′(x)g(x)+g′(x)f(x)=(2x)(3x^3−5x)+(9x^2−5)(x^2+2).\)

    Simplifying, we have

    \[j′(x)=15x^4+3x^2−10.\]

    To check, we see that \(j(x)=3x^5+x^3−10x\) and, consequently, \(j′(x)=15x^4+3x^2−10.\)

    Exercise \(\PageIndex{6}\)

    Use the product rule to obtain the derivative of \[j(x)=2x^5(4x^2+x).\]

    Hint

    Set \(f(x)=2x^5\) and \(g(x)=4x^2+x\) and use the preceding example as a guide.

    Answer

    \[j′(x)=10x^4(4x^2+x)+(8x+1)(2x^5)=56x^6+12x^5.\]

    The Quotient Rule

    Having developed and practiced the product rule, we now consider differentiating quotients of functions. As we see in the following theorem, the derivative of the quotient is not the quotient of the derivatives; rather, it is the derivative of the function in the numerator times the function in the denominator minus the derivative of the function in the denominator times the function in the numerator, all divided by the square of the function in the denominator. In order to better grasp why we cannot simply take the quotient of the derivatives, keep in mind that

    \[\dfrac{d}{dx}(x^2)=2x,not \dfrac{\dfrac{d}{dx}(x^3)}{\dfrac{d}{dx}(x)}=\dfrac{3x^2}{1}=3x^2.\]

    The Quotient Rule

    Let \(f(x)\) and \(g(x)\) be differentiable functions. Then

    \[\dfrac{d}{dx}(\dfrac{f(x)}{g(x)})=\dfrac{\dfrac{d}{dx}(f(x))⋅g(x)−\dfrac{d}{dx}(g(x))⋅f(x)}{(g(x))^2}.\]

    That is, if

    \[j(x)=\dfrac{f(x)}{g(x)}\]

    then

    \[j′(x)=\dfrac{f′(x)g(x)−g′(x)f(x)}{(g(x))^2}.\]

    The proof of the quotient rule is very similar to the proof of the product rule, so it is omitted here. Instead, we apply this new rule for finding derivatives in the next example.

    Example \(\PageIndex{9}\): Applying the Quotient Rule

    Use the quotient rule to find the derivative of \[k(x)=\dfrac{5x^2}{4x+3}.\]

    Solution

    Let \(f(x)=5x^2\) and \(g(x)=4x+3\). Thus, \(f′(x)=10x\) and \(g′(x)=4\). Substituting into the quotient rule, we have

    \[k′(x)=\dfrac{f′(x)g(x)−g′(x)f(x)}{(g(x))^2}=\dfrac{10x(4x+3)−4(5x^2)}{(4x+3)^2}.\]

    Simplifying, we obtain

    \[k′(x)=\dfrac{20x^2+30x}{(4x+3)^2}\]

    Exercise \(\PageIndex{7}\)

    Find the derivative of \(h(x)=\dfrac{3x+1}{4x−3}\).

    Answer

    Apply the quotient rule with \(f(x)=3x+1\) and \(g(x)=4x−3\).

    Answer

    \[k′(x)=−\dfrac{13}{(4x−3)^2}.\]

    It is now possible to use the quotient rule to extend the power rule to find derivatives of functions of the form \(x^k\) where \(k\) is a negative integer.

    Extended Power Rule

    If \(k\) is a negative integer, then

    \[\dfrac{d}{dx}(x^k)=kx^{k−1}.\]

    Proof

    If \(k\) is a negative integer, we may set \(n=−k\), so that n is a positive integer with \(k=−n\). Since for each positive integer \(n\),\(x^{−n}=\dfrac{1}{x^n}\), we may now apply the quotient rule by setting \(f(x)=1\) and \(g(x)=x^n\). In this case, \(f′(x)=0\) and \(g′(x)=nx^{n−1}\). Thus,

    \[\dfrac{d}{d}(x^{−n})=\dfrac{0(x^n)−1(nx^{n−1})}{(x^n)^2}.\]

    Simplifying, we see that

    \[\dfrac{d}{d}(x^{−n})\)\(=\dfrac{−nx^{n−1}}{x^2n}\)\(=−nx^{(n−1)−2n}\)\(=−nx^{−n−1}.\]

    Finally, observe that since \(k=−n\), by substituting we have

    \[\dfrac{d}{dx}(x^k)=kx^{k−1}.\]

    Example \(\PageIndex{10}\): Using the Extended Power Rule

    Find \(\dfrac{d}{dx}(x^{−4})\).

    Solution

    By applying the extended power rule with \(k=−4\), we obtain

    \[\dfrac{d}{dx}(x^{−4})=−4x^{−4−1}=−4x^{−5}.\]

    Example \(\PageIndex{11}\): Using the Extended Power Rule and the Constant Multiple Rule

    Use the extended power rule and the constant multiple rule to find \(f(x)=\dfrac{6}{x^2}\).

    Solution

    It may seem tempting to use the quotient rule to find this derivative, and it would certainly not be incorrect to do so. However, it is far easier to differentiate this function by first rewriting it as \(f(x)=6x^{−2}\).

    \(f′(x)=\dfrac{d}{dx}(\dfrac{6}{x^2})=\dfrac{d}{dx}(6x^{−2})\) Rewrite\(\dfrac{6}{x^2}\) as \(6x^{−2}\).

    \(=6\dfrac{d}{dx}(x^{−2})\) Apply the constant multiple rule.

    \(=6(−2x^{−3})\) Use the extended power rule to differentiate \(x^{−2}\).

    \(=−12x^{−3}\) Simplify.

    Exercise \(\PageIndex{8}\)

    Find the derivative of \(g(x)=\dfrac{1}{x^7}\) using the extended power rule.

    Hint

    \Rewrite \(g(x)=\dfrac{1}{x^7}=x^{−7}\). Use the extended power rule with \(k=−7\).

    Answer

    \(g′(x)=−7x^{−8}\).

    Combining Differentiation Rules

    As we have seen throughout the examples in this section, it seldom happens that we are called on to apply just one differentiation rule to find the derivative of a given function. At this point, by combining the differentiation rules, we may find the derivatives of any polynomial or rational function. Later on we will encounter more complex combinations of differentiation rules. A good rule of thumb to use when applying several rules is to apply the rules in reverse of the order in which we would evaluate the function.

    Example \(\PageIndex{12}\): Combining Differentiation Rules

    For \(k(x)=3h(x)+x^2g(x)\), find \(k′(x)\).

    Solution: Finding this derivative requires the sum rule, the constant multiple rule, and the product rule.

    \(k′(x)=\dfrac{d}{dx}(3h(x)+x^2g(x))=\dfrac{d}{dx}(3h(x))+\dfrac{d}{dx}(x^2g(x))\) Apply the sum rule.
    \(=3\dfrac{d}{dx}(h(x))+(\dfrac{d}{dx}(x^2)g(x)+\dfrac{d}{dx}(g(x))x^2)\) Apply the constant multiple rule todifferentiate \(3h(x)\) and the productrule to differentiate \(x^2g(x)\).
    \(=3h′(x)+2xg(x)+g′(x)x^2\)

    Example \(\PageIndex{13}\): Extending the Product Rule

    For \(k(x)=f(x)g(x)h(x)\), express \(k′(x)\) in terms of \(f(x),g(x),h(x)\), and their derivatives.

    Solution

    We can think of the function \(k(x)\) as the product of the function \(f(x)g(x)\) and the function \(h(x)\). That is, \(k(x)=(f(x)g(x))⋅h(x)\). Thus,

    \(k′(x)=\dfrac{d}{dx}(f(x)g(x))⋅h(x)+\dfrac{d}{dx}(h(x))⋅(f(x)g(x)).\) Apply the product rule to the productoff(x)g(x)andh(x).

    \(=(f′(x)g(x)+g′(x)f(x)h)(x)+h′(x)f(x)g(x)\) Apply the product rule to \(f(x)g(x)\)\)

    \(=f′(x)g(x)h(x)+f(x)g′(x)h(x)+f(x)g(x)h′(x).\) Simplify.

    Example \(\PageIndex{14}\): Combining the Quotient Rule and the Product Rule

    For \(h(x)=\dfrac{2x3k(x)}{3x+2}\), find \(h′(x)\).

    Solution

    This procedure is typical for finding the derivative of a rational function.

    \(h′(x)=\dfrac{\dfrac{d}{dx}(2x^3k(x))⋅(3x+2)−\dfrac{d}{dx}(3x+2)⋅(2x^3k(x))}{(3x+2)^2}\) Apply the quotient rule

    \(=\dfrac{(6x^2k(x)+k′(x)⋅2x^3)(3x+2)−3(2x^3k(x))}{(3x+2)^2}\) Apply the product rule to find \(\dfrac{d}{dx}(2x^3k(x))\).Use \(\dfrac{d}{dx}(3x+2)=3\).

    \(=\dfrac{−6x^3k(x)+18x^3k(x)+12x^2k(x)+6x^4k′(x)+4x^3k′(x)}{(3x+2)^2}\) Simplify

    Exercise \(\PageIndex{9}\)

    Find \(\dfrac{d}{dx}(3f(x)−2g(x)).\)

    Hint

    Apply the difference rule and the constant multiple rule.

    Answer

    \(3f′(x)−2g′(x).\)

    Example \(\PageIndex{15}\): Determining Where a Function Has a Horizontal Tangent

    Determine the values of \(x\) for which \(f(x)=x^3−7x^2+8x+1\) has a horizontal tangent line.

    Solution

    To find the values of \(x\) for which \(f(x)\) has a horizontal tangent line, we must solve \(f′(x)=0\).

    Since

    \[f′(x)=3x^2−14x+8=(3x−2)(x−4),\]

    we must solve \((3x−2)(x−4)=0\). Thus we see that the function has horizontal tangent lines at \(x=\dfrac{2}{3}\) and \(x=4\) as shown in the following graph.

    CNX_Calc_Figure_03_03_002.jpeg

    Figure \(\PageIndex{2}\): This function has horizontal tangent lines at \(x = 2/3\) and \(x = 4\).

    Example \(\PageIndex{16}\): Finding a Velocity

    The position of an object on a coordinate axis at time \(t\) is given by \(s(t)=\dfrac{t}{t^2+1}.\) What is the initial velocity of the object?

    Solution

    Since the initial velocity is \(v(0)=s′(0),\) begin by finding \(s′(t)\) by applying the quotient rule:

    \(s′(t)=\dfrac{1(t2+1)−2t(t)}{(t^2+1)^2}=\dfrac{1−t^2}{(^t2+1)^2}\).

    After evaluating, we see that \(v(0)=1.\)

    Exercise \(\PageIndex{10}\)

    Find the values of x for which the line tangent to the graph of \(f(x)=4x^2−3x+2\) has a tangent line parallel to the line \(y=2x+3.\)

    Hint

    Solve \(f′(x)=2\).

    Answer

    \(\dfrac{5}{8}\)

    Formula One Grandstands

    Formula One car races can be very exciting to watch and attract a lot of spectators. Formula One track designers have to ensure sufficient grandstand space is available around the track to accommodate these viewers. However, car racing can be dangerous, and safety considerations are paramount. The grandstands must be placed where spectators will not be in danger should a driver lose control of a car (Figure).

    CNX_Calc_Figure_03_03_003.jpeg

    Figure \(\PageIndex{3}\): The grandstand next to a straightaway of the Circuit de Barcelona-Catalunya race track, located where the spectators are not in danger.

    Safety is especially a concern on turns. If a driver does not slow down enough before entering the turn, the car may slide off the racetrack. Normally, this just results in a wider turn, which slows the driver down. But if the driver loses control completely, the car may fly off the track entirely, on a path tangent to the curve of the racetrack.

    Suppose you are designing a new Formula One track. One section of the track can be modeled by the function \(f(x)=x^3+3x+x\) (Figure). The current plan calls for grandstands to be built along the first straightaway and around a portion of the first curve. The plans call for the front corner of the grandstand to be located at the point (\(−1.9,2.8\)). We want to determine whether this location puts the spectators in danger if a driver loses control of the car.

    CNX_Calc_Figure_03_03_004.jpeg

    Figure \(\PageIndex{4}\): (a) One section of the racetrack can be modeled by the function \(f(x)=x^3+3x+x\). (b) The front corner of the grandstand is located at (\(−1.9,2.8\)).

    1. Physicists have determined that drivers are most likely to lose control of their cars as they are coming into a turn, at the point where the slope of the tangent line is 1. Find the \((x,y)\) coordinates of this point near the turn.
    2. Find the equation of the tangent line to the curve at this point.
    3. To determine whether the spectators are in danger in this scenario, find the x-coordinate of the point where the tangent line crosses the line \(y=2.8\). Is this point safely to the right of the grandstand? Or are the spectators in danger?
    4. What if a driver loses control earlier than the physicists project? Suppose a driver loses control at the point (\(−2.5,0.625\)). What is the slope of the tangent line at this point?
    5. If a driver loses control as described in part 4, are the spectators safe?
    6. Should you proceed with the current design for the grandstand, or should the grandstands be moved?

    Key Concepts

    • The derivative of a product of two functions is the derivative of the first function times the second function plus the derivative of the second function times the first function.
    • The derivative of the quotient of two functions is the derivative of the first function times the second function minus the derivative of the second function times the first function, all divided by the square of the second function.
    • We used the limit definition of the derivative to develop formulas that allow us to find derivatives without resorting to the definition of the derivative. These formulas can be used singly or in combination with each other.

    Glossary

    product rule
    the derivative of a product of two functions is the derivative of the first function times the second function plus the derivative of the second function times the first function: \(\dfrac{d}{dx}(f(x)g(x))=f′(x)g(x)+g′(x)f(x)\)
    quotient rule
    the derivative of the quotient of two functions is the derivative of the first function times the second function minus the derivative of the second function times the first function, all divided by the square of the second function: \(\dfrac{d}{dx}(\dfrac{f(x)}{g(x))}=\dfrac{f′(x)g(x)−g′(x)f(x)}{(g(x))^2}\)

    Contributors

    • Gilbert Strang (MIT) and Edwin “Jed” Herman (Harvey Mudd) with many contributing authors. This content by OpenStax is licensed with a CC-BY-SA-NC 4.0 license. Download for free at http://cnx.org.


    3.4: Product is shared under a CC BY-NC-SA license and was authored, remixed, and/or curated by LibreTexts.