Peter I. Kattan, PhD
Correspondence about this book may be sent to the author at one of the following two email addresses:
pkattan@alumni.lsu.edu
pkattan@tedata.net.jo
MATLAB for Beginners: A Gentle Approach, Revised Edition, written by Peter I. Kattan.
ISBN-13: 978-0-578-03642-7
All rights reserved. No part of this book may be copied or reproduced without written permission of the author or publisher.
© 2009 Peter I. Kattan
In Loving Memory of My Father
Petra Books
www.PetraBooks.com
This book is written for people who wish to learn MATLAB1 for the first time. The book is really designed for beginners and students. In addition, the book is suitable for students and researchers in various disciplines ranging from engineers and scientists to biologists and environmental scientists. The book is intended to be used as a first course in MATLAB in these areas. Students at both the undergraduate level and graduate level may benefit from this book. The material presented has been simplified to such a degree such that the book may also be used for students and teachers in high schools – at least for performing simple arithmetic and algebraic manipulations. One of the objectives of writing this book is to introduce MATLAB and its powerful and simple computational abilities to students in high schools.
The material presented increases gradually in difficulty from the first few chapters on simple arithmetic operations to the last two chapters on solving equations and an introduction to calculus. In particular, the material presented in this book culminates in Chapters 6 and 7 on vectors and matrices, respectively. There is no discussion of strings, character variables or logical operators in this book. The emphasis is on computational and symbolic aspects. In addition, the MATLAB Symbolic Math Toolbox2 is emphasized in this book. A section is added at the end of each chapter (except chapters 1 and 9) dealing with various aspects of algebraic and symbolic computations with the Symbolic Math Toolbox. In fact, the final chapter on calculus assumes entirely the use of this toolbox.
Chapter 1 provides an overview of MATLAB and may be skipped upon a first reading of the book. The actual material in sequence starts in Chapter 2 which deals with arithmetic operations. Variables are introduced in Chapter 3 followed by mathematical functions in Chapter 4. The important topic of complex numbers is covered in Chapter 5. This is followed by Chapters 6 and 7 on vectors and matrices, respectively, which provide the main core of the book. In fact, MATLAB stands for MATrix LABoratory – thus a long chapter is devoted to matrices and matrix computations. An introduction to programming using MATLAB is provided in Chapter 8. Plotting two-dimensional and three-dimensional graphs is covered in some detail in Chapter 9. Finally, the last two chapters (10 and 11) present solving equations and an introduction to calculus using MATLAB.
The material presented in this book has been tested with version 7 of MATLAB and should work with any prior or later versions. There are also over 230 exercises at the ends of chapters for students to practice. Detailed solutions to all the exercises are provided in the second half of the book. The material presented is very easy and simple to understand – written in a gentle manner. An extensive references list is also provided at the end of the book with references to books and numerous web links for more information. This book will definitely get you started in MATLAB. The references provided will guide you to other resources where you can get more information.
I would like to thank my family members for their help and continued support without which this book would not have been possible. In this edition, I am providing two email addresses for my readers to contact me - pkattan@alumni.lsu.edu and pkattan@tedata.net.jo.
August 2009
Peter I. Kattan
In this introductory chapter a short MATLAB tutorial is provided. This tutorial describes the basic MATLAB commands needed. More details about these commands will follow in subsequent chapters. Note that there are numerous free MATLAB tutorials on the internet – check references [1-28]. Also, you may want to consult many of the excellent books on the subject – check references [29-47]. This chapter may be skipped on a first reading of the book.
In this tutorial it is assumed that you have started MATLAB on your computer system successfully and that you are now ready to type the commands at the MATLAB prompt (which is denoted by double arrows “>>”). For installing MATLAB on your computer system, check the web links provided at the end of the book.
Entering scalars and simple operations is easy as is shown in the examples below:
>> 2*3+5
ans =
11
The order of the operations will be discussed in subsequent chapters.
>> cos(60*pi/180)
ans =
0.5000
The argument for the cos
command and the value of pi
will be discussed in subsequent chapters.
We assign the value of 4 to the variable x
as follows:
>> x = 4
x =
4
>> 3/sqrt(2+x)
ans =
1.2247
To suppress the output in MATLAB use a semicolon to end the command line as in the following examples. If the semicolon is not used then the output will be shown by MATLAB:
>> y = 30;
>> z = 8;
>> x = 2; y-z;
>> w = 4*y + 3*z
w =
144
MATLAB is case-sensitive, i.e. variables with lowercase letters are different than variables with uppercase letters. Consider the following examples using the variables x
and X
:
>> x = 1
x =
1
>> X = 2
X =
2
>> x
x =
1
>> X
X =
2
Use the help
command to obtain help on any particular MATLAB command. The following example demonstrates the use of help
to obtain help on the det
command which calculated the determinant of a matrix:
>> help det
DET Determinant.
DET(X) is the determinant of the square matrix X.
Use COND instead of DET to test for matrix singularity.
See also cond.
Overloaded functions or methods (ones with the same name in other directories)
help sym/det.m
Reference page in Help browser doc det
The following examples show how to enter matrices and perform some simple matrix operations:
>> x = [1 2 3 ; 4 5 6 ; 7 8 9]
x =
1 2 3
4 5 6
7 8 9
>> y = [1 ; 0 ; -4]
y =
1
0
-4
>> w = x*y
w =
-11
-20
-29
Let us now see how to use MATLAB to solve a system of simultaneous algebraic equations. Let us solve the following system of simultaneous algebraic equations:
We will use Gaussian elimination to solve the above system of equations. This is performed in MATLAB by using the backslash operator “\” as follows:
>> A= [3 5 -1 ; 0 4 2 ; -2 1 5]
A =
3 5 -1
0 4 2
-2 1 5
>> b = [2 ; 1 ; -4]
b =
2
1
-4
>> x = A\b
x =
-1.7692
1.1154
-1.7308
It is clear that the solution is x1
= -1.7692, x2
= 1.1154, and x3
= -1.7308. Alternatively, one can use the inverse matrix of A
to obtain the same solution directly as follows:
>> x = inv(A)*b
x =
-1.7692
1.1154
-1.7308
It should be noted that using the inverse method usually takes longer than using Gaussian elimination especially for large systems of equations.
Consider now the following 4 x 4 matrix D:
>> D = [1 2 3 4 ; 2 4 6 8 ; 3 6 9 12 ; -5 -3 -1 0]
D =
1 2 3 4
2 4 6 8
3 6 9 12
-5 -3 -1 0
We can extract the sub-matrix in rows 2 to 4 and columns 1 to 3 as follows:
>> E = D(2:4, 1:3)
E =
2 4 6
3 6 9
-5 -3 -1
We can extract the third column of D
as follows:
>> F = D(1:4, 3)
F =
3
6
9
-1
We can extract the second row of D
as follows:
>> G = D(2, 1:4)
G =
2 4 6 8
We can also extract the element in row 3 and column 2 as follows:
>> H = D(3,2)
H =
6
We will now show how to produce a two-dimensional plot using MATLAB. In order to plot a graph of the function y = f (x) , we use the MATLAB command plot
(x,y
) after we have adequately defined both vectors x
and y
. The following is a simple example to plot the function y = x2 + 3 for a certain range:
>> x = [1 2 3 4 5 6 7 8 9 10 11]
x =
Columns 1 through 10
1 2 3 4 5 6 7 8 9 10
Column 11
11
>> y = x.^2 + 3
y =
Columns 1 through 10
4 7 12 19 28 39 52 67 84 103
Column 11
124
>> plot(x,y)
Figure 1.1 shows the plot obtained by MATLAB. It is usually shown in a separate window. In this figure no titles are given to the x
- and y-axes
. These titles may be easily added to the figure using the xlabel
and ylabel
commands. More details about these commands will be presented in the chapter on graphs.
In the calculation of the values of the vector y, notice the dot “.” before the exponentiation symbol “^”. This dot is used to denote that the operation following it be performed element by element. More details about this issue will be discussed in subsequent chapters.
Figure 1.1: Using the MATLAB "plot" command
Finally, we will show how to make magic squares with MATLAB. A magic square is a square grid of numbers where the total of any row, column, or diagonal is the same. Magic squares are produced by MATLAB using the command magic
. Here is a simple example to produce a 5 x 5 magic square:
>> magic(5)
ans =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
It is clear that the total of each row, column or diagonal in the above matrix is 65.
Exercises
Solve all the exercises using MATLAB. All the needed MATLAB commands for these exercises were presented in this chapter.
5
is in radians.y
.x
and y
, respectively, then calculate the value of z
where z = 2x − 7 y . inv
command.A
b
c
where {c} = [A]{b} where A
is the matrix given in Exercise 7 above and b
is the vector given in Exercise 8 above.
X:
X
in Exercise 12 above.X
in Exercise 12 above.X
in Exercise 12 above.X
in Exercise 12 above.x
with integer values ranging from 1 to 9.x
in Exercise 17 above.In this chapter we learn how to perform the simple arithmetic operations of addition, subtraction, multiplication, division, and exponentiation. The first four operations of addition, subtraction, multiplication, and division are performed in MATLAB using the usual symbols +, -, *, and /. The following are some examples:
>> 5+6
ans =
11
>> 12-9
ans =
3
>> 3*4
ans =
12
>> 4/2
ans =
2
>> 4/3
ans =
1.3333
In the next chapter, we will show how to control the number of decimal digits that appear in the answer. The operation of exponentiation is performed using the symbol ^ as shown in the following examples:
>> 2^3
ans =
8
>> 2^-3
ans =
0.1250
>>
>> -2^3
ans =
-8
>> -2^4
ans =
-16
>> (-2)^4
ans =
16
In the above examples, be careful where the minus sign is used. The constants π and ε are obtained in MATLAB as follows:
>> pi
ans =
3.1416
>> eps
ans =
2.2204e-016
In the above examples, the constant π is denoted by the command pi
and represents the ratio of the perimeter of a circle to its diameter. The other constant ε is denoted by the command eps
and represents the smallest number that MATLAB can handle.
In the above examples, only one arithmetic operation was performed in each line. Alternatively, we can perform multiple arithmetic operations in each line or command. The following are some examples:
>> 2+3-7
ans =
-2
>> 3*4+5
ans =
17
>> 2+5/4
ans =
3.2500
In these cases, the order of operations is very important because the final computed result depends on this order. Precedence of computation is for the exponentiation operation, followed by multiplication and division, then followed by addition and subtraction. For example, in the examples above, multiplication is performed before addition and division is performed before addition. In case you need to perform addition before multiplication or division, the above two examples may be computed using parentheses as follows:
>> 3*(4+5)
ans =
27
>> (2+5)/4
ans =
1.7500
It is clear from the above examples that the operations inside the parentheses take precedence over any other operations. Several multiple operations may also be performed as follows:
>> (26+53)-(3^4 +5)*2/3
ans =
21.6667
One should be careful when using parentheses. A change of the position of the parenthesis in the above example will change the computed results as follows:
>> (26+53)-(3^4 +5*2)/3
ans =
48.6667
Arithmetic Operations with the MATLAB Symbolic Math Toolbox
Symbolic arithmetic operations may also be performed in MATLAB using the MATLAB Symbolic Math Toolbox. For the next examples, this toolbox needs to be installed with MATLAB. In order to perform symbolic operations in MATLAB, we need to define symbolic numbers3 using the sym
command. For example, ½ is defined as a symbolic number as follows:
>> sym(1/2)
ans =
1/2
In the above example, the number ½ is stored in MATLAB without any approximation using decimal digits like 0.5. Once used with the sym
command, the computations will be performed algebraically or symbolically. For example, the following addition of two fractions is performed numerically as follows without the sym
command:
>> 1/2+3/5
ans =
1.1000
Adding parentheses will not affect the numerical computation in this case:
>> (1/2)+(3/5)
ans =
1.1000
However, using the sym
command of the MATLAB Symbolic Math Toolbox will result in the computation performed symbolically without the use of decimal digits;
>> sym((1/2)+(3/5))
ans =
11/10
Notice in the above example how the final answer was cast in the form of a fraction without decimal digits and without calculating a numerical value. In the addition of the two fractions above, MATLAB finds their common denominator and adds them by the usual procedure for rational numbers. Notice also in the above four example outputs that symbolic answers are not indented but numerical answers are indented. In the next chapter, we will study variables and their use in MATLAB.
Exercises
Solve all the exercises using MATLAB. All the needed MATLAB commands for these exercises were presented in this chapter. Note that Exercises 19 and 21 require the use of the MATLAB Symbolic Math Toolbox.