100% found this document useful (2 votes)
65 views

Elementary mathematical and computational tools for electrical and computer engineers using MATLAB 2nd ed Edition Manassah download pdf

computer

Uploaded by

zebecleigi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
65 views

Elementary mathematical and computational tools for electrical and computer engineers using MATLAB 2nd ed Edition Manassah download pdf

computer

Uploaded by

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

Visit https://ebookgate.

com to download the full version and


explore more ebooks

Elementary mathematical and computational tools for


electrical and computer engineers using MATLAB 2nd
ed Edition Manassah

_____ Click the link below to download _____


https://ebookgate.com/product/elementary-mathematical-
and-computational-tools-for-electrical-and-computer-
engineers-using-matlab-2nd-ed-edition-manassah/

Explore and download more ebooks at ebookgate.com


Here are some recommended products that might interest you.
You can download now and explore!

MATLAB for Engineers 2nd Edition Holly Moore

https://ebookgate.com/product/matlab-for-engineers-2nd-edition-holly-
moore/

ebookgate.com

Analysis and Design of Control Systems Using MATLAB 2nd ed


Edition Dukkipati

https://ebookgate.com/product/analysis-and-design-of-control-systems-
using-matlab-2nd-ed-edition-dukkipati/

ebookgate.com

Introduction to Computational Modeling Using C and Open


Source Tools Garrido

https://ebookgate.com/product/introduction-to-computational-modeling-
using-c-and-open-source-tools-garrido/

ebookgate.com

Computational Colour Science using MATLAB 1st Edition


Professor Stephen Westland

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

Essential MATLAB for Scientists and Engineers Second


Edition Brian Hahn

https://ebookgate.com/product/essential-matlab-for-scientists-and-
engineers-second-edition-brian-hahn/

ebookgate.com

Mathematical tools 1st ed Edition Franklin Coyle

https://ebookgate.com/product/mathematical-tools-1st-ed-edition-
franklin-coyle/

ebookgate.com

Mathematical Physics Applied Mathematics for Scientists


and Engineers 2nd Edition Bruce R. Kusse

https://ebookgate.com/product/mathematical-physics-applied-
mathematics-for-scientists-and-engineers-2nd-edition-bruce-r-kusse/

ebookgate.com

MATLAB for control system engineers Second Edition


Dukkipati

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

Boca Raton London New York

CRC is an imprint of the Taylor & Francis Group,


an informa business
7425_C000.qxd 6/9/06 16:53 Page iv

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

© 2007 by Taylor & Francis Group, LLC


CRC Press is an imprint of Taylor & Francis Group, an Informa business

No claim to original U.S. Government works


Printed in the United States of America on acid-free paper
10 9 8 7 6 5 4 3 2 1

International Standard Book Number-10: 0-8493-7425-1 (Hardcover)


International Standard Book Number-13: 978-0-8493-7425-8 (Hardcover)

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.

Library of Congress Cataloging-in-Publication Data

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

Visit the Taylor & Francis Web site at


http://www.taylorandfrancis.com

and the CRC Press Web site at


http://www.crcpress.com
7425_C000.qxd 6/9/06 16:53 Page v

Author

Jamal T. Manassah has been a professor of electrical engineering at the City


College of New York since 1981. He earned his B.Sc. degree in physics from
the American University of Beirut, and his M.A. and Ph.D. in theoretical
physics from Columbia University. Dr. Manassah was a member of the
Institute for Advanced Study. His current research interests are in theoretical
and computational quantum and nonlinear optics, and in photonics.
7425_C000.qxd 6/9/06 16:53 Page vi
7425_C000.qxd 6/9/06 16:53 Page vii

Preface to the First Edition

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:

1. To make you more comfortable applying the mathematics and


physics that you learned in high school or in college courses,
through interactive activities.
2. To introduce you, through examples, to many new practical tools of
mathematics, including discrete variables material that is essential to
your success in future electrical engineering courses.
3. To instruct you in the use of a powerful computer program,
MATLAB®, which was designed to be simultaneously user-friendly
and powerful in tackling efficiently the most demanding problems
of engineering and sciences.
4. To give you, through the applications and examples covered,
glimpses of some of the fascinating problems that an electrical or
computer engineer solves in the course of completing many of his
or her design projects.

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

the suggested preparatory exercises in advance of the weekly


lecture.
● Attend the lecture and follow closely the material presented, in par-
ticular the solutions to the more difficult preparatory exercises and
the demonstrations.
● Following the lecture, make a list of questions on the preparatory
material to which you still seek answers, and ask your instructor
for help and clarification on these questions, preferably in the first
30 minutes of your computer lab session.
● Complete the in-class exercises during the computer lab session. If
you have not finished solving all in-class exercises, make sure you
complete them on your own, when the lab is open, or at home if you
own a computer, and certainly before the next class session, along
with the problems designated in the book as homework problems
and assigned to you by your instructor.

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

Preface to the Second Edition

Comments received from readers and my own students invariably sug-


gested the desirability for expanding Chapter 1 in a manner that will reduce
the need to refer as often to the MATLAB® online help or to a MATLAB user
manual. It was also suggested that the reference value of this book might be
enhanced if a chapter on symbolic manipulation with MATLAB was added.
This second edition is responsive to both of these requests.
The MATLAB syntax was also updated to conform to the current version
of MATLAB. I have also added a number of special sections designated to
the more advanced students or for those students seeking additional chal-
lenges. Typically, these sections were assigned to outstanding students who
supplemented the regular course homework with special assignments. The
continuous need to challenge these gifted students is specially rewarding
when teaching in an urban university where many promising future scien-
tific talents are discovered only after these students are enrolled in college-
level courses.
Now that my modest experiment with introducing an integrated, empiri-
cal, and interdisciplinary style to teaching beginner engineering students
applied mathematics is approximately 10 years in progress, it may be useful
to reflect on the successes and failures of this particular effort:

• Almost everybody in my academic circle now recognizes the use-


fulness of supplementing and enhancing the regular rigorous stan-
dard mathematical curriculum for engineering students with a
hands-on elementary applied course.
• Those of my colleagues who still prefer to have the different mate-
rial taught in a more compartmentalized manner and at a later
stage of a student career argue that students may not be willing or
able to devote the blocks of time required to integrate the skills that
both the analytical and numerical techniques demand within the
same course. While I accept the premise that my adopted approach
certainly requires a higher level of motivation and time commit-
ment by students, it is also true that students who were willing to
invest the required time in a course based on this text ended up
ready to plunge in more advanced engineering courses much ear-
lier than others. I am particularly gratified by the performance of
those of my students who, following the successful completion of
this text went on to advanced engineering courses and were able to
concentrate and excel in the new engineering material covered
7425_C000.qxd 6/9/06 16:53 Page xii

there while many of their classmates were bogged down acquiring


the computational tools which those selected had already mastered.
• There is still no consensus in my own academic circle as to whether
it is advisable to let students explore through computer experi-
ments new mathematical results prior (or even much prior) to the
formal introduction of the underlying theoretical principles in a
more structured environment. My own observations are that a stu-
dent’s intuitive skills are strongly enhanced by accumulated math-
ematical empirical discovery and experience; however, it will be
probably up to psychologists working in learning theories to come
up with a more definitive answer to the value of an empirical
approach in teaching applied mathematics.
• Teachers who adopted this text successfully informed me that they
incorporated a certain amount of flexibility in different students’
assignments to reflect the different levels of skills present in a nor-
mal student population distribution. My own experience was not
different.

My advice to beginner students of engineering using this text is to take


their time and finish each chapter with its solved examples and suggested
problems before moving on to the next chapter. I do not recommend to the
beginner to merely skim through the core material. The reader will quickly
discover that many computational skills are acquired and internalized best
when developed slowly and cumulatively.
The use of this text as reference material by a number of practicing scien-
tists and engineers is often brought to my attention by some pleasant com-
ments in a faculty meeting, professional conference, or social function. This
encouragement by peers is most appreciated.
This new edition benefited from comments, emails, and letters that I
received from many students, readers, and colleagues. I am grateful for all
those who took the time to make suggestions, point out misprints, and/or
argued the pedagogical approach that I adopted in presenting certain mate-
rial. I owe special thanks to Herman Cummins and Robert Brenart for their
valuable comments on this second edition’s book proposal, and to Allison
Taub, my editor at Taylor & Francis who took the initiative in actively and
enthusiastically championing the publication of a second edition of this text,
and in supporting its preparation at this time. Courtney Esposito and her
colleagues at The MathWorks Inc. continue to provide me with copies of the
most current releases of MATLAB and their supporting documentation for
which I am most grateful. Julie Spadaro, project editor at Taylor & Francis,
assured a quality final product, successfully coordinating production teams
on different continents.
My wife Azza and daughters Tala and Nigh urged me to prepare a second
edition of this book because partially, I suspect, they liked the fact that the
mail folder that I bring home with me every day now had many communi-
cations (even fan letters!) from other than the dozen or so colleagues, friends,
7425_C000.qxd 6/9/06 16:53 Page xiii

and editors who regularly read, comment, and respond to my research


papers. But above all, I know that deep in their hearts they supported me
unconditionally in what they knew was to me a labor of love. To them I
rededicate this book.
Jamal T. Manassah
New York, September 2006
7425_C000.qxd 6/9/06 16:53 Page xiv
7425_C000.qxd 6/9/06 16:53 Page xv

Contents

1. Starting with MATLAB and Exploring Its Graphics


Capabilities ....................................................................................................1
1.1 First Steps ..........................................................................................1
1.2 Basic Algebraic Operations and Functions ..................................2
1.3 Plotting Points ..................................................................................6
1.3.1 Axes Commands ..............................................................8
1.3.2 Labeling a Graph ............................................................9
1.3.3 Plotting a Point in 3-D ....................................................9
1.4 M-files ..............................................................................................10
1.5 MATLAB Simple Programming ..................................................11
1.5.1 The for Iterative Loop ................................................11
1.5.2 if-else-end Structures ............................................12
1.5.3 The while Loop ............................................................15
1.6 Arrays ..............................................................................................16
1.6.1 Array Relational Operations ........................................17
1.6.2 Array Algebraic Operations ........................................18
1.6.3 Combining Arrays Relational and Algebraic
Operations: Alternative Syntax to the if Statement ..19
1.6.4 Plotting Arrays ..............................................................20
1.7 Data Analysis ..................................................................................22
1.7.1 Manipulation of Data ....................................................22
1.7.2 Displaying Data ............................................................24
1.7.3 Normal Distribution ......................................................25
1.8 Parametric Equations ....................................................................27
1.8.1 Definition ........................................................................27
1.8.2 More Examples ..............................................................28
1.8.3 Oscilloscope Graphics ..................................................30
1.9 Polar Plots ......................................................................................32
1.10 3-D Plotting ....................................................................................34
1.10.1 Straight-Edge Geometric Figures ................................34
1.10.2 Parametric Equations for a 3-D Curve ......................38
1.10.3 Plotting a 3-D Surface ..................................................40
1.10.4 Contour: A Powerful Tool for Exploring 2-D
Geometries ......................................................................43
1.11 Animation ......................................................................................48
1.12 Specialized Plots: Velocity, Gradient, etc. ..................................49
1.12.1 Velocity Plots from Parametric Equations ................49
1.12.2 Gradient of a Potential ..................................................50
7425_C000.qxd 6/9/06 16:53 Page xvi

1.13 Printing and Saving Work in MATLAB ....................................52


1.13.1 Printing a Figure ............................................................52
1.13.2 Printing a Program File (Script M-file) ........................54
1.13.3 Converting a MATLAB Graphic into an
Image File ........................................................................54
1.13.4 Saving Values of Variables ............................................54
1.13.5 Loading the Value of a Variable ..................................54
1.13.6 Saving a MATLAB Session ..........................................54
1.13.7 Loading workspace.mat ..........................................54
1.14 MATLAB Commands Review ....................................................55

2. Difference Equations ................................................................................59


2.1 Simple Linear Forms ....................................................................59
2.2 Amortization ..................................................................................61
2.3 An Iterative Geometric Construct: The Koch Curve ................64
2.4 Solution of Linear Constant Coefficients
Difference Equations ....................................................................67
2.4.1 Homogeneous Solution ................................................68
2.4.2 Particular Solution ........................................................70
2.4.3 General Solution ............................................................70
2.5 Convolution-Summation of a First-Order System with
Constant Coefficients ....................................................................74
2.6 General First-Order Linear Difference Equations ....................76
2.7 Nonlinear Difference Equations ..................................................78
2.7.1 Computing Irrational Numbers ..................................78
2.7.2 The Logistic Equation ..................................................79
2.8 Fractals and Computer Art ..........................................................81
2.8.1 Mira’s Model ..................................................................81
2.8.2 Hénon’s Model ..............................................................84
2.9 Generation of Special Functions from Their Recursion
Relations ..........................................................................................86

3. Elementary Functions and Some of Their Uses ..................................89


3.1 Function Files ................................................................................89
3.2 Examples with Affine Functions ................................................91
3.2.1 Application to a Simple Circuit ..................................91
3.2.2 Further Consideration of Figure 3.1 ............................94
3.3 Examples with Quadratic Functions ..........................................95
3.4 Examples with Polynomial Functions ........................................96
3.5 Examples with the Trigonometric Functions ............................99
3.6 Examples with the Logarithmic Function ................................100
3.6.1 Ideal Coaxial Capacitor ..............................................100
3.6.2 The Decibel Scale ........................................................101
3.6.3 Entropy ..........................................................................101
3.7 Examples with the Exponential Function ................................103
3.7.1 Application to a Simple RC Circuit ..........................103
7425_C000.qxd 6/9/06 16:53 Page xvii

3.8 Examples with the Hyperbolic Functions and


Their Inverses ..............................................................................105
3.8.1 Application to the Capacitance of
Two Parallel Wires ......................................................105
3.9 Commonly Used Signal Processing Functions ........................105
3.10 Animation of a Moving Rectangular Pulse ..............................111
3.11 Use of the Function Handle ........................................................112
3.12 MATLAB Commands Review ....................................................114

4. Differentiation, Integration, and Solutions of Ordinary


Differential Equations ............................................................................115
4.1 Limits of Indeterminate Forms ..................................................115
4.2 Derivative of a Function ............................................................117
4.3 Infinite Sums ................................................................................119
4.4 Numerical Integration ................................................................121
4.5 A Better Numerical Differentiator ............................................124
4.5.1 Application ..................................................................127
4.6 A Better Numerical Integrator: Simpson’s Rule ......................128
4.7 Numerical Solutions of Ordinary Differential Equations ......135
4.7.1 First-Order Iterator ......................................................137
4.7.2 Higher-Order Iterators: The Runge–Kutta
Method ..........................................................................142
4.7.3 MATLAB ODE Solvers ................................................146
4.8 Integral Equations ........................................................................152
4.9 MATLAB Commands Review ..................................................158

5. Root Solving and Optimization Methods ..........................................159


5.1 Finding the Real Roots of a Function of One Variable ..........159
5.1.1 Graphical Method ........................................................159
5.1.2 Numerical Methods ....................................................160
5.1.3 MATLAB fzero Built-in Function ..........................167
5.1.4 Application: Zeros of the Zero-Order
Bessel Function ............................................................168
5.2 Roots of a Polynomial ................................................................170
5.3 Optimization Methods for Functions of One Variable ..........171
5.3.1 Graphical Method ........................................................172
5.3.2 Numerical Method: The Golden Section Method ..173
5.3.3 MATLAB fminbnd Built-in Function ......................175
5.4 The Zeros and the Minima of Functions in Two Variables ..178
5.4.1 The MATLAB fsolve Built-in Command ..............178
5.4.2 The MATLAB fminsearch Built-in Command ....181
5.5 Finding the Minima of Functions with
Constraints Present ......................................................................185
5.5.1 Lagrange Multipliers ..................................................186
5.5.2 MATLAB fmincon Built-in Function ......................187
5.6 MATLAB Commands Review ..................................................189
7425_C000.qxd 6/9/06 16:53 Page xviii

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

7.4 The Dirac Notation and Some General Theorems ..................244


7.4.1 Cauchy–Schwartz Inequality ....................................246
7.4.2 Triangle Inequality ......................................................248
7.5 Cross Product and Scalar Triple Product ................................249
7.5.1 Cross Product ..............................................................249
7.5.2 Geometric Interpretation of the Cross Product ......250
7.5.3 Scalar Triple Product ..................................................250
7.6 Tangent, Normal, and Curvature ..............................................253
7.7 Velocity and Acceleration Vectors in Polar Coordinates ........255
7.8 Line Integral ..................................................................................261
7.9 Infinite-Dimensional Vector Spaces ..........................................263
7.10 MATLAB Commands Review ..................................................272

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

8.9.4 Pauli Spinors ................................................................312


8.10 Special Classes of Matrices ........................................................319
8.10.1 Hermitian Matrices ......................................................319
8.10.2 Unitary Matrices ..........................................................323
8.10.3 Unimodular Matrices ..................................................324
8.11 Transfer Matrices ..........................................................................330
8.12 Covariance Matrices ....................................................................334
8.12.1 Parametric Estimation ................................................336
8.12.2 Karhunen–Loeve Transform ......................................339
8.13 MATLAB Commands Review ..................................................341

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

10. A Taste of Probability Theory ................................................................365


10.1 Introduction ..................................................................................365
10.2 Basics ..............................................................................................366
10.3 Addition Laws for Probabilities ................................................371
10.4 Conditional Probability ..............................................................375
10.4.1 Total Probability Theorem ..........................................377
10.4.2 Bayes Theorem ............................................................377
10.5 Repeated Trials ............................................................................380
10.6 Generalization of Bernoulli Trials ............................................382
10.7 The Poisson and the Normal Distributions ............................382
10.7.1 The Poisson Distribution ............................................383
10.7.2 The Normal Distribution ............................................385
7425_C000.qxd 6/9/06 16:53 Page xxi

Appendix A: Review of Elementary Functions............................................389


A.1 Affine Functions ..........................................................................389
A.2 Quadratic Functions ....................................................................390
A.3 Polynomial Functions ..................................................................395
A.4 Trigonometric Functions ............................................................395
A.5 Inverse Trigonometric Functions ..............................................397
A.6 The Natural Logarithmic Function ..........................................397
A.7 The Exponential Function ..........................................................398
A.8 The Hyperbolic Functions ..........................................................399
A.9 The Inverse Hyperbolic Functions ............................................401

Appendix B: Determinants ..............................................................................403

Appendix C: Symbolic Calculations with MATLAB ..................................407


C.1 Symbolic Manipulation ..............................................................408
C.1.1 Creating Symbolic Expressions ................................408
C.1.2 Algebraic Manipulation ..............................................411
C.1.3 Plotting Symbolic Expressions ..................................414
C.2 Symbolic Solution of Algebraic and Transcendental
Equations ......................................................................................417
C.3 Symbolic Calculus ......................................................................418
C.4 Symbolic Linear Algebra ............................................................423
C.5 z-Transform and Laplace Transform ........................................428
C.5.1 z-Transform ..................................................................428
C.5.2 Solving Constant Coefficients Linear Difference
Equations Using z-Transform ....................................431
C.5.3 Laplace Transform ......................................................432
C.5.4 Solving Constant Coefficients Linear ODE
Using Laplace Transform ............................................436

Appendix D: Some Useful Formulae ............................................................439

Appendix E: Text Formatting ..........................................................................443

Selected References ..........................................................................................445

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.

1.1 First Steps


The first step in using MATLAB is to know how to call it. It is important to
remember that although the front-end and the interfacing for machines with
different operating systems are sometimes different, once you are inside
MATLAB, all programs and routines are written in the same manner. Only
those few commands that are for file management and for interfacing with
external devices such as printers may be different for different operating sys-
tems. After entering MATLAB, usually by double clicking on the MATLAB
program icon, you should see the prompt >>, which means the program
interpreter is waiting for you to enter instructions. The interpreter goes to
work when you press the Return key. In case you wish to go to a new line
for the purpose of continuing your instructions, you should enter ellipses
( … ) before you hit the Return key.
In case the program is already opened, and to make sure that nothing is
saved from a previous session, type and enter:

>>clear all
1
7425_C001.qxd 9/2/06 12:03 PM Page 2

2 Elementary Mathematical and Computational Tools Using MATLAB®

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.

1.2 Basic Algebraic Operations and Functions


The MATLAB environment can be used, on the most elementary level, as a
tool to perform simple algebraic manipulations and function evaluations.

EXAMPLE 1.1

Exploring the calculator functions of MATLAB: The purpose of this example


is to show how to manually enter data and how to use the basic algebraic
operations of MATLAB. Note that the statements will be executed immedi-
ately after they are typed and entered (no equal sign is required).
Enter the text that follows the >> prompt to find out the MATLAB
responses to the following:

>> format short


>> 2.54376+2.32e1 %2.32e1=2.32*(10^1)
ans =
25.7438
>> 5.45^2
ans =
7425_C001.qxd 9/2/06 12:03 PM Page 3

Starting with MATLAB® and Exploring Its Graphics Capabilities 3

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:

>> format short e


>> 2.54376+2.32e1
ans =
2.5744e+001
>> 5.45^2
ans =
2.9703e+001
>> ceil(7.58)
ans =
8
>> 2*sin(pi/4)
ans =
1.4142e+000 ⵧ

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

The numeric functions of MATLAB are:


ceil(x) rounds the number to nearest integer toward 
fix(x) rounds the number to nearest integer toward 0
floor(x) rounds the number to nearest integer toward 
round(x) rounds the number to nearest integer

The numeric formats of MATLAB are:


format short (default value) gives the number with four decimal
digits
format long gives the number with 16 digits
format short e gives the number with four decimals plus an exponent
format long e gives the number with 15 digits plus an exponent
format bank gives the number with 2 digits after the decimal (use-
ful for financial calculations)
7425_C001.qxd 9/2/06 12:03 PM Page 4

4 Elementary Mathematical and Computational Tools Using MATLAB®

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:

MATLAB form Name Mathematical form

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  

acosh(x) inverse hyperbolic cosine (


cosh1 ( x)  ln x  x 2  1 )
where x 1
1 1 
asech(x) inverse hyperbolic secant sech1 ( x)  ln   2  1 
x x 
where 0  x  1
1  1 x 
atanh(x) inverse hyperbolic tangent tanh1 ( x)  ln  
2  1 x 
where 1  x  1

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

Starting with MATLAB® and Exploring Its Graphics Capabilities 5

EXAMPLE 1.2

Assigning and calling values of parameters: In addition to inputting data


directly to the screen, you can assign a symbolic constant or constants to rep-
resent data and perform manipulations on them.
For example, enter and note the answer to each of the following:

>> format short


>> a=2.65;
>> b=3.765;
>> c=a*(a+b)
c =
16.9997
>> d=a*b
d =
9.9772
>> e=a/b
e =
0.7039
>> f=a^3/b^2
f =
1.3128
>> g=a+3*b^2
g =
45.1757

(The spacing shown above is obtained by selecting Compact for Numerical


Display in the Command Window Preferences in the File pull-down menu.)

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?

Answer: The order of precedence is as follows:


1. Parentheses, starting with the innermost
2. Exponentiation from left to right
7425_C001.qxd 9/2/06 12:03 PM Page 6

6 Elementary Mathematical and Computational Tools Using MATLAB®

3. Multiplication and division with equal precedence, also evaluated


from left to right
4. Addition and subtraction, with equal precedence, also evaluated
from left to right

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

1.3 Plotting Points


In this section, you will learn how to use some simple MATLAB graphics
commands to plot points. We use these graphics commands later in the text
for plotting arrays and for visualizing their properties. To view all the func-
tions connected with two-dimensional (2-D) graphics, type

>>help plot

All graphics functions connected with three-dimensional curves graphics


can be looked up by typing

>>help plot3

A point P in the x–y plane is specified by two coordinates: the x-coordinate


measures the horizontal distance of the point from the y-axis, while the
y-coordinate measures the vertical distance above or below the x-axis. These
coordinates are called Cartesian coordinates, and any point in the plane can
be described in this manner. We write for the point, P(x, y).
Other representations can also be used to locate a point with respect to a
particular set of axes. For example, in the polar representation, the point is
specified by an r-coordinate that measures the distance of the point from the
origin, while the -coordinate measures the angle which the line passing
through the origin and this point makes with the positive x-axis. The angle
is measured anticlockwise from the positive x-axis.
The purpose of the following two examples is to learn how to represent
points in a Cartesian plane and to plot them using MATLAB.
7425_C001.qxd 9/2/06 12:03 PM Page 7

Starting with MATLAB® and Exploring Its Graphics Capabilities 7

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:

Markers Symbol Color Symbol

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.

Solution: If we went ahead, defined the coordinates of R, and attempted to


plot the point R through the following commands:
>>x2=2.5;
y2=4;
plot(x2,y2,'og')
We would find that the last plot command erases the previous plot output.
Thus, what should we do if we want both points plotted on the same graph?
The answer is to use the hold on command after the first plot.
The following illustrates the instructions that you should have entered
instead of entering the above:
>>hold on
x2=2.5;
y2=4;
plot(x2,y2,'og')
hold off
The hold off turns off the hold on feature. ⵧ
7425_C001.qxd 9/2/06 12:03 PM Page 8

8 Elementary Mathematical and Computational Tools Using MATLAB®

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')

This has the advantage, in MATLAB, if no color is specified, that the


program assigns automatically a different color to each point.

1.3.1 Axes Commands


You may have noticed that MATLAB automatically adjusts the scale on a
graph to accommodate the coordinates of the points being plotted. The axis
scaling can be manually enforced by using the command

>>axis([xmin xmax ymin ymax])

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.

Solution: Enter the following:

>>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

Starting with MATLAB® and Exploring Its Graphics Capabilities 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

This command displays gridlines at the tick marks.


If we repeat Example 1.5 with these new features added, the set of instruc-
tions will now read:

>>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.

1.3.2 Labeling a Graph


To add labels to your graph, the functions xlabel, ylabel, and title can
be used as follows:

>>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).

1.3.3 Plotting a Point in 3-D


In addition to being able to plot points on a plane (2-D space), MATLAB is
also able to plot points in a three-dimensional space (3-D space). For this, we
use the plot3 function.
7425_C001.qxd 9/2/06 12:03 PM Page 10

10 Elementary Mathematical and Computational Tools Using MATLAB®

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:

axis([xmin xmax ymin ymax zmin zmax])

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

Starting with MATLAB® and Exploring Its Graphics Capabilities 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. ⵧ

1.5 MATLAB Simple Programming


In this section, we introduce the programming flow control commands for,
if, and while.

1.5.1 The for Iterative Loop


The power of computers lies in their ability to perform a large number of
repetitive calculations. To do this without entering the value of a parameter
or variable each time that these are changed, all computer languages have
control structures that allow commands to be performed and controlled by
counter variables, and MATLAB is no different. For example, the MATLAB
for loop allows a statement or a group of statements to be repeated a pre-
scribed number (i.e., positive integer) of times.
7425_C001.qxd 9/2/06 12:03 PM Page 12

12 Elementary Mathematical and Computational Tools Using MATLAB®

EXAMPLE 1.8

Generate the square of the first ten integers.

Solution: Edit and execute the following script M-file:

for m=1:10
x(m)=m^2;
end ⵧ

In this case, the number of repetitions is controlled by the index variable m,


which takes on the values m=1 to 10 in intervals of 1. Therefore, 10 assign-
ments are made. What the above loop is doing is sequentially assigning the
different values of m^2 (i.e., m2) for each element of the “x-array.” An array
is just a data structure that can hold multiple entries. An array can be 1-D
such as in a vector or 2-D such as in a matrix. More will be said about vec-
tors and matrices in subsequent chapters. At this time, assume 1-D and 2-D
arrays as pigeonholes with numbers or ordered pair of numbers respectively
assigned to them.
To find the value of a particular slot of the array, such as slot 3, enter:

>>x(3)

To read all the values stored in the array, enter:

>>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.)

1.5.2 if-else-end Structures


If a sequence of commands must be conditionally evaluated based on a rela-
tional test, the programming of this logical relationship is executed with
some variation of an if-else-end structure.
7425_C001.qxd 9/2/06 12:03 PM Page 13

Starting with MATLAB® and Exploring Its Graphics Capabilities 13

A. The simplest form of this structure is:


if expression
Commands evaluated if expression is True
else
Commands evaluated if expression is False
end

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

Find for integer a, 0  a  10, the values of C, defined as follows:

 ab for a  5

C 3
 ab for a  5
2

and b  15.

Solution: Edit and execute the following script M-file:

>>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:

22.5 45 67.5 90 112.50 90 105 120 135 150 ⵧ

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

14 Elementary Mathematical and Computational Tools Using MATLAB®

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

Find for integers a, 1  a  15, the value of D defined by

 a3 for a  5

D   2a for 5  a  10

 a  7 for 10  a  15

Solution: Edit and execute the following script M-file:

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

Starting with MATLAB® and Exploring Its Graphics Capabilities 15

1.5.3 The while Loop


The while loop is used when the iteration process has to terminate when a
priori specified condition is satisfied. The difference with the for command
is that there the number of iterations is specified in advance.
The syntax for the while loop is as follows:

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

16 Elementary Mathematical and Computational Tools Using MATLAB®

Homework Problem
Pb. 1.4 Using while, find the largest number x which can be written in
the form

x  3n  2n  3

and such that n is an integer and x  35,724.

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:

length(x) finds the length of the array x (i.e., number of elements)


find(x) computes a new array where the successive elements indicate
the positions where the components of the array x are nonzero
max(x) gives the value of the largest element in the array x
min(x) gives the value of the smallest element in the array x
sum(x) gives the sum of all elements in the array x

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:

>> x=[0 3 6 -2 11 0 7 9];


>> x(3)
ans =
6
>> length(x)
ans =
8
>> find(x)
7425_C001.qxd 9/2/06 12:03 PM Page 17

Starting with MATLAB® and Exploring Its Graphics Capabilities 17

ans =
2 3 4 5 7 8
>> max(x)
ans =
11
>> min(x)
ans =
-2
>> sum(x)
ans =
34 ⵧ

1.6.1 Array Relational Operations


MATLAB has six relational operations that compare the elements of two
arrays of the same length.
The relational operators are:

= = 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

Study the following printout:

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

18 Elementary Mathematical and Computational Tools Using MATLAB®

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. ⵧ

1.6.2 Array Algebraic Operations


In Section 1.5, we used for loops repeatedly. However, this kind of loop-
programming is very inefficient and must be avoided as much as possible in
MATLAB. In fact, ideally, a good MATLAB program will always minimize
the use of loops because MATLAB is an interpreted language — not a com-
piled one. As a result, any looping process is very inefficient. Nevertheless,
at times we use the for loops, when necessitated by pedagogical reasons.
To understand array operations more clearly, consider the following:
a=1:3 % a starts at 1, goes to 3 in increments of 1.
If the increment is not 1, you must specify the increment; for example,

b=2:0.2:6 % b starts at 2 ends at 6 in steps of 0.2

To distinguish arrays operations from either operations on scalars or on


matrices, the symbol for multiplication becomes .*, that of division ./,
and that of exponentiation .^. Thus, for example,

c=a.*b % takes every element of a and multiplies


% it by the element of b in the same array location

Similarly, for exponentiation and division:

d=a.^b
e=a./b
7425_C001.qxd 9/2/06 12:03 PM Page 19

Starting with MATLAB® and Exploring Its Graphics Capabilities 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.

NOTE The expression x=linspace(0,10,200) is also a generator for an


x-array. Its first element equal to 0, its last element equal to 10, and it has 200
equally spaced points between 0 and 10. Here, the number of points rather
than the increment is specified; that is, length(x)=200.

1.6.3 Combining Arrays Relational and Algebraic Operations: Alternative


Syntax to the if Statement
As an alternative to the if syntax, we can use a combination of arrays rela-
tional and algebraic operations to generate a complicated array from a sim-
ple one.

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

Find the value of the sum of the elements of y.


7425_C001.qxd 9/2/06 12:03 PM Page 20

20 Elementary Mathematical and Computational Tools Using MATLAB®

1.6.4 Plotting Arrays


If we are given two arrays x and y, we can plot the y-array as function of the
x-array. What MATLAB is actually doing is displaying all the points
P(xi, yi) and connecting each two consecutive points by a straight line.
The same options for markers and color that were available for plotting
points and described earlier are also valid in this case. Additionally, we can
specify here the style of the line that connects the different points.

Style MATLAB Symbol

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

The three arrays x, y, and z are defined as follows:

x  0:0.1:10; y  x 2  6x  20; z  3x  5

Plot y as function of x, and z as function of x. Show the traces as red dotted


line and blue solid line, respectively, label the x- and y-axis, and label graph
as Figure of Example 1.15.

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

Starting with MATLAB® and Exploring Its Graphics Capabilities 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:

semilogy creates a semilog plot with logarithmic scale on the y-axis


semilogx creates a semilog plot with logarithmic scale on the x-axis
loglog creates a log–log graph

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

22 Elementary Mathematical and Computational Tools Using MATLAB®

1.7 Data Analysis


1.7.1 Manipulation of Data
The most convenient representation for data collected from experiments is in
the form of histograms. Typically, you collect data and want to sort it out in
different bins. But prior to getting to this point, let us review and introduce
some array-related commands that are useful in data manipulation.
Let {yn} be a data set. It can be represented in MATLAB by an array y.

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)

where N is the length of the array.

EXAMPLE 1.16

An old recorder at Bill’s backyard in Hamilton Heights in New York down-


loaded the following raw data for the temperature readings on July 25
between 12:01 p.m. and 1:00 p.m.:

T=[95 95.5 96 95.8 97 96.5 96 95 55 96 95 97 96 ...


96.5 96.2 125 96 95 95.5 96]
Random documents with unrelated
content Scribd suggests to you:
CHAPTER XIV
INDIAN SUMMER

October was fine that year, with days of warm sunshine and frosty nights—ideal
for living in the open. Late in the month a party of Indians, both men and women,
stopped at our ranch on their way to the mountains. Little Creek and my Indian
sister were going; Yellow Bird, Onesta, and his wife Nitana; the sisters Katoyísa
and Nínake; and they asked me to go along.

We put two old mares in the heavy wagon, to carry blankets and camp
equipment; they were the only horses to be found near the ranch. Yellow Bird
drove the team with Katoyísa and I rode Kutenai, my saddle horse.

Soon, one of the team became lame; and Yellow Bird went back for another
horse. So I put Kutenai in the harness and mounted the driver’s seat beside the
Indian girl.

At first the going was good. The prairie was level and we had no trouble; but we
were left far behind. Our wagon was heavy, the team slow and badly matched.
Without a whip, I had to shout and swing my lariat to make the horses move
along. Throughout the day we saw no big game, only jack rabbits and badgers
and ground squirrels, chirping and standing straight up, like miniature prairie
dogs.

Near the mountains we came to rough traveling, up hill and down. In bad places,
with no road to follow, there was danger of breaking the tongue, a wheel or an
axle. We had to cross gullies and washouts and streams with high banks; to find
our way round ravines, and through thickets of alder and quaking aspen.

We did not talk much, but our silence was natural. Katoyísa [110]only spoke when
she felt like it. She was a quiet, self-contained girl, fearless and conscientious.
She wanted to help her tribe in their struggle for survival; that they might learn to
adapt themselves to the ways of the conquering white race.

That day I felt as though I were in a dream—like a pioneer of early days, on my


way to a new land with this Indian girl. But, alas! I was brought suddenly back to
earth. We crossed the summit of a high ridge and overlooked a terrible hill—a
steep descent to a lower level of the plain, stretching to the foot of the
mountains. The air was marvelously clear, and fragrant with the scent of pine
and cedar.

We started down the hill; and I thought to myself: “If this heavy wagon ever gets
started, the horses cannot hold it and we shall both be killed.” The ground was
smooth and hard, with a grass-covered gravel. When the tail of the wagon
began to swing, Katoyísa was calm and unafraid. And, when the brakes did not
hold, she was quick to act; she jumped from the wagon and held the heads of
the frightened horses, while I blocked the wheels with stones. Then we rough-
locked the wheels with ropes; and cut down a green tree and lashed it to the
body of the wagon, so that it dragged on the ground in front of the hind wheels.
Thus we made our way slowly down the steep hill, zigzagging back and forth
until we came to a dangerous slant, where the wagon went on two wheels and
began to topple. We thought we were turning over. But neither of us tried to
jump. I put my arm about Katoyísa and we were ready. Then the wagon
suddenly righted itself; I turned the horses into a low growth of aspens; and thus
we came safely to the bottom.

We trailed the rest of our party across level prairie and along a river, passing
through the broad entrance of a valley through lovely meadows of tall bunch
grass, thickets of willows and groves of poplars, until we came to our camping
[111]place in the mountains—a high bench over the river and close to a green
forest of pine and spruce.

In the northern Rockies the autumn nights come early. The sun was down by the
time we had our camp ready, and the horses watered and picketed. Then we
built a big camp-fire, for the night air was cold. We roasted meat on sticks over
the hot coals, and stalks of wild parsnip to bring out the juice. My companions
used neither knives nor forks; and like them I held the meat in my hands and
tore it with my teeth; but it had a relish and flavor I never tasted in civilization.

In that autumn camp, the Indians were at their best. They were light-hearted and
happy, as if they had not a care in the world. They were nomads by nature and
loved to wander, to be free and live in the open. They sang Indian songs and
told stories and tales of adventure. They talked about a mad Indian who roamed
the plains and mountains; he traveled so fast every one was afraid; he killed
people on sight, both Indian and white; he was on the warpath and wanted to kill
as many as he could before he died; he came silently at night and shot people
as they stood in the firelight.
Thus we sat and talked by the fire until late. We slept on the grass, under the
stars. The women were together in one place, sharing their robes and blankets;
the men in another, with our horses picketed near. As soon as the Indians lay
down, there was quiet. But I lay awake, drinking in the clear fresh air and the
fragrance of the forest, and watching the moon rise over the broad entrance of
the valley. Then, suddenly it was morning. I saw the golden color of sunrise in
the sky and the women cooking breakfast.

That day I went with Yellow Bird on a hunt for Rocky Mountain sheep. Our camp
needed meat; and, in the fall, mountain mutton was the most delicious of all the
game animals. We rode along an old Indian trail, westward through the valley,
where the golden brown of ripened [112]grasses covered the meadows; and
came to a dark forest where the ground was fragrant with pine needles. We
followed the shores of a chain of lakes, to a place where high mountains came
close together on both sides of the valley. Yellow Bird was leading with rifle
across his saddle. Finally he turned and signed with his hands, “Sheep on that
mountain.” High up, above timber-line, I saw a band of brownish gray animals
with white rump patches. They were feeding on a grassy slope which extended
to slide rock, near the summit of the mountain. I counted sixteen sheep—ewes
and small rams. Suddenly, and for no apparent reason, they took alarm and ran
swiftly along the mountain side. Then a big grizzly appeared against the sky-line,
coming across the shoulder of the mountain. He, too, was stalking the sheep.
He ran with head up, and I could see his long silvery hair rolling in waves.

Yellow Bird was excited and eager for a shot. So we tied our horses and made
ready to climb, leaving our coats and everything we could spare. After a drink of
cold water at a stream, we started with our rifles and cartridge belts, taking our
course along the mountain side, so that the grizzly might not get our scent. We
struggled through tangled thickets of evergreens, and windfalls where dead
trees lay piled across each other in all directions. The forest seemed vast and
lonely; everywhere silence, not a breath of air stirred. We climbed the southern
slope in the glare of the midday sun. I was drenched with sweat and my breath
came fast.

Near the edge of the woods at timber-line, we were careful not to snap a twig or
make a branch rustle, expecting any moment to meet the grizzly. At every sound
or movement in the trees, I felt a sudden thrill and peered through the forest with
senses alert. But we did not meet the bear, to Yellow Bird’s chagrin. He was a
reckless fellow, always eager for a fight and confident of his skill with a rifle.
SUNRISE AT OUR HUNTING CAMP IN THE ROCKIES

[113]

We crossed the shale to the sky-meadow, where we saw the sheep; and to stalk
them went towards the summit of the mountain, that we might approach from
above.

Big Horn are the most difficult to approach of all big game. They are wary and
quick-sighted; the slightest sound startles them; and they are off like a flash. No
animal is their superior in climbing; even in the most difficult places they never
slip, nor make a misstep.

We hunted up-wind, keeping out of sight, using crags and boulders for shelter.
When we came to a precipitous part of the mountain, we went slowly and
carefully, to keep from making a false step and breaking our necks. We
scrambled along the narrow ledges and rock-shelves, clinging to cold buttresses
and to scant projections of the cliffs, careful not to start a loose stone or any
crumbling shale.

At last we came to an overhanging crest. We crawled to the edge and peeped


over the cliff. Below, on a narrow ledge, stood a ewe sheep. She was at the top
of a precipice, with a view of the entire mountain side. By this time the sun was
low in the sky. Now was our only chance for meat; we had to get down the cliffs,
while there was still light to see the way. Yellow Bird fired and struck the sheep
behind the shoulder. She jumped to a lower shelf, where my bullet finished her.
The carcass fell over the precipice and down the barefaced cliffs; the hollow
reverberations of its fall echoed from the mountain walls. It struck slide-rock and
rolled over and over, going at terrible speed, until it landed against a big boulder
far down the mountain—our fate if we should slip or make a false step.

Then we made our way back along the treacherous ledges and rock-shelves,
where nerve and sure-footedness were necessary for every step. When we
came to loose shale, we traveled fearlessly with long slides, down to the carcass
of the sheep, near timber-line. [114]

By the time we stripped off the hide and had the meat ready, night was
beginning to settle over the surrounding mountains. Then, in the dark forest
Yellow Bird was afraid. He sang chants to keep off ghosts and evil things, until
we came to our horses on the floor of the valley. After the moon rose, the dark
places were filled with its magic light, and the open parks and lakes were like
fairyland.

At camp the Indians gathered around the fire to roast sheep meat, and to hear
about our hunt. It was the night of full moon, without a cloud in the sky. Our fire
was in a meadow, near the edge of the forest, where its red glow lighted up the
big trees.

Like true children of nature, my companions acted as they felt. Sometimes they
talked; and sometimes there was silence for a while. In the distance an owl
hooted. It came nearer and nearer, until its call sounded from the top of a tree
near by.

“Listen!” said Nitana. “He calls his own name—ears-far-apart, ears-far-apart,


ears-far-apart (ka-ka-not-stoki, horned owl). One can tell the different members
of an owl family by their voices—the deep call of the father, the higher one of the
mother and the thin ones of the children.”

After another silence the owl hooted again. My Indian sister shuddered:
“Perhaps it is a ghost,” said she. “Some owls are the unhappy spirits of people
long dead.”
“A medicine man told me,” said Little Creek, “that people who have died and are
unhappy in the spirit world, take the form of owls and come back to their old
haunts. They travel only at night and dread the sunlight, because their deeds in
this world were evil.”

Again the owl hooted, this time from another tree. “Kyai!” exclaimed Strikes-on-
Both-Sides, “there it is again. Just before my sister died, she saw an owl looking
at the door of her tepee. She was so frightened, she told a medicine man; [115]he
said to use black paint on her face; if the owl came back, the paint would ward
off the evil. But it was no use; my sister died in a few days.”

This ghostly talk by the fire, under the nocturnal spell of the forest, made the
women afraid. To allay their fears, Little Creek said: “An owl never harms any
one in a crowd, if he has a relative there.” So he left the circle of firelight, and
going to the edge of the woods shouted to the owl, “You are my relative.”

Then the owl flew away, and I asked Little Creek: “What is the spirit world like?”
He said:

“We call it the Sand Hills, a white alkali country—far east on the plains. It is
surrounded by quicksands that the living may not enter. The ghost people chase
ghost buffalo and antelope. They have wild berries and other things such as we
like to eat. Old Person once died for a day and a night, but his spirit returned to
his body. He told the watchers he had been to the Sand Hills, but was not
allowed to enter; his time to die had not yet come. His body was wet with sweat
when his spirit came back; they drove him from the Sand Hills.”

Nitana said: “Ghosts like to stay near forests and rivers. People who sleep alone
in a thick forest are sometimes bothered by ghosts pulling off their blankets in
the night and hitting them with sticks. But a person may never see the ghost. If it
bothers him too much, he can offer his pipe with tobacco and pray: ‘Ghost, pity
me! I am poor and alone. Take this pipe and smoke. I pray go away and leave
me in peace.’ If the ghost will not leave, but keeps on bothering the person, it
sometimes bestows upon him the power to doctor people.”

“Ghosts of dead medicine men are the worst. They are known as ‘the haunting
spirits.’ It is they who use the ghost shots, and kill people who go outside the
tepee at night. [116]This fate often happens to sick people; they are shot at by
ghosts; and when they go back to bed, they die in their sleep. Sometimes a
person who goes outside at night, comes back breathing heavily, as if he were
smothering. He tells his people that he saw something; and then they know that
he was shot at by a ghost. But he can be cured by a medicine man who has
power over ghost shots. This medicine man finds out the spot where he cannot
breathe; and then he doctors him; he draws out the shot—he may suck it out
with his mouth.

“Sometimes sick people see ghosts. Ghosts keep bothering them, coming again
and again; the ghosts wait for them until they die, and then take them away.
There are ghosts which scare horses at night, so that their riders fall off. Then
they make a whistling sound and laugh.”

After a silence Katoyísa said: “Tell a story about a ghost.”

“Take care, the owl may hear you,” answered Nitana. And then she continued:
“There was a camp of two tepees in a lonely place, far off on the prairie. In one
of them lived a couple without children, and in the other a man with his wife and
daughter. No other people were near. One day the father sent his girl to the
other tepee. On the way she saw a person seated on the ground. She supposed
it was their neighbor and went towards him. He kept his blanket wrapped closely
about him and she could not see his face. When he did not move, she threw a
stone to attract his attention. Still he did not move or look up, so she went her
way to the other lodge. There she found their neighbor and his wife. She told
them about the stranger and they went forth to look. But the mysterious person
had disappeared. There was no place to hide; the prairie was level with no trees.
The girl was so frightened she ran back and told her parents. Throughout the
rest of that day they watched, but nobody appeared.

“That same night, when both families were seated around [117]the lodge-fire, an
owl lighted on one of the poles over their heads and began to cry: ‘Oo-oo-oo-oo.’
Then they knew the ghost had come back to trouble them. They begged it to go
away and leave them in peace. But it stayed on the lodge-pole and kept crying:
‘Oo-oo-oo-oo.’ The girl said: ‘I know he is angry, because I threw a stone at him.’
So they filled a pipe with tobacco and offered it to the ghost. If he smoked he
would do them no harm. But the ghost paid no attention to them. He was still
angry, and kept on with his solemn crying. Then the father gave the pipe to his
daughter. She held the pipe up and prayed: ‘Ghost, smoke. I pray you go away
and leave us in peace.’ It paid no attention, but kept on crying. So they held the
girl up into the smoke-hole of the tepee, where she was near the ghost. Again
she offered the pipe. The ghost gave a loud cry and the girl fell over dead.”
Then Little Creek told this ghost story about another owl:

“There was a man named Cross Bull who lived over north among the Blood
Indians. He went alone to war. He had bad luck and started home empty-
handed. One evening, after many days of hard traveling, he came to a river
valley and went into camp in a grove of cotton wood trees. He had no food; he
was tired and hungry. So he built a fire close to a log and lay down to sleep. In
the night he was wakened by something coming through the underbrush. He
had his back towards it. He dared not turn his head to look. He thought it might
be a ghost. He heard it go into a tree, so he lay very still; he did not even move.
Finally he raised his head and looked. In the forks of a big tree sat a ghost. A
long white robe covered its bones. Whenever it swung its legs, the bones rattled.
Cross Bull began to pray. He begged it to go away, saying: ‘I am tired and want
to rest.’

“But the ghost paid no attention. It stared at him from hollow eyes; it whistled
and rattled its bones. Cross Bull prayed again: [118]

“ ‘O ghost, be kind.
Go away and leave me alone.
I am poor and have bad luck.
I am tired and want to rest.’

“Four times Cross Bull made this prayer. But the ghost paid no attention; it kept
on whistling and swinging its legs. Then Cross Bull got angry. He took his bow
and arrow and shot at the ghost. He saw an owl fly from the tree, and heard it
cry in a quavering voice: ‘You hurt me so badly, you hurt me so badly.’ (Screech
owl.)

“Cross Bull was so frightened he ran away in the dark. The ghost kept following;
for whenever he stopped he heard it crying the same thing, over and over in a
quavering voice: ‘You hurt me so badly, you hurt me so badly.’

“Cross Bull left the valley. He did not stop running until he was far out on the
plains. Then it was daylight and the ghost left him. But he kept on running until
he reached the Blood camp. Next night Cross Bull died. And that is the end of
my story-telling.”

By this time it was late in the night and my Indian friends went to bed. I sat alone
by the camp-fire. The moon was now in the west; and the handle of the Great
Dipper, that wonderful clock of the north sky, pointed downward to the horizon.

Then I climbed the mountain side in the bright moonlight, to look out over the
forests and the great plains stretching eastward. On the other side of the valley
were mountains, with shining glaciers and snowfields. The aurora formed an
arch of light across the north sky; streamers mounting to the zenith in yellow and
yellowish red, and sometimes greenish white. They swayed backward and
forward, now strong, now faint, until they faded and a luminous veil covered the
sky, through which a bright star shone. There was no wind; and everywhere an
impressive stillness, broken only by the river in the valley, and the solemn notes
of the owl, “a haunting spirit.” [119]
[Contents]
CHAPTER XV
A FRONTIER DANCE

Two cowboys came to the ranch of the scout with a herd of cattle;
one a half-breed, the other a white man, sinewy, tall and straight. He
was a typical cowboy who had lived a life of adventure and hardship,
rugged and bronzed by the sun. He wore a broad-brimmed hat,
leather chaps, and high-heeled boots; a knotted scarlet handkerchief
round his neck, and a cartridge belt with a six-shooter hanging from
his hips. His fearless gray eyes looked straight out at me, and he
moved and spoke with an easy, careless air of confidence. He had a
smiling face and talked in a high squeaky voice that sometimes
broke.

Yellow Bird told me, with mingled awe and admiration, that he was a
famous bandit named “Slim.” The United States Government had a
reward on him dead or alive. Single-handed he held up a Montana
stage, and an express train on the Northern Pacific Railway. Now he
was trying to get a herd of stolen cattle across the border-line into
Canada; they were “mavericks,” or unbranded cattle, taken out of
many herds.

Because of his adventurous life, Slim carried several bullets in his


body. His right arm was so crippled that he could not lift his hand to
his mouth. But, in spite of his wounds, he could still rope cattle and
break wild horses; and was a dead shot with both hands.

I saw him break a vicious bronco to the saddle. He went into our high
round horse corral, with smooth and easy gait, jangling spurs, and
dragging his lariat which he coiled as he went. He lost no time and
his movements were quiet [120]and catlike. He did not seem to lift his
arm or move; suddenly his noose shot out its full length and settled
gracefully over the neck of the bronco. It bawled with rage and fear;
threw down its head and sprang high into the air. It walked about on
its hind legs, striking with forefeet and threw itself over backwards.
But Slim finally mastered and tied it to the snubbing post. When he
had finished his job, he could ride it without bucking, and led it about
with a rope.

From the first I took a liking to this brave and hardy bandit, with
smiling face and winning way and nerves of steel. He had a pleasant
and easy-going disposition, with a broad and genial tolerance. He
did not look down upon people with a different code, or hold it
against me because my actions were within the law. To him there
was nothing out of the way in robbing stages and trains and driving
stolen cattle. He did not speak of these things, nor did he boast of
them; to him they needed no apology. He was simple-hearted and
generous—a type that would quietly face death without flinching, be
faithful to friends and chivalrous towards women. But he would
pursue an enemy with bitter and vindictive hatred.

Like all cowboys Slim loved excitement—especially a dance. That


night there was going to be a party down the river at the Lone Wolf
Ranch; and Slim asked me to go along.

Before dark we saddled our horses and rode together. I did not ask
about his life; it was not customary in that country. But he told me of
adventures in former days with wild animals and hostile Indians; and
all the time he spoke his steel-gray eyes looked straight into mine.
He talked simply and with a careless drawl, not seeming to feel there
was anything unusual or exciting in his tales. But for me they had a
strange charm—the way he told them, with a high squeaky voice, dry
humor, picturesque cowboy language, and good-natured oaths. [121]

With his partner he once roped a big grizzly, which charged from a
thicket and chased them into the open. They were mounted on agile
cow-horses that ran like the wind; but a fall would have meant death.
Slim threw his lariat round the neck of the bear and his partner roped
her hind feet. The grizzly bellowed with rage and foamed at the
mouth. She tried to charge and floundered on the ropes; she reared
and struck wildly with all fours; but in their grasp she was helpless.
With ropes snubbed to their pommels and horses pulling in different
directions they together stretched her out; and after a while turned
her loose.

The dance at the Lone Wolf Ranch was given by the sisters Katoyísa
and Nínake, and was free to all; every one in that region, both Indian
and white, was welcome. People came long distances in wagons or
on horseback—entire families—mothers with young babies. A log-
shack close to the cabin was used by the women, and there they left
their babies and young children to sleep on the floor.

The ranch cabin was lighted by lamps and candles; all three rooms,
including the kitchen, were used for dancing. The front door opened
upon the main room, a long apartment with low ceiling and walls of
hewn logs, chinked and plastered, all beautifully whitewashed and
clean. The windows and doors were decorated with green branches
and pine boughs, with the Lone Wolf brand made out of juniper on
the log walls, also the heads and horns of deer, elk, and mountain
sheep. The guests were squaw men with Indian wives, cowboys,
and half-breeds. But no men of the older generation of Indians came;
it was not their kind of a dance.

The solitary musician was a half-breed who played on a wheezy


accordion. He had only one tune, a sort of lively jig. But he played it
over and over throughout the night, sometimes slow, sometimes fast.

Slim, Yellow Bird and I took partners and joined in a [122]square


dance. At first there was little life or spirit; the dancers were stiff and
self-conscious, until Slim took hold. He was a good mixer and a
natural master of ceremonies. He was looked up to because of his
brawn and genial disposition. He was the life of the party. He went
from one room to another, shouting directions to the dancers; he was
the caller-off and was witty and funny; he wakened up the half-breed
musician and made every dancer “toe the mark.”

Around the walls were bashful cowboys who had not the courage to
ask a woman to dance, and breeds of all sorts and mixtures. It was
hard to distinguish between Indians and whites. Among the
spectators were elderly squaws in bright-colored Indian clothes,
grandmothers looking after babies and children, while their
daughters danced and had a good time.

At midnight I helped Katoyísa feed the hungry people. We had sweet


cake—an unusual luxury—cold beef and bread. The people wanted
nourishing food. They always had a craving for meat, especially
beef; it took the place of buffalo meat and they felt abused if they did
not get it.

We made tea in a great washboiler that nearly covered the stove.


The people ate in relays; and we washed dishes in between. I
helped Námo, a young Indian woman who had charge of the dishes;
she was a great talker and good natured.

After supper even the bashful cowboys limbered up; although some
slipped out of sight, because they had not the courage to dance. But
never have I seen a crowd of dancers with more dash and
enthusiasm.

After midnight only those who were experts in the square dance took
the floor. Some had odd steps, like jigs, which they used at every
chance. The dancers had no time to rest or sit down; and in their joy
they stamped so hard the cabin was filled with dust.
In the early hours of the morning, old women and children lay asleep
on the floors. And outside in the shack, they lay [123]so close, there
was no room to step, or turn over without waking the others.

At the height of the dance some women got excited and I heard
exclamations of fear. They said they had seen a wild face look in at a
window. They thought it was the Mad Indian—the murderer who
came at night and killed people in the light. So they covered all the
windows with blankets and shawls; and for a while no one was
willing to open the door, or go out into the night. Perhaps somebody
did look in. At the time I paid but little attention; Indian women are
superstitious and have vivid imaginations. Besides, I thought the wild
tales I heard of a “Mad Indian” might be a myth. But he was no myth.
He turned out to be a real Indian, an outcast who had committed
murder and was on the warpath—a menace to everybody in that
country both Indian and white, seeking to kill as many people as he
could before he himself had to die. Later I heard his story from one
of the Indian Mounted Police who had captured him alive. [124]
[Contents]
CHAPTER XVI
HUNTING ROCKY MOUNTAIN GOATS

When the ducks and geese were flying south, Mad Wolf said the
time had come to cut our winter firewood. So Little Creek, his son-in-
law, and I went together to the mountains. We started soon after
sunrise, with four powerful broncos harnessed to a timber wagon.
Little Creek was a reckless and fearless driver. He stood on the axle
between the front wheels and balanced himself skillfully, while I
followed riding Kutenai, my saddle horse.

The wild broncos, frightened by the rattling wagon, galloped across


the broad plateau. But it was an open table-land with an upgrade
towards the Rockies, and Little Creek let them run freely. We passed
through the foothills into a valley; and came finally to the edge of a
forest of pine and spruce on the mountains. There we camped and
pitched our lodge.

In the timber we selected only dead trees, standing and already


seasoned for firewood. We cut them into logs and put them in piles,
to haul later on the wagon. At midday we rested from our work, on a
thick carpet of green moss by a small brook; we ate our midday meal
and were refreshed by the fragrance of pine and balsam.

I watched a golden eagle soaring near the summit of a snowy peak;


and a flock of white swans with long necks outstretched, winging
their way across the deep blue of the autumn sky, the sunlight
shining on their wings and breasts. Many flocks of ducks whirred
close to the tree tops, in their level and rapid flight; and from far
away came the honking of migrating geese. [125]

“Geese are wise and can foretell the weather,” said Little Creek.
“Now they fly high; and it is a sign of a hard winter. Other birds and
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookgate.com

You might also like