Maple Professionel
Maple Académique
Maple Edition Étudiant
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professionel
MapleSim Académique
Maple T.A. - Suite d'examens de classement
Maple T.A. MAA Placement Test Suite
Möbius - Didacticiels de mathématiques en ligne
Machine Design / Industrial Automation
Aéronautique
Ingénierie des véhicules
Robotics
Energie
System Simulation and Analysis
Model development for HIL
Modélisation du procédé pour la conception de systèmes de contrôle
Robotics/Motion Control/Mechatronics
Other Application Areas
Enseignement des mathématiques
Enseignement de l’ingénierie
Enseignement secondaire et supérieur (CPGE, BTS)
Tests et évaluations
Etudiants
Modélisation financière
Recherche opérationnelle
Calcul haute performance
Physique
Webinaires en direct
Webinaires enregistrés
Agenda des évènements
Forum MaplePrimes
Blog Maplesoft
Membres Maplesoft
Maple Ambassador Program
MapleCloud
Livres blancs techniques
Bulletin électronique
Livres Maple
Math Matters
Portail des applications
Galerie de modèles MapleSim
Cas d'Etudes Utilisateur
Exploring Engineering Fundamentals
Concepts d’enseignement avec Maple
Centre d’accueil utilisateur Maplesoft
Centre de ressources pour enseignants
Centre d’assistance aux étudiants
algsubs - substitute subexpressions into an expression
Calling Sequence
algsubs(a = b, f)
algsubs(a = b, f, v)
algsubs(a = b, f, v, options)
Parameters
a, b
-
algebraic expressions
f
any expression
v
name or list or set of names
Description
The function algsubs performs an algebraic substitution, replacing occurrences of a with b in the expression f. It is a generalization of the subs command, which only handles syntactic substitution. The purpose of algsubs can be seen from these five examples where subs fails.
algsubs( s^2=1-c^2, s^3 );
algsubs( a+b=d, 1+a+b+c );
algsubs( a*b=c, 2*a*b^2-a*b*d );
algsubs( a*b/c=d, 2*a*b^2/c );
algsubs( a^2=0, exp(2-a+a^2/2-a^3/6) );
Where the expression being replaced has more than one variable, the result is ambiguous. For example, should algsubs(a+b=c, 2*a+b) return or ? What should algsubs(a+b=c, a+Pi*b) return? Should algsubs(x*y^2=c, x*y^4) return or ? The algsubs command provides two modes for breaking ambiguities, an exact mode and a remainder mode (the default).
Both modes depend on the ordering of the variables that appear in a. This can be set to a specific ordering by specifying the variables v in a list as a third argument. If the variables are not explicitly given, the set of indeterminates in a, b which are functions and names defines the variables and their order. Also, the result is collected in the variables given.
Both modes require that monomials in a divide monomials in f for a substitution to occur. A monomial u in a divides a monomial v in f if for each variable x in u, then either or .
For example, the monomial divides the monomial but not or .
Note: The algsubs command currently works only with integer exponents.
Note that the requirement for monomials in a to divide monomials in f means that the negative powers of u in the following example are not substituted, and must be handled separately as shown.
f := a/u^4+b/u^2+c+d*u^2+e*u^4;
algsubs(u^2=v,f);
algsubs(1/u^2=1/v,f);
Hence, to substitute for both positive and negative powers.
algsubs(u^2=v,algsubs(1/u^2=1/v,f));
If the option remainder is specified, or no option is specified, a generalized remainder is computed. If the leading monomial of a divides the leading monomial of f then the leading monomial of f is replaced with the appropriate value, and this is repeated until the leading monomial in f is less than the leading monomial in a.
If the option exact is specified, then if the value a being replaced is a sum of terms , and the value f it is replacing is the sum of terms , then the replacement is made if and only if each monomial divides and that is, the coefficients must all be the same. For example, algsubs( x^2+2*y=z, 3*x^2+6*y ) succeeds with but algsubs(x^2+2*y=z, 3*x^2+3*y) fails.
The algsubs command goes recursively through the expression . Unlike the subs command it does not substitute inside indexed names, and function calls are applied to the result of a substitution. Like subs, it does not expand products or powers before substitution. Hence algsubs( x^2=0, (x+1)^3 ) yields .
Examples
Truncating polynomials
Ambiguous cases
See Also
applyrule, simplify, simplify/siderels, subs
Download Help Document