0% found this document useful (0 votes)
57 views

Matlab Notes For Calculus 2: Lia Vas

This document contains notes on using Matlab for a Calculus 2 class. It covers topics like algebra, functions, graphics, solving equations, calculus, and differential equations. Practice problems are provided throughout with solutions. Functions can be defined and graphed in Matlab. Various commands are introduced for arithmetic, solving equations, graphing, and representing common functions. Axis scales can be adjusted when graphing.

Uploaded by

jojon
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views

Matlab Notes For Calculus 2: Lia Vas

This document contains notes on using Matlab for a Calculus 2 class. It covers topics like algebra, functions, graphics, solving equations, calculus, and differential equations. Practice problems are provided throughout with solutions. Functions can be defined and graphed in Matlab. Various commands are introduced for arithmetic, solving equations, graphing, and representing common functions. Axis scales can be adjusted when graphing.

Uploaded by

jojon
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Matlab Notes for Calculus 2

Lia Vas
Content

1. Algebra and Functions


1.1 Basic arithmetic (Practice problems 1)
1.2 Solving equations with solve (Practice problems 2)
1.3 Representing functions

2. Graphics (Practice problems 3)

3. Solving equations with fzero

4. Calculus
4.1 Differentiation (Practice problems 4)
4.2 Integration (Practice problems 5)
4.3 Limits (Practice problems 6)

5. Graphics Continued
5.1 Parametric Plots
5.2 Special effects (Practice problems 7)

6. Differential Equations
6.1 Basics of Differential Equations
6.2 Second Order Equations (Practice problems 8)

1. Algebra and Functions

1.1 Basic Arithmetic

You can use +, -, *, \ and ^ to add, subtract, multiply, divide or exponentiate, respectively. For
example if you enter:

>> 2^3 - 2*2


Matlab calculates the answer:
ans = 4

If you want to perform further calculations with the value of the answer, you can type ans
rather than retyping the specific answer value. For example,
>> sqrt(ans)
ans = 2
To perform symbolic calculations in Matlab, use syms to declare the variables you plan to
use. For example, suppose that you need factor x²-3x+2. First you need
>> syms x (you are declaring that x is a variable)

Then you can use the command factor.


>> factor(x^2-3*x+2)
ans = (x-1)*(x-2)

Note that we entered 3*x to represent 3x in the command above. Entering * for
multiplication is always necessary in Matlab.

Besides factor command, you have simplify and expand.

Practice problems 1
x 3−8
1. Factor x³+3x²y+3xy²+y³. 2. Simplify .
x−2
3. Evaluate the following expressions a) sin(π/6) b)
53 c) log (5)
2
3−1
Solutions
1. syms x y followed by factor(x^3+3*x^2*y+3*x*y^2+y^3) gives you ans=(x+y)^3
2. syms x followed by simplify((x^3-8)/(x-2)) gives you ans=x^2+2x+4
3. Enter sin(pi/6). Then ans=.5 b) Enter (sqrt(5)+3)/(sqrt(3)-1). Then ans=7.152 c) Enter
log(5)/log(2). Then ans=2.3219.

1.2 Solving Equations

For solving equations, you can use the command solve. The command solve is always
followed by parenthesis. After that, the equation you would like to solve should be entered in
single quotes. Separated by a coma, the equation is followed by the variable for which you
are solving the equation in (single) quotes. Thus, the command solve has the following form

solve('equation', 'variable for which you are solving')

For example, to solve the equation x³-2x-4=0, you type:


>> solve('x^3-2*x-4=0')
and get the following answer:
ans = [ 2] [ -1+i] [ -1-i]
Here i stands for the imaginary number  −1 . This answer tells us that there is just one real
solution, 2.

Matlab can give you both symbolic and numerical answer. For example, let us solve
the equation 3x²-8x+2=0.

>> solve('3*x^2-8*x+2=0','x')
ans = [ 4/3+1/3*10^(1/2)] [ 4/3-1/3*10^(1/2)]
If we want to get the answer in the decimal form with, say, three significant digits, we can use
the command vpa.
>> vpa(ans, 3)
ans = [ 2.38] [ 0.28]

The command vpa has the general form


vpa(expression you want to approximate, number of significant digits)

You can solve more than one equation simultaneously. For example suppose that we need to
solve the system x²+ x+ y² = 2 and 2x-y = 2. We can use:
>> [x,y] =solve( 'x^2+ x+ y^2 = 2', '2*x-y = 2')
to get the answer
x= [ 2/5] [ 1]
y= [ -6/5] [ 0]

Note that the [x,y]= part at the beginning of the command was necessary since without it
Matlab produces the answer:
ans = x: [2x1 sym] y: [2x1 sym]
This answer tells us just that the solutions are two values of the pair (x,y) but we do not get
the solutions themselves. To get the solution vectors displayed, we must use [x,y]= before the
command solve.

You can solve an equation in two variables for one of them. For example the command
>> solve('y^2-5*x*y-y+6*x^2+x=2', 'y')
solves the given equation for values of y in terms of x. The answer is:
ans = [ 3*x+2] [ 2*x-1]

Practice problems 2
1. Solve the following equations and express the answers as decimal numbers.
a) x3-2x+5=0 b) log2(x2-9)=4.
2. Solve 5x+2y+4z = 8, -3x+y+2z = -7, 2x+y+z = 3 for x, y and z.

Solutions. 1. a) Enter solve('x^3-2*x+5=0', 'x'). The only real answer is -2.09.


b) Enter solve('log(x^2-9)/log(2)=4','x'). The answers are ans= 5, -5.
2. [x,y,z]=solve('5*x+2*y+4*z = 8', '-3*x+y+2*z = -7', '2*x+y+z = 3') x=2 y=-1 z=0

1.3 Representing a function function or symbol representation in MATLAB


e^x exp(x)
The following table gives an overview of how ln x log(x)
most commonly used functions or expressions log x log(x)/log(10)
are represented in Matlab. log. base a of x log(x)/log(a)
sin x sin(x)
To represent a function, use the command inline. cos x cos(x)
Similarly to solve, this command is followed by arctan(x) atan(x)
parenthesis and has the following form: π pi
inline('function', 'independent variable of the function')

Here is how to define the function x²+3x-2:


>> f = inline('x^2+3*x-2', 'x')
f=
Inline function:
f(x) = x^2+3*x-2

After defining a function, we can evaluate it at a point. For example,


>> f(2)
ans = 8

In some cases, we will need to define function f as a vector. Then we use:


>> f = inline(vectorize('x^2+3*x-2'), 'x')
f=
Inline function:
f(x) = x.^2+3.*x-2

In this case, we can evaluate a function at more than one point at the same time. For
example, to evaluate the above function at 1, 3 and 5 we have:
>> f([1 3 5])
ans = 2 16 38

If a function is short, it might be faster to evaluate a function at a point simply by typing


the value of x directly for x. For example, to evaluate sin(x) at x=2, simply type
>> sin(2)
and obtain the answer
ans = .909297

As when using the calculator, one must be careful when representing a function. For example
1
 should be represented as 1/(x*(x+6)) not as 1/x*(x+6) nor as 1/x(x+6),
x  x+ 6 
3
 2
should be represented as 3/(x^2+5*x+6) not as 3/x^2+5*x+6,
x 5x6
should be represented as exp(5*x^2) not as e^(5*x^2), exp*(5*x^2),
2
 e 5x
exp(5x^2) nor as exp^(5*x^2).
 Ln(x) should be represented as log(x), not ln(x).
 log3(x2) should be represented as log(x^2)/log(3) not as log(x)/log(3)*x^2.

2. Graphics

Let us start by declaring that x is a variable:


>> syms x

The simplest command in Matlab for graphing is ezplot. The command has the following form
ezplot(function)
x^2+x+1
50
For example, to graph the function x²+x+1, you simply type 45
>> ezplot(x^2+x+1) 40

35

A new window will open and graph will be displayed. To copy 30


the figure to a text file, go to Edit and choose Copy Figure. 25
Then place cursor to the place in the word file where you want 20
the figure to be pasted and choose Edit and Paste. 15

10

5
We can specify the different scale on x and y axis. 0

To do this, the command axis is used. -8 -6 -4 -2 0 2 4 6 8

It has the following form x^2+x+1


60
axis([xmin, xmax, ymin, ymax])
50

This command parallels the commands in menu WINDOW on 40

the TI83 calculators.


30

For example, to see the above graph between x-values -10 20

and 10 and y-values 0 and 60, you can enter 10


>> axis([-10 10 0 60])
0

Note that the domain of function did not change by command -10 -8 -6 -4 -2 0 2 4 6 8 10

axis. To see the graph on the entire domain (in this case [-10, x^2+x+1
10]), add that domain after the function in the command ezplot: 60

50
ezplot(function, [xmin, xmax])
40

In this case, 30

>> ezplot(x^2+x+1, [-10, 10])


will give you the desired graph. 20

10

For the alternative command for graphics, plot, you can find
0
more details by typing help. -15 -10 -5 0 5 10 15

To graph multiple curves on the same plot, you can also use the ezplot command. For
example to graph the functions sin(x) and e-x^2 , you can use:
>> ezplot(sin(x))
>> hold on
>> ezplot(exp(-x^2))
>> hold off

Practice problems 3
x 3 +x+ 1
1. Let f(x)=
x
a) Represent f(x) as a function in Matlab. Then evaluate it at x=3 and x=-2.
b) Find x-value(s) that corresponds to y-value y=2.
c) Graph f(x) on domain [-4 4].

2. Graph ln(x+1) and 1-x² on the same plot for x in [-2 6] and y in [-4 4].

Solutions
1. a) >> f=inline('(x^3+x+1)/x', 'x'), >> f(3)ans= 10.333, >>f(-2) ans=4.5.
x 3 +x+ 1
b) The problem is asking you to solve equation =2. Using solve command,
x
solve('(x^3+x+1)/x=2','x'). you get one real answer x=-1.3247
c) ezplot((x^3+x+1)/x, [-4,4]).

3. Solving Equations in Matlab using fzero

In some cases, the command solve may fail to produce all the solutions of an equation. In
those cases, you can try to find solutions using fzero (short for "find zero") command. In order
to use the command, first you need to write equation in the form

f(x)=0.

Thus, put all the terms of th equations on one side leaving just zero on the other. To find a
solution near the x-value x=a, you can use

fzero('left side of the equation', a)

The command fzero, similarly as solve is always followed by expression in parenthesis. The
equation should be in single quotes.

If it is not clear what a convenient x-value a should be, you may want to graph the function on
the left side of the equation first, check where it intersects the x-axis. Alternatively, you can
graph left and right side of the equation that is not in f(x)=0 form and see where the two
functions intersect. Then decide which x-value you should use.

Example. To solve the equation ex^2-2=x+4, we can first graph the functions on the left and
right side of the equation using
syms x ezplot(exp(x^2)-2) hold on ezplot(x+4) hold off

From the graph, we can see that the two functions intersect at a value near -1 and at a value
near 1. To use fzero, we need to represent the equation in the form ex^2-2-(x+4)=0 (or
simplified form ex^2-x-6=0). Then, we can find the positive solution by using fzero to find a
zero near 1 and then to find the negative solution near -1, for example. Thus, both solutions
can be obtained by:
>> fzero('exp(x^2)-2-(x+4)', 1) ans = 1.415
>> fzero('exp(x^2)-2-(x+4)', -1) ans = -1.248
Note also that the command solve('exp(x^2)-2=x+4', 'x') returns just the positive solution.
Thus, knowing how to use fzero command may be really useful in some cases.

4. Calculus

4.1 Differentiation

Start by declaring x for a variable. The command for differentiation is diff. It has the following
form
diff(function)
For example,
>> syms x
>> diff(x^3-2*x+5)
gives us the answer ans = 3*x^2-2

To get n-th derivative use


diff(function, n)

For example, to get the second derivative of x3-2x+5, use: >> diff(x^3-2*x+5, 2)
ans = 6*x
Similarly, the 23rd derivative of sin(x) is obtained as follows. >> diff(sin(x), 23)
ans =-cos(x)

To evaluate derivative at a point, we need to represent the derivative as a new function. For
example, to find the slope of a tangent line to x²+3x-2 at point 2, we need to find the derivative
and to evaluate it at x=2.
>> diff(x^2+3*x-2) (first we find the derivative) ans = 2*x+3
>> f = inline('2*x+3', 'x') (then we representative the derivative as a function)
f = Inline function: f(x) = 2*x+3
>> f(2) (and, finally, we evaluate the derivative at 2)
ans = 7

Practice problems 4
x 3 +x+ 1
1. Let f(x)= a) Use Matlab to find the first derivative of f(x). b) Evaluate the first
x
derivative at x=1.
2. Let f(x)=e 3x^2+1. a) Find the first derivative of f(x). b) Find the slope of the tangent line to f(x)
at x=1. c) c) Find the critical points of f(x).
x 65
3. Find the 12th derivative of the function  1  .
2

Solutions.
1. a) syms x diff((x^3+x+1)/x) ans = 2*x-1/x^2 or (2*x^3-1)/x^2.
b) Inline the derivative: g=inline('2*x-1/x^2','x'). Then g(1) gives you ans=1.
2. a) diff(exp(3*x^2+1)) ans=6*x*exp(3*x^2+1)
b) Represent the derivative as function: g=inline('6*x*exp(3*x^2+1)','x'). Then
evaluate g(1). Get 6*exp(4). To see the answer as a decimal number (say to five
nonzero digits) use vpa(ans, 5). Get 327.58.
c) solve('6*x*exp(3*x^2+1)=0','x') ans=0
3. diff((x/2+1)^65, 12)

4.2 Integration

We can use Matlab for computing both definite and indefinite integrals using the command
int. For the indefinite integrals, start with syms x followed by the command

int(function)
For example, the command
>> int(x^2)
evaluates the integral and gives us the answer ans = 1/3*x^3

For definitive integrals, the command is

int(function, lower bound, upper bound)


For example,
>> int(x^2, 0, 1)
evaluates the integral The answer is ans = 1/3

In Matlab, Inf stands for positive infinity. Matlab can evaluate the (convergent) improper
integrals as well. For example:
>> int(1/x^2, 1, Inf)
ans = 1

For the divergent integrals, Matlab gives us the answer infinity. For example:
>> int(1/x, 0, 1)
ans = inf

Matlab can evaluate the definitive integrals of the functions that do not have elementary
x
sin x
dx, ∫ e dx, ∫ ex dx
2

primitive functions. Recall that the integrals ∫


x x
can not be represented via elementary functions. Suppose that we need to find the integral of
sin x
from 1 to 3. The command >> int(sin(x)/x, 1, 3)
x
doesn't gives us a numerical value. We have just: ans = sinint(3)-sinint(1)
Using the command vpa, we obtain the answer in numerical form. For example,
>> vpa(ans, 4) gives us ans = 0.9026

Practice problems 5
1. Evaluate the following integrals. a) b) .
2. Using Matlab, determine if the following integrals converge or diverge. If they converge,
evaluate them.
∞ 2
3 1
a) ∫
1
2
x 5x6
dx b) ∫  x−1  x+1 dx
1

Solutions.
1. a) syms x int(x*exp(-3*x)) ans=-1/3*x*exp(-3*x)-1/9*exp(-3*x)
b) int(x*exp(-3*x), 0,1) ans=-4/9*exp(-3)+1/9 vpa(ans, 4) ans=.08898
2. a) int(3/(x^2+5*x+6), 1, Inf) vpa(ans, 4) ans= .8338 So, the integral is convergent.
b) int(1/((x-1)*(x+1)), 1, 2) ans= Inf So, the integral is divergent.

4.3 Limits

You can use limit to compute limits, left and right limits as well as infinite limits. For example,
x 2−4
to evaluate the limit when x → 2 of the function , we have:
x−2
>> syms x
>> limit((x^2-4)/(x-2), x, 2) ans = 4

You can also evaluate left and right limits. For example:
>> limit(abs(x)/x, x, 0, 'left') ans = -1
>> limit(abs(x)/x, x, 0, 'right') ans = 1

Limits at infinity:
>> limit(exp(-x^2-5)+3, x, Inf) ans = 3

Practice problem 6

Find the limits of the following functions at indicated values.


x12−1 6x 3−4x5
a) f(x)= , x→1 b) f(x)= 3+e-2x, x → ∞ c) f(x)= , x→ ∞
x3−1 2x 3−1

Solutions.
a) syms x limit((x^12-1)/(x^3-1), x, 1) ans=4
b) limit(3+exp(-2*x), x, Inf) ans=3
c) limit((6*x^3-4*x+5)/(2*x^3-1), x, Inf) ans=3

5. Graphic Continued

5.1 Parametric Plots


We can use the command ezplot to graph a parametric curve as well. For example, to graph
a circle x = cos t, y = sin t for 0 ≤ t ≤ 2π, we have:
>> ezplot('cos(t)', 'sin(t)', [0, 2*pi])

5.2 Special effects

You can change the title above the graph by using the command title. For example,
>> ezplot('x^2+2*x+1')
>> title 'a parabola'
You can add labels to x and y axis by typing xlabel and ylabel.

You can add text to your picture. For example, suppose that we want to add a little arrow
pointing to the minimum of this function, the point (-1, 0). We can do that with the command:
>> text(-1, 0, '(-1, 0) \leftarrow a minimum')

You can produce an animated picture with comet. This command produces a parametric plot
of a curve just as ezplot does, except that you can see the curve being traced out in time. For
example, we can trace the motion on the circle x = cos t, y = sin t by using
>> t = 0:0.1:4*pi; (meaning that t has values between 0 and 4π, 0.1 step away from each
other)
>> comet(cos(t), sin(t))

If the point is moving too fast, you can reparameterize the same circle as follows
>> t = 0:0.1:200*pi;
>> comet(cos(t/50), sin(t/50))

Practice problems 7
1. Graph the parametric curve x = t cos t, y = t sin t for 0 ≤ t ≤ 10π.
2. Trace the curve x = t cos (t/20), y = t sin (t/20) in time for 0 ≤ t ≤ 200π.

Solutions
1. syms t ezplot(t*cos(t), t*sin(t), [0, 10*pi]) 2. t = 0:0.5:200*pi;
comet(t*cos(t/20), t*sin(t/20))

6. Differential Equations

6.1 Basics of Differential Equations

We can use Matlab to solve differential equations. The command for finding the symbolic
solution is dsolve. For that command, the derivative of the function y is represented by Dy.
The command has the following form:

dsolve('equation', 'independent variable')

For example, suppose that we want to find the general solution of the equation x y' - y = 1.
You can do that by:
>> dsolve('x*Dy-y=1', 'x')
ans = -1+x*C1
This means that the solution is any function of the form y = -1+ cx, where c is any constant.

If we have the initial condition, we can get the particular solution on the following way:

dsolve('equation', 'initial condition', 'independent variable')

For example, to solve x y' - y = 1 with the initial condition y(1)=5, we can use:
>> dsolve('x*Dy-y=1', 'y(1)=5', 'x')
ans = -1+6*x
To graph this solution, we can simply type:
>> ezplot(ans)

We can graph a couple of different solutions on the same chart by using hold on and hold off
commands. For example, to graph the solutions of differential equation y'=0.1y(1-y) for
several different initial conditions, y(0)=0.1, y(0)=0.3 y(0)=0.5 and y(0)=0.7, first find the four
particular solutions, then graph them using hold on and hold off commands. To observe the
limiting behavior of the solution, in examples below the interval [0, 100] is used as the
domain.

Finding the four solutions:


>> dsolve('Dy=0.1*y*(1-y)','y(0)=0.1', 'x')
ans = 1/(1+9*exp(-1/10*x))
>> dsolve('Dy=0.1*y*(1-y)','y(0)=0.3' 'x')
ans = 1/(1+7/3*exp(-1/10*x))
>> dsolve('Dy=0.1*y*(1-y)','y(0)=0.5' 'x')
ans = 1/(1+exp(-1/10*x))
>> dsolve('Dy=0.1*y*(1-y)','y(0)=0.7' 'x')
ans = 1/(1+3/7*exp(-1/10*x))
Graphing the fours solutions:
>> ezplot('1/(1+9*exp(-1/10*x))',[0,100])
>> hold on
>> ezplot('1/(1+7/3*exp(-1/10*x))',[0,100])
>> ezplot('1/(1+exp(-1/10*x))',[0,100])
>> ezplot('1/(1+3/7*exp(-1/10*x))',[0,100])
>> hold off
>>axis([0,100,0,1])

6.2 Second Order Equations

The second order linear equations can be solved similarly as the first order differential
equations by using dsolve or ode45. For the command dsolve, recall that we represent the
first derivative of the function y with Dy. The second derivative of y is represented with D2y.
For example, the command for solving y''-3y'+2y = sin x.
>> dsolve('D2y-3*Dy+2*y=sin(x)', 'x')
ans = 3/10*cos(x)+1/10*sin(x)+C1*exp(x)+C2*exp(2*x)

If we have the initial conditions y(0) = 10, y'(0)=-10, we would have:


>> dsolve('D2y-3*Dy+2*y=sin(x)', 'y(0)=1', 'Dy(0)=-1', 'x')
ans = 3/10*cos(x)+1/10*sin(x)+5/2*exp(x)-9/5*exp(2*x)

Practice problems 8
1. a) Find the general solution of the differential equation y'-2y=6x.
b) Find the particular solution with initial condition y(0)=3.
c) Plot the particular solution on interval [0,2] and find the value of this solution at 2.
2. Graph the solutions of the differential equation y' = x+y for the y-values of the initial
condition y(0) taking integer values between -2 and 4.
3. Find the general solution of the equation y''-4 y'+4 y= e x +x². Then find the particular
solution with the initial values y(0)=8, y'(0)=3.

Solutions.
1. a) General solution: dsolve('Dy-2*y=6*x', 'x') ans= (-6x-3)/2+C1*exp(2x)
b) Paticular solution: dsolve('Dy-2*y=6*x', 'y(0)=3', 'x') ans= (-6x-3+9*exp(2x))/2
c) syms x ezplot((-6x-3+9*exp(2x))/2, [0 2]) To find the value at 2: f=inline((-6x-
3+9*exp(2x))/2, x) f(2) ans=238.19
2. First, find the seven particular solutions of y' = x+y with initial conditions y(0)=-2,-1,0,1,2,3,4.
s1 = dsolve('Dy = x+y', 'y(0)=­2', 'x')
s2 = dsolve('Dy = x+y', 'y(0)=-1', 'x') ... etc ..
s7 = dsolve('Dy = x+y', 'y(0)=4', 'x')
Then plot them on the same graph.
hold on
ezplot(s1)
ezplot(s2) ...etc...
ezplot(s7)
hold off

3. >> dsolve('D2y-4*Dy+4*y=exp(x)+x^2',
'x')
ans = exp(x)
+1/4*x^2+1/2*x+3/8+C1*exp(2*x)
+C2*exp(2*x)*x
>> dsolve('D2y-4*Dy+4*y=exp(x)
+x^2','y(0)=8', 'Dy(0)=3', 'x')
ans = exp(x)
+1/4*x^2+1/2*x+3/8+53/8*exp(2*x)-
47/4*exp(2*x)*x

You might also like