Limit Rules for Calculus1 - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Education : Student Packages : Calculus 1 : Single Stepping : Student/Calculus1/LimitRules

Limit Rules for Calculus1






For a general introduction to the Calculus1 subpackage of the Student package, see Student[Calculus1].


For an introduction to the step-by-step (or single-step) functionality of the Calculus1 package, see SingleStepOverview.


The following table lists the built-in rules for limit computation that do not take parameters.  These rules can be passed as the index to Rule or as a rule argument to Understand.  These rules apply to both one- and two-sided limits.


Alternate Names













infinite limits


















limxafxgx=limxafxlimxagx, for limxagx0





The name of any univariate function can also be used as a rule argument to the Rule command.  The name of any univariate function recognized by Maple, for example, sin, can be passed as a rule argument to the Understand command (where recognized means that it is of type mathfunc).


The dividebyzero rule is used to evaluate limits of functions at a vertical asymptote, where either the limit is one-sided or the behavior of the function on both sides of the limit point is the same, that is, the function tends to either +infinity or -infinity on both sides of the limit point. Examples where this rule applies are Limit(1/x, x=0, left) = -infinity and Limit(2/(x-3)^2, x=3) = infinity. This rule would not apply to Limit(3/(x+1), x=-1).


Note: For more information on how Maple applies rules when one or more component limit is infinite, see Limit Rules and Infinity.


Note: The sum, difference, product, quotient, and dividebyzero rules do not split an indeterminate form.  For example,

Rule[`*`](Limit(x*cos(x)*ln(x), x=0, right));



See the description of the lhopital rule below.


There are 3 additional rules for limit computation that require parameters: lhopital, rewrite, and change.  These rules can be used as the index to a call to Rule but cannot be given as a rule argument to Understand.


The lhopital rule implements l'Hopital's rule: If fxgx is an indeterminate form at x=a then limxafxgx=limxaf'xg'x (if the latter limit exists).  The rule takes the form:

     [lhopital, fx]


That is, the parameter is the part of the expression specifying the numerator for the application of the rule.


The rewrite rule changes the form of the expression in the limit, when the limit variable is not changed.  This rule has the general form:

     [rewrite, f1x=g1x, f2x=g2x, ...]


The effect of applying the rewrite rule is to perform each substitution listed as a parameter to the rule, where occurrences of the left-hand side of each substitution are replaced by the corresponding right-hand side.


Note: The Rule routine does not attempt to validate the rewrite rules.


The change rule changes the variable with respect to which the limit is computed.  It takes the following forms.

     [change, Fx,u=Gx,u, u, siderels]

     [change, Fx,u=Gx,u, u=Hx, siderels]


The first parameter (Fx,u=Gx,u) defines the relationship between the old variable x and the new variable u.  This most commonly takes the form x=Gu or u=Fx, but can be much more general, provided it can be solved for x.


Note: The name of the new variable (u in the preceding paragraph) must be previously unused in the problem to which you are applying this change of variables rule.  If it is not new, the Rule routine automatically chooses a different name, and produces a corresponding userinfo (level 1) message.  The only exception to this uniqueness requirement occurs if the second parameter to the change rule is x=u, that is, the only effect of the change rule is to rename the limit variable.  In this situation, if the new name is not new to the problem, a userinfo warning message is produced, but the renaming is performed. If it was not your intention to reuse a variable in the problem, you can invoke the Undo command to undo this change rule.


The siderels parameter is always optional, and rarely needed; if specified, it must be the last parameter in the rule.  It can be used to provide some simplification rules (side relations) to be applied in the case that the Maple (automatic) simplification rules do not produce the desired form.  This parameter must be in the following form.



That is, it is a set of substitutions in which the old variable x cannot appear on the right-hand side, and in which only one of the variables x or u can appear on the left-hand side.  Substitutions that depend on the old variable x are applied before the main change of variables substitution, while substitutions that do not depend on x are applied after.


The remaining parameter (u or u=Hx) is also optional. It can be the new variable name (u) or can provide the formula for the inverse change of variables substitution (u=Hx).  If the change of variables formula includes parameters it may be necessary to use one of these two forms to clearly specify the new variable.


Note: If you provide the parameter u=Hx giving the inverse change of variables substitution, the Rule command does not attempt to verify its correctness.



infolevel[Student[Calculus1]] := 1:

Rule[`c*`](Limit(3*sin(x), x=1));

Creating problem #1



Rule[lhopital, ln(x)](Limit(x*ln(x), x=0, right));

Creating problem #2



Rule[change, u=1/x](Limit(x*sin(1/x), x=infinity, left));

Creating problem #3

Applying substitution x = 1/u, u = 1/x



Rule[rewrite, sin(2*x) = 2*sin(x)*cos(x)](Limit(sin(2*x)*exp(3*x), x=a));

Creating problem #4



If a rule does not apply, the problem is unchanged.

Rule[`*`](Limit(cos(exp(x)), x=1));

Creating problem #5

Rule [product] does not apply



See Also



Limit Rules and Infinity