Essential MATLAB for Engineers and Scientists Essential MATLAB for Engineers and Scientists Sixth Edition Brian H. Hahn Daniel T. Valentine AMSTERDAM • BOSTON • HEIDELBERG • LONDON NEWYORK • OXFORD • PARIS • SANDIEGO SANFRANCISCO • SINGAPORE • SYDNEY • TOKYO AcademicPressisanimprintofElsevier AcademicPressisanimprintofElsevier 50HampshireStreet,5thFloor,Cambridge,MA02139,UnitedStates 525BStreet,Suite1800,SanDiego,CA92101-4495,UnitedStates TheBoulevard,LangfordLane,Kidlington,OxfordOX51GB,UnitedKingdom 125,LondonWall,EC2Y,5AS,UnitedKingdom Copyright©2017,2013,2010DanielT.Valentine.PublishedbyElsevierLtd.Allrightsreserved. Copyright©2007,2006,2002BrianD.HahnandDanielT.Valentine.PublishedbyElsevierLtd. MATLAB®isatrademarkofTheMathWorks,Inc.andisusedwithpermission. TheMathWorksdoesnotwarranttheaccuracyofthetextorexercisesinthisbook. Thisbook’suseordiscussionofMATLAB®softwareorrelatedproductsdoesnotconstituteendorsement orsponsorshipbyTheMathWorksofaparticularpedagogicalapproachorparticularuseofthe MATLAB®software. Nopartofthispublicationmaybereproduced,storedinaretrievalsystem,ortransmittedinanyform orbyanymeans,electronic,mechanical,photocopying,recording,orotherwise,withouttheprior writtenpermissionofthepublisher. PermissionsmaybesoughtdirectlyfromElsevier’sScience&TechnologyRightsDepartmentinOxford, UK:phone:(+44)1865843830,fax:(+44)1865853333,E-mail:[email protected] alsocompleteyourrequestonlineviatheElsevierhomepage(http://www.elsevier.com),byselecting “Support&Contact”then“CopyrightandPermission”andthen“ObtainingPermissions.” LibraryofCongressCataloging-in-PublicationData AcatalogrecordforthisbookisavailablefromtheLibraryofCongress. BritishLibraryCataloguing-in-PublicationData AcataloguerecordforthisbookisavailablefromtheBritishLibrary. ISBN:978-0-08-100877-5 ForinformationonallAcademicPresspublications visitourwebsiteathttps://www.elsevierdirect.com Publisher:ToddGreen AcquisitionEditor:StephenMerken EditorialProjectManager:NateMcFadden ProductionProjectManager:StalinViswanathan Designer:MatthewLimbert TypesetbyVTeX Preface ThemainreasonforasixtheditionofEssentialMATLABforEngineersandScien- tistsistokeepupwithMATLAB,nowinitslatestversion(9.0VersionR2016a). Like the previous editions, this one presents MATLAB as a problem-solving tool for professionals in science and engineering, as well as students in those fields,whohavenopriorknowledgeofcomputerprogramming. In keeping with the late Brian D. Hahn’s objectives in previous editions, the sixth edition adopts an informal, tutorial style for its “teach-yourself” ap- proach,whichinvitesreaderstoexperimentwithMATLABasawayofdiscov- ering how it works. It assumes that readers have never used this tool in their technicalproblemsolving. MATLAB, which stands for “Matrix Laboratory,” is based on the concept of the matrix. Because readers will be unfamiliar with matrices, ideas and con- structsaredevelopedgradually,asthecontextrequires.Theprimaryaudience forEssentialMATLABisscientistsandengineers,andforthatreasoncertainex- amples require some first-year college math, particularly in Part II. However, theseexamplesareself-containedandcanbeskippedwithoutdetractingfrom thedevelopmentofreaders’programmingskills. MATLABcanbeusedintwodistinctmodes.One,inkeepingthemodern-age craving for instant gratification, offers immediate execution of statements (or groupsofstatements) intheCommandWindow.Theother,forthemorepa- tient, offers conventional programming by means of script files. Both modes are put to good use here: The former encouraging cut and paste to take full advantageofWindows’interactiveenvironment.Thelatterstressingprogram- mingprinciplesandalgorithmdevelopmentthroughstructureplans. AlthoughmostofMATLAB’sbasic(“essential”)featuresarecovered,thisbook isneitheranexhaustivenorasystematicreference.Thiswouldnotbeinkeep- ingwithitsinformalstyle.Forexample,constructssuchasforandifarenot alwaystreated,initially,intheirgeneralform,asiscommoninmanytexts,but aregraduallyintroducedindiscussionswheretheyfitnaturally.Evenso,they xv xvi Preface aretreatedthoroughlyhere,unlikeinothertextsthatdealwiththemonlysu- perficially.Forthecurious,helpfulsyntaxandfunctionquickreferencescanbe foundintheappendices. The following list contains other highlights of Essential MATLAB for Engineers andScientists,SixthEdition: (cid:2) Warningsofthemanypitfallsthatawaittheunwarybeginner (cid:2) Numerousexamplestakenfromscienceandengineering(simulation,pop- ulation modeling, numerical methods) as well as business and everyday life (cid:2) Anemphasisonprogrammingstyletoproduceclear,readablecode (cid:2) Comprehensivechaptersummaries (cid:2) Chapterexercises(answersandsolutionstomanyofwhicharegiveninan appendix) (cid:2) Athorough,instructiveindex Essential MATLAB is meant to be used in conjunction with the MATLAB soft- ware. The reader is expected to have the software at hand in order to work through the exercises and thus discover how MATLAB does what it is com- manded to do. Learning any tool is possible only through hands-on expe- rience. This is particularly true with computing tools, which produce correct answersonlywhenthecommandstheyaregivenandtheaccompanyingdata inputarecorrectandaccurate. ACKNOWLEDGMENTS I would like to thank Mary, Clara, Zoe Rae and Zach T. for their support and encouragement. I dedicate the sixth edition of Essential MATLAB for Engineers andScientiststothem. DanielT.Valentine 1 PART Essentials Part 1 concerns those aspects of MATLAB that you need to know in order to cometogripswithMATLAB’sessentialsandthoseoftechnicalcomputing.Be- cause this book is a tutorial, you are encouraged to use MATLAB extensively whileyougothroughthetext. CHAPTER 1 Introduction THEOBJECTIVESOFTHISCHAPTERARE: CONTENTS (cid:2) ToenableyoutousesomesimpleMATLABcommandsfromthe UsingMATLAB......5 CommandWindow. Arithmetic.................5 (cid:2) ToexaminevariousMATLABdesktopandeditingfeatures. Variables....................7 (cid:2) TolearnsomeofthenewfeaturesoftheMATLABR2016aDesktop. Mathematical (cid:2) TolearntowritescriptsintheEditorandRunthemfromtheEditor. functions....................8 (cid:2) Tolearnsomeofthenewfeaturesassociatedwiththetabs(inparticular, Functionsand thePUBLISHandAPPSfeatures). commands.................8 Vectors.......................9 Linearequations......11 Tutorialsanddemos12 MATLABisapowerfultechnicalcomputingsystemforhandlingscientificand Thedesktop.........13 engineeringcalculations.ThenameMATLABstandsforMatrixLaboratory,be- UsingtheEditorand causethesystemwasdesignedtomakematrixcomputationsparticularlyeasy. runningascript.......13 Amatrixisanarrayofnumbersorganizedinmrowsandncolumns.Anexam- Help,publishand pleisthefollowingm×n=2×3array: view.........................16 Symbolicsandthe (cid:2) (cid:3) MuPADnotebook A= 1 3 5 APP..........................18 2 4 6 OtherAPPS..............23 Additionalfeatures..23 Any one of the elements in a matrix can be plucked out by using the row and column indices that identify its location. The elements in this example Sampleprogram.25 are plucked out as follows: A(1,1)=1, A(1,2)=3, A(1,3)=5, A(2,1)=2, Cutandpaste..........25 A(2,2)=4,A(2,3)=6.Thefirstindexidentifiestherownumbercountedfrom Savingaprogram: scriptfiles................27 top to bottom; the second index is the column number counted from left to Currentdirectory.......28 right.ThisistheconventionusedinMATLABtolocateinformationinanarray. Runningascriptfrom A computer is useful because it can do numerous computations quickly, so thecurrentfolder operating onlargenumerical datasets listed intables asarrays ormatricesof browser....................29 rowsandcolumnsisquiteefficient. Aprograminaction.29 Thisbookassumesthatyouhaveneverusedacomputerbeforetodothesort of scientific calculations that MATLAB handles, but are able to find your way 3 EssentialMATLABforEngineersandScientists.DOI:10.1016/B978-0-08-100877-5.00002-5 Copyright©2017DanielT.Valentine.PublishedbyElsevierLtd.Allrightsreserved. 4 CHAPTER 1: Introduction Summary..............30 aroundacomputerkeyboardandknowyouroperatingsystem(e.g.,Windows, UNIX or MAC-OS). The only other computer-related skill you will need is Exercises...............31 someverybasictextediting. Supplementary material.................31 One of the many things you will like about MATLAB (and that distinguishes itfrommanyothercomputerprogrammingsystems,suchasC++andJava)is that you can use it interactively. This means you type some commands at the specialMATLABpromptandgetresultsimmediately.Theproblemssolvedin thiswaycanbeverysimple,likefindingasquareroot,orverycomplicated,like finding the solution to a system of differential equations. For many technical problems, you enter only one or two commands—MATLAB does most of the workforyou. TherearethreeessentialrequirementsforsuccessfulMATLABapplications: (cid:2) You must learn the exact rules for writing MATLAB statements and using MATLAButilities. (cid:2) Youmustknowthemathematicsassociatedwiththeproblemyouwantto solve. (cid:2) You must develop a logical plan of attack—the algorithm—for solving a particularproblem. This chapter is devoted mainly to the first requirement: learning some basic MATLABrules.Computerprogrammingisaprecisescience(somewouldalso say an art); you have to enter statements in precisely the right way. There is a sayingamongcomputerprogrammers:Garbagein,garbageout.Itmeansthatif yougiveMATLABagarbageinstruction,youwillgetagarbageresult. With experience, you will be able to design, develop and implement compu- tational and graphical tools to do relatively complex science and engineering problems.YouwillbeabletoadjustthelookofMATLAB,modifythewayyou interactwithit,anddevelopatoolboxofyourownthathelpsyousolveprob- lemsofinterest.Inotherwords,youcan,withsignificantexperience,customize yourMATLABworkingenvironment. As you learn the basics of MATLAB and, for that matter, any other computer tool,rememberthatapplicationsdonothingrandomly.Therefore,asyouuse MATLAB,observeandstudyallresponsesfromthecommand-lineoperations that you implement, to learn what this tool does and does not do. To begin aninvestigationintothecapabilitiesofMATLAB,wewilldorelativelysimple problemsthatweknowtheanswersbecauseweareevaluatingthetoolandits capabilities.Thisisalwaysthe firststep. AsyoulearnaboutMATLAB,youare alsogoingtolearnaboutprogramming,(1)tocreateyourowncomputational tools,and (2)to appreciatethe difficultiesinvolved inthe design ofefficient, robust and accurate computational and graphical tools (i.e., computer pro- grams). 1.1 UsingMATLAB 5 In the rest of this chapter we will look at some simple examples. Don’t be concernedaboutunderstandingexactlywhatishappening.Understandingwill come with the work you need to do in later chapters. It is very important for you to practice with MATLAB to learn how it works. Once you have grasped the basic rules in this chapter, you will be prepared to master many of those presented in the next chapter and in the Help files provided with MATLAB. This will help you go on to solve more interesting and substantial problems. In the last section of this chapter you will take a quick tour of the MATLAB desktop. 1.1 USING MATLAB Either MATLAB must be installed on your computer or you must have access to a network where it is available. Throughout this book the latest version at thetimeofwritingisassumed(VersionR2016a). TostartfromWindows,double-clicktheMATLABicononyourWindowsdesk- top.TostartfromUNIX,typematlabattheoperatingsystemprompt.Tostart from MAC-OS open X11 (i.e., open an X-terminal window), then type mat- lab at the prompt. The MATLAB desktop opens as shown in Figure 1.1. The window in the desktop that concerns us for now is the Command Window, where the special >> prompt appears. This prompt means that MATLAB is waiting for a command. You can quit at any time with one of the following ways: (cid:2) ClicktheX(closebox)intheupperright-handcorneroftheMATLABdesk- top. (cid:2) TypequitorexitattheCommandWindowpromptfollowedbypressing the‘enter’key. Starting MATLAB automatically creates a folder named MATLAB in the user’s Documents Folder. This feature is quite convenient because it is the default working folder. It is in this folder that anything saved from the Command Window will be saved. Now you can experiment with MATLAB in the Com- mand Window. If necessary, make the Command Window active by placing thecursorintheCommandWindowandleft-clickingthemousebuttonany- whereinsideitsborder. 1.1.1 Arithmetic Since we have experience doing arithmetic, we want to examine if MATLAB does it correctly. This is a required step to gain confidence in any tool and in ourabilitytouseit. Type 2+3 after the >> prompt, followed by Enter (press the Enter key) as indicatedby<Enter>: >>2+3<Enter>