Elementary mathematical and computational tools for electrical and computer engineers using MATLAB 2nd ed Edition Manassah ebook download PDF instant access
Elementary mathematical and computational tools for electrical and computer engineers using MATLAB 2nd ed Edition Manassah ebook download PDF instant access
com
https://ebookgate.com/product/elementary-mathematical-and-
computational-tools-for-electrical-and-computer-engineers-
using-matlab-2nd-ed-edition-manassah/
OR CLICK HERE
DOWLOAD NOW
https://ebookgate.com/product/matlab-for-engineers-2nd-edition-holly-
moore/
ebookgate.com
https://ebookgate.com/product/analysis-and-design-of-control-systems-
using-matlab-2nd-ed-edition-dukkipati/
ebookgate.com
https://ebookgate.com/product/introduction-to-computational-modeling-
using-c-and-open-source-tools-garrido/
ebookgate.com
https://ebookgate.com/product/computational-colour-science-using-
matlab-1st-edition-professor-stephen-westland/
ebookgate.com
MATLAB for Control Engineers Katsuhiko Ogata
https://ebookgate.com/product/matlab-for-control-engineers-katsuhiko-
ogata/
ebookgate.com
https://ebookgate.com/product/essential-matlab-for-scientists-and-
engineers-second-edition-brian-hahn/
ebookgate.com
https://ebookgate.com/product/mathematical-tools-1st-ed-edition-
franklin-coyle/
ebookgate.com
https://ebookgate.com/product/mathematical-physics-applied-
mathematics-for-scientists-and-engineers-2nd-edition-bruce-r-kusse/
ebookgate.com
https://ebookgate.com/product/matlab-for-control-system-engineers-
second-edition-dukkipati/
ebookgate.com
7425_C000.qxd 6/9/06 16:53 Page i
ELEMENTARY
MATHEMATICAL and
COMPUTATIONAL TOOLS
for ELECTRICAL and
COMPUTER ENGINEERS
USING MATLAB®
Second Edition
7425_C000.qxd 6/9/06 16:53 Page ii
7425_C000.qxd 6/9/06 16:53 Page iii
ELEMENTARY
MATHEMATICAL and
COMPUTATIONAL TOOLS
for ELECTRICAL and
COMPUTER ENGINEERS
USING MATLAB®
Second Edition
Jamal T. Manassah
MATLAB® is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks does not
warrant the accuracy of the text or exercises in this book. This book’s use or discussion of MATLAB®
software or related products does not constitute endorsement or sponsorship by The MathWorks of a
particular pedagogical approach or particular use of the MATLAB® software.
CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742
This book contains information obtained from authentic and highly regarded sources. Reprinted material
is quoted with permission, and sources are indicated. A wide variety of references are listed. Reasonable
efforts have been made to publish reliable data and information, but the author and the publisher cannot
assume responsibility for the validity of all materials or for the consequences of their use.
No part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic,
mechanical, or other means, now known or hereafter invented, including photocopying, microfilming,
and recording, or in any information storage or retrieval system, without written permission from the
publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.
com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC) 222 Rosewood
Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and
registration for a variety of users. For organizations that have been granted a photocopy license by the
CCC, a separate system of payment has been arranged.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are
used only for identification and explanation without intent to infringe.
Manassah, Jamal T.
Elementary mathematical and computational tools for electrical and computer
engineers using MATLAB / Jamal T. Manassah. -- 2nd ed.
p. cm.
Includes bibliographical references and index.
ISBN-13: 978-0-8493-7425-8 (alk. paper)
ISBN-10: 0-8493-7425-1 (alk. paper)
1. Electric engineering--Mathematics. 2. Computer science--Mathematics. 3.
MATLAB. I. Title.
TK153.M362 2007
510.2’46213--dc22 2 006018608
Author
This book is mostly based on a series of notes for a primer course in electrical
and computer engineering that I taught at the City College of New York
School of Engineering. Each week, the class met for an hour of lecture and a
three-hour computer laboratory session where students were divided into
small groups of 12 to 15 students each. The students met in an informal learn-
ing community setting, a computer laboratory, where each student had the
exclusive use of a PC. The small size of the groups permitted a great deal of
individualized instruction, which was a key ingredient to cater successfully
to the needs of students with heterogeneous high school backgrounds.
A student usually takes this course in the second semester of his or her
freshman year. Typically, the student would have completed one semester of
college calculus, and would be enrolled in the second course of the college
calculus sequence and in the first course of the physics sequence for students
in the physical sciences and engineering.
My purpose in developing this book is to help bring the beginner engi-
neering student’s analytical and computational skills to a level of competency
that would permit him or her to participate, enjoy, and succeed in subsequent
electrical and computer engineering courses. My experience indicates that the
lack of mastery of fundamental quantitative tools is the main impediment to
a student’s progress in engineering studies.
The specific goals of this book are:
My experience indicates that you can achieve the above goals through the
following work habits that I usually recommend to my own students:
● Read carefully the material from this book that is assigned to you
by your instructor for the upcoming week, and make sure to solve
7425_C000.qxd 6/9/06 16:53 Page viii
In managing this course, I found it helpful for both students and instructors
to require each student to solve all problems in a bound notebook. The advan-
tage to the student is to have easy access to his or her previous work, personal
notes, and reminders that he or she made as the course progressed. The advan-
tage to the instructor is to enhance his or her ability to assess, more easily and
readily, an individual student’s progress as the semester progresses.
This book may be used for self-study by readers with perhaps a little more
mathematical maturity acquired through a second semester of college calcu-
lus. The advanced reader of this book who is familiar with numerical meth-
ods will note that, in some instances, I did not follow the canonical order for
the sequence of presentation of certain algorithms, thus sacrificing some opti-
mality in the structure of some of the elementary programs included. This
was necessitated by the goal I set for this book, which is to introduce both
analytical and computational tools simultaneously.
The sections of this book that are marked with asterisks include material
that I assigned as projects to students with either strong theoretical interest
or more mathematical maturity than a typical second semester freshman
student. Although incorporated in the text, they can be skipped in a first
reading. I hope that, by their inclusion, I will facilitate to the interested
reader a smooth transition to some new mathematical concepts and compu-
tational tools that are of particular interest to electrical engineers.
This text greatly benefited from course material previously prepared by
my colleagues in the departments of electrical engineering and computer
science at City College of the City University of New York, in particular,
P. Combettes, I. Gladkova, B. Gross, and F. Thau. They provided either the start-
ing point for my subsequent efforts in this course, or the peer critique for the
early versions of this manuscript. I owe them many thanks and, of course, do
not hold them responsible for any of the remaining imperfections in the text.
The preparation of this book also owes a lot to my students. Their ques-
tions and interest in the material contributed to many modifications in the
7425_C000.qxd 6/9/06 16:53 Page ix
order and in the presentation of the different chapters. Their desire for work-
ing out more applications led me to expand the scope of the examples and
exercises included in the text. I am grateful to all of them. I am also grateful
to Erwin Cohen, who introduced me to the fine team at CRC Press, and to
Jerry Papke whose stewardship of the project from start to end at CRC Press
was most supportive and pleasant. The editorial and production teams at
CRC in particular, Samar Haddad, the project editor, deserve credit for the
quality of the final product rendering. Naomi Fernandes and her colleagues
at The MathWorks Inc. kindly provided me with a copy of the new release
of MATLAB for which I am grateful.
I dedicate this book to Azza, Tala, and Nigh whose support and love
always made difficult tasks a lot easier.
Jamal T. Manassah
New York, January 2001
7425_C000.qxd 6/9/06 16:53 Page x
7425_C000.qxd 6/9/06 16:53 Page xi
Contents
6. Complex Numbers....................................................................................191
6.1 Introduction ..................................................................................191
6.2 The Basics ......................................................................................191
6.2.1 Addition ........................................................................192
6.2.2 Multiplication by a Real or Imaginary
Number ........................................................................193
6.2.3 Multiplication of Two Complex Numbers ..............193
6.3 Complex Conjugation and Division ........................................195
6.3.1 Application to Division ..............................................196
6.4 Polar Form of Complex Numbers ............................................197
6.4.1 New Insights into Multiplication and Division
of Complex Numbers ..................................................198
6.4.2 Roots of Complex Numbers ......................................200
6.4.3 The Function y ⫽ e j ....................................................201
6.5 Analytical Solutions of Constant Coefficients ODE ..............204
6.5.1 Transient Solutions ......................................................205
6.5.2 Solution in the Presence of a Source:
Green Function Technique ..........................................207
6.5.3 Steady-State Solutions ................................................210
6.5.4 Applications to Circuit Analysis ................................211
6.6 Phasors ..........................................................................................213
6.6.1 Phasor of Two Added Signals ....................................213
6.6.2 Total Phasor of Many Signals ....................................214
6.7 Interference and Diffraction of Electromagnetic Waves ........216
6.7.1 The Electromagnetic Wave ........................................216
6.7.2 Addition of Two Electromagnetic Waves ................217
6.7.3 Generalization to N-waves ........................................218
6.8 Solving ac Circuits with Phasors: The Impedance
Method ..........................................................................................220
6.8.1 RLC Circuit Phasor Analysis ......................................221
6.8.2 The Infinite LC Ladder ................................................222
6.9 Transfer Function for a Difference Equation with
Constant Coefficients ..................................................................224
6.10 MATLAB Commands Review ..................................................234
7. Vectors ........................................................................................................235
7.1 Vectors in Two Dimensions ........................................................235
7.1.1 Addition ........................................................................235
7.1.2 Multiplication of a Vector by a Real Number ..........235
7.1.3 Cartesian Representation ............................................236
7.1.4 MATLAB Representation of Vectors ........................238
7.2 Dot (or Scalar) Product ..............................................................239
7.2.1 MATLAB Representation of the Dot Product ..........241
7.3 Components, Direction Cosines, and Projections ..................243
7.3.1 Components ..................................................................243
7.3.2 Direction Cosines ........................................................243
7.3.3 Projections ....................................................................244
7425_C000.qxd 6/9/06 16:53 Page xix
8. Matrices ......................................................................................................273
8.1 Setting Up Matrices ....................................................................273
8.1.1 Creating a Matrix by Keying in the Elements ........273
8.1.2 Retrieving Special Matrices from the
MATLAB Library ........................................................275
8.1.3 Functional Construction of Matrices ........................277
8.2 Adding Matrices ..........................................................................280
8.3 Multiplying a Matrix by a Scalar ..............................................280
8.4 Multiplying Matrices ..................................................................281
8.5 Inverse of a Matrix ......................................................................282
8.6 Solving a System of Linear Equations ......................................285
8.7 Application of Matrix Methods ................................................288
8.7.1 dc Circuit Analysis ......................................................288
8.7.2 dc Circuit Design ........................................................289
8.7.3 ac Circuit Analysis ......................................................290
8.7.4 Accuracy of a Truncated Taylor Series ....................291
8.7.5 Reconstructing a Function from Its Fourier
Components ..................................................................294
8.7.6 Interpolating the Coefficients of an (n ⫺ 1)-
Degree Polynomial from n Points ............................296
8.7.7 Least-Squares Fit of Data ............................................297
8.7.8 Numerical Solution of Fredholm Equations ............298
8.8 Eigenvalues and Eigenvectors ..................................................299
8.8.1 Finding the Eigenvalues of a Matrix ........................299
8.8.2 Finding the Eigenvalues and Eigenvectors
Using MATLAB ............................................................302
8.9 The Cayley–Hamilton and Other Analytical Techniques ......305
8.9.1 Cayley–Hamilton Theorem ........................................305
dX
8.9.2 Solution of Equations of the Form ⫽ AX ..........306
dt
8.9.3 Solution of Equations of the Form
dX
= AX ⫹ B(t)..............................................................308
dt
7425_C000.qxd 6/9/06 16:53 Page xx
9. Transformations ........................................................................................343
9.1 Two-Dimensional Geometric Transformations ......................343
9.1.1 Construction of Polygonal Figures ............................343
9.1.2 Inversion about the Origin and Reflection
about the Coordinate Axes ........................................344
9.1.3 Rotation around the Origin ........................................345
9.1.4 Scaling ............................................................................346
9.1.5 Translation ....................................................................347
9.2 Homogeneous Coordinates ........................................................347
9.3 Manipulation of 2-D Images ......................................................351
9.3.1 Geometrical Manipulation of Images ......................351
9.3.2 Digital Image Processing ............................................352
9.3.3 Encrypting an Image ..................................................353
9.4 Lorentz Transformation ..............................................................355
9.4.1 Space–Time Coordinates ............................................355
9.4.2 Addition Theorem for Velocities ..............................357
9.5 Iterative Constructs ....................................................................358
9.5.1 The Koch Curve ..........................................................358
9.5.2 The Serpenski Curve ..................................................361
9.6 MATLAB Commands Review ..................................................363
Index......................................................................................................................447
7425_C000.qxd 6/9/06 16:53 Page xxii
7425_C001.qxd 9/2/06 12:03 PM Page 1
1
Starting with MATLAB and Exploring Its
Graphics Capabilities
MATLAB can be thought of as a library of programs that will prove very use-
ful in solving many electrical engineering computational problems. MATLAB
is an ideal tool for numerically assisting you in obtaining answers, which is a
major goal of engineering analysis and design. This program is very useful in
research on circuit analysis, device design, signal processing, filter design,
control system analysis, antenna design, microwave engineering, photonics
engineering, computer engineering, and every other subfields of electrical
engineering. It is also a powerful graphic and visualization tool of beneficial
use for both quantitative courses and in your future career. In this chapter, we
start our exploration of MATLAB; in subsequent chapters, we will add to our
knowledge about this powerful tool of the modern engineer.
>>clear all
1
7425_C001.qxd 9/2/06 12:03 PM Page 2
This command removes all variables from the workspace. Also type and
enter (we shall henceforth say just enter):
>>clf
This command creates a graph window (if one does not already exist) or
clears an existing graph window. The command figure creates a new fig-
ure window, leaving the existing ones unaltered.
The command quit stops MATLAB.
Because it is not the purpose of this text to explain the function of every
MATLAB command, how would you get information on a particular syntax?
The MATLAB program has extensive help documentation available with
simple commands. For example, if you wanted help on a function called
roots (we will use this function often), you would type help roots.
Note that the help facility cross-references other functions that may have
related uses. This requires that you know the function name. If you want an
idea of the available help files in MATLAB, type help. This gives you a list
of topics included in MATLAB.
To get help on a particular topic such as elementary matrices and matrix
manipulation, type matlab\elmat. This gives you a list of all relevant
functions pertaining to that area. Now you may type help for any function
listed there. For example, try help size.
EXAMPLE 1.1
29.7025
>> ceil(7.58)
ans =
8
>> 2*sin(pi/4)
ans =
1.4142
The % symbol is used so that one can type comments in a program. (Comments
following the % symbol are ignored by the MATLAB interpreter.) Then enter:
The last command gave twice the sine of /4. Note that the argument of the
function was enclosed in parentheses directly following the name of the
function. Therefore, if you wanted to find sin3(x), the proper MATLAB syn-
tax would be
>>sin(pi/4)^3
To facilitate its widespread use, MATLAB has all the standard elementary
mathematical functions as built-in functions. Type help elfun to obtain a
listing of these functions. Remember that this is just a subset of the available
functions in the MATLAB library.
>>help elfun
The response to the last command will give you a list of these elementary
functions, some of which may be new to you, but all of which will be used
in your future engineering studies. Many of these functions will also be used
in later chapters of this book.
In the following table, the MATLAB expressions for the most common
mathematical functions are given:
sqrt(x) squareroot 兹x
exp(x) exponential exp(x) ex
log(x) natural logarithm ln(x)
log10(x) base10 logarithm log(x) (ln(x)/ln(10))
sin(x) sine sin(x)
cos(x) cosine cos(x)
sec(x) secant sec(x)
tan(x) tangent tan(x) (sin(x)/cos(x))
cot(x) cotangent cot(x) (1/tan(x))
asin(x) inverse sine sin1(x) arcsin(x)
acos(x) inverse cosine cos1(x)
asec(x) inverse secant sec1(x)
atan(x) inverse tangent tan1(x)
acot(x) inverse cotangent cot1(x)
sinh(x) hyperbolic sine sinh(x) (ex ex)/2
cosh(x) hyperbolic cosine cosh(x) (ex ex)/2
sech(x) hyperbolic secant sech(x) 1/cosh(x)
tanh(x) hyperbolic tangent tanh(x) sinh(x)/cosh(x)
coth(x) hyperbolic cotangent coth(x) 1/tanh(x)
asinh(x) inverse hyperbolic sine (
sinh1 ( x) ln x x 2 1 )
where x
1 x 1
acoth(x) inverse hyperbolic cotangent coth1 ( x)
ln
2 x 1
where x 1 or x 1
7425_C001.qxd 9/2/06 12:03 PM Page 5
EXAMPLE 1.2
If we desire at any point to know the list of the current variables in a MATLAB
session, we enter:
>>who
Note on variable names: Variable names must begin with a letter, contains
letters, digits, and underscore characters, and must contain less than 32 char-
acters. MATLAB is case-sensitive.
Question: From the above, can you deduce the order in which MATLAB
performs the basic algebraic operations?
IN-CLASS EXERCISE
Pb. 1.1 Using the values, a 0.875 and b 1.5786, find the values of the fol-
lowing expressions (give your answers in the engineering short format):
h sin(a) sin3/2(b)
j a1/3 b3/7
k (sin1(a/b))2/3
l sinh(a) ab
>>help plot
>>help plot3
EXAMPLE 1.3
Plot the point P(3, 4). Mark this point with a red asterisk.
Solution: Enter the following:
>> x1=3;
y1=4;
plot(x1,y1,'*r') ⵧ
Note that the semicolon is used in the above commands to suppress the
echoing of the values of the inputs. The '*r' is used to mark the location and
the color of the point that we are plotting.
The symbols for the most common markers and colors for display in
MATLAB plot-functions are:
Circle o Blue b
Cross x Cyan c
Diamond d Green g
Dot ⴢ Magenta m
Pentagram p Yellow y
Plus sign ⴙ Red r
Square s White w
Star * Black k
EXAMPLE 1.4
Plot the second point, R(2.5, 4), on the graph while keeping point P of the
previous example on the same graph. Mark the new point with a small green
circle.
NOTES
1. There is no limit to the number of plot commands you can type
before the hold is turned off.
2. An alternative method for viewing multiple points on the same
graph is available: we may instead, following the entering of the
values of x1, y1, x2, y2, enter:
>>plot(x1,y1,'*r',x2,y2,'og')
Make sure that the minimum axis value is less than the maximum axis value
or an error will result.
In addition to being able to adjust the scale of a graph, you can also change
the aspect ratio of the graphics window. This is useful when you wish to see
the correct x to y scaling. For example, without this command, a circle will look
more like an ellipse, even if we have chosen ymax ymin xmax xmin.
EXAMPLE 1.5
Plot the vertices of the square, formed by the points (1, 1), (1, 1),
(1, 1), (1, 1), keeping the same aspect ratio as in a graph paper, i.e., 1.
>>x1=-1;y1=-1;
>>x2=1;y2=-1;
>>x3=-1;y3=1;
>>x4=1;y4=1;
>>plot(x1,y1,'o',x2,y2,'o',x3,y3,'o',x4,y4,'o')
>>axis([-2 2 -2 2])
>>axis square %makes the aspect ratio 1 ⵧ
Note that prior to the axis square command, the square looked like a rect-
angle. If you want to go back to the default aspect ratio, type axis normal.
In specific instances, you may need to choose other than the default
tick marks chosen by MATLAB, you can achieve this by adding the
7425_C001.qxd 9/2/06 12:03 PM Page 9
following command:
set(gca,'Xtick',[xmin:dx:xmax],'Ytick',[ymin:dy:ymax])
Here gca stands for get current axes, and dx and dy are respectively the spac-
ings between tick marks that you desire in the x- and y-directions.
You can also make the graph easier to read, by using the command:
>>grid
>>x1=-1;y1=-1;x2=1;y2=-1;x3=-1;y3=1;x4=1;y4=1;
>>plot(x1,y1,'o',x2,y2,'o',x3,y3,'o',x4,y4,'o')
>>axis([-2 2 -2 2])
>>axis square
>>set(gca,'Xtick',[-2:0.5:2],'Ytick',[-2:0.5:2])
>>grid
The tick marks were chosen in this instance to be separated by –12 units in both
the x- and y-directions.
>>xlabel('x-axis')
>>ylabel('y-axis')
>>title('points in a plane')
If you desire to also add a caption anywhere in the graph, you can use the
MATLAB command
>>gtext('caption')
and place it at the location on the graph of your choice, by clicking the mouse
on the desired location when the crosshair is properly centered there.
Different fonts and symbols can be used in labeling MATLAB graphs.
LaTeX symbols are used by MATLAB for this purpose (see Appendix E).
EXAMPLE 1.6
Plot the points P(1, 1, 1), Q(4, 5, 6) and R(2, 5, 3). Show a grid in your graph.
Solution: Enter the following commands:
>>x1=1;x2=4;x3=2;
>>y1=1;y2=5;y3=5;
>>z1=1;z2=6;z3=3;
>>plot3(x1,y1,z1,'o',x2,y2,z2,'*',x3,y3,z3,'d')
>>axis([0 6 0 6 0 6])
>>grid ⵧ
NOTE You can also plot multiple points in a 3-D space in exactly the same
way as you did on a plane. Axis adjustment can still be used, but the vector
input into the axis command must now have six entries, as follows:
You can similarly label your 3-D figure using xlabel, ylabel, zlabel, and
title.
The grid command is also valid in conjunction with the plot3 command.
1.4 M-files
In the last section, we found that to complete a figure with a caption, we had
to enter several commands one by one in the command window. Typing
errors will be time-consuming to fix because if you are working in the com-
mand window, and if you make an error, you will need to retype all or part
of the program. Even if you do not make any mistakes (!), all of your work
may be lost if you inadvertently quit MATLAB and have not taken the nec-
essary steps to save the contents of the important program that you just fin-
ished developing. This will be time-consuming. Especially, if you are
simulating a process, and all that you want to change in successive runs are
the parameters of the problem. To preserve large sets of commands, you can
store them in a special type of file called an M-file.
MATLAB supports two types of M-files: script and function M-files. To hold
a large collection of commands, we use a script M-file. The function M-file is
discussed in Chapter 3. To make a script M-file, you need to open a file using
the built-in MATLAB Menu. First select New from the File menu. Then select
the M-file entry from the pull-down menu. After typing the M-file contents,
you need to save the file. For this purpose, use the save as command from the
File window. A field will pop up in which you can type in the name you have
chosen for this file. In the pop-up lower window, indicate that it is an .m file.
7425_C001.qxd 9/2/06 12:03 PM Page 11
NOTES
1. Avoid naming a file by a mathematical abbreviation, the name of a
mathematical function, a MATLAB command, or a number.
2. To run your script M-file, just enter in the command window the
filename omitting the .m extension in the file name at its end at the
MATLAB prompt. To be able to access this file from the command
window, make sure that the folder in which you saved this file is in
the MATLAB Path. If this is not the case use the Set Path in the File
pull-down menu and follow the screen prompts.
EXAMPLE 1.7
For practice, go to the File pull-down menu, select New and M-file to create
the following file that you will name myfile_17.
Enter in the editor window, the following set of instructions:
x1=1;y1=.5;x2=2;y2=1.5;x3=3;y3=2;
plot(x1,y1,'o',x2,y2,'+',x3,y3,'*')
axis([0 4 0 4])
xlabel('xaxis')
ylabel('yaxis')
title('3points in a plane')
After creating and saving this file as myfile_17 in your work folder, go to the
MATLAB command window and enter myfile_17. MATLAB will execute the
instructions in the same sequence as the statements stored in that file. ⵧ
EXAMPLE 1.8
for m=1:10
x(m)=m^2;
end ⵧ
>>x(3)
>>x
Question: What do you get if you enter m, following the execution of the
above program?
Answer: The value 10, which is the last value of m read by the counter.
Homework Problem
Pb. 1.2 A couple establishes a college savings account for their newly
born baby girl, deposit $2000 in this account, and commit themselves to
deposit an equal amount at each future birthday of the new born. They
chose to invest this money with an investment firm that guarantees a
minimum annual return of 5%. What will be the minimum balance of the
account when the young lady turns 18? (Include in your calculation the
amount deposited on her 18th birthday.)
NOTES
1. The commands between the if and else statements are evaluated
for all elements in the expression which are true.
2. The conditional expression uses the Boolean logical symbols &
(AND), | (OR), and ⬃ (NOT) to connect different propositions.
EXAMPLE 1.9
ab for a 5
C 3
ab for a 5
2
and b 15.
>>b=15;
for a=1:10
if a>5
C(a)=a*b;
else
C(a)=(a*b)*(3/2);
end
end
Check that the values of C that you will obtain by typing C are:
B. When there are three or more alternatives for the conditional, the
if-else-end structure takes the form:
if expression 1
Commands 1 evaluated if expression 1 is True
elseif expression 2
Commands 2 evaluated if expression 2 is True
7425_C001.qxd 9/2/06 12:03 PM Page 14
elseif expression 3
Commands 3 evaluated if expression 3 is True
...
....
else
Commands evaluated if no other expression is True
end
In this form, only the commands associated with the first True expression
encountered are evaluated, ensuing relational expressions are not tested.
EXAMPLE 1.10
a3 for a 5
D 2a for 5 a 10
a 7 for 10 a 15
for a=1:15
if a<=5
D(a)=a^3;
elseif a>5 & a<10
D(a)=2*a;
else
D(a)=7+a;
end
end
D ⵧ
Homework Problem
Pb. 1.3 For the values of integer a going from 1 to 10, find the values of
C such that
a2 if a is even
C
a
3
if a is odd
Use the stem command to graphically show C. (Hint: Look up in the help
file the function mod.)
7425_C001.qxd 9/2/06 12:03 PM Page 15
Initial assignment
while relational condition
expression
end
NOTE Special care should be exercised when using the while loop, as in
some cases the looping may never stop.
EXAMPLE 1.11
The unknown quantity x has the form 2n, where n is an integer. We desire to
find the largest such number subject to the condition that x 75,345.
Solution: Using the above syntax of the while loop, we enter:
>>x=2;
while 2*x<75345
x=2*x;
end
x
The unknown variable is initially assigned the value 2, it has this value until
it encounters the statement x=2*x, which should be read that x(n 1)
2*x(n), the value of x is then changed to xnew. Before each pass through the
loop, the value of x is checked to see whether x 75,345. If this condition is
satisfied, the next iteration is carried through; otherwise the looping is
stopped. The final result to our problem is the value of x before any more
loop is executed.
If the statement of the problem is changed, and we had asked instead the
question to list all x’s that satisfied the condition x 75,345. We would have
entered instead of the above the following instructions:
>>x=2;
while x<75345
disp(x)
x=2*x;
end
The disp (display) command displays the results of all iterations satisfying
the desired condition. ⵧ
7425_C001.qxd 9/2/06 12:03 PM Page 16
Homework Problem
Pb. 1.4 Using while, find the largest number x which can be written in
the form
x 3n 2n 3
1.6 Arrays
As mentioned earlier, think of an array as a string of ordered numbers, i.e.,
to determine an array, we need to specify the value and position of each ele-
ment in this string.
As pointed out earlier, an element in the array is addressed by writing the
name of the array followed by the position of the element within parenthe-
ses. For example, x(3) will be the value of the third element in the array x.
The basic array functions are:
EXAMPLE 1.12
Enter the array x [0 3 6 2 11 0 7 9], and find its third element, length,
nonzero elements, value of its largest and smallest elements, and sum of all
its elements.
Solution:
ans =
2 3 4 5 7 8
>> max(x)
ans =
11
>> min(x)
ans =
-2
>> sum(x)
ans =
34 ⵧ
= = equal to
~ = not equal to
< smaller than
<= smaller or equal to
> larger than
>= larger than or equal
If we combine within parentheses the symbols for two arrays with a rela-
tional operator, the result will be a new array consisting of 0’s and 1’s, where
the 1’s are in the positions where the relation between the two elements in
the same position from the two arrays is satisfied, and 0’s otherwise.
EXAMPLE 1.13
x = [1 4 7 5 11 2];
y = [3 -2 7 2 12 -4];
>> z1=(x==y)
z1 =
0 0 1 0 0 0
>> z2=(x~=y)
z2 =
1 1 0 1 1 1
>> z3=(x<y)
z3 =
1 0 0 0 1 0
>> z4=(x<=y)
7425_C001.qxd 9/2/06 12:03 PM Page 18
z4 =
1 0 1 0 1 0
>> z5=(x>y)
z5 =
0 1 0 1 0 1
>> z6=(x>=y)
z6 =
0 1 1 1 0 1
>> z7=(z1==z2)
z7 =
0 0 0 0 0 0
>> z8=(z3==z6)
z8 =
0 0 0 0 0 0
>> z9=(z4==z5)
z9 =
0 0 0 0 0 0
Comments: The values of z7, z8, and z9 are identically zeros. This means that
no corresponding elements of z1 and z2, z3 and z6, z4 and z5, respectively are
ever equal, i.e., each pair represents mutually exclusive conditions. ⵧ
d=a.^b
e=a./b
7425_C001.qxd 9/2/06 12:03 PM Page 19
If you try to use the regular scalar operations symbols, you will get an error
message.
Note that array operations such as the above require the two arrays to
have the same length (i.e., the same number of elements). To verify that two
arrays have the same number of elements (dimension), use the length com-
mand. The exception to the equal length arrays rule is when one of the
arrays is a scalar constant.
EXAMPLE 1.14
Using array operations, find for integers a, 1 a 15, the value of D defined by
a4 for a 5
D 2a for 5 a 10
a 7 for 10 a 15
Solution:
>>a=1:15;
D=(a.^4).*(a<=5)+2*a.*(5<a).*(a<10)+(a+7).*(10<=a)...
.*(a<=15) ⵧ
NOTE We have used in the above the property that the logical AND link-
ing two separate relational operations can be represented by the array prod-
uct of these relations.
Homework Problem
Pb. 1.5 The array n is all integers from 1 to 110. The array y is defined by
n
1/ 2
if n divisible by 3, 5, or 7
y=
0 otherwise
Solid line –
Dashed line ––
Dash-dot line –.
Dotted line :
If the points are close together, the points will look connected by a continu-
ous line making a smooth curve; we say that the program graphically inter-
polated the discrete points into a continuous curve.
The commands for labeling, axis and tick marks used in plotting points are
also valid here. We can zoom to a particular region of the graph by using the
command zoom, And we can read off the coordinates of particular point(s)
in the graph, by using
[x,y]=ginput(n)
This command serves to read the values of the coordinates of points off a dis-
played graph (n is the number of points). The command pops out the
crosshair. The operator manually zeros on the points of interest and clicks. As
a result, MATLAB prints the coordinates of the points in the same order as
those of the clicks of the mouse.
EXAMPLE 1.15
x 0:0.1:10; y x 2 6x 20; z 3x 5
Solution:
>>x=0:0.1:10;
y=x.^2-6*x-20;
z=2*x-5;
plot(x,y,'r:',x,z,'b-')
xlabel('x axis')
7425_C001.qxd 9/2/06 12:03 PM Page 21
ylabel('y-z axis')
title('Figure of Example 1.15')
grid
In the above solution, we plotted both curves on the same graph. Often, it may
be required to plot the two curves in separate graphs but in the same figure
window. This can be achieved using the subplot command. The arguments
of the subplot command subplot(m,n,p) specify m the number of rows par-
titioning the graph, n the number of columns, and p the number of the partic-
ular subgraph chosen (enumerated through the left to right, top to bottom
convention). The program to plot the above arrays in two graphs in a column
would read
>>x=0:0.1:10;
y=x.^2-6*x-20;
z=2*x-5;
subplot(2,1,1)
plot(x,y,'r:')
xlabel('x axis')
ylabel('y axis')
title('Figure of Example 1.14-a')
subplot(2,1,2)
plot(x,z,'b-')
xlabel('x axis')
ylabel('z axis')
title('Figure of Example 1.14-b') ⵧ
All the plotting that we did so far has been using the linear scale in both the
horizontal and vertical axes. Sometimes when the elements of an array can
change values by several decades over the range of interest, it is well advised
to use the different kinds of the log-plots. As the need arises we can, instead
of the plot command, use one of the following alternatives:
Homework Problem
Pb. 1.6 The arrays y and z are generated from the array of positive inte-
gers x 1:20, such that:
y 2x and z 51/x
Plot the array z as function of the array y. (You should be able to read off
the value of the coordinates of any point on the plot over the entire range
of the graph.)
7425_C001.qxd 9/2/06 12:03 PM Page 22
length(y) gives the length of the array (i.e., the number of data points)
y(i) gives the value of the element of y in the ith position
y(i:j) gives a new array, consisting of all elements of y between and
including the locations i and j
find(y) computes a new array where the successive elements indicate
the positions where the components of the array y are nonzero
max(y) gives the value of the largest element in the array
min(y) gives the value of the smallest element in the array
sort(y) sorts the elements of y in ascending order and gives a new
array of the same size as y
sum(y) sums the elements of y. The answer is a scalar
mean(y) gives the mean value of the elements of y
std(y) computes the standard deviation of the elements of y
The definitions of the mean and of the standard deviation are, respectively,
given by
N
1
y
N
∑ y(i)
i1
N
( y(i) y )2
∑
i1 ( N 1)
EXAMPLE 1.16
Bill sits to analyze the data. As a budding experimentalist, he knows that his
first duty is to assess the validity of his raw data.
1. He checks that there was a reading by the recorder at every 3 min
interval, he enters in his MATLAB program, to which the data were
downloaded:
>> length(T)
ans =
20
“OK,” he says, “the recorder was recording data at the prescribed
time intervals.”
2. Next, he wants to check for the validity of the data; he enters:
>> max(T)
ans =
125
>> min(T)
ans =
55
“Hm … even in New York the weather is not that crazy. Let me
check for the validity of the rest of the data,” he says.
>> format bank
>> z=sort(T)
z =
Columns 1 through 8
55.00 95.00 95.00 95.00 95.00 95.50 95.50 95.80
Columns 9 through 16
96.00 96.00 96.00 96.00 96.00 96.00 96.20 96.50
Columns 17 through 20
96.50 97.00 97.00 125.00
“Well, it seems that except for the smallest and largest values of the
array, the data temperature is within reasonable limits for a humid,
sunny day in July at noon. Obviously, the link to the recorder is
picking noise and it has to be checked by Jim, my buddy the fixer,
but…,” says Bill, “…can I still use any part of the data to record, in
my project book, an average temperature for that one hour period?”
3. Bill decides to reject as spurious the lowest and highest values of
his raw data; he enters:
>> TT=z(2:19);
4. Now he computes the mean and the standard deviation of his mas-
saged data:
>> meanTT=mean(TT)
meanTT =
95.89
7425_C001.qxd 9/2/06 12:03 PM Page 24
>> stdTT=std(TT)
stdTT =
0.64
These are the values that Bill enters in his project’s logbook. ⵧ
Homework Problem
Pb. 1.7 Your assignment is to help Bill automate his task. Use the new
criterion that all raw data outside the interval
(T T) T (T T)
[n,y]=hist(y,nb)
The array n in the output will be the number of elements in each of the bins.
EXAMPLE 1.17
g=[65 73 87 45 91 55 85 74 55 94 62 85 72 77 81 63 ...
35 62 85 90 57 73 68 57 51 75 74 70 77 60 77 84 ...
73 52 73 63];
The instructor desires to compute the average grade and the standard devi-
ation of the class grades distribution. Furthermore, she desires to distribute
the grades into five bins and determine the number of students in each of the
respective bins. Help her write a program to achieve this task.
Solution: First enter the data for the grade as an array, then enter
>>averageg=mean(g)
stdg=std(g)
[n,g]=hist(g,5)
stdg =
13.75
n =
2.00 6.00 8.00 12.00 8.00
g =
40.90 52.70 64.50 76.30 88.10
The third line gives you the number of grades in each of the bins, and the last
line gives you the array of the values of the average grade in each of the bins.
Associated with n, we can associate a probability; thus
where length(g) represents the total number of students who sat for the
exam.
If you were also requested to draw a bar chart or pie chart to display the
different number of grades in each of the different bins, you would enter
bar(n) or pie(n) ⵧ
1 ( x mX )2
f X ( x) exp
X 2 2 2X
1 x mX x mX
x2
FX ( x1 x x2 ) ∫ fX ( x) dx erf 2
2 2 X
erf 1
2 X
x1
where erf is the error function, a standard MATLAB function, and mX and X
are, respectively, the mean and standard deviation of x.
7425_C001.qxd 9/2/06 12:03 PM Page 26
EXAMPLE 1.18
>> meanr=99.5;
sigmar=1.5;
r=100;
rtol=2;
r2=r+rtol;
r1=r-rtol;
F=0.5*(erf((r2-meanr)/(sqrt(2)*sigmar))...
-erf((r1-meanr)/(sqrt(2)*sigmar)))
MATLAB gives:
F =
0.7936
i.e., the chances are 79.36% that the product will meet the engineer’s design
requirements. ⵧ
EXAMPLE 1.19
Find the mean and the standard deviation; obtain the histogram, with
20 bins, for an array whose 10,000 elements are chosen from the MATLAB
built-in normal distribution with zero mean and standard deviation 1.
Solution: Edit and execute the following script M-file:
y=randn(1,10000);
meany=mean(y)
stdy=std(y)
nb=20;
hist(y,nb)
7425_C001.qxd 9/2/06 12:03 PM Page 27
You will notice that the results obtained for the mean and the standard devi-
ation vary slightly from the theoretical results. This is due to the finite num-
ber of elements chosen for the array and the intrinsic limit in the built-in
algorithm used for generating random numbers.
NOTE The MATLAB command for generating an N-element array of ran-
dom numbers distributed uniformly in the interval [0, 1] is rand(1,N). ⵧ
Homework Problem
Pb. 1.8 Return to Example 1.18, and determine what should be the sigma
of the manufacturer specifications so that the probability that the engineer
obtains the resistor he buys within the tolerance limits that he requires
99% of the times.
1.8.1 Definition
If instead of assuming a function as a relation between an independent vari-
able x and a dependent variable y, we assume both x and y as being depend-
ent functions of a third independent parameter t, then we say that we have
a parametric representation of the curve. This method of curve representa-
tion is described by (x(t), y(t)), where the parameter t varies over some finite
domain (tmin, tmax).
NOTE The process of parameterization is not unique, i.e., there may be more
than one way to generate the same curve from different functions x(t) and y(t).
EXAMPLE 1.20
The cosine and sine functions are defined respectively as the x-component
and the y-component of a point P on the trigonometric circle (the circle cen-
tered at the origin of the coordinates O and having radius 1). The angle is
that formed between the positive x-axis and the ray OP, measured in the
anticlockwise direction. Using this parameterization of the trigonometric cir-
cle, write a program to plot it.
Discovering Diverse Content Through
Random Scribd Documents
consists of a simple pulp-cavity in the centre of a body of dentine
permeated by calcigerous tubes, but with this peculiar modification,
that the dentine is traversed by vascular canals, radiating at definite
intervals from the pulp-cavity nearly to the periphery of the tooth, and
running parallel with the calcigerous tubes; thus constituting a softer
and coarser dentine than in the other reptiles, and resembling that
which characterizes the teeth of some of the herbivorous mammals.
[643] The crown of the tooth is covered with a layer of enamel, which
is thickest on the external surface: and the fang is invested with
cement. The structure here described is shown in Pl. VI.; fig. 4b, a
vertical, and fig. 4c, a transverse section of a tooth, seen by
transmitted light, with a high magnifying power. The calcigerous tubes
are 1/25000 an inch in diameter. Sections of the teeth of the Iguanodon
are beautiful objects under the microscope, for the medullary canals
are generally of a deep yellowish brown colour.
[640] Figured and described in the Phil. Trans. 1848, p. 188, pl.
xvi. xvii.
[641] Both specimens are fully described in Petrif. pp. 242, et
seq.
[642] Plates iv. and xvii. in the "Fossils of Tilgate Forest," contain
representations of upwards of thirty specimens of teeth in various
states of development and detrition.
[643] Tomes on the Microscopic Structure of the Tooth of the
Iguanodon, Petrif. pp. 239, 240. See also Owen’s Odontography, p.
249, and pl. lxxi.; and Cycl. Anat. Art. Teeth.
Lign. 223. Teeth of Iguanodon. Wealden. Tilgate Forest.
Fig. 1. Outer aspect of an upper tooth (in a reversed
— position), worn flat, and with the fang absorbed;
fig. 3, inner aspect of the same tooth.
a, a. Flat grinding surface, produced by
mastication when all the thickly enamelled
portion of the crown is worn away.
c. Cavity produced by the pressure of a new
tooth.
2. Lower tooth of a young animal, slightly worn:
— inner aspect.
4. Outer Surface of a lower tooth of an adult; and
— fig. 5, inner surface of the same.
a, a. The hard cutting edge of the oblique
surface worn by mastication.
c. Indentation produced by the pressure of a
successional tooth.
6.
Edge view of the serration on fig. 5; magnified.
—
The dentine is less vascular, and therefore hardest, on that side of
the crown which has the thicker coat of enamel; hence the tooth
wears away faster on one side than on the other, and an oblique
grinding surface, with a sharp edge of enamel, is maintained until the
crown is worn away. The internal structure of the teeth of the
Iguanodon is thus in perfect accordance with their external
configuration, and must have been admirably adapted, in every stage,
for the laceration and comminution of the tough vegetable substances
which, there is every reason to conclude, constituted the food of this
colossal oviparous quadruped.
Mosasaurus. Bd. pl. xx.; Wond. p. 311; Petrif. p. 193.—Of the fossil
lizard of Maestricht, named Mosasaurus (lizard of the Meuse) from the
river adjacent to the quarries of St. Peter’s Mountain, in which its
remains have been discovered, I have given a detailed account at
pages 193-196 of Petrif. A specimen, with the jaws, and bones of the
palate armed with teeth, now in the museum at Paris, has long been
celebrated, and is still the most precious relic of this extinct reptile
hitherto discovered; a reduced representation is given in Lign. 227;
and Pict. Atlas, pl. lxx. This is the Mosasaurus Hoffmanni.[655] The
specimen is four and a half feet long, and two and a half feet wide; it
consists of both sides of the lower jaw, with the right ramus of the
upper jaw in its natural position, and the left, which is displaced, lying
across the articular extremity of the left branch of the lower jaw: of
the pterygoid bones, which are armed with teeth; of the left tympanic
bone (os quadratum), which is but little removed from its natural
situation, and connects the lower jaw with the cranium; one of the
metacarpal or metatarsal bones, and some fragments.[656]
[655] Several fine portions of the jaws, and many vertebræ of
this animal, are in the British Museum: see Foss. Brit. Mus. p. 139.
In a splendid work, Histoire Naturelle de la Montagne de St. Pierre,
by the late Faujas St. Fond (1 vol. folio, with numerous plates),
there are admirable figures of the remains of the Mosasaurus.
[656] In the British Museum there is a cast of this specimen, in a
case near the bones of the Iguanodon.
[657] Reduced from figures accompanying Dr.
Gibbes’s Memoir "On the Mosasaurus and three
allied new genera," (with plates,) in the
Smithsonian Contributions, vol. ii. 1849. This
interesting paper comprises much information
regarding the Mosasaurians of the Cretaceous
deposits of N. America; but we cannot fully
coincide with the author in his palæontological
determinations.
There are no teeth apparent in either jaw: the margin of the upper
maxillary has feeble dentations, but in the lower jaw even these
indications are wanting, and it is probable that this reptile had its jaws
encased by a bony or horny sheath, as in birds and turtles.[664]
(Owen.)
[664] Rep. Brit. Assoc. 1841, p. 150. See also Camb. Phil. Trans,
vol. vii. p. 357, tab. 5, 6.
Lign. 232. Side view of the Cranium and Lower Jaw: 1/3 nat. size.
Lign. 233. Upper aspect of the Cranium: 1/3 nat. size.
ebookgate.com