3 views

Uploaded by Hussein Dhaini

Matlab course

- Mat Lab Notes
- Anjali
- 1 matricni operacii
- Math2081 2010C Midterm Sol
- R Short Tutorial
- IEEE paper
- Linear Algebra Cheat Sheet
- Zeros and Poles of Matrix Transfer Functions and Their Dynamical Interpretation
- Lecture4-MatricesIntro
- IIpuc Design&Bluprntqp Math
- 4.0 Matrices
- Quantitative Methods for Economists
- matlab
- Arrays in Matlab
- FACE AND PALMPRINT RECOGNITION SYSTEM
- Example of Input-Output Analysis
- understanding
- Mat Lab Hand Out
- Feedback — Quiz Week 2o
- Matlab Tutorial

You are on page 1of 33

By

Dr. Ahmad Salamah

Contents

Overview on Matlab

Basic Matrix Operations

2D Plotting Commands

Important Symbolic Toolbox Commands

Revision Problems

In this lab you will learn how to use MATLAB to create and operate on numeric and symbolic

variables but mainly on matrices. The commands needed to do this are short and easy to remember

MATLAB Environment

The main item in the MATLAB environment is the MATLAB Command Window . In this window,

the user is prompt to enter his commands. Commands are executed interactively, one by one. Another

important item is the MATLAB Editor, where the user can write a group of commands to be later

executed in batch mode. Other items include the Workspace Window, which lists a record of current

variables in use.

It is noteworthy that MATLAB is case sensitive, that is two variables I and i correspond to different

variables. Variable names must begin with a letter.

Facilities provided by MATLAB are grouped into Toolboxes, which offer advanced functions in a

specific field. For example, the MATLAB symbolic toolbox extends the computational power of

MATLAB to the manipulation of symbols.

Useful Commands

The following set of commands are simple useful commands:

(1) The help command: It is written as

>> help

(2) The clear console command: It is written as

>> clc

(3) The clear memory command: It is written as

>> clear

Useful Hint

The keyboard arrows may be used to move between previously written commands.

Numeric Variables

To define numeric variables just type the name of the variable and assign it its numeric value.

>> a = 9;

This command sets the value of the variable a to 9. However, no output is generated on the screen, this

is because of the semicolon at the end of the command.

>> a= 9

a =

9

Basic Operators

+ Addition

- Subtraction

* Multiplication

/ Division

^ Exponentiation

A Transpose of the matrix A

Precedence of Operators

To evaluate numeric expressions, MATLAB executes the mathematical operations in the order

indicated below:

1.

2.

3.

4.

Parentheses

Exponentiation

Multiplication and Divisions

Addition and Subtraction

Example(1)

>> (2*5)^2+9

ans =

109

Predefined Constants

Among the predefined constants in MATLAB are the values of written as pi and the value of

1 written as i or j .

Built-in Functions

In what follows a list of some of the most commonly used arithmetic MATLAB built-in functions is

presented.

sin(x), cos(x), tan(x) : return the sine, cosine and tangent of the angle x given in radians.

asin(x), acos(x), atan(x) : represent the inverse trigonometric functions. The result is in radians.

exp(x) : returns the value of e x

log(x) : returns the value of ln x

Matrix Variables

MATLAB is especially efficient in matrices manipulation. Matrix variables are defined as follows:

A space or a comma separates the columns (the elements within a row)

A semicolon separates rows.

Example(2)

1 4 0

For example, the matrix A = 8 2 1 is defined by using the following command:

5 7 1

>> A = [ 1 4 0; -8 2 1; 5 7 1];

To index the elements of a matrix, circular brackets are used instead of the square brackets, the row

no. followed by the column no.:

>> a = A(2,1)

a=

-8

The above command retrieves the element in matrix A located in the second row and the first

column.

Plotting Data Points

MATLAB has powerful visualization and graphical tools. One useful tool is the plot(x,y) function.

This function takes as input two vectors x and y of the same length representing the x- and ycoordinates of a given set of data points, respectively. The data points are connected using straight

lines. To obtain smooth curves, a large data set is required.

Example(3)

Define the vectors representing the given data points, the use the function plot(x,y).

>> x = [ 1 2 3 4];

>> y= [1 4 9 16];

>> plot(x,y)

20

15

10

0

1.0

1.5

2.0

2.5

3.0

3.5

4.0

Among the plotting options supported by the plot(x,y) function is specifying a marker (*, +,) and a

line style (solid, dotted,..). The marker as its name suggests marks data points. If a marker is specified

and no line style is set, then this is used to plot the data points with no connections.

>> plot(x,y,*)

20

15

10

0

1.0

1.5

2.0

2.5

3.0

3.5

4.0

Symbolic Variables

The symbolic toolbox enables MATLAB to manipulate symbols as well as numeric variables. To

define a set of symbolic variables the following command is used.

>> syms x y;

Hence, symbolic expressions may be defined in terms of these symbolic variables. Substitution of

symbolic variables, differentiation, evaluation of limits, evaluation of definite and indefinite integrals

and many other symbolic tools are supported in MATLAB. Consider the following example.

>> syms x;

>> y = x^3 + 1;

>> subs(y,x,3)

ans =

28

In the above example, the command subs(y,x,3) is used. The first argument is the expression. The

second argument is the variable to be substituted and the third argument is the value to be substituted

in the expression in place of the symbol.

Homework (1)

This session is a collection of exercises on the previous session.

1. Use MATLAB, to evaluate the following expressions.

2^3+4, sin(pi), 5/10^2+3, (2*3)^2*(6+7)

0 1 2

1 3 1

2. Define the matrices A =

and B =

5 1 4

0 2 5

AB t + BAt + I 2 after writing it in the corresponding MATLAB syntax.

3. Use MATLAB to plot the following set of data points in a scattered manner: (1,2), (2,4), (3,6),

(4,8).

4. Plot the set of points in the previous problem, but this time connected. Comment on the result.

5. Define the symbolic variable x and use a suitable command to evaluate the symbolically

defined expression e x sin x at x =

The underlying data structure in MATLAB is a multi-dimensional array (e.g., scalar, vector, or

matrix). A column vector is an m-by-1 matrix, a row vector is a 1-by-n matrix and a scalar is a 1-by-1

matrix The mathematical operations defined on matrices are the subject of linear algebra.

(1) Entering Matrices

Load matrices from external data files.

Generate matrices using built-in functions.

Create matrices with your own functions in M-files.

Use a semicolon, ; , or press Enter key to indicate the end of each row.

Surround the entire list of elements with square brackets, [ ].

Examples

>> A = [1

3; 4

6]

A =

1 2 3

4 5 6

>> load <filename>

In the load command, you just specify the name of the data file to be loaded. Before using the load

command, use the save command to first create the data file.

MATLAB built-in functions could be used to generate some special matrices. The following list

includes useful ones.

>> A=zeros(2,2)

A =

0

0

0

0

ones(m,n): generates an m n matrix with all its elements equal to one.

>> B=ones(3,2)

B =

1

1

1

1

1

1

The Identity Matrix: Generally accepted mathematical notation uses the capital letter I to

denote identity matrices, matrices of various sizes with ones on the main diagonal and zeros

elsewhere. These matrices have the property that AI = A and IA = A whenever the dimensions

are compatible. In MATLAB the function is eye(m,n), which returns an m-by-n rectangular

identity matrix and eye(n) returns an n-by-n square identity matrix.

>> C=eye(3)

C =

1

0

0

0

1

0

0

0

1

Matlab has many types of matrices which are built into the system. An m-by-n matrix with

random entries is produced by typing rand(m,n)

>> r=rand(2,3)

r =

0.47

0.85

0.42

0.53

0.20

0.67

>> help rand

(2) Addition and Subtraction

Addition and subtraction of matrices is defined just as it is for arrays, element-by-element. Addition

and subtraction require both matrices to have the same dimension, or one of them be a scalar. If the

dimensions are incompatible, an error results.

>> A=eye(2);

>> C=ones(3,2);

>> X = A + C

Error using ==> +

Matrix dimensions must agree.

>> v = [ 1 2 3; 0 9 8];

>> s = [ 0 9 2; 1 -9 7];

>> w = v + s

w =

1 11 5

1 0 15

Scalar Addition

>> p = A + 2

p =

3 2

2 3

notice that adding a scalar number to a matrix, adds this number to each of the elements of the matrix.

simultaneous linear equations. The matrix product C = AB is defined when the column dimension of A

is equal to the row dimension of B, or when one of them is a scalar. If A is m-by-p and B is p-by-n,

their product C is m-by-n. MATLAB uses a single asterisk to denote matrix multiplication. A matrix

can be multiplied on the right by a column vector and on the left by a row vector. Rectangular matrix

multiplications must satisfy the dimension compatibility conditions. It is noteworthy that matrix

multiplication is not a commutative operation.

>> A = [ 1 5; 9 0];

>> C = [1 2 3; 7 0 -1];

>> X = A*C

X =

36 2 -2

9 18 27

>> Y = C*A

Error using ==> *

Inner matrix dimensions must agree.

Anything can be multiplied by a scalar.

>> s = 7;

>> w = s*A

w=

7

35

45

0

(4) Transpose Operation

For real matrices, the transpose operation interchanges aij and aji. MATLAB uses the apostrophe (or

single quote) to denote transpose

>> B = [ 8 1 6; 1 5 9; 6 7 2];

>> X = B'

X =

8 1 6

1 5 7

6 9 2

>> v = [ 2 0 -1];

x = v'

x =

2

0

-1

If x and y are both real column vectors, the product x*y is not defined, but the two products x*y

and y*x are the same scalar.

(6) Determinants and Matrix Inversion

If A is square and nonsingular, the equations AX = I and XA = I have the same solution, X. This

1

solution is called the inverse of A, which is denoted by A , and is computed by the function

inv(A). It is noteworthy that a matrix is non-singular if its determinant is non-zero. The function

det(A) computes the determinant of a square matrix A.

>> A = [1 1 1 ; 1 2 3; 1 3 6];

>> d = det(A)

d =

1

>> X = inv(A)

X =

3 3 1

3 5 2

1 2 1

(7) Matrix Powers

If A is a square matrix and p is a positive integer, then A^p multiplies A by itself p times.

>> A = [ 1 1 1 ; 1 2 3; 1 3 6];

>> X = A^2

X =

3 6 10

6 14 25

10 25 46

>> Y = A^(3)

Y =

145 -207 81

-207 298 -117

First write the system of linear equations in matrix format: Ax=b where A is the coefficients matrix,

x is the vector of unknowns and b is the vector of free terms. When A is a square invertible, write

>>

x = inv(A) * b

>> x = A\B

(9) The Colon Operator

The colon, :, is one of MATLABs most important operators. It occurs in several different forms. For

example, the expression 1:10 is a row vector containing the integers from 1 to 10

>> x = 1 : 10

x =

1 2 3 4 5 6 7 8 9 10

To obtain non unit spacing, specify an increment. For example, the expression 100:7:50 yields the

sequence (100, 93, 86, 79, 72, 65, 58, 51) and the expression 0:pi/4:pi yields the sequence (0, 0.7854,

1.5708, 2.3562, 3.1416).

The element in row i and column j of A is denoted by A(i,j). For example, A(2,4) is the number

in the second row and fourth column.

>> A = [ 1:2:7; 2:-1:-1]

A=

1 3 5 7

2 1 0 -1

>> b = A(2,4)

b=

-1

It is also possible to refer to the elements of a matrix with a single subscript, A(k). This is the usual

way of referencing row and column vectors. But it can also apply to a fully two-dimensional matrix, in

which case the array is regarded as one long column vector formed from the columns of the original

matrix. So, for our matrix A, A(5) is another way of referring to the value stored in A(1,3). If you try

to use the value of an element outside of the matrix, it results in an error.

>> t = A(4,5)

Index exceeds matrix dimensions.

Subscript expressions involving colons refer to portions of a matrix. A(1:k,j) is the first k elements

of the jth column of A. The colon by itself refers to all the elements in a row or column of a matrix

and the keyword

end refers to the last row or column.

>> A(:,end)

ans =

7

-1

>>x(3) % 3rd element of the array

>>y(2:4) % 2nd till the 4th elements of the array

>>x(4:end) % starting from the 4th element of the array till the end

>>y(3:-1:1) % 3rd,2nd,1st element of the array

>>x(1:2:6) % 1st,3rd,5th element of the array

>>y([4 1 5 ])% 4th ,1st,5th element of the array in that order

>>A(1,[2 4])

ans =

3

You can delete rows and columns from a matrix using just a pair of square brackets. Start with

>> X = A;

>> X(:,2) = []

This changes X to

X =

1 5 7

2 0 -1

>> X(2,:) = [ 2 5 7];

(12) Concatenation

Concatenation is the process of joining small matrices to make bigger ones. In fact, you made your

first matrix by concatenating its individual elements. The pair of square brackets, [], is the

concatenation operator. For example, consider the following operations.

>> r = [ 0 8 3 ; 9 7 4; 0 -1 -2];

>> b = [ 1 2 3];

>> s = [ r, b]

s =

0 8 3

1

9 7 4

2

0 -1 -2 3

>> q = [r ; b]

q =

0 8 3

9 7 4

0 -1 -2

1 2 3

>> A=zeros(2,2);

>> B=ones(3,2);

>> C=[ [A;B], [B+5;A-7] ]

C =

0

0

6

6

0

0

6

6

1

1

6

6

1

1

-7

-7

1

1

-7

-7

(13) Element-by-Element Operations

Operators preceded by a dot (e.g. .^), refer to the fact that the operation is to be carried out elementby-element. For example,

>> A = [ 1:2:7; 2:-3:-7]

>> X = A.^2

X =

1 9 25 49

4 1 16 49

>> Y = 1./A

Y =

1

0.1111 0.04

0.0204

0.25

1

0.0625 0.0204

(14) Some Useful Built-in Array Functions

The following elementary arithmetic functions by default operate on individual matrix elements:

Trigonometric functions. (e.g. sin(x), cos(x),..)

The Exponential function (exp(x))

The Logarithmic function (log(x),)

The square root function (sqrt(x))

and many others.

>> A = [ pi 0; pi/4 pi/3];

>> C = cos(A)

C =

-1

1

0.7071 0.5

>> B = [ 9 16 25, 1 4 9];

>> c = sqrt(B)

c =

3 4 5

1 2 3

sum(M): returns the sum of individual columns in the matrix M in a row vector. If M is a

vector, it returns the sum of its elements.

max(M): It returns the maximum element of the individual columns in the matrix M in a row

vector. If M is a vector, it returns the maximum of its elements

>> S = sum(B)

S=

10

20 34

The length(X) function returns the number of elements in the vector X, whereas the function size(M)

returns the number of rows and columns of the input matrix M, respectively.

>> [ m n] = size(B)

m =

2

n =

3

Homework (2)

This session is an exercise on the previous two sessions.

1 2

6 9

9 3

1 1

1) Given the following matrices: A=

, B=

, C=

, D=

, evaluate the

6 8

1 3

5 2

1 1

following expressions after writing them in MATLAB syntax:

a) 5A+B-3C

b) A B 1 + C 1

c) At+5D

d) |A| |B| / |C|

e) Compare |A||B| and |AB|

2) Try entering the following matrices: the matrices

a) [eye(2);zeros(2)]

b) [eye(2);zeros(3)]

c) [eye(2),ones(2,3)]

Did any of the last three examples produce error messages? What is the problem?

3) Given A=[1 6 8 19 7;5 7 4 11 0;13 6 9 8 10;5 9 7 4 12;6 5 15 6 3 ]. Find its inverse and

calculate its determinant.

2

1

4) Enter the matrix A=

, find the inverse of A? what did you notice? find the determinant of

1 2

the matrix A? what is this matrix called?

5) Solve the systems of equations:

a) x1 + x2 = 2, x1 - x2 = 0

b) 2 x1 - x2 - x3 = 1, x1 + x2 + 2x3 = -4, 3 x1 - 3x2 -4x3 = 6

c) 3 x1- 2x2+ x3 = 1, x2 - 2x3 = 2, x1 + 0.5 x2 - 1.5 x3 = 2

6) Use MATLAB to evaluate the following functions at x=0, / 2, in one step:

a) cos(x)

b) x cos(x)

c) ex sinx

7) Enter a matrix A whose first row is 1 2 3 4 5 and the second row is the same numbers in a reverse

order using the : operator

8) Given x=[1 2 3] and y=[9 10 11]t , evaluate the sum of the corresponding elements of the x and y

vectors.

6 0 1

9) Given the matrix M =

, write suitable MATLAB commands to construct the following

2 3 5

submatrices:

b) The last row of M.

c) Same as M, but replace the second column in M by the vector v = [ 1 -1]t

d) The first two elements in the first row in M.

e) Append the vector r = [ 4 5 0] to the matrix M as a last row.

10) Find the sum of all the elements in the matrix M in the previous problem using suitable MATLAB

commands. Find also the number of its elements.

11) Find the average of the following data values: x=7, y=10, z=15 using the sum command.

2D Plotting

MATLAB has extensive facilities for displaying vectors and matrices as graphs, as well as

annotating and printing these graphs. This session describes a few of the most important graphics

functions and provides examples of some typical applications. These functions will be used to aid you

visualize previously studied elementary functions in calculus as well as conic sections.

Creating a Plot

Two important graphics functions supported in MATLAB are the fplot and plot functions.

The fplot function is used to plot a single variable function in a specified range, as the following

example illustrates.

>>fplot(sin(x),[-pi,pi])

The result of executing this command is that the following figure appears in a separate figure

window.

1

0.5

-0.5

-1

-2

As illustrated in the previous example, the first argument is the function we need to plot defined in

MATLAB syntax. The second argument is the range of the independent variable. The range for the

dependent variable may also be specified.

fplot has other optional arguments. The most important one is the plotting options argument. This

argument is a 1-, 2-, or 3-character string (delineated by single quotation marks) constructed from a

color, a linestyle, and a marker.

Color strings are 'c', 'm', 'y', 'r', 'g', 'b', 'w', and 'k'. These correspond to cyan, magenta, yellow,

red, green, blue, white, and black.

Linestyle strings are '' for solid, ' ' for dashed, ':' for dotted, '.' For dash-dot, and 'none' for

no line.

The most common marker types include '+', 'o', '*', and 'x'.

The plot function has different forms, depending on the input arguments:

1. If y is a vector, plot(y) produces a piecewise linear graph of the elements of y versus the index

of the elements of y.

2.If you specify two vectors as arguments, plot(x,y) produces a graph of y versus x, that is, the

vector x includes the x-coordinates and the vector y includes the corresponding y-coordinates for the

points on the curve we plot.

In general, the plot function uses a straight line to join the points in the input vectors. Of course, to

draw a straight line it is sufficient to specify two points on it.

3.0

2.5

2.0

1.5

1.0

0.5

0.0

-0.5

-1.0

-1.5

-2.0

1.0

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

1.9

2.0

To obtain smooth curves a large number of points is needed. For example, to plot the value of the

sine function from zero to 0 to , type:

>>t=0:pi/100:2*pi; % a vector containing 200 points

>>y=sin(t);

>>plot(t,y)

1.0

0.8

0.6

0.4

0.2

0.0

-0.2

-0.4

-0.6

-0.8

-1.0

0

The plot function accepts a third optional argument which is a string specifying the color, line

style and marker to be used in the plot, just as that for the fplot function. For example, consider the

following the statements:

>> t=0:0.5:2*pi;

>> y=cos(t)

>> plot(t,y,':*')

The final statement plots the cosine function using a dotted line and places asterisk sign markers at

each data point, as the following figure illustrates.

1.0

0.8

0.6

0.4

0.2

0.0

-0.2

-0.4

-0.6

-0.8

-1.0

0

Notice that reducing the number of points in the vector t , by increasing the step size, produces less

smooth curves.

If you specify a marker type but not a line style, MATLAB draws only the marker. Consider the

following example.

>> x = [ 1 2 3 4];

>> y= [1 4 9 16];

>> plot(x,y,*)

20

15

10

0

1.0

>> plot(x,y,*:)

produces the following curve

1.5

2.0

2.5

3.0

3.5

4.0

20

15

10

0

1.0

1.5

2.0

2.5

3.0

3.5

4.0

Notice that the points in the vectors x, y belong to a parabola. Increasing the resolution of the above

2

plotting command, we obtain the standard curve of the parabola y = x , whose vertex is the origin.

>> x= -2:0.1:2;

>> y= x.^2;

>> plot(x,y,*:)

4.0

3.5

3.0

2.5

2.0

1.5

1.0

0.5

0.0

-2.0

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

Controlling Axes

The axis function has a number of options for customizing the scaling, orientation, and aspect ratio

of plots. Ordinarily, MATLAB finds the maxima and minima of the data and chooses an appropriate

plot box and axes labeling. The axis function overrides the default by setting custom axis limits,

axis([xmin xmax ymin ymax]). The axis function also accepts a number of keywords for

axes control. For example,

axis square: makes the entire x-axes and y-axes the same length

axis equal: makes the individual tick mark increments on the x- and y-axes the same

length

axis auto: returns the axis scaling to its default, automatic mode.

axis on: turns on axis labeling and tick marks.

axis off: turns off axis labeling and tick marks.

The statement grid on turns the grid lines on and grid off turns grid lines off.

Consider the following example of plotting a semicircle whose centre is the origin and radius equal

to 2.

>>theta=0:0.1:2*pi;

>> x= 2 * cos(theta);

>> y= 2 * sin(theta);

>>plot(x,y)

2.0

1.5

1.0

0.5

0.0

-0.5

-1.0

-1.5

-2.0

-2.0

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

Here the circle appears somehow like an ellipse. Adding the command

>> axis square

2.0

1.5

1.0

0.5

0.0

-0.5

-1.0

-1.5

-2.0

-2

-1

It is clear that this option provides a better view for circular shapes.

>>x=-2:0.1:2;

>>y=-x.^2;

>>plot(x,y)

>>grid on

2.0

0.0

-0.5

-1.0

-1.5

-2.0

-2.5

-3.0

-3.5

-4.0

-2.0

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

Again, the above curve is a parabola but this time it is inverted, oriented downwards.

Axis Labels and Titles

The xlabel, ylabel, and zlabel functions add x-, y-, and z-axis labels. The title function adds a title at

the top of the figure and the text function inserts text anywhere in the figure. A subset of Tex notation

produces Greek letters, mathematical symbols, and alternate fonts. The following example uses \leq

for , \pi for , and \it for italic font.

>>

>>

>>

>>

>>

>>

>>

>>

t = pi:pi/100:pi;

y = sin(t);

plot(t,y)

axis([pi pi 1 1])

xlabel('\pi \leq {\itt} \leq \pi')

ylabel('sin(t)')

title('Graph of the sine function')

text(1,1/3,'\it{Note the odd symmetry.}')

It is noteworthy that editing the curve and axes properties may be done from within the figure

window.

Adding Plots to an Existing Graph

The hold command allows you to add plots to an existing graph. When you type hold on MATLAB

does not remove the existing graph; it adds the new data to the current graph, rescaling if necessary.

>>

>>

>>

>>

fplot(exp(-x),[ 0 3]);

hold on

fplot(exp(x),[-3 0]);

axis([-3 3 0 1]);

The hold on command causes the positive exponential function plot to be combined with the negative

exponential function plot in one figure.

1.0

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0.0

-3

-2

-1

It is worth mentioning that you should toggle the hold on flag when you finish up with the figure.

A useful command when dealing with multiple plots in one figure is the legend command. Legend

adds a box containing labels for the curves in the figure.

>>

>>

>>

>>

>>

>>

>>

>>

x=[0:0.2:2*pi];

y=sin(x);

plot(x,y,b*-)

hold on

z=cos(x);

plot(x,z,ro:)

grid on

legend('sin(x)','cos(x)')

Another way to create multiple plots in one figure. The command plot(x,y1,x,y2), plots x

versus y1 and x versus y2 on one set of axes. Notice, you must enter x twice, once for each plot. For

example, the following statements plot two related functions of x, each curve in a separate

distinguishing line style:

>>

>>

>>

>>

>>

x=-1:0.1:1;

y=sinh(x);

y1=cosh(x);

plot(x,y,':',x,y1,'-')

axis square

2.0

1.5

1.0

0.5

0.0

-0.5

-1.0

-1.5

-2.0

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

Subplots

The subplot function allows you to display multiple plots in the same window or print them on the

same piece of paper. Typing subplot(m,n,p)breaks the figure window into an m-by-n matrix of

small subplots and selects the pth subplot for the current plot. The plots are numbered along first the

top row of the figure window, then the second row, and so on. Consider the following example.

>>x=-3:0.1:3;

>>y=exp(x);

>>y1=exp(-x);

>>y2=cosh(x);

>>subplot(1,2,1)

>>plot(x,y,:)

>>hold on

>>plot(x,y1,-)

>>subplot(1,2,2)

>>plot(x,y2)

25

11

10

20

15

10

1

-3

-2

-1

-3

-2

-1

Figure Windows

The plot function automatically opens a new figure window if there are no figure windows already

on the screen. If a figure window exists, plot uses that window by default. To open a new figure

window and make it the current figure, type figure. To make an existing figure window the current

figure, type figure(n) where n is the number in the figure title bar. The results of subsequent graphics

commands are displayed in this window.

Other Useful Graphics Commands

Function

plot3

loglog

semilogx

semilogy

plotyy

gtext

clf

ginput

Used to

Create a graph for a 3D data representing a space curve

Create a graph with logarithmic scales for both axes

Create a graph with logarithmic scale for the x axis only

Create a graph with logarithmic scale for the y axis only

Create a graph with y-tick labels on the left and right side

Position text using the mouse

Clears the figure

Gather data by clicking on points in the plot

Homework (3)

1-Plot the square whose sides are x= -1, x= 1, y= -1 and y =1.

2-Plot the circle whose centre is the point (-1,1) and radius equal to 1. Use suitable axes options.

3- Plot the parabola defined by the equation x2 - 6x - 4y + 1= 0 in the interval [-4,8]. Identify its

vertex. Mark it on the figure. Add a grid for better visualization.

4-Plot the following data set as scattered points

x

0

2

3

5

y

3

1

1

2

On the same figure, plot the line 2.846 1.038 x in the interval [0,5]. Add labels to both axes as

well as a title to the figure.

5-Plot the ellipse whose centre is the origin, major axis length is 4 and minor axis length is 2.

6-Plot both sin2x and sinx in the interval [0,2 ] in one figure. Use distinguishing colors and line

styles. Add a legend. (Try using a single plot command).

7-Plot sin 1 x and cos 1 x in the interval [1,1] as two adjacent subplots.

8-Plot the graph of the function f ( x) = e x sin x in the interval [ , ] . Try using both the fplot and

plot commands.

The symbolic math toolbox supplements MATLAB numeric and graphical facilities with several other

types of mathematical computation, some of which are summarized in following table.

Facility

Calculus

Linear Algebra

Simplification

Solution of Equations

Covers

Differentiation, integration, limits, summation and Taylor

series

Inverses, determinants, eigen values

Methods of simplifying algebraic expressions

Symbolic and numerical solutions to algebraic and

differential equations

Symbolic Objects

The Symbolic Math Toolbox defines a new MATLAB data type called a symbolic object. The

Symbolic Math Toolbox uses symbolic objects to represent symbolic variables, expressions, and

matrices. The following example illustrates the difference between a standard MATLAB data type,

such as double, and the corresponding symbolic object. The MATLAB command sqrt(2)returns a

floating-point decimal number: 1.4142. On the other hand, if you convert 2 to a symbolic object using

the sym command, and then take its square root by entering a = sqrt(sym(2))the result is a

=2^(1/2). MATLAB gives the result 2^(1/2), which means 21/2, using symbolic notation for

the square root operation, without actually calculating a numerical value. You can always obtain the

numerical value of a symbolic object with the double command: double(a) which returns the

numeric value 1.4142

When you create a fraction involving symbolic objects, MATLAB records the numerator and

denominator. For example:

>> sym(2)/sym(5)

ans =

2/5

MATLAB performs arithmetic on symbolic objects differently than it does on standard data types. If

you add two fractions that are of data type double, MATLAB gives the answer as a decimal fraction.

For example:

>> 2/5 + 1/3

ans =

0.7333

If you add the same fractions as symbolic objects, MATLAB finds their common denominator and

combines them by the usual procedure for adding rational numbers:

>> sym(2)/sym(5) + sym(1)/sym(3)

ans =

11/15

Creating Symbolic Variables and Expressions

The sym command lets you construct symbolic variables and expressions. For example, the

commands

>> x = sym('x');

>> a = sym('alpha');

create a symbolic variable x that prints as x and a symbolic variable a that prints as alpha. To create

multiple symbolic variables, for example the symbolic variables (a,b,c,x), use the syms

command.

>>syms a b c x;

>> syms x y z;

>> r = sqrt(x^2 + y^2 + z^2);

>> t = atan(y/x);

>> f = sin(x*y)/(x*y);

which generates the symbolic expressions r, t, and f. You can use diff, int, subs, and other

Symbolic Math Toolbox functions to manipulate such expressions.

The following example illustrates how to define a rational function. To create the function, enter the

following commands:

>> syms x

>> num = 3*x^2 + 6*x -1;

>> denom = x^2 + x - 3;

>> f = num/denom

This returns

f =

(3*x^2+6*x-1)/(x^2+x-3)

To create a symbolic expression that is a constant, you must use the sym command. For example, to

create the expression whose value is 5, enter

f = sym('5'). Note that the command f = 5

does not define f as a symbolic expression.

If you set a variable equal to a symbolic expression, and then apply the syms command to the

variable, MATLAB removes the previously defined expression from the variable. For example,

>> syms a b

>> f = a + b

returns

f =

a + b

If you then enter

>> syms f

>> f

MATLAB returns

f =

f

Now suppose you want to study the quadratic function ax2+bx+c= 0. One approach is to enter

the command

f = sym('a*x^2 + b*x + c')

which assigns the symbolic expression ax2+bx+c= 0 to the variable f. However, in this case, the

Symbolic Math Toolbox does not create variables corresponding to the terms of the expression

a,b,c,x. To perform symbolic math operations (e.g., integration, differentiation, substitution, etc.)

on f, you need to create the variables explicitly. A better alternative is to enter the command

>>syms a b c x

Then enter

f = sym('a*x^2 + b*x + c')

Simplifying Symbolic Expressions

The simplify function is a powerful, general purpose tool that applies a number of algebraic

identities involving sums, integral powers, square roots and other fractional powers, as well as a

number of functional identities involving trigonometric functions, exponential and logarithmic

functions .Here are some examples.

>> syms x;

>> f=x*(x*(x-6)+11)-6;

>> simplify(f)

ans=

x^3-6*x^2+11*x-6

>> f=(1-x^2)/(1-x);

>> simplify(f)

ans=

x+1

>> syms x y;

>> f=exp(x)*exp(y);

>> simplify(f)

ans=

exp(x+y)

There are several functions that simplify symbolic expressions other than the simplify function.

Here are three different symbolic expressions.

>> syms x

>> f = x^3-6*x^2+11*x-6

>> g = (x-1)*(x-2)*(x-3)

>> h = -6+(11+(-6+x)*x)*x

These expressions are three different representations of the same mathematical function, a cubic

polynomial in x. The Symbolic Math toolbox provides several functions, other than simplify, that

apply various algebraic and trigonometric identities to transform one representation of a function into

another, possibly simpler, representation. These functions include collect, expand, and factor.

If f is a polynomial with rational coefficients, the statement factor(f) expresses f as a product

of polynomials of lower degree with rational coefficients. If f cannot be factored over the rational

numbers, the result is f itself. Here are several examples.

>> factor(f)

ans=

(x-1)*(x-2)*(x-3)

>> factor(x^3-6*x^2+11*x-5)

ans=

x^3-6*x^2+11*x-5

>> factor(x^6+1)

ans=

(x^2+1)*(x^4-x^2+1)

Substitution of Symbolic Variables by Numeric Values

You can substitute a numerical value for a symbolic variable using the subs command. For

example, to substitute the value x = 2 in the symbolic expression,

>> f = 2*x^2 - 3*x + 1

enter the command

>> subs(f,2)

This returns f(2):

ans =

3

When your expression contains more than one variable, you can specify the variable for which you

want to make the substitution. For example, to substitute the value x = 3 in the symbolic expression,

>> syms x y;

>> f = x^2*y + 5*x*sqrt(y);

enter the command

subs(f, x, 3)

This returns

ans =

9*y+15*y^(1/2)

>> subs(f, y, 3)

ans =

3*x^2+5*x*3^(1/2)

If you do not specify a variable to substitute for, MATLAB chooses a default variable according to

the following rule. For one-letter variables, MATLAB chooses the letter closest to x in the alphabet. If

there are two letters equally close to x, MATLAB chooses the one that comes later in the alphabet. In

the preceding function, subs(f,3) returns the same answer as subs(f,x,3).

Basic Calculus Built-in Symbolic Math Toolbox Functions

calculus. In what follows some of these functions are described.

(1) Differentiation

To illustrate how to take derivatives using the Symbolic Math Toolbox, first create a symbolic

expression:

>> syms x

>> f = sin(5*x)

The command

>> diff(f)

differentiates f with respect to x:

ans =

5*cos(5*x)

As another example, let

>> g = exp(x)*cos(x)

and differentiate g:

>> diff(g)

ans =

exp(x)*cos(x)-exp(x)*sin(x)

To take the second derivative of g, enter

>> diff(g,2)

ans =

-2*exp(x)*sin(x)

You can get the same result by taking the derivative twice:

>> diff(diff(g))

ans =

-2*exp(x)*sin(x)

In this example, MATLAB automatically simplifies the answer. However, in some cases, MATLAB

might not simply an answer, in which case you can use the simplify command. Note that to take

the derivative of a constant, you must first define the constant as a symbolic expression. For example,

entering

>> c = sym('5');

>> diff(c)

returns

ans =

0

If you just enter

>> diff(5)

MATLAB returns

ans =

[]

because 5 is not a symbolic expression.

(2) Integration

diff(F) = f. That is, int(f) returns the indefinite integral or antiderivative of f (provided one

exists in closed form). Similar to differentiation, int(f,v)uses the symbolic object v as the variable

of integration, rather than the variable determined by findsym. Definite integration is also possible.

The commands int(f,a,b)and int(f,v,a,b)are used to find a symbolic expression for

b

f ( x) dx

and

a

Mathematical Operation

x n+1

n

=

x

dx

n +1

MATLAB Command

int(x^n) or int(x^n,x)

/2

sin 2 x dx = 1

int(sin(2*x),0,pi/2)

g = cos(at + b)

g (t ) dt = sin(at + b) / a

2

g=cos(a*t+b)

int(g) or int(g,t)

x dx = ln 2

int(1/x,1,2)

int(log(x)*sqrt(x),0,1)

1

1

x ln x dx = 4 / 9

A nice trick to find the partial fraction decomposition of a rational function is to use

diff(int(f(x)). The following example illustrates the idea.

>> syms s;

>> num = 3*s-1;

>> den = (s+1)*(s+2);

>> diff(int(num/den))

ans=

-4/(s+1)+7/(s+2)

Solving Algebraic Equations

x2, ... . If s is a symbolic expression, solve(s) attempts to find values of the symbolic variable in

s (as determined by findsym) for which s is zero. For example,

>> syms a b c x

>> s = a*x^2 + b*x + c;

>> solve(s)

uses the familiar quadratic formula to produce

ans =

[1/2/a*(-b+(b^2-4*a*c)^(1/2))]

[1/2/a*(-b-(b^2-4*a*c)^(1/2))]

This is a symbolic vector whose elements are the two solutions. If you want to solve for a specific

variable, you must specify that variable as an additional argument. For example, if you want to solve s

for b, use the command

>> b = solve(s,b)

which returns

b =

-(a*x^2+c)/x

Note that these examples assume equations of the form f(x)=0. If you need to solve equations of

the form f(x)=q(x), you must use quoted strings. In particular, the command

>> s = solve('cos(2*x)+sin(x)=1')

returns a vector with four solutions.

s =

[ 0]

[ pi]

[ 1/6*pi]

[ 5/6*pi]

Homework (4)

1- Differentiate the following function three times: f ( x) = x ln x and evaluate it at x = 1 .

2- Differentiate the following function once: f ( x) = tan 1 x and evaluate it at x = 1 . Put the result in

rational format.

3-Evaluate the following integrals using MATLAB:

dx

,

9 x

/2

dx

9 x

and

cos x

dx

1 + cos x

(i) x 2 x 2 = 0 (ii) cos 2 x + sin x = 1

5- Find the partial fractions decomposition for :

6- Factorize the following polynomials:

(i) x 4 2 x 3 + 2 x 2 2 x + 1 (ii) x 3 + 1

x

x 4x + 3

2

Revision problems

Homework (5)

1 2

1- For the matrix

, find:

5 4

a- its transpose

b- its determinant

c- add 2 to all its elements

d- replace its second row by [0 -1]

e- multiply it by its transpose

21

1

0

0

1 1 1

0 0 0 0 2 0 0

1 0 0 , 0 0 2 0

0 1 0 0 0 0 2

0 0 1

x y + z = 3,

x + 3y + z = 1,

x 3z = 2.

xi , xi 2 , xi yi .

y = x2

-1

y= - x2

-2

-3

-4

0.0

0.2

0.4

0.6

0.8

1.0

1.2

Figure 1

1.4

1.6

1.8

2.0

Figure 2

2.0

1.5

1.0

0.5

0.0

-0.5

-1.5

-1.0

-0.5

0.0

0.5

Figure 3

6- Factorize the following polynomial: x 4 1

7- Evaluate the first derivative for f ( x) = x sin x + 3 at x = / 2

3x 1

8- Find the partial fraction decomposition of

( x + 1)( x + 2)

1.0

1.5

- Mat Lab NotesUploaded bytiagohez
- AnjaliUploaded bymanoj
- 1 matricni operaciiUploaded byReal Mci
- Math2081 2010C Midterm SolUploaded byTriet Nguyen
- R Short TutorialUploaded byIda Yuni Fitri
- IEEE paperUploaded byThulasi Reddy
- Linear Algebra Cheat SheetUploaded byMiriam Quan
- Zeros and Poles of Matrix Transfer Functions and Their Dynamical InterpretationUploaded byAnonymous Tph9x741
- Lecture4-MatricesIntroUploaded byBegum Sener
- IIpuc Design&Bluprntqp MathUploaded byRanjan Prasad
- 4.0 MatricesUploaded byjuriah binti ibrahim
- Quantitative Methods for EconomistsUploaded byyula
- matlabUploaded byMunish Kumar Dogra
- Arrays in MatlabUploaded byvat007
- FACE AND PALMPRINT RECOGNITION SYSTEMUploaded byPrabhakarSingh
- Example of Input-Output AnalysisUploaded bymarioalex81
- understandingUploaded byTomas Aragon
- Mat Lab Hand OutUploaded bySurendra Singh
- Feedback — Quiz Week 2oUploaded byjcvoscrib
- Matlab TutorialUploaded bynityanandsharma
- CZ1102 Computing & Problem Solving Lecture 12Uploaded byCharmaine Chu
- Prabhat chowdhury.pdfUploaded byArkadebSengupta
- Final Matlab(Dsp Fyl) TOPUploaded byRajbir Saini Singh
- Lec12 13 ArraysUploaded byAyush Narayan
- MatricesUploaded byAmanda Arnachellum
- Vectors Ib MatlabUploaded byZack Obega
- Task 1.pdfUploaded bynaseeruddin800yahooc
- optimizationUploaded byasdas
- lecture-notes.pdfUploaded byZohaibAltafKhan
- Matrix OpsUploaded byrogwar

- StereochemistryUploaded bylazygem
- Nikon 80i service manualUploaded byAndrew Holmes
- Risk Assessment for South ParkUploaded by046150
- The Number of Colonies Allowable to countUploaded byadiazcalidad
- BBC - Ethics - Introduction to Ethics_ Ethics_ a General IntroductionUploaded byNitesh Wadhwani
- Rankuman Free Convetion (PERPINDAHAN PANAS)Uploaded byMichaelIrwinR
- Black Line Pro Program 020808Uploaded byDrshahril Zulkarnain
- Kia 1 ResendUploaded bynaseeb
- Introduction to Mathematics of General RelativityUploaded byimanarrovi
- FINAL2 ABBGroup Presentation2013 EnUploaded byAnonymous mNQq7oj
- Chapter 2013 Multivariate Statistical Analysis IUploaded byShiera Mae Labial Lange
- Gate Imp TopicsUploaded byAbhi Abhi
- BRAKE CODES.docxUploaded bycyber_nautica
- Strategy Advice to TimCook - AppleUploaded byVishal Garg
- 21Uploaded byShankar Singh
- GIS Based LivestockUploaded bySudharsananPRS
- 212570 ManualUploaded bypablonick
- Chichawatni Road - Kamalia ExchangeUploaded byraja_liaqat
- Lecture 1Uploaded byrmaroof_1
- ActionUploaded bySanti Dewi Setiawan
- Ab.pdfUploaded byabybez
- Practice Makes Perfect Intermediate English Reading and ComprehensionUploaded byarcadius
- Prob CalxElFinIng.docxUploaded byCaleb Harris
- HCV Extrahepatic manifestations.pdfUploaded bySharad Jha
- marapr2013[1]Uploaded byRicardo Huchiyama Takayama
- INTELLIswitch993 Instruction SheetUploaded bysegashark
- blueeyes-140731120825-phpapp02Uploaded bysan
- Temporal variaion in the foothills of lower Shiwaliks.Uploaded byRajan Bhatt, Ph.D (Soil Science)
- THE ILA-SPEAKING PEOPLES OF NORTHERN RHODESIAUploaded bydanckck
- English Saundaryalahari Stotras Meaning RemediesUploaded byraluru