Excel Definitions

advertisement
259 Lecture 18
The Symbolic Toolbox
The Symbolic Toolbox








MATLAB has a set of built-in commands that allow us to
work with functions in a fashion similar to Mathematica.
Octave can also perform some of the same functionality via
the “symbolic” package – we will look at this after the
MATLAB features!
For more on the commands available, type “help Symbolic
Toolbox”.
The commands we will look at are:
sym, syms, diff, int, simplify, pretty, subs, double, and
ezplot.
For help on these commands, use the help file.
If a symbolic command has the same name as a numerical
command, such as “diff”, typing “help sym/commandname”
will give help on the symbolic command.
Try “help diff” and “help sym/diff”.
2
sym
 To define symbolic
variables in MATLAB,
use the “sym”
command.
 Example 1a: Here’s
how to define variables
x, y, and a, and
functions
 f(x) = x3 + 2x2 +x-1
 g(x) = sin(x)
 h(y) = (a2y2)/(y+1)








x = sym(‘x’)
y = sym(‘y’)
a = sym(‘a’)
f = x^3+2*x^2+x-1
g = sin(x)
h = sqrt(a^2-y^2)/(y+1)
Typing “pretty(h)” will
make h(y) look nicer!
Note that in MATLAB, “syms
x y a” also works to define
symbolic variables!
3
diff
 To find the derivative
of a function defined
symbolically, we use
the “diff” command.
 Example 2a: Find the
following derivatives of
the functions from
Example 1a: f’(x),
f’’(x), g’(x), h’’’(y).
 Also find dy/dx if
y = x + x2 – x4 or
 y = tan(x)sin(x) -ln(x)/ex
diff(f)
fprime = diff(f)
f2prime = diff(f,2)
gprime = diff(g)
h3prime = diff(h,3)
pretty(h3prime)
simplify(h3prime)
pretty(simplify(h3prime))
diff('x + x^2 - x^4')
diff('tan(x)^sin(x) log(x)/exp(x)')
 pretty(ans)










4
subs
 To evaluate a symbolic
function we use the
command “subs”.
 Example 3a: For the
functions defined in
Example 1a, find each
of the following:
 f(-3)
 f(v) where v = [1 2 4]
 g’(pi/4)
 h(1)
 h(1) with a = 2
 h(y) with a = 2








subs(f,-3)
v = [1 2 4]
subs(f,v)
subs(gprime,pi/4)
subs(h,1)
b = subs(h,1)
subs(b,2)
subs(h,'a',2)
5
ezplot
 We can plot symbolic
functions with the
command “ezplot”!
 Example 4a: Use ezplot
to graph the functions
f(x), g(x), g’(x), f’(x),
and f’’(x) defined in
Example 1a.
 Note that the default
settings for ezplot can be
changed with title,
xlabel, and ylabel.
 The default x-interval of
[-2, 2] can also be
changed.





ezplot(f)
ezplot(f,[-1,1])
ezplot(g)
ezplot(gprime,[0,2*pi])
One way to plot multiple
graphs via ezplot:






ezplot(f)
hold on
ezplot(fprime)
ezplot(f2prime)
title('Plot of f and it''s
derivatives.')
hold off
6
int
 To find indefinite or
definite integrals in
MATLAB, we use “int”.
 Example 5: Find each
integral:









int(f)
int(g,0,pi)
int(h,'y',0.5,1)
pretty(ans)
sym(a,'positive')
int(h,'y',0.5,1)
pretty(ans)
int(h,'a',0.5,1)
int('x + x^2 - x^4')
7
funtool






Finally, here’s a way to work with
functions that is more “user
friendly”.
Typing “funtool” brings up a
function calculator in MATLAB.
funtool is a visual function
calculator that manipulates and
displays functions of one variable.
At startup, funtool displays
graphs of a pair of functions,
f(x) = x and g(x) = 1.
The graphs plot the functions
over the domain [-2*pi, 2*pi].
funtool also displays a control
panel that lets you save, retrieve,
redefine, combine, and transform
f and g.
8
Symbolic Package in Octave
 To perform symbolic manipulation in Octave, first
we need to load the “symbolic” package.
 The symbolic package, as well as other add-ons
can be found here:
 Octave downloads from Source Forge (both Windows
and Mac OS X installers can be found here:
http://octave.sourceforge.net/
 Octave Homepage:
http://www.gnu.org/software/octave/
 A reference for the “symbolic” package can be
found here (choose “Function Reference”):
 http://octave.sourceforge.net/symbolic/index.html
9
Symbolic Functions in Octave
 Once the “symbolic” package is
installed, turn on Octave and type
“pkg load all” to load all installed
packages.
 To enable the symbolic features in
Octave, type “symbols”.
10
sym in Octave
 To define symbolic
variables in Octave,
use the “sym”
command.
 Example 1b: Here’s
how to define variables
x, y, and a, and
functions
 f(x) = x3 + 2x2 +x-1
 g(x) = sin(x)
 h(y) = (a2y2)/(y+1)






x = sym(‘x’)
y = sym(‘y’)
a = sym(‘a’)
f = x^3+2*x^2+x-1
g = Sin(x)
h = Sqrt(a^2-y^2)/(y+1)
11
diff in Octave
 To find the derivative
of a function defined
symbolically in Octave,
we use the
“differentiate”
command.
 Example 2b: Find the
following derivatives of
the functions from
Example 1b: f’(x),
f’’(x), g’(x), h’’’(y).
 Also find dy/dx if
y = x + x2 – x4 or
 differentiate(f,x)
 fprime = differentiate(f,x)
 f2prime =
differentiate(f,x,2)
 gprime = differentiate(g,x)
 h3prime =
differentiate(h,y,3)
 differentiate(x + x^2 x^4,x)
 differentiate(Tan(x)^Sin(x)
-Log(x)/Exp(x),x)
 y = tan(x)sin(x) -ln(x)/ex
12
subs in Octave
 To evaluate a symbolic
function in Octave, we
use the command
“subs”.
 Example 3b: For the
functions defined in
Example 1b, find each
of the following:
 f(-3)
 g’(pi/4)
 h(1)
 h(1) with a = 2
 h(y) with a = 2






subs(f,x,-3)
subs(gprime,pi/4)
subs(h,y,1)
b = subs(h,y,1)
subs(b,a,2)
subs(h,a,2)
13
ezplot in Octave
 We can plot symbolic
functions with the
command “ezplot”!
 Example 4b: Use ezplot
to graph the functions
f(x), g(x), g’(x), f’(x),
and f’’(x) defined in
Example 1b.
 Note that the default
settings for ezplot can be
changed with title,
xlabel, and ylabel.
 The default x-interval of
[-2, 2] can also be
changed.






Recall that


f = x^3+2*x^2+x-1
g = Sin(x)

ezplot(‘x^3+2*x^2+x-1’)
ezplot(‘x^3+2*x^2+x-1’)
ezplot(‘x^3+2*x^2+x1’,[-1,1])
ezplot(‘sin(x)’)
ezplot(‘cos(x)’,[0,2*pi])
One way to plot multiple
graphs via ezplot:





hold on
ezplot(‘3*x^2+4*x+1’)
ezplot(‘6x+4’)
title('Plot of f and it''s
derivatives.')
hold off
14
References
 Using MATLAB in Calculus by Gary
Jenson
 MATLAB Help File
15
Download