Chapter 12 Review: Symbolic Mathematics
description
Transcript of Chapter 12 Review: Symbolic Mathematics
![Page 1: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/1.jpg)
Chapter 12 Review: Symbolic Mathematics
Introduction to MATLAB 7Engineering 161
![Page 2: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/2.jpg)
Symbolic Mathematics In MATLAB we can use symbols to perform
mathematical computations as well as numbers. These features are contained in the Symbolic Math
Toolbox. They are based upon Maple 8 a software package published by Waterloo Maple, Inc.
We will learn how to define expressions symbolically and then manipulate them with MATLAB functions.
Symbolic manipulations are often very useful in engineering problem solving and compliments solutions to problems with numbers.
![Page 3: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/3.jpg)
Symbolic Mathematics II After studying the material in Chapter
11 you should be able to Create and manipulate symbolic variables Factor and simplify mathematical
expressions Solve symbolic expressions Determine the symbolic derivative of an
expression and integrate an expression.
![Page 4: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/4.jpg)
An Example Before jumping into the details, look at some simple
examples,>> a = sym (‘x - 2’); % a and b are sym variables, they are>> b = sym (‘2*x + 3’); % strings of characters>> y = a*b % y is another string of charactersy =(x-2)*(2*x+3)>> expand(y)ans =2*x^2 - x - 6
![Page 5: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/5.jpg)
Another Example Consider another example,
>> S = sym(‘(x^2 - 3*x – 10)/(x + 2)’);>> simplify(S)ans =x – 5
Note that the symbolic expression is defined by the sym function, the argument of the sym function is a string of characters defining the expression symbolically enclosed in single quotes.
![Page 6: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/6.jpg)
One More Example Suppose you want to solve the equation D =
D0*exp(-Q/RT) for Q. This equation describes the rate of diffusion, see section 11.1 in the text.
>>X = sym(‘D=D0*exp(-Q/RT)’);
>>solve (X,’Q’) % Q is in single quotes to tell MATLAB
ans = % that it is a symbol
-log(D/D0)*RT
Note in MATLAB log represents the natural logarithm, normally written as ln in mathematics, log10 represents the logarithm to the base 10 and log2 represents the logarithm to the base 2.
![Page 7: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/7.jpg)
Defining Symbolic Expressions and Variables
There are two methods, Either create the complex symbolic expression all at once
using the sym command as we did in the examples, Or, use the syms command to list all the symbolic variables
individually and then compose the expression using algebraic operators like, * or + and -, etc. >> syms a x y;>>S = x^2 -2*y^2 + 3*a;
These two MATLAB statements define the variables a, x, and y as symbolic variables, and then creates the symbolic expression S.
Note that in the first case using the sym function, only S would appear in the Workspace Window, while in the second case, S, a, x, and y all appear in the Workspace Window.
![Page 8: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/8.jpg)
Plotting Symbolic Expressions
MATLAB provides an easy way to plot symbolic expressions of a single variable, it is called ezplot. Suppose S is a symbolic expression of x, then>>ezplot(S, [xmin, xmax]) will plot S between the limits of xmin and xmax. >> ezplot(S) always uses the range [-2 *pi, 2*pi]
You can use the commands xlabel, ylabel, and title to add x and y labels, etc., in the usual way. Also use grid on, hold on and hold off, subplots, etc.
![Page 9: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/9.jpg)
Plotting Symbolic Expressions II
MATLAB provides a number of built in symbolic plotting functions in addition to ezplot. They are described in Table 11.3 and some of them are illustrated on pages 400-401. Do the practice exercise 11.7 on page 402 to gain some experience with the variety of symbolic plotting functions.
Remember you can use xlabel, ylabel, title, hold on and off, and subplots just as you have used them before with the basic plotting function plot(x,y)
![Page 10: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/10.jpg)
Let’s look at another example
Consider the golden ratio,>> y = sym(‘(1 + sqrt(5))/2’);>> f = y^2 – y - 1f =(1/2 + 1/2*5^(1/2))^2-3/2-1/2*5^(1/2)>>simplify(f)0
y is a symbolic expression that we manipulate in the first and second MATLAB statements.
![Page 11: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/11.jpg)
A Matrix Example Consider the following matrix example,
>>syms a b c d;>>A = [a b c; a b c; a b c]A =[ a, b, c][ a, b, c][ a, b, c]>>sum(A(1,:))ans =a+b+c>>sum(A(:,2))ans =b+b+b
![Page 12: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/12.jpg)
A Matrix Example II Matrix multiplication symbolically,
>> A = [a b; c d];>> A^2ans =[ a*a+b*c, a*b+b*d][ c*a+d*c, c*b+d*d]
Note here that a, b, c and d were already declared as symbols in the previous example and hence would be in the Workspace Window as symbols. No need to redefine them for this second example.
Try taking the inverse of A using the inv function.
![Page 13: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/13.jpg)
Some Symbolic Functions
There are a number of functions used to manipulate and simplify symbolic expressions,
collect(S) collects coefficients of S expand(S) expands S where possible factor(S) returns the factors of S where possible simplify(S) simplifies S using Maple’s rules simple(S) returns a number of potential simpler
forms poly2sym(V) creates a symbolic expression for the
polynomial described by the vector V>>V = [ 1 -4 0 2 45];>> S = poly2sym(V)S =x^4 - 4*x^3 + 2*x + 45What do you think V = sym2poly(S)
does?
![Page 14: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/14.jpg)
Some Symbolic Functions II
Continuing, solve(f) solves the symbolic equation f
for its symbolic variable; if more than one, then for x, sets f = 0 and solves for x.
solve(f, ‘y’) solves f(x,y) for y; you don’t need the quotes if y has been
declared as a symbolic variable solve(f1,…,fn) solves a system of equations
Let’s look further into this last function.
![Page 15: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/15.jpg)
Solve Function When used with an expression, the solve function sets
the expression to zero and solves for its roots For example, E1 = x – 3, solve(E1) would yield the answer
ans = 3. One could also have said solve(x-3), that put the
expression inside the parenthesis. The solve function normally solves for x, if you want to
solve for a different variable, then solve(f, t) for example would solve for t.
Even when the result of the solve function is a number, it is still stored as a symbolic variable and needs to be converted to be used in an arithmetic expression, use the double function.
![Page 16: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/16.jpg)
Substitution: the subs function
Once you have a symbolic expression, you may want to substitute values into it, we use the subs function. Consider,
syms a b c x;f = a*x^2 + b*x + c;g = subs(f, a, 3)g =3*x^2 + b*x + c
![Page 17: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/17.jpg)
Substitution II
h = subs(f, {a, b, c}, {1, 2, 3})h =x^2 + 2*x + 3subs(h, x, -2)ans =3
![Page 18: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/18.jpg)
Substitution III Substituting an expression, consider from
Example 11.2,
syms v0 t g theta;distancex = v0 * t * cos(theta);impact_time = 2 * v0 * sin(theta)/g;impact_distance = subs(distancex, t, impact_time)impact_distance =2 * v0^2 * sin(theta)/g * cos(theta)
![Page 19: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/19.jpg)
Solving Simultaneous Equations
Suppose we have the following,>>eq1 = sym (‘3*x + 2*y - z = 10’);>>eq2 = sym (‘-x + 3*y + 2*z = 5’);>>eq3 = sym (‘x – y – z = -1’);>>[A, B, C] = solve (eq1, eq2, eq3)A = -2B =5C =-6
Note the symbols assigned to A, B, and C are assigned alphabetically based upon the order of the variable names in the equations, eq1, eq2, eq3.
![Page 20: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/20.jpg)
Solving Simultaneous Equations Again II
Now remember, if you want to use A, B, and C in some subsequent numerical expression, you will have to convert them to numbers, (A, B, and C have character representations from the solve operation.)
To do this, do the following;>> a = double(A), b = double(B), c =double(C); this double function converts characters to real numbers.
Now a, b, and c have numerical variables assigned to them. To avoid confusion, watch your Workspace window for the
declarations of the variables as they are created. Characters have the <1x1sym> designation while real numbers are designated as double typically.
![Page 21: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/21.jpg)
Calculus MATLAB’s symbolic toolbox allows users to differentiate
symbolically and to perform integrations. This makes it possible to find analytical solutions (expressions), instead of numeric approximations for many problems. We will look at
differentiationintegrationsolving simple differential equations
Let’s start by looking at an example where we’ll use the int (integration) function to solve a basic problem.
![Page 22: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/22.jpg)
Another Example: Water Flow (11.32)
Water is being pumped into an initially empty tank. It is known that the rate of flow of water into the tank at time t (seconds) is (50 – t) liters/sec. The amount of water Q that flows into the tank during the first x seconds can be shown to be equal to the integral of the expression (50 – t) evaluated from 0 to x seconds.
Determine a symbolic equation that represents the amount of water in the tank after x seconds.
Determine the amount of water in the tank after 30 seconds.
Determine the amount of water that flowed into the tank between 10 and 15 seconds after the flow was initiated.
![Page 23: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/23.jpg)
Water Flow II Consider the following sequence of MATLAB statements;
>> f = sym (’50 – t’) % create the symbolic variable f = 50 - tf =50 – t>>Q = int (f, 0, ‘x’) % integrate f(t) between ‘0’ and ‘x’ secondsQ =50*x – 1/2*x^2>>Q = int (f, 0, 30) % integrate f(t) between 0 and 30 secondsQ =1050>>Q = int (f, 10, 15) % integrate f(t) between 10 and 15 secondsQ =375/2
![Page 24: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/24.jpg)
Differentiation The diff function is used to determine the symbolic
derivative of a symbolic expression f. diff(f) returns the derivative of f w.r.t. the
default independent variable diff(f, ‘t’) returns the derivative of f w.r.t. the
variable t diff(f, n) returns the nth derivative of f w.r.t the
default independent variable diff(f, ‘t’, n) returns the nth derivative of f w.r.t the
variable tWe look at the example in our book in section 11.4.1, pg 419
![Page 25: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/25.jpg)
The Drag Racer Consider a drag racer that starts from rest, accelerates to the
finish line and then decelerates back to rest. The total distance travelled is given by the following expression;
d = 20 + 20 sin (p(t – 10)/20)
Let’s use MATLAB to plot the function d vs t for 0 < t < 20 seconds, determine and plot the velocity and acceleration of the drag racer and determine the maximum velocity of the car. The car crossed the finish line at t = 10 seconds when it starts to decelerate.
![Page 26: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/26.jpg)
The Drag Racer II Consider the following MATLAB statements;
syms t;d = 20 + 20*sin(pi*(t – 10)/20);ezplot(d, [0,20]);vel = diff(d);figure(2);ezplot(vel, [0,20]);
![Page 27: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/27.jpg)
The Drag Racer III Continuing,
accel = diff(vel);figure(3);ezplot(accel, [0,20]);d % outputs the expression for dvel % outputs the expression for velaccel % outputs the expression for accel
![Page 28: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/28.jpg)
The Drag Racer IV Continuing,
The maximum velocity is determined by setting the derivative of the velocity to zero and solving for t. Since accel is the derivative of vel, we have that
max_vel = solve(accel)
![Page 29: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/29.jpg)
Integration MATLAB supports the following symbolic integration capabilities;
the int function attempts to find a function F such that diff(F) = f; diff(F) being the derivative of F.
int(f) returns the integral of the expression f w.r.t. the independent variable
int(f, ‘t’) returns the integral of f w.r.t. the variable t int(f, a, b) returns the integral of f w.r.t. the
independent variable over the interval [a,b]; a and b numerical
int(f, ‘t’, a, b) returns the integral of f w.r.t to t over the interval[a,b]; a and b numerical
Int(f, ‘m’, ‘n’) returns the integal of f w.r.t. the independent variable over the interval [m,n] where m and nare symbolic expressions.
![Page 30: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/30.jpg)
Differential Equations MATLAB’s symbolic toolbox provides capabilities to solve differential
equations. To review these capabilities use the help dsolve command in the Command Window. dsolve is the function that you will want to explore. Use the MATLAB help features. Consider the following,
Suppose we have the equation dx/dt = -a*x and we want to solve for x
>>dsolve(‘Dx = - a*x’)ans =C1*exp(-a*t) % note the undetermined constant C1>>dsolve(‘Dx = -a*x’, ‘x(0) = 2’) % with the initial condition specifiedans =2*exp(-a*t) % pretty cool
![Page 31: Chapter 12 Review: Symbolic Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022061417/5681588d550346895dc5ec7d/html5/thumbnails/31.jpg)
Chapter 11 Assignment These assignments will give you some
practice with the concepts in Chapter 11.
Assignments 12.7, 12.9 and 12.10, 12.11, 12.15, 12.16, 12.29, 12.30.