Making Substitutions
Go to Maple Portal Maple Portal for Engineers Maple Portal for Math Educators

Simple Substitutions


Substituting a value for a variable, , in an expression containing is the same as evaluating at the point . This is the terminology Maple uses to describe the problem. Knowing this terminology will make it much easier to remember the appropriate menus and commands (or at least, recognize them when you see them).
The following explains both interactive and command methods for evaluating an expression at a point.

Interactive Methods



Palettes


The Expression palette provides an "evaluate at a point" template, . Fill in the values of the template to evaluate your expression at a point.
For example, =
Tip: Use the [Tab] key to move through the placeholders in the template.


Context Menu


Rightclick on the expression you wish to evaluate, and select Evaluate at a Point. A dialog is displayed which allows you to set variables for some or all of the variables in the expression.
For example, setting and gives:
Setting and leaving without a value gives:



Commands


The recommended command for substituting a value for a variable in an expression is the eval command.
 (1) 
 (2) 
To substitute multiple values, put them in a list.
 (3) 
 (4) 

Comparing eval and subs


Another command for making simple substitutions is the subs command. It is important to note that after making a substitution, the subs command does not evaluate the results. If the developer neglects to do the evaluation afterwards, this can result in unexpected behavior (and long debugging sessions!).
Using subs:
 (5) 
and the same question using eval:
 (6) 
Notice that the calling sequences for eval and subs are different: eval expects its first argument to be the expression and its second argument to be the substitution, while subs command takes the substitution expression as its first argument and the expression as its second argument.
The eval command knows how to correctly evaluate piecewise expressions, while subs may make substitutions that do not make sense mathematically. In the following example subs gives a division by zero error, but eval correctly evaluates the piecewise definition at .
 (7) 
 (8) 
For these reasons, the eval command is often preferable.
One feature of subs is that it allows a chain of substitutions. If you supply subs with a number of equations, the substitutions are applied sequentially beginning with the leftmost equation:
 (9) 
eval does not provide that ability with a single call, so to obtain a similar chain of evaluations from eval, you must use nested calls:
 (10) 
For more examples comparing eval and subs, see eval.




Substituting for Combinations of Variables: algsubs


In the examples above, the substitutions are for variables as simple, standalone quantities. Sometimes we want to substitute for an entire subexpression involving multiple variables, such as replacing with
Our first attempt at making this substitution is to try the eval command. The eval command can substitute for any operand of the expression, such as
 (11) 
but it will only substitute for subexpressions that correspond to the operands of a Maple object. That is, it will only replace exact occurrences of an operand. This is called syntactic substitution. (The subs command also does syntactic substitution.)
 (12) 
The subexpression was not replaced with , because is not an operand of . See op for more information on operands.
For more powerful mathematical substitutions involving sums and products of variables we can use the algsubs command, which stands for algebraic substitution.
 (13) 
 (14) 
The value being substituted into the original expression is not limited to a simple symbol or value.
 (15) 
 (16) 
The algsubs command accepts some options for specifying the substitution mode and the ordering of variables. See algsubs for more details.
Note: Another approach is to use the simplify command with side relations. This command reduces the expression to normal form with respect to the equations you provide, and also allows you control over the final result by optionally specifying a monomial order for the variables. It may be a more appropriate choice if you need more control over the form of the final result. See simplify/siderels.
In summary,
•

eval does strict syntactic substitution and then evaluates the result. Use for simple applications of replacing a symbol by a value.

•

subs does strict syntactic substitution but does not evaluate the result. Use to substitute subexpressions into an expression.

•

algsubs does algebraic substitution. Use when a more powerful substitution is needed.


Go to Maple Portal Maple Portal for Engineers Maple Portal for Math Educators
