Chain rule

From testwiki
Revision as of 04:35, 22 January 2025 by imported>Hellacioussatyr (Composites of more than two functions)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Short description Template:About {{#invoke:sidebar|collapsible | class = plainlist | titlestyle = padding-bottom:0.25em; | pretitle = Part of a series of articles about | title = Calculus | image = abf(t)dt=f(b)f(a) | listtitlestyle = text-align:center; | liststyle = border-top:1px solid #aaa;padding-top:0.15em;border-bottom:1px solid #aaa; | expanded = differential | abovestyle = padding:0.15em 0.25em 0.3em;font-weight:normal; | above =

Template:Startflatlist

Template:EndflatlistTemplate:Startflatlist

Template:Endflatlist

| list2name = differential | list2titlestyle = display:block;margin-top:0.65em; | list2title = Template:Bigger | list2 ={{#invoke:sidebar|sidebar|child=yes

 |contentclass=hlist
 | heading1 = Definitions
 | content1 =
 | heading2 = Concepts
 | content2 =
 | heading3 = Rules and identities
 | content3 =
}}

| list3name = integral | list3title = Template:Bigger | list3 ={{#invoke:sidebar|sidebar|child=yes

 |contentclass=hlist
 | content1 =

| heading2 = Definitions

 | content2 =
 | heading3 = Integration by
 | content3 =
}}

| list4name = series | list4title = Template:Bigger | list4 ={{#invoke:sidebar|sidebar|child=yes

 |contentclass=hlist
 | content1 =
 | heading2 = Convergence tests
 | content2 =
}}

| list5name = vector | list5title = Template:Bigger | list5 ={{#invoke:sidebar|sidebar|child=yes

 |contentclass=hlist
 | content1 =
 | heading2 = Theorems
 | content2 =
}}

| list6name = multivariable | list6title = Template:Bigger | list6 ={{#invoke:sidebar|sidebar|child=yes

 |contentclass=hlist
 | heading1 = Formalisms
 | content1 =
 | heading2 = Definitions
 | content2 =
}}

| list7name = advanced | list7title = Template:Bigger | list7 ={{#invoke:sidebar|sidebar|child=yes

 |contentclass=hlist
 | content1 =
}}

| list8name = specialized | list8title = Template:Bigger | list8 =

| list9name = miscellanea | list9title = Template:Bigger | list9 =

}}

In calculus, the chain rule is a formula that expresses the derivative of the composition of two differentiable functions Template:Mvar and Template:Mvar in terms of the derivatives of Template:Mvar and Template:Mvar. More precisely, if h=fg is the function such that h(x)=f(g(x)) for every Template:Mvar, then the chain rule is, in Lagrange's notation, h(x)=f(g(x))g(x). or, equivalently, h=(fg)=(fg)g.

The chain rule may also be expressed in Leibniz's notation. If a variable Template:Mvar depends on the variable Template:Mvar, which itself depends on the variable Template:Mvar (that is, Template:Mvar and Template:Mvar are dependent variables), then Template:Mvar depends on Template:Mvar as well, via the intermediate variable Template:Mvar. In this case, the chain rule is expressed as dzdx=dzdydydx, and dzdx|x=dzdy|y(x)dydx|x, for indicating at which points the derivatives have to be evaluated.

In integration, the counterpart to the chain rule is the substitution rule.

Intuitive explanation

Intuitively, the chain rule states that knowing the instantaneous rate of change of Template:Math relative to Template:Math and that of Template:Math relative to Template:Math allows one to calculate the instantaneous rate of change of Template:Math relative to Template:Math as the product of the two rates of change.

As put by George F. Simmons: "If a car travels twice as fast as a bicycle and the bicycle is four times as fast as a walking man, then the car travels 2 × 4 = 8 times as fast as the man."[1]

The relationship between this example and the chain rule is as follows. Let Template:Mvar, Template:Mvar and Template:Mvar be the (variable) positions of the car, the bicycle, and the walking man, respectively. The rate of change of relative positions of the car and the bicycle is dzdy=2. Similarly, dydx=4. So, the rate of change of the relative positions of the car and the walking man is dzdx=dzdydydx=24=8.

The rate of change of positions is the ratio of the speeds, and the speed is the derivative of the position with respect to the time; that is, dzdx=dzdtdxdt, or, equivalently, dzdt=dzdxdxdt, which is also an application of the chain rule.

History

The chain rule seems to have first been used by Gottfried Wilhelm Leibniz. He used it to calculate the derivative of a+bz+cz2 as the composite of the square root function and the function a+bz+cz2. He first mentioned it in a 1676 memoir (with a sign error in the calculation).[2] The common notation of the chain rule is due to Leibniz.[3] Guillaume de l'Hôpital used the chain rule implicitly in his Analyse des infiniment petits. The chain rule does not appear in any of Leonhard Euler's analysis books, even though they were written over a hundred years after Leibniz's discovery.Template:Citation needed. It is believed that the first "modern" version of the chain rule appears in Lagrange's 1797 Théorie des fonctions analytiques; it also appears in Cauchy's 1823 Résumé des Leçons données a L’École Royale Polytechnique sur Le Calcul Infinitesimal.[3]

Statement

The simplest form of the chain rule is for real-valued functions of one real variable. It states that if Template:Mvar is a function that is differentiable at a point Template:Mvar (i.e. the derivative Template:Math exists) and Template:Mvar is a function that is differentiable at Template:Math, then the composite function fg is differentiable at Template:Mvar, and the derivative is[4] (fg)(c)=f(g(c))g(c). The rule is sometimes abbreviated as (fg)=(fg)g.

If Template:Math and Template:Math, then this abbreviated form is written in Leibniz notation as: dydx=dydududx.

The points where the derivatives are evaluated may also be stated explicitly: dydx|x=c=dydu|u=g(c)dudx|x=c.

Carrying the same reasoning further, given Template:Mvar functions f1,,fn with the composite function f1(f2(fn1fn)), if each function fi is differentiable at its immediate input, then the composite function is also differentiable by the repeated application of Chain Rule, where the derivative is (in Leibniz's notation): df1dx=df1df2df2df3dfndx.

Applications

Composites of more than two functions

The chain rule can be applied to composites of more than two functions. To take the derivative of a composite of more than two functions, notice that the composite of Template:Mvar, Template:Mvar, and Template:Mvar (in that order) is the composite of Template:Mvar with Template:Math. The chain rule states that to compute the derivative of Template:Math, it is sufficient to compute the derivative of Template:Mvar and the derivative of Template:Math. The derivative of Template:Mvar can be calculated directly, and the derivative of Template:Math can be calculated by applying the chain rule again.Template:Citation needed

For concreteness, consider the function y=esin(x2). This can be decomposed as the composite of three functions: y=f(u)=eu,u=g(v)=sinv,v=h(x)=x2. So that y=f(g(h(x))).

Their derivatives are: dydu=f(u)=eu,dudv=g(v)=cosv,dvdx=h(x)=2x.

The chain rule states that the derivative of their composite at the point Template:Math is: (fgh)(a)=f((gh)(a))(gh)(a)=f((gh)(a))g(h(a))h(a)=(fgh)(a)(gh)(a)h(a).

In Leibniz's notation, this is: dydx=dydu|u=g(h(a))dudv|v=h(a)dvdx|x=a, or for short, dydx=dydududvdvdx. The derivative function is therefore: dydx=esin(x2)cos(x2)2x.

Another way of computing this derivative is to view the composite function Template:Math as the composite of Template:Math and h. Applying the chain rule in this manner would yield: (fgh)(a)=(fg)(h(a))h(a)=f(g(h(a)))g(h(a))h(a).

This is the same as what was computed above. This should be expected because Template:Math.

Sometimes, it is necessary to differentiate an arbitrarily long composition of the form f1f2fn1fn. In this case, define fa..b=fafa+1fb1fb where fa..a=fa and fa..b(x)=x when b<a. Then the chain rule takes the form Df1..n=(Df1f2..n)(Df2f3..n)(Dfn1fn..n)Dfn=k=1n[Dfkf(k+1)..n] or, in the Lagrange notation, f1..n(x)=f1(f2..n(x))f2(f3..n(x))fn1(fn..n(x))fn(x)=k=1nfk(f(k+1..n)(x))

Quotient rule

Template:See also The chain rule can be used to derive some well-known differentiation rules. For example, the quotient rule is a consequence of the chain rule and the product rule. To see this, write the function Template:Math as the product Template:Math. First apply the product rule: ddx(f(x)g(x))=ddx(f(x)1g(x))=f(x)1g(x)+f(x)ddx(1g(x)).

To compute the derivative of Template:Math, notice that it is the composite of Template:Mvar with the reciprocal function, that is, the function that sends Template:Mvar to Template:Math. The derivative of the reciprocal function is 1/x2. By applying the chain rule, the last expression becomes: f(x)1g(x)+f(x)(1g(x)2g(x))=f(x)g(x)f(x)g(x)g(x)2, which is the usual formula for the quotient rule.

Derivatives of inverse functions

Template:Main Suppose that Template:Math has an inverse function. Call its inverse function Template:Mvar so that we have Template:Math. There is a formula for the derivative of Template:Mvar in terms of the derivative of Template:Mvar. To see this, note that Template:Mvar and Template:Mvar satisfy the formula f(g(x))=x.

And because the functions f(g(x)) and Template:Mvar are equal, their derivatives must be equal. The derivative of Template:Mvar is the constant function with value 1, and the derivative of f(g(x)) is determined by the chain rule. Therefore, we have that: f(g(x))g(x)=1.

To express Template:Mvar as a function of an independent variable Template:Mvar, we substitute f(y) for Template:Mvar wherever it appears. Then we can solve for Template:Mvar. f(g(f(y)))g(f(y))=1f(y)g(f(y))=1f(y)=1g(f(y)).

For example, consider the function Template:Math. It has an inverse Template:Math. Because Template:Math, the above formula says that ddylny=1elny=1y.

This formula is true whenever Template:Mvar is differentiable and its inverse Template:Mvar is also differentiable. This formula can fail when one of these conditions is not true. For example, consider Template:Math. Its inverse is Template:Math, which is not differentiable at zero. If we attempt to use the above formula to compute the derivative of Template:Mvar at zero, then we must evaluate Template:Math. Since Template:Math and Template:Math, we must evaluate 1/0, which is undefined. Therefore, the formula fails in this case. This is not surprising because Template:Mvar is not differentiable at zero.

Back propagation

The chain rule forms the basis of the back propagation algorithm, which is used in gradient descent of neural networks in deep learning (artificial intelligence).[5]

Higher derivatives

Faà di Bruno's formula generalizes the chain rule to higher derivatives. Assuming that Template:Math and Template:Math, then the first few derivatives are: dydx=dydududxd2ydx2=d2ydu2(dudx)2+dydud2udx2d3ydx3=d3ydu3(dudx)3+3d2ydu2dudxd2udx2+dydud3udx3d4ydx4=d4ydu4(dudx)4+6d3ydu3(dudx)2d2udx2+d2ydu2(4dudxd3udx3+3(d2udx2)2)+dydud4udx4.

Proofs

First proof

One proof of the chain rule begins by defining the derivative of the composite function Template:Math, where we take the limit of the difference quotient for Template:Math as Template:Mvar approaches Template:Mvar: (fg)(a)=limxaf(g(x))f(g(a))xa.

Assume for the moment that g(x) does not equal g(a) for any x near a. Then the previous expression is equal to the product of two factors: limxaf(g(x))f(g(a))g(x)g(a)g(x)g(a)xa.

If g oscillates near Template:Mvar, then it might happen that no matter how close one gets to Template:Mvar, there is always an even closer Template:Mvar such that Template:Math. For example, this happens near Template:Math for the continuous function Template:Mvar defined by Template:Math for Template:Math and Template:Math otherwise. Whenever this happens, the above expression is undefined because it involves division by zero. To work around this, introduce a function Q as follows: Q(y)={f(y)f(g(a))yg(a),yg(a),f(g(a)),y=g(a). We will show that the difference quotient for Template:Math is always equal to: Q(g(x))g(x)g(a)xa.

Whenever Template:Math is not equal to Template:Math, this is clear because the factors of Template:Math cancel. When Template:Math equals Template:Math, then the difference quotient for Template:Math is zero because Template:Math equals Template:Math, and the above product is zero because it equals Template:Math times zero. So the above product is always equal to the difference quotient, and to show that the derivative of Template:Math at Template:Math exists and to determine its value, we need only show that the limit as Template:Math goes to Template:Math of the above product exists and determine its value.

To do this, recall that the limit of a product exists if the limits of its factors exist. When this happens, the limit of the product of these two factors will equal the product of the limits of the factors. The two factors are Template:Math and Template:Math. The latter is the difference quotient for Template:Mvar at Template:Mvar, and because Template:Mvar is differentiable at Template:Mvar by assumption, its limit as Template:Mvar tends to Template:Mvar exists and equals Template:Math.

As for Template:Math, notice that Template:Math is defined wherever Template:Mvar is. Furthermore, Template:Mvar is differentiable at Template:Math by assumption, so Template:Math is continuous at Template:Math, by definition of the derivative. The function Template:Mvar is continuous at Template:Mvar because it is differentiable at Template:Mvar, and therefore Template:Math is continuous at Template:Mvar. So its limit as Template:Mvar goes to Template:Mvar exists and equals Template:Math, which is Template:Math.

This shows that the limits of both factors exist and that they equal Template:Math and Template:Math, respectively. Therefore, the derivative of Template:Math at a exists and equals Template:MathTemplate:Math.

Second proof

Another way of proving the chain rule is to measure the error in the linear approximation determined by the derivative. This proof has the advantage that it generalizes to several variables. It relies on the following equivalent definition of differentiability at a point: A function g is differentiable at a if there exists a real number g′(a) and a function ε(h) that tends to zero as h tends to zero, and furthermore g(a+h)g(a)=g(a)h+ε(h)h. Here the left-hand side represents the true difference between the value of g at a and at Template:Math, whereas the right-hand side represents the approximation determined by the derivative plus an error term.

In the situation of the chain rule, such a function ε exists because g is assumed to be differentiable at a. Again by assumption, a similar function also exists for f at g(a). Calling this function η, we have f(g(a)+k)f(g(a))=f(g(a))k+η(k)k. The above definition imposes no constraints on η(0), even though it is assumed that η(k) tends to zero as k tends to zero. If we set Template:Math, then η is continuous at 0.

Proving the theorem requires studying the difference Template:Math as h tends to zero. The first step is to substitute for Template:Math using the definition of differentiability of g at a: f(g(a+h))f(g(a))=f(g(a)+g(a)h+ε(h)h)f(g(a)). The next step is to use the definition of differentiability of f at g(a). This requires a term of the form Template:Math for some k. In the above equation, the correct k varies with h. Set Template:Math and the right hand side becomes Template:Math. Applying the definition of the derivative gives: f(g(a)+kh)f(g(a))=f(g(a))kh+η(kh)kh. To study the behavior of this expression as h tends to zero, expand kh. After regrouping the terms, the right-hand side becomes: f(g(a))g(a)h+[f(g(a))ε(h)+η(kh)g(a)+η(kh)ε(h)]h. Because ε(h) and η(kh) tend to zero as h tends to zero, the first two bracketed terms tend to zero as h tends to zero. Applying the same theorem on products of limits as in the first proof, the third bracketed term also tends zero. Because the above expression is equal to the difference Template:Math, by the definition of the derivative Template:Math is differentiable at a and its derivative is Template:Math

The role of Q in the first proof is played by η in this proof. They are related by the equation: Q(y)=f(g(a))+η(yg(a)). The need to define Q at g(a) is analogous to the need to define η at zero.

Third proof

Constantin Carathéodory's alternative definition of the differentiability of a function can be used to give an elegant proof of the chain rule.[6]

Under this definition, a function Template:Mvar is differentiable at a point Template:Mvar if and only if there is a function Template:Mvar, continuous at Template:Mvar and such that Template:Math. There is at most one such function, and if Template:Mvar is differentiable at Template:Mvar then Template:Math.

Given the assumptions of the chain rule and the fact that differentiable functions and compositions of continuous functions are continuous, we have that there exist functions Template:Mvar, continuous at Template:Math, and Template:Mvar, continuous at Template:Mvar, and such that, f(g(x))f(g(a))=q(g(x))(g(x)g(a)) and g(x)g(a)=r(x)(xa). Therefore, f(g(x))f(g(a))=q(g(x))r(x)(xa), but the function given by Template:Math is continuous at Template:Mvar, and we get, for this Template:Mvar (f(g(a)))=q(g(a))r(a)=f(g(a))g(a). A similar approach works for continuously differentiable (vector-)functions of many variables. This method of factoring also allows a unified approach to stronger forms of differentiability, when the derivative is required to be Lipschitz continuous, Hölder continuous, etc. Differentiation itself can be viewed as the polynomial remainder theorem (the little Bézout theorem, or factor theorem), generalized to an appropriate class of functions.Template:Citation needed

Proof via infinitesimals

Template:See also If y=f(x) and x=g(t) then choosing infinitesimal Δt=0 we compute the corresponding Δx=g(t+Δt)g(t) and then the corresponding Δy=f(x+Δx)f(x), so that ΔyΔt=ΔyΔxΔxΔt and applying the standard part we obtain dydt=dydxdxdt which is the chain rule.

Multivariable case

The full generalization of the chain rule to multi-variable functions (such as f:mn) is rather technical. However, it is simpler to write in the case of functions of the form f(g1(x),,gk(x)), where f:k, and gi: for each i=1,2,,k.

As this case occurs often in the study of functions of a single variable, it is worth describing it separately.

Case of scalar-valued functions with multiple inputs

Let f:k, and gi: for each i=1,2,,k. To write the chain rule for the composition of functions xf(g1(x),,gk(x)), one needs the partial derivatives of Template:Mvar with respect to its Template:Mvar arguments. The usual notations for partial derivatives involve names for the arguments of the function. As these arguments are not named in the above formula, it is simpler and clearer to use D-Notation, and to denote by Dif the partial derivative of Template:Mvar with respect to its Template:Mvarth argument, and by Dif(z) the value of this derivative at Template:Mvar.

With this notation, the chain rule is ddxf(g1(x),,gk(x))=i=1k(ddxgi(x))Dif(g1(x),,gk(x)).

Example: arithmetic operations

If the function Template:Mvar is addition, that is, if f(u,v)=u+v, then D1f=fu=1 and D2f=fv=1. Thus, the chain rule gives ddx(g(x)+h(x))=(ddxg(x))D1f+(ddxh(x))D2f=ddxg(x)+ddxh(x).

For multiplication f(u,v)=uv, the partials are D1f=v and D2f=u. Thus, ddx(g(x)h(x))=h(x)ddxg(x)+g(x)ddxh(x).

The case of exponentiation f(u,v)=uv is slightly more complicated, as D1f=vuv1, and, as uv=evlnu, D2f=uvlnu. It follows that ddx(g(x)h(x))=h(x)g(x)h(x)1ddxg(x)+g(x)h(x)lng(x)ddxh(x).

General rule: Vector-valued functions with multiple inputs

The simplest way for writing the chain rule in the general case is to use the total derivative, which is a linear transformation that captures all directional derivatives in a single formula. Consider differentiable functions Template:Math and Template:Math, and a point Template:Math in Template:Math. Let Template:Math denote the total derivative of Template:Math at Template:Math and Template:Math denote the total derivative of Template:Math at Template:Math. These two derivatives are linear transformations Template:Math and Template:Math, respectively, so they can be composed. The chain rule for total derivatives is that their composite is the total derivative of Template:Math at Template:Math: D𝐚(fg)=Dg(𝐚)fD𝐚g, or for short, D(fg)=DfDg. The higher-dimensional chain rule can be proved using a technique similar to the second proof given above.[7]

Because the total derivative is a linear transformation, the functions appearing in the formula can be rewritten as matrices. The matrix corresponding to a total derivative is called a Jacobian matrix, and the composite of two derivatives corresponds to the product of their Jacobian matrices. From this perspective the chain rule therefore says: Jfg(𝐚)=Jf(g(𝐚))Jg(𝐚), or for short, Jfg=(Jfg)Jg.

That is, the Jacobian of a composite function is the product of the Jacobians of the composed functions (evaluated at the appropriate points).

The higher-dimensional chain rule is a generalization of the one-dimensional chain rule. If Template:Mvar, Template:Mvar, and Template:Mvar are 1, so that Template:Math and Template:Math, then the Jacobian matrices of Template:Math and Template:Math are Template:Math. Specifically, they are: Jg(a)=(g(a)),Jf(g(a))=(f(g(a))). The Jacobian of Template:Math is the product of these Template:Math matrices, so it is Template:Math, as expected from the one-dimensional chain rule. In the language of linear transformations, Template:Math is the function which scales a vector by a factor of Template:Math and Template:Math is the function which scales a vector by a factor of Template:Math. The chain rule says that the composite of these two linear transformations is the linear transformation Template:Math, and therefore it is the function that scales a vector by Template:Math.

Another way of writing the chain rule is used when f and g are expressed in terms of their components as Template:Math and Template:Math. In this case, the above rule for Jacobian matrices is usually written as: (y1,,yk)(x1,,xn)=(y1,,yk)(u1,,um)(u1,,um)(x1,,xn).

The chain rule for total derivatives implies a chain rule for partial derivatives. Recall that when the total derivative exists, the partial derivative in the Template:Mvar-th coordinate direction is found by multiplying the Jacobian matrix by the Template:Mvar-th basis vector. By doing this to the formula above, we find: (y1,,yk)xi=(y1,,yk)(u1,,um)(u1,,um)xi. Since the entries of the Jacobian matrix are partial derivatives, we may simplify the above formula to get: (y1,,yk)xi==1m(y1,,yk)uuxi. More conceptually, this rule expresses the fact that a change in the Template:Math direction may change all of Template:Math through Template:Math, and any of these changes may affect Template:Math.

In the special case where Template:Math, so that Template:Math is a real-valued function, then this formula simplifies even further: yxi==1myuuxi. This can be rewritten as a dot product. Recalling that Template:Math, the partial derivative Template:Math is also a vector, and the chain rule says that: yxi=y𝐮xi.

Example

Given Template:Math where Template:Math and Template:Math, determine the value of Template:Math and Template:Math using the chain rule.Template:Citation needed ur=uxxr+uyyr=(2x)(sin(t))+(2)(0)=2rsin2(t), and ut=uxxt+uyyt=(2x)(rcos(t))+(2)(2sin(t)cos(t))=(2rsin(t))(rcos(t))+4sin(t)cos(t)=2(r2+2)sin(t)cos(t)=(r2+2)sin(2t).

Higher derivatives of multivariable functions

Template:Main Faà di Bruno's formula for higher-order derivatives of single-variable functions generalizes to the multivariable case. If Template:Math is a function of Template:Math as above, then the second derivative of Template:Math is: 2yxixj=k(yuk2ukxixj)+k,(2yukuukxiuxj).

Further generalizations

All extensions of calculus have a chain rule. In most of these, the formula remains the same, though the meaning of that formula may be vastly different.

One generalization is to manifolds. In this situation, the chain rule represents the fact that the derivative of Template:Math is the composite of the derivative of Template:Math and the derivative of Template:Math. This theorem is an immediate consequence of the higher dimensional chain rule given above, and it has exactly the same formula.

The chain rule is also valid for Fréchet derivatives in Banach spaces. The same formula holds as before.[8] This case and the previous one admit a simultaneous generalization to Banach manifolds.

In differential algebra, the derivative is interpreted as a morphism of modules of Kähler differentials. A ring homomorphism of commutative rings Template:Math determines a morphism of Kähler differentials Template:Math which sends an element Template:Math to Template:Math, the exterior differential of Template:Math. The formula Template:Math holds in this context as well.

The common feature of these examples is that they are expressions of the idea that the derivative is part of a functor. A functor is an operation on spaces and functions between them. It associates to each space a new space and to each function between two spaces a new function between the corresponding new spaces. In each of the above cases, the functor sends each space to its tangent bundle and it sends each function to its derivative. For example, in the manifold case, the derivative sends a Template:Math-manifold to a Template:Math-manifold (its tangent bundle) and a Template:Math-function to its total derivative. There is one requirement for this to be a functor, namely that the derivative of a composite must be the composite of the derivatives. This is exactly the formula Template:Math.

There are also chain rules in stochastic calculus. One of these, Itō's lemma, expresses the composite of an Itō process (or more generally a semimartingale) dXt with a twice-differentiable function f. In Itō's lemma, the derivative of the composite function depends not only on dXt and the derivative of f but also on the second derivative of f. The dependence on the second derivative is a consequence of the non-zero quadratic variation of the stochastic process, which broadly speaking means that the process can move up and down in a very rough way. This variant of the chain rule is not an example of a functor because the two functions being composed are of different types.

See also

References

Template:Reflist

Template:Calculus topics