搜索附件  
头雁微网 附件中心 技术应用 情报信息 (2007 Elsevier)Essential Matlab for Engineers and Scientists(3rd Edition).pdf: 1.jpg
板块导航
附件中心&附件聚合2.0
For Discuz! X3.5 © hgcad.com

(2007 Elsevier)Essential Matlab for Engineers and Scientists(3rd Edition).pdf: 1.jpg

 

(2007 Elsevier)Essential Matlab for Engineers and Scientists(3rd Edition).pdf:

                               
登录/注册后可看大图
(2007 Elsevier)Essential Matlab for Engineers and Scientists(3rd Edition).pdf

                               
登录/注册后可看大图

                               
登录/注册后可看大图


Reviewers’ Quotes
This book provides an excellent initiation into programming in MATLAB while serving as a
teaser for more advanced topics. It provides a structured entry into MATLAB programming
through well designed exercises.
Carl H. Sondergeld
Professor and Curtis Mewbourne Chair
Mewbourne School of Petroleum and Geological Engineering
University of Oklahoma
This updated version continues to provide beginners with the essentials of Matlab, with many
examples from science and engineering, written in an informal and accessible style. The new
chapter on algorithm development and program design provides an excellent introduction to a
structured approach to problem solving and the use of MATLAB as a programming language.
Professor Gary Ford
Department of Electrical and Computer Engineering
University of California, Davis
For a while I have been searching for a good MATLAB text for a graduate course on methods
in environmental sciences. I finally settled on Hahn and Valentine because it provides the
balance I need regarding ease of use and relevance of material and examples.
Professor Wayne M. Getz
Department Environmental Science Policy & Management
University of California at Berkeley
This book is an outstanding introductory text for teaching mathematics, engineering, and
science students how MATLAB can be used to solve mathematical problems. Its intuitive
and well-chosen examples nicely bridge the gap between prototypical mathematical models
and how MATLAB can be used to evaluate these models. The author does a superior job of
examining and explaining the MATLAB code used to solve the problems presented.
Professor Mark E. Cawood
Department of Mathematical Sciences
Clemson University

Essential MATLAB®forEngineers
and Scientists Third edition

Brian D. Hahn and Daniel T. Valentine
AMSTERDAM • BOSTON • HEIDELBERG • LONDON • NEW YORK • OXFORD
PARIS • SAN DIEGO • SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO
Butterworth-Heinemann is an imprint of Elsevier

Butterworth-Heinemann is an imprint of Elsevier
Linacre House, Jordan Hill, Oxford, OX2 8DP
30 Corporate Drive, Burlington, MA 01803
First published 2002
Reprinted 2002, 2003, 2004, 2005, 2006
Second edition 2006
Third edition 2007
Copyright © 2002, 2006, 2007 Brian D. Hahn and Daniel T. Valentine. Published by Elsevier Ltd. All rights reserved
The right of Brian D. Hahn and Daniel T. Valentine to be identified as the authors of this work has been asserted in
accordance with the Copyright, Designs and Patents Act 1988
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any
means electronic, mechanical, photocopying, recording or otherwise without the prior written permission of the
publisher
Permission may be sought directly from Elsevier’s Science & Technology Rights Department
in Oxford, UK: phone (+44) (0) 1865 843830; fax (+44) (0) 1865 853333; email:
permissions@elsevier.com.
Alternatively you can submit your request online by visiting the Elsevier web site at
http://elsevier.com/locate/permissions, and selecting Obtaining permission to use Elsevier material
Notice
No responsibility is assumed by the publisher for any injury and/or damage to persons or property as a matter of
products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions or
ideas contained in the material herein. Because of rapid advances in the medical sciences, in particular,
independent verification of diagnoses and drug dosages should be made
British Library Cataloguing in Publication Data
A catalogue record for this book is available from the British Library
Library of Congress Cataloging-in-Publication Data
A catalog record for this book is available from the Library of Congress
ISBN 13: 9-78-0-75-068417-0
ISBN 10: 0-75-068417-8
For information on all Butterworth-Heinemann publications visit our
web site at books.elsevier.com
Typeset by Charon Tec Ltd (A Macmillan Company), Chennai, India,
www.charontec.com
Printed and bound in Italy
07 08 09 10 11 10 9 8 7 6 5 4 3 2 1
Contents
Preface to the third edition xvii
PART I ESSENTIALS 1
1 Introduction 3
1.1 Using MATLAB 4
1.2 The MATLAB desktop 15
1.3 Sample program 16
1.3.1 Cut and paste 16
1.3.2 Saving a program: script files 19
1.3.3 How a program works 21
2 MATLAB fundamentals 24
2.1 Variables and the workspace 24
2.1.1 Variables 24
2.1.2 Case sensitivity 25
2.1.3 The workspace 25
2.1.4 Adding commonly used constants to the workspace 27
2.2 Arrays: vectors and matrices 27
2.2.1 Initializing vectors: explicit lists 28
2.2.2 Initializing vectors: the colon operator 29
2.2.3 linspace 30
2.2.4 Transposing vectors 30
2.2.5 Subscripts 31
2.2.6 Matrices 31
2.2.7 Capturing output 32
2.3 Vertical motion under gravity 33
2.4 Operators, expressions and statements 35
2.4.1 Numbers 35
2.4.2 Data types 36
2.4.3 Arithmetic operators 37
2.4.4 Precedence of operators 37
2.4.5 The colon operator 38
2.4.6 The transpose operator 39
Contents
2.4.7 Arithmetic operations on arrays 39
2.4.8 Expressions 41
2.4.9 Statements 41
2.4.10 Statements, commands and functions 43
2.4.11 Vectorization of formulae 43
2.5 Output 47
2.5.1 disp 47
2.5.2 format 49
2.5.3 Scale factors 50
2.6 Repeating with for 51
2.6.1 Square roots with Newton’s method 51
2.6.2 Factorials! 53
2.6.3 Limit of a sequence 53
2.6.4 The basic for construct 54
2.6.5 for in a single line 56
2.6.6 More general for 56
2.6.7 Avoid for loops by vectorizing! 56
2.6.8 A common mistake: for less loops! 59
2.7 Decisions 60
2.7.1 The one-line if statement 60
2.7.2 The if-else construct 62
2.7.3 The one-line if-else statement 63
2.7.4 elseif 64
2.7.5 Logical operators 65
2.7.6 Multiple ifs versus elseif 65
2.7.7 Nested ifs 67
2.7.8 Vectorizing ifs? 68
2.7.9 switch 68
2.8 Complex numbers 69
2.9 More on input and output 71
2.9.1 fprintf 71
2.9.2 Output to a disk file with fprintf 73
2.9.3 General file I/O 73
2.9.4 Saving and loading data 73
2.10 Odds ’n ends 73
2.10.1 Variables, functions and scripts with the same name 73
2.10.2 The input statement 74
2.10.3 Shelling out to the operating system 75
2.10.4 More Help functions 76
2.11 Programming style 76
3 Program design and algorithm development 86
3.1 Computer program design process 87
3.1.1 Projectile problem example 89
vi
Contents
3.2 Other examples of structure plans 98
3.2.1 Quadratic equation 99
3.3 Structured programming with functions 100
4 MATLAB functions & *data import-export utilities 104
4.1 Some common functions 105
4.2 *Importing and exporting data 110
4.2.1 The load and save commands 110
4.2.2 Exporting text (ASCII) data 110
4.2.3 Importing text (ASCII) data 111
4.2.4 Exporting binary data 111
4.2.5 The Import Wizard 112
4.2.6 Low-level file I/O functions 113
4.2.7 Other import/export functions 118
5 Logical vectors 121
5.1 Examples 122
5.1.1 Discontinuous graphs 122
5.1.2 Avoiding division by zero 123
5.1.3 Avoiding infinity 125
5.1.4 Counting random numbers 126
5.1.5 Rolling dice 127
5.2 Logical operators 127
5.2.1 Operator precedence 129
5.2.2 Danger 130
5.2.3 Logical operators and vectors 130
5.3 Subscripting with logical vectors 131
5.4 Logical functions 133
5.4.1 Using any and all 134
5.5 Logical vectors instead of elseif ladders 135
6 Matrices of numbers & arrays of strings 141
6.1 Matrices 142
6.1.1 A concrete example 142
6.1.2 Creating matrices 143
6.1.3 Subscripts 144
6.1.4 Transpose 144
6.1.5 The colon operator 144
6.1.6 Duplicating rows and columns: tiling 148
6.1.7 Deleting rows and columns 148
6.1.8 Elementary matrices 149
6.1.9 *Specialized matrices 150
6.1.10 Using MATLAB functions with matrices 151
6.1.11 Manipulating matrices 152
vii
Contents
6.1.12 Array (element-by-element) operations on matrices 153
6.1.13 Matrices and for 153
6.1.14 Visualization of matrices 154
6.1.15 Vectorizing nested fors: loan repayment tables 154
6.1.16 Multidimensional arrays 156
6.2 Matrix operations 157
6.2.1 Matrix multiplication 157
6.2.2 Matrix exponentiation 159
6.3 Other matrix functions 160
6.4 *Strings 160
6.4.1 Assignment 160
6.4.2 Input 160
6.4.3 Strings are arrays 161
6.4.4 Concatenation of strings 161
6.4.5 ASCII codes, double and char 162
6.4.6 fprintf of strings 163
6.4.7 Comparing strings 163
6.4.8 Other string functions 164
6.5 *Two-dimensional strings 164
6.6 *eval and text macros 165
6.6.1 Error trapping with eval and lasterr 166
6.6.2 eval with try...catch 167
7 Introduction to graphics 171
7.1 Basic 2-D graphs 171
7.1.1 Labels 173
7.1.2 Multiple plots on the same axes 173
7.1.3 Line styles, markers and color 174
7.1.4 Axis limits 175
7.1.5 Multiple plots in a figure: subplot 176
7.1.6 figure, clf and cla 178
7.1.7 Graphical input 178
7.1.8 Logarithmic plots 178
7.1.9 Polar plots 179
7.1.10 Plotting rapidly changing mathematical functions: fplot 180
7.1.11 The property editor 181
7.2 3-D plots 181
7.2.1 plot3 182
7.2.2 Animated 3-D plots with comet3 183
7.2.3 Mesh surfaces 183
7.2.4 Contour plots 186
7.2.5 Cropping a surface with NaNs 187
7.2.6 Visualizing vector fields 188
7.2.7 Visualization of matrices 189
viii
Contents
7.2.8 Rotation of 3-D graphs 190
7.2.9 Other cool graphics functions 192
8 Loops 205
8.1 Determinate repetition with for 205
8.1.1 Binomial coefficient 205
8.1.2 Update processes 206
8.1.3 Nested fors 208
8.2 Indeterminate repetition with while 208
8.2.1 A guessing game 208
8.2.2 The while statement 209
8.2.3 Doubling time of an investment 210
8.2.4 Prime numbers 211
8.2.5 Projectile trajectory 212
8.2.6 break and continue 215
8.2.7 Menus 215
9 Errors and pitfalls 222
9.1 Syntax errors 222
9.1.1 lasterr 225
9.2 Pitfalls and surprises 225
9.2.1 Incompatible vector sizes 225
9.2.2 Name hiding 225
9.2.3 Other pitfalls for the unwary 226
9.3 Errors in logic 226
9.4 Rounding error 226
9.5 Trapping and generating errors 228
10 Function M-files 230
10.1 Some examples 230
10.1.1 Inline objects: harmonic oscillators 230
10.1.2 Function M-files: Newton’s method again 232
10.2 Basic rules 233
10.2.1 Subfunctions 239
10.2.2 Private functions 239
10.2.3 P-code files 239
10.2.4 Improving M-file performance with the profiler 240
10.3 Function handles 240
10.4 Command/function duality 242
10.5 Function name resolution 243
10.6 Debugging M-files 243
10.6.1 Debugging a script 244
10.6.2 Debugging a function 246
10.7 Recursion 246
ix
Contents
11 Vectors as arrays & *advanced data structures 251
11.1 Update processes 251
11.1.1 Unit time steps 252
11.1.2 Non-unit time steps 255
11.1.3 Using a function 256
11.1.4 Exact solution 258
11.2 Frequencies, bar charts and histograms 259
11.2.1 A random walk 259
11.2.2 Histograms 260
11.3 *Sorting 261
11.3.1 Bubble Sort 261
11.3.2 MATLAB’s sort 263
11.4 *Structures 264
11.5 *Cell arrays 267
11.5.1 Assigning data to cell arrays 267
11.5.2 Accessing data in cell arrays 268
11.5.3 Using cell arrays 269
11.5.4 Displaying and visualizing cell arrays 270
11.6 *Classes and objects 270
12 *More graphics 272
12.1 Handle Graphics 272
12.1.1 Getting handles 273
12.1.2 Graphics object properties and how to change them 274
12.1.3 A vector of handles 276
12.1.4 Graphics object creation functions 277
12.1.5 Parenting 277
12.1.6 Positioning figures 278
12.2 Editing plots 279
12.2.1 Plot edit mode 279
12.2.2 Property Editor 280
12.3 Animation 281
12.3.1 Animation with Handle Graphics 282
12.4 Color etc. 285
12.4.1 Colormaps 285
12.4.2 Color of surface plots 287
12.4.3 Truecolor 288
12.5 Lighting and camera 288
12.6 Saving, printing and exporting graphs 289
12.6.1 Saving and opening figure files 289
12.6.2 Printing a graph 290
12.6.3 Exporting a graph 290
x
Contents
13 *Graphical User Interfaces (GUIs) 292
13.1 Basic structure of a GUI 292
13.2 A first example: getting the time 293
13.2.1 Exercise 297
13.3 Newton again 297
13.4 Axes on a GUI 301
13.5 Adding color to a button 302
PART II APPLICATIONS 305
14 Dynamical systems 307
14.1 Cantilever beam 309
14.2 Electric current 311
14.3 Free fall 314
14.4 Projectile with friction 323
15 Simulation 328
15.1 Random number generation 328
15.1.1 Seeding rand 329
15.2 Spinning coins 329
15.3 Rolling dice 330
15.4 Bacteria division 331
15.5 A random walk 331
15.6 Traffic flow 333
15.7 Normal (Gaussian) random numbers 336
16 *More matrices 341
16.1 Leslie matrices: population growth 341
16.2 Markov processes 345
16.2.1 A random walk 345
16.3 Linear equations 348
16.3.1 MATLAB’s solution 349
16.3.2 The residual 350
16.3.3 Overdetermined systems 350
16.3.4 Underdetermined systems 351
16.3.5 Ill conditioning 351
16.3.6 Matrix division 352
16.4 Sparse matrices 354
17 *Introduction to numerical methods 359
17.1 Equations 359
17.1.1 Newton’s method 359
17.1.2 The Bisection method 362
xi
Contents
17.1.3 fzero 364
17.1.4 roots 364
17.2 Integration 364
17.2.1 The Trapezoidal rule 365
17.2.2 Simpson’s rule 366
17.2.3 quad 367
17.3 Numerical differentiation 367
17.3.1 diff 368
17.4 First-order differential equations 369
17.4.1 Euler’s method 369
17.4.2 Example: bacteria growth 370
17.4.3 Alternative subscript notation 371
17.4.4 A predictor-corrector method 373
17.5 Linear ordinary differential equations (LODEs) 374
17.6 Runge-Kutta methods 375
17.6.1 A single differential equation 375
17.6.2 Systems of differential equations: chaos 376
17.6.3 Passing additional parameters to an ODE solver 379
17.7 A partial differential equation 381
17.7.1 Heat conduction 381
17.8 Other numerical methods 385
Appendix A: Syntax quick reference 390
A.1 Expressions 390
A.2 Function M-files 390
A.3 Graphics 390
A.4 if and switch 391
A.5 for and while 392
A.6 Input/output 393
A.7 load/save 393
A.8 Vectors and matrices 393
Appendix B: Operators 395
Appendix C: Command and functionquick reference 396
C.1 General purpose commands 397
C.1.1 Managing commands 397
C.1.2 Managing variables and the workspace 397
C.1.3 Files and the operating system 397
C.1.4 Controlling the Command Window 398
C.1.5 Starting and quitting MATLAB 398
C.2 Logical functions 398
xii
Contents
C.3 Language constructs and debugging 398
C.3.1 MATLAB as a programming language 398
C.3.2 Interactive input 399
C.4 Matrices and matrix manipulation 399
C.4.1 Elementary matrices 399
C.4.2 Special variables and constants 399
C.4.3 Time and date 400
C.4.4 Matrix manipulation 400
C.4.5 Specialized matrices 400
C.5 Mathematical functions 400
C.6 Matrix functions 401
C.7 Data analysis 402
C.8 Polynomial functions 402
C.9 Function functions 402
C.10 Sparse matrix functions 402
C.11 Character string functions 403
C.12 File I/O functions 403
C.13 Graphics 403
C.13.1 2-D 403
C.13.2 3-D 404
C.13.3 General 404
Appendix D: ASCII character codes 405
Appendix E: Solutions to selected exercises 406
Index 421
(2007 Elsevier)Essential Matlab for Engineers and Scientists(3rd Edition).pdf
好书啊,楼主,书这么小,应该不是扫描版的,呵呵
好像是word转成的
好书啊,谢谢老大:17de :17de
楼主辛苦啦,支持!!!!
:27bb :27bb :27bb :27bb
thank you very much!
好东西呀,谢谢楼主,辛苦!买一本要花很多银子呢
感谢版主一直以来的无私奉献精神!:30bb
Thank you very much!!! what a nice book!!!!
:50bb :53bb :53bb
thank you very much!
好东西呀,谢谢楼主,辛苦!
楼主辛苦啦,支持!!!!
看看好书
thank you for sharing
感谢楼主的无私奉献
Essential Matlab for Engineers and Scientists(3rd Edition
谢谢分享
(2007 Elsevier)Essential Matlab for Engineers and Scientists(3rd Edition).pdf: 1.jpg
客服中心 搜索
关于我们
关于我们
关注我们
联系我们
帮助中心
资讯中心
企业生态
社区论坛
服务支持
资源下载
售后服务
推广服务
关注我们
官方微博
官方空间
官方微信
返回顶部