Introduction to Computing
Lecture
Symbolic Mathematics
Huynh Tan Quoc, PhD
Symbolic
Expand or simplify symbolic expressions.
Find symbolic roots, limits, minima, maxima, etc.
Solving differentiate and integrate.
Solve simultaneous equations (even some nonlinear).
in linear algebra, including symbolic methods for
obtaining determinants, matrix inverses, and
eigenvalues….
Creating Symbolic Variables
To create one symbolic variable, type sym:
x = sym('x’); x=str2 sym('x’);
You can also use the syms command:
syms x;
To create multiple symbolic variables use the syms
command as follows:
syms x y z T0;
Creating a Symbolic Expression with
Symbolic Variables
To create an expression using existing symbolic
variables, using syms command:
>> syms P K T P0;
P = P0*exp(K*T);
Or
>> P = str2sym('P0*exp(K*T)');
Symbolic Function()
numden() subs()
expand() ezplot()
factor() diff()
simplify() int()
poly2sym()
solve()
numden()
• numden() :separate the numerator and denominator.
• Example:
>> syms x
y=2*((x+3)^2+1)/(x^2+6*x+9)
[Numerator, Denominator]=numden(y)
>> Numerator= 2*x^2 + 12*x + 20
Denominator=x^2 + 6*x + 9
expand()
• expand() : expand the products of
factors in an expression.
• Example:
>> syms x
y=2*(x+3)^2
expand(y)
>> ans=2*x^2 + 12*x + 18
factor()
• The factor() : factor an expression into a
product of terms.
• Example:
>> syms x
y=x^2 + 6*x + 9
factor(y)
>> ans=[(x+3), (x+3)]
simplify()
• simplify() : uses the Maple simplification
algorithm to simplify each part of an
expression.
• Example:
>> syms x
y=sin(x)^2 + cos(x)^2
simplify(y)
>> ans=1;
poly2sym() & sym2poly()
poly2sym() :uses an array of coefficients
to create a polynomial:
Example
>> a=[1,3,2]
b=poly2sym(a)
>> b = x^2 + 3*x + 2
The function sym2poly() is the inverse of
poly2sym().
>>c= sym2poly(b)
>>c = 1 3 2
solve()
The solve() function sets an expression
equal to zero, then solves the equation
for its roots.
Example
>> syms x
y=x^2-9
solve(y)
>> ans=
3
-3
solve()
>> syms x a b c
y=a*x^2+b*x+c
solve(y)
ans =
-(b+(b^2-4*a*c)^(1/2))/(2*a)
-(b-(b^2-4*a*c)^(1/2))/(2*a)
solve()
>> syms x a b c
y=a*x^2+b*x+c
solve(y,a)
>>ans =
-(c + b*x)/x^2
Note that this solves the expression for “a”.
solve()
Systems of Equations
>> syms x y z
one=3*x+2*y-z==10
two=-x+3*y+2*z==5
three=x-y-z==-1
[x y z]=solve(one,two,three)
>> x=-2 y=5 z=-6
Or:
>> one=str2sym('3*x+2*y-z=10')
two=str2sym('-x+3*y+2*z=5')
three=str2sym('x-y-z=-1')
[x y z]=solve(one,two,three)
subs()
The subs(): substitute a symbol with
another symbol or assign a number to a
variable.
>> syms a b c x y
quandratic=a*x^2+b*x+c
yquandratic=subs(quandratic,x,y)
>> yquadratic =
a*y^2 + b*y + c
subs()
Multiple substitutions
subs(symbolic_funct,{substitutant},{substitute})
>> subs(quadratic,{a,b,c},{1,2,3})
ans=x^2 + 2*x + 3
Or
>> subs(quadratic,{a,b,c,x},{1,2,3,4})
ans=27
ezplot()
ezplot(): Plotting symbolic function
syms x
y=x^2-2*x+3
ezplot(y)
diff()
Differentiation
diff(): take derivative symbolic functions
diff(f,x,n)
• n: the order of the derivative
Example:
>> syms x
y=x^2-2*x+3
diff(y,x,1)
>>ans =
2*x - 2
int()
Integration
int():take integral symbolic functions
int(y,x,a,b) or int(y,x)
Example:
>> syms x
y=x^2-2*x+3
int(y,x)
>> ans =
(x*(x^2 - 3*x + 9))/3
>> int(y,x,1,2)
>> ans =7/3
int()
Integration Constant
Display constant
>> syms x a
y = 2*x;
int(y,a,x)
>> ans =
x^2 - a^2
Summary
Creating Symbolic Expressions
sym(‘x’), syms x, expressions i.e. e=str2sym(‘m*c^2’)
Manipulation
numden, expand, factor, simplify, poly2sym
Solutions
solve, subs
Plotting
ezplot
Differentiation
diff(y,x, n)
Integration
int(y, x, a, b)
Questions?