ࡱ> VXUh avbjbj 4|5+8/<p$J Q [   8    @  q0        : Shermans Matlab Tutorial 12/4/08 Prologue There are many websites that offer tutorials (also termed primers) for learning Matlab. One that I have found to be particularly helpful and well-written is at:  HYPERLINK "http://www.ag.unr.edu/moeltner/matlab_stuff.htm" http://www.ag.unr.edu/moeltner/matlab_stuff.htm . However, in my limited searching, I have found no tutorial that begins at the most basic level, and covers the breadth of material that students in my statistics and engineering courses need to become immediately comfortable and productive. For this reason, I have written the following tutorial. Matlab versus Fortran Fortran has been and continues to be a mainstay programming language among scientists, engineers and mathematicians. And so, one might ask: Why then has Matlab become so popular in these disciplines? To be sure, there are many things that are more easily done in Matlab than in Fortran. However, such was not the case when Matlab was introduced in the early 1980s. But even then, it immediately captured the interest of researchers and academics. It is my opinion that the main reason for this is the manner in which Matlab allows one to perform operations on arrays of numbers. Compare the following Fortran-type and Matlab-type Matlab codes for performing the operation: z(k) = x(k) y(k) for k = 1, 2, , n Fortran Loop Format: Matlab Preferred Format: z = x .*y for k = 1 : n z(k) = x(k)*y(k) end Whereas the Fortran format entails multiplications in a sequential loop fashion, Matlab performs a single vector (or array) element-by-element multiplication. Figure 1 below shows that ratio of computation times for the two methods.  Figure 1(a) Ratio of Fortran/Matlab computation times for various amounts of multiplication when the size of the product array, z, is predefined.  Figure 1(b) Ratio of Fortran/Matlab computation times for various amounts of multiplication when the size of the product array, z, is predefined. The Matlab format code is 5-10 times faster when the product vector is pre-defined. When it is not pre-defined, and Matlab must dynamically allocate memory, the computation ratio appears to follow the model: log10(R) =  log10(N) where  EMBED Equation.3 . Hence, R = N0.33, or, TF = TM N0.33. (1) For 105 multiplications, the dot-multiplication method took ~1 second, while the loop method took ~50 seconds. The above analysis points out that Matlab is designed as vector-oriented code. It is ill-suited to large numbers of loop computations. It also highlights the reason that the Matlab on-line debugging code will suggest that you pre-define your arrays to improve computational efficiency. It is the ability of Matlab to efficiently perform operations on very large arrays that, in my opinion, gained it such immediate favor over Fortran at a time when algorithms such as the Fast Fourier Transform (FFT) were in wide use on mainframe computers with very limited memory and processing speed compared to todays laptops. 1. Generating Arrays of Numbers I chose to address the generation of arrays of numbers first, because the reader need not have any data on hand to proceed through this tutorial. Matlab includes a host of commands for generating various types of user-specified sized arrays of numbers. Consider an array with m rows and n columns. If n=m=1 this array is a scalar. If m=1 and n >1 the array is a row vector whose length is n. If m >1 and n =1 the array is a column vector whose length is m. If m > 1 and n > 1, the array is a matrix of size  EMBED Equation.3 . Every Matlab command for generating an  EMBED Equation.3  array, or matrix of numbers has the form: command(m,n). The word command in this line of code can be replaced by any of the following: zeros - generates an array of zeros ones - generates an array of ones rand - generates an array of numbers from a Uniform(0,1) distribution randn - generates an array of numbers from a Normal(0,1) distribution A row vector of the numbers 1, 2, and 3 is written as [1 2 3] or [1,2,3]. A column vector of these numbers is written as [1;2;3]. Hence, a matrix with first row containing 1,2, and 3, and second row containing 0,1, and 0 would be written as [1 2 3 ; 0 1 0 ]. The above commands are the most commonly used commands by Matlab beginners. 2. Dot-Operations as an Alternative to Looping The following are the symbols Matlab uses for various mathematical operations: + (addition) ; - (subtraction) ; * (multiplication) ; / (division) ; ^ (exponentiation) To perform element-by-element addition or subtraction in relation to arrays X and Y, one uses the code: X + Y or X Y Notice that all element-by-element operations necessitate that X and Y have the same  EMBED Equation.3  size. Should you try to perform any such operation on two arrays of different sizes, dont worry. Matlab will halt your code at that line, and tell you that your matrix dimensions do not agree. To perform element-by-element multiplication, division or exponentiation in relation to arrays X and Y, one uses the code: X .* Y or X ./ Y or X .^Y Notice the dot preceding each operation. If X and Y are scalars, the dot can be omitted. If m and/or n are >1, then Matlab may or may not halt your code. For example, if both X and Y are  EMBED Equation.3  arrays with m > 1, then omitting the dot will result in an error message. On the other hand, if X is an  EMBED Equation.3 array, and Y is a  EMBED Equation.3 array, then Matlab will perform the row-column multiplication typically preformed on matrices, and the result will, in this case, be a scalar that is the sum of the products of the elements of X and Y. 3. Plotting Matlab has a wealth of sophisticated plotting routines. In this section I will cover only the most basic 2-dimensional (2-D) case, since this is the one that most beginners require. Because a 2-D plot entails plotting a collection of ordered pairs of numbers,  EMBED Equation.3 , there are three basic formats for plotting the X array against the Y array: plot(X,Y) connects the points with straight lines, but does not use any symbol to show the points plot(X,Y,*) uses the symbol * to plot only the points (no connecting lines) plot(X,Y,-*) plots both the points (using the symbol *) and the lines connecting them 4. An Example Here, we will look at the code that was used to obtain Figure 1 above. 1. %tictoc.m This is the name of the code 2. % This code computes the time required to perform various numbers 3. % of multiplications via looping versus dot-multiplication 4. mm=5 This is the highest of the exponents {1,2,3,4,5} of 10 for array sizes 5. f1vec = zeros(1,mm); f2vec = zeros(1,mm);Notice that you can place multiple commands on the same line, so long as they are separated by a ;. This symbol should also be placed after a single command if you do not want to have the result shown on the screen. I omitted it in line 4. since I wanted to follow the progress of the code. The arrays f1vec and f2vec 1xmm (=5) arrays initialized to sero. They will ultimately contain the 5 run times of the Fortran and Matlab methods for multiplying the 5 lengths of numbers. 6. for mexp = 1:mm This begins the loop for the various lengths of the arrays 7. mexp This echoes the current exponent of 10 to the screen so I can monitor progress 8. m=10^mexp; % The length of the arrays whose elements will be multiplied 9. x = rand(m,1); 10. y = rand(m,1); 11. %z = zeros(m,1); %This line, when active, pre-allocates memory for the z array 12. % LOOPING 13. tic; % Begin the stop clock 14. for k = 1:m %This begins the Fortran method loop for computing all the products 15. z(k) = x(k)*y(k); This is the product of the kth elements of the x and y arrays 16. end %This ends the Fortran method loop 17. f1vec(mexp) = toc; After the loop is completed the stop clock is stopped and the time is entered into the mexp_th position of the array f1vec 18. %================== 19. % DOT-MULTIPLICATION 20. tic; Restart the stop watch 21. z = x .*y; This is Matlabs element-by-element multiplication command 22. f2vec(mexp) = toc; Stop the clock and enter the time needed to perform line 21. 23. end % This ends the loop for the various array lengths 24. %================= 25. rf = f1vec./f2vec; This computes the ratios of the two times for the 5 array sizes 26. mvec = 1:mm; This defines the array of the 5 exponents used 27. mmvec = 10.^mvec; This computes the actual array sizes 28. figure(1) 29. loglog(mmvec,rf,'*') This uses the loglog command instead of the plot command 30. xlabel('Number of Multiplications') 31. ylabel('Computation Time Ratio') 32. title('Comparison of Loop vs. Dot-Multiplication in Matlab') Even though the above code may appear to be quite long, there are a number of lines that are simply comments to help me to organize my thoughts. When the symbol % begins a line of code, the line is ignored. Additionally, I have included explanations in BLUE that are not included anywhere in the code. The above code includes a number of commands that I have not discussed; such as tic and toc, loglog and axis and title plot labels. If you type help tic at the command prompt, a discussion of the command tic will appear. Matlab has an excellent help component, and you should feel free to consult it. At the end of each discussion are included related commands. Clicking on them will bring up related discussions. 5. Constructing Functions You may encounter many different situations where you want to use the same sequence of commands, but with different arrays of numbers. In such situations the use of a function can significantly reduce the length of the program. If you type help function you will be presented with a thorough discussion, including the following: At the top of the file must be a line that contains the syntax definition for the new function. For example, the existence of a file on disk called stat.m with: % function name: stat.m % This function computes the sample mean and standard deviation of input x. function [mean,stdev] = stat(x) %STAT Interesting statistics. n = length(x); mean = sum(x) / n; stdev = sqrt(sum((x - mean).^2)/n); defines a new function called stat that calculates the sample mean and standard deviation of a vector. The variables within the body of the function are all local variables. Three types of variables are related to a function. One includes the variables contained in the parentheses of the function. In the above example there is only one variable; namely, x. These variables must be defined prior to calling the function. They are then brought to the function via the parentheses. The second type includes the variables defined within the function that are then carried back to the calling program for use there. These variables are on the left side of the equality, just after the word function in the very first line of the function code. In the above example, since there are two variables that the function code will compute (i.e. mean and stdev) they are placed inside of square brackets. The brackets make them a 2-D vector whose first element is mean and whose second is stdev. In the above example they are separated by a comma. This makes the vector a row vector. A space has the same effect as a comma. Had they been separated by a semi-colon, the vector would have been a column vector. [Note: I find it strange that the label mean was used, since Matlab has a command by that name: it computes the average of an array of numbers. It is possible that if you try out the above example, you will get a suggestion to choose another name, so that Matlab does not get confused.] Below is an example, wherein a function is used to compute the expression for the normal probability density function pdf (i.e. the bell curve) and plot it, for any user-specified values of the expected value and variance. The normal pdf is the formula:  EMBED Equation.3  However, the essential range of x is typically taken to be the interval  EMBED Equation.3 . In the code below, =nu and 2 = sig2. function normalplot(nu, sig2) % PROGRAM NAME: normalplot.m % nu = expected value & sig2 = variance x = nu-4*sig2^0.5 : 0.05: nu+4*sig2^0.5; % This defines the domain array on which the pdf will be computed and plotted against fx = (2*pi*sig2)^-.5 * exp( -(x - nu).^2 *(2*sig2)^-1 ); plot(x, fx) xlabel('x') ylabel('f(x)') title('Plot of the Normal pdf') The program used to call the above function twice is given below %PROGRAM NAME: nplot.n %This profram demonstrates the use of the function % 'normalplot.m figure(1) normalplot(0,1) pause This pauses the code so that you can study the plot. Hitting any key resumes it figure(2) normalplot(10,2) The two plots are shown below.    !"#+,| ; < i    ! ξuuuui\iuh Y6CJOJQJaJh YCJOJQJaJhg6CJOJQJaJhgCJOJQJaJ h3Sh-0JCJOJQJaJh-h-CJOJQJaJjh-CJOJQJUaJh-h-5CJOJQJaJh-5CJOJQJaJh~CJOJQJaJh-6CJOJQJaJh-CJOJQJaJ$"#,h i  ! " z { bd; &gddV $gd^ $^gdJP $^gdJP $gd-! " Q R S W X Y Z \ ] ^ _ j k x y 6<PQaϳϠzh Y6CJOJQJaJh Y5CJOJQJaJhx3CJOJQJaJ%jhx3h YCJOJQJUaJhJPhgCJOJQJaJhJP6CJOJQJaJhJPCJOJQJaJh YCJOJQJaJhg6CJOJQJaJhgCJOJQJaJ/abcdp  ŹsgT%jL hdVCJOJQJUVaJh@CJOJQJaJjh@CJOJQJUaJh^CJH*OJQJaJhdV6CJOJQJaJh Yh^CJOJQJaJh^6CJOJQJaJh^CJOJQJaJh^5CJOJQJaJh7fCJOJQJaJ%jJh7fh YCJOJQJUaJh Yh7fCJOJQJaJ !'()-.04ABJZatgt[N[hp6CJOJQJaJhpCJOJQJaJhd6CJOJQJaJhdCJOJQJaJh^CJOJQJaJhdVCJOJQJaJhdV6CJOJQJaJh@6CJH*OJQJaJhdVCJH*OJQJaJh@6CJOJQJaJh@CJOJQJaJjh@CJOJQJUaJ)j+h@hdVCJEHOJQJUaJ;53V67f $gdJP  $gdS: $gd,bD $gd^41IJTUbf  !'01DEF΢βΒj)j.h,bDh,bDCJEHOJQJUaJ%jL h,bDCJOJQJUVaJjh,bDCJOJQJUaJh,bDh,bD6CJOJQJaJh,bDh,bDCJOJQJaJh,bD6CJOJQJaJh,bDCJOJQJaJh%6CJOJQJaJh%5CJOJQJaJh%CJOJQJaJ)FGOUpq34:;UV]î㔡vj]jj]jQhkCJOJQJaJhS:6CJOJQJaJhS:CJOJQJaJhS:h,bDCJOJQJaJh,bDh,bDCJOJQJaJhS:5CJOJQJaJh,bD5CJOJQJaJ)jF0h,bDh,bDCJEHOJQJUaJ%jL h,bDCJOJQJUVaJh,bD6CJOJQJaJh,bDCJOJQJaJjh,bDCJOJQJUaJ17$*7ex./BCDEP˾˱˥˥|iT|HHh^$CJOJQJaJ)jq2h,bDhJP CJEHOJQJUaJ%jL hJP CJOJQJUVaJjhJP CJOJQJUaJh5-SCJOJQJaJhJP 6CJOJQJaJhJP CJOJQJaJhS:5CJOJQJaJhS:6CJOJQJaJhS:CJOJQJaJhkhkCJOJQJaJhkCJOJQJaJhk6CJOJQJaJ>?GHV\1234FGZ[\]io論諁nY)j9h^$h^$CJEHOJQJUaJ%jL h^$CJOJQJUVaJ)j6h,bDh^$CJEHOJQJUaJ)j4h,bDh^$CJEHOJQJUaJ%jJL h^$CJOJQJUVaJjh^$CJOJQJUaJh^$6CJOJQJaJh^$>*CJOJQJaJh^$CJOJQJaJh5-SCJOJQJaJ"& ' ( 3 4 ; k !8!9!L!M!N!O!!!""###³ܧoܧbP>#h7fB* CJOJQJ^JaJph""#hNegB* CJOJQJ^JaJph""hNeg5CJOJQJaJ)j2;hNeghNegCJEHOJQJUaJ%j$L hNegCJOJQJUVaJjhNegCJOJQJUaJhNegCJOJQJaJhEQhEQCJOJQJaJhEQ6CJOJQJaJhEQ5CJOJQJaJhEQCJOJQJaJhJP CJOJQJaJh5-SCJOJQJaJ' ( 4 !!"R""""##-#r##$Z$ &[&&'',''''( 7$8$H$gd7f $gdJP ##,#-#0#q#r#u########$$$-$ȶȶȒnWCWȒ& *h,.cB*CJOJQJ^JaJph, *h#p9h#p9B*CJOJQJ^JaJph#h#p9B*CJOJQJ^JaJph#h7fB*CJOJQJ^JaJph#hNegB*CJOJQJ^JaJph#h7fB* CJOJQJ^JaJph""#hNegB* CJOJQJ^JaJph""h7fCJOJQJ^JaJ, *h#p9h#p9B* CJOJQJ^JaJph""#hKB* CJOJQJ^JaJph""-$Y$Z$z$2% & &&&& &,&Z&Ҿ骜xfT=&, *h3h,.cB*CJOJQJ^JaJph, *h,.ch,.cB*CJOJQJ^JaJph#h,.cB*CJOJQJ^JaJph#h7fB*CJOJQJ^JaJph#h7fB*CJOJQJ^JaJph#hNegB*CJOJQJ^JaJphhKCJOJQJ^JaJ& *hKB*CJOJQJ^JaJph& *h,e_B*CJOJQJ^JaJph, *hKh7fB*CJOJQJ^JaJph, *hKhKB*CJOJQJ^JaJph Z&[&]&d&g&&&&&&&''' ''''+','/'1'A'μμΐkT=, *h7fh7fB* CJOJQJ^JaJph"", *h7fh7fB*CJOJQJ^JaJph& *hNegB*CJOJQJ^JaJph h7fh7fCJOJQJ^JaJ)h7fh7fB*CJOJQJ^JaJph, *h,.ch,.cB*CJOJQJ^JaJph#h,.cB*CJOJQJ^JaJph#h7fB*CJOJQJ^JaJph#hNegB*CJOJQJ^JaJphh7fCJOJQJ^JaJA'''''''''''''''(( (!("(_(`(c(e(h(ͻͻͻsasJa, *h3h3B*CJOJQJ^JaJph#hfB*CJOJQJ^JaJph#h3B*CJOJQJ^JaJph#h7fB*CJOJQJ^JaJph#h,.cB*CJOJQJ^JaJph#h7fB* CJOJQJ^JaJph""#h7fB*CJOJQJ^JaJph#hNegB*CJOJQJ^JaJphh7fCJOJQJ^JaJ#h,.cB* CJOJQJ^JaJph""(`((!)9)R)r))*M*d***7+E++++),*,X-Y-.//e0f0g0 $gd- 7$8$H$gd7fh(((((( )!)%)8)9)=)Q)R)U)Z)[)q)r)u))))))))***ͻ߀n߀nͻͻͻ\#hfB*CJOJQJ^JaJph#h7fB* CJOJQJ^JaJph""#hfB* CJOJQJ^JaJph"", *h3h3B*CJOJQJ^JaJph#h3B*CJOJQJ^JaJph#h7fB*CJOJQJ^JaJph#hfB*CJOJQJ^JaJphh7fCJOJQJ^JaJ#h3B*CJOJQJ^JaJph**L*M*Q*c*d*h*z*{********+++6+7+D+E+ͻ͗s\͗s\͗s\J<hOCJOJQJ^JaJ#hOB*CJOJQJ^JaJph, *h3h3B*CJOJQJ^JaJph#h3B*CJOJQJ^JaJph#h7fB*CJOJQJ^JaJph#hfB*CJOJQJ^JaJph#h7fB* CJOJQJ^JaJph""#hfB* CJOJQJ^JaJph""h7fCJOJQJ^JaJ#h3B*CJOJQJ^JaJph#h7fB*CJOJQJ^JaJphE+G+I+Y+\+]+^++++++++++++++++++',),*,,5-ɷɥɷɀɷɀɷnbVhOCJOJQJaJh#p9CJOJQJaJ#h#p9B*CJOJQJ^JaJphh7fCJOJQJ^JaJ, *hOh3B*CJOJQJ^JaJph#h3B*CJOJQJ^JaJph#h7fB*CJOJQJ^JaJph #h7fB*CJOJQJ^JaJph#hfB*CJOJQJ^JaJph#hOB*CJOJQJ^JaJph5-8-W-X->.D...///f0g0t0u000001 1β~oZHZHZH6Z"hH#!5B* CJOJQJaJphp"h75B* CJOJQJaJphp(h7h75B* CJOJQJaJphph7h7CJOJQJaJh7CJOJQJaJhJPCJOJQJaJh75CJOJQJaJhJPh7fCJOJQJaJh(_h(_CJOJQJaJh(_6CJOJQJaJh(_CJOJQJaJh#p9CJOJQJaJhOCJOJQJaJhO>*CJOJQJaJg01,111112D2G229Z9(:d:::F;;3<?<K<Z<z<{<<< $gd- 7$8$H$gdfK $gd7 1+1,111I2i2}22222333(4s6v666;7A77788Dzvviviviv]P]hK%6CJOJQJaJhK%CJOJQJaJh6CJOJQJaJhCJOJQJaJhh7CJOJQJaJhhCJOJQJaJ"h5B* CJOJQJaJphp(h7h75B* CJOJQJaJphp(h7hH#!5B* CJOJQJaJphp"h75B* CJOJQJaJphp"hH#!5B* CJOJQJaJphp8889 999B9C9V9W9X9Y9Z9|9}999999׾׏zײm]J5)jAh/h/CJEHOJQJUaJ%j+?L h/CJOJQJUVaJjh/CJOJQJUaJh/6CJOJQJaJ)j=h.h/CJEHOJQJUaJ%j>>L h/CJOJQJUVaJjh.CJOJQJUaJh/CJOJQJaJhgCJOJQJaJh.6CJOJQJaJh.CJOJQJaJhK%CJOJQJaJhK%hK%6CJOJQJaJ99:::::&:(:8:b:d:::::F;;;2<3<><?<F<I<J<K<R<X<Y<Z<`<x<y<{<㸦tttbbb#hfKB*CJOJQJ^JaJph #hfKB* CJOJQJ^JaJph""hfKCJOJQJ^JaJ#hfKB*CJOJQJ^JaJph#hfKB*CJOJQJ^JaJphh/h.CJOJQJaJh/6CJH*OJQJaJh/6CJOJQJaJh/CJOJQJaJjh/CJOJQJUaJ"{<<<<<<==== =!=0=1=9==========ttttttuȶȶȶȶȶusg[N[h([5CJOJQJaJh([CJOJQJaJhlgCJOJQJaJU)jOhfKhfKCJOJQJU^JaJ)jlChfKhfKCJOJQJU^JaJ, *hfKhfKB*CJOJQJ^JaJph#hfKB*CJOJQJ^JaJphhfKCJOJQJ^JaJ#hfKB* CJOJQJ^JaJph""hfKCJOJQJaJhK%CJOJQJaJ<==!=1==========ttt5v7v8v:v;v=v>v@vAvgd% $gd- 7$8$H$gdfKTo copy and paste the plots into this Word document, I went to the edit button at the top of each figure, and selected the copy figure option. I then went to this document and pasted it in. 6. Conclusion This tutorial was meant to be a bare bones one. Matlab has a wealth of toolboxes, ranging from statistics to feedback control systems. To get an idea of the commands included in a given toolbox, simply go to the command log window (the first one to pop up; not the command window), and click on the help button. Then select the topic of interest.      PAGE \* MERGEFORMAT 6 u u4v5v6v8v9v;vv?vAvBvYvZv[v\v^v_v`vavÿöÿhWDhH#!mHnHuh%jh%UhcjhcUh([h([CJOJQJaJh([CJOJQJaJh([6CJOJQJaJAv]v^v_v`vav $gd-$a$21h:p-/ =!"#$% JDd 0  # A"sHX>($&8D~ @=sHX>($&8 1cQ =hx_u}? hk):lEdf] K&U*";ˆNm˔~;3FmfѢi~bهeM\׮Aپloxyg_pmM`佷=q]ο67>ٮgz=޾;oƛ^$MݠCLk`jsK#jc:'o㒳 Cνܶbɬߚl߅7M8wҤ7_-g7Ov"5]qgqy֗zM:)mEosM55Yz͟5՛[ON5>eIgZAV!+:s^!:e#t^>Lo}~@'ݠ ݪtg>c?Uo'6Z56Ux=ct^ F_Jqyryu|Um+ ]ٝ0wXEǍ$~$hK4ui'k2>5JMŚi39t&]zn.x!݃ w4#g´S?0p#AO´5E1Q2y|Ӿ^ﳡlm1E|\[vκCH7yL:h輄WI b$#k%~_:Woew0a_BQ"li7[֣G79&y}g8M }Wz) ?ύį>:؏$ 'D^ȉOWSM $ 'DӇ '>_}2N5u$4TM9Iq#A_dh r'TSG>IC8{į>:IOƉO@N|djH'i>'$~8ԑOP}2N5> )@9:"|~|´Ϝ wpR}n\>ßxL?7p?jsRIʥ:Icx<^$a d_scOVFy^~.AGI#~ į>:؏$ 'D?@N|djH'i>' r'TSG>IC8ϐį>:IOƉ!'>_}2N5u$4TM_$~8ԑOҰ1]_r'TSG>IC8 ȉOWSM $ 'TSS)#j|KY'}|KU')o<6WU{:[pNR.Ia;\'yx㓄y{TMrc+~ύVžt'OƩ}}qiE$~8ԑOP}2N4}djJ|qiU'TS4TMkBį>dhzY'TS4TM }djJ|qi]'TS4TSM5X>@Մq#AIҴuy[:I>L\H I-DmKQ'sAy-'\1wұOcKuk:c ǥO֣y{Tz&Wzs5rtEb$}nhOWSMOP}2N4m }djJ|qi{'TS4TMW>_}2N5%>IC8'OƩ'i>' }djJ|q=OWSMOP}2N4/Iq)IOƩ4:8ՔT$iZ:Z-U\n &ڤ=Gt#'[:IT'鞹<7N4}OWSMOP}2N4$~8Ք$ 'DOWSMOP}2N4}*Iq)IOƉO>_}2N5%>IC8'OƩ'i>'>_}2N5%>IC8'OƩ'i>OP$TSSi)ϐcĨ 9LR.Iu&8n\}w_}2N5%>IC8t'TS4TMφ>_}2N5%>IC8ՔZ'Rj$MKY'|#F[L\&f:c|I/U\$1K4=3Ϸ&DS_5'R~4B4u6jm]Lqn1r@_blڤ4={'\y(.r]v/[hsqRLִ5kc\>н-װ1ѽhҽ]5'/>_}N4^O4ɗ8$.!qIpI>%KdhO~IpI>%KdhO o'D|J4ɗ8$^J'O‰&h/UqI>M'O‰&h/UqI>I'O‰&h/UqI>-'o'D|J4ɗ8єڨj2N4>h'hZ{I4n/Vz|^nhk%sd0:{dϑib114injOֳk~Mz Ӣ:)Ѥj2N4ɧ!mį> "Mj2N4ɧ"I0-)$_&D|zH|$L|J4ɗ8$>K$>_}E>%KdhOF$>_}E>%KdhOJ$>_}E>%KdhOH$>_}E>%KdhOO$>_}E>%KdhJ}ɫ&D'EUB4Mp̸)[ /vp ID vNҘ4/:|O/z:FwM=D7~;j?3ɾJů0-M&D v8į> "Mj2N4'=Gį> "Mj2N4ɧ7OWiO&R5'/OWiO&R5'| $~Ih/UqI>H|$L|J4ɗ8$Q⓸'aZSITMƉ&ʻz'~Iԑ&"5[S^&D$ꢪx!&yI6JB I:^uҫ ӎIEF uKȵx%QhL}Z' YȵHׯך)cdD>&y,# WM‰&L4ui'_{k2JZGZJB9^EI\@YO5'D_Mydhz岹LjpoMyW,֚M&C&[8>reI&DׁG8yrUI->'&iߏ|dh{>w'Dӯ*ybz8Ѥ&ͩj2N4'}}GdhRDT5'}}|>E'Dr$48q|}}:NjOƉ&H4iNUq\nzz='#Ѥ9UMƉ?Z|2N4)GIsM?&ޓMʑhҜ&qdSFb b%+W>3s\2hc\\AF;ٮgz4c;o޻޴mTkO\ ڗ{׾|~\;_}O/hPr߿=WkHoMNjpwi^ִ Tk'[^!k }&p!}9G=:\OhUOOckx}ᾴaRy5'F˖ moQ~?̘g. zYt#ע޹<{EcByc:;9}'FV~hvЧ}sΡsz_XǏsڥZv%64;:ff7kAv8B͒舍CLAb8L!ЏB?04=Я ;+EoAoAo?4Aotf07lgb?1MȫkȉDd 0  # A"s{E!~ @=s{E!1cQ =x\yϮ=k5kheVBAi .1-qRqk66nX (QVBm%5MTWR[ULF%;3hgv{s<ޙ9ΦybXD/>vZ텛[SJ--R"ZX:dK721QMpaƎLjq8CINLԉ!bF"ƈqq8NLbr3&'GH'}]o#}!(^H/ Bz!^H/ Bz,Es6Nljcb":u c@gv {vrwr'-A^uּ%/zw{^m=}+[j7,l2`F_F=b&m>P}Sko]Q5-Ɖ75|RVAϹ{ɤ_o7Nl]k7WI7 2]~xt ;/N|\rMtOk5tMte<'𜜘k4~-$xKk42\zgJ9HyFz)ڱawÄrU)hmZW^y凼Nbhvjkb/LU q8npPlܢ^ykRg{9,iv#Kws)'gOҎOu dOҴ )Bz )\S^̤i~T'iSUgNҴ9ro Ss̱A~C_7myk kRvħlN"1yL{kmz%EGjGť_;~yì[X|.{c+~Vh6q</|Vxu|_|_Oqw5y\X43U&e5,\]|}:>oe2ḎϽ>;ZSK3lQϴ"nGi9yS~~ M<)۹FϞ򰒈tUtd3Ю:l9C'gN]Ou T$Shӳ$;9v=)P4?㘹Z'Iζ}c w ׈˵Gw_<43+FyUJ"tUmNϜBI2ЎIv8)?s zS*'yȜB;xNϜBI2ЎE&'gN]O'yȜB;9v=9!s x)$ShLNϜBN9v<49)?s zr8CçLr$y9}ԛujit ${N=J|?rŲ|t'Aj=L|h_'C]q#5"r-ns*??硱1PzG;ט_')??OIShדI2Ў{MNϜBN9v<59)?s zr8Cgy9v=9!s xM3Ю'KZ'֧g' huRs>I%:]٬TaD:):u׈y~5q:sSW^'F=y3v<%5NϜBN9v<29)?s zr8C/&'gN]O'yȜB;irR~p)LNϜBN9v[Pׅ^;ZZ']oh'GbN ;=##I㥟|њ:IcN~zJ9UIϹ4Z'9\gOOlpR~$M89%{ x#NϜi'ǓdOOI4x)Ip8)?sYO=v:%{ x%NϜi'ǓdOO.-<{ xpҺ({ ݋~{faߤZ:nA:A-&h]NP"n!::IcYݩ߹zM|#I#y:m70^#O/BK)}Qk^:F縙 6Ϲ4zOzЎ$'GNϜi'ǓdOOPׅٮIέ4v>I~gy:IkN"C$O1P#O/b#,TyU~~Υisxs=vD89I,N'qɞB;i5pR~$M89%{ x'1r8)7sYO=v'#I?FD>jL}qp˵p߸ :d;qNkyP~$xqپoްt8ŵOq01D^B {t"jYLk넘u[4#\"Z踖; ǵ_0h[jF̠ƈ:@=@罜Lm2<:HB;L$|Z)wÓCЎ]s tM+?wzN~p xR Ǔ=v<)5ET"&ShǓj84)ν _U9"kShǓj84)<`p:JCShǓj84)\gp_y5Ў'pGxHZ,{'(d˺_D.clw{?R~r̡\j~+?㡵؏ܬ՗L0q9jMexjȽ㷓4F=?XbS>#A;J=|Bm* k^wW,i$^~=6O֞>Yr^Zy;GwMoۆKy}kYZw1ԪڿrIƉ7Ew_3܃=zxgl:):^o'w'Io$K.?<6 rBϘ5bxun^=1)=cN˽ ܝ]-}ӽ{Ts4}q/jcWj?u؏Ir5ȩr+?Wdˆc7ӉW Wkf\:lף뺾 թ[i?ysEkmO:5/;iExʺR6 Ԛ/?oa:Ljq8uQ'ab#Ɖ#181A"NgIϐ~SO~c!}1wa҇H>Bz!^H/ Bz!^H/ ̠9Sl'11N%HDd @  !"#$%&'()*+,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTiWZ\[]_^`bacedfgjklmnopqrstuvwxyz{|}~Root Entry- FP YData ?"\WordDocument,4|ObjectPool/P P _1289798309FP P Ole CompObjfObjInfo !$%&'*-/012346789:;<=? FMicrosoft Equation 3.0 DS Equation Equation.39qS!pLI H"0.33 FMicrosoft Equation 3.0 DS Equation Equation.39qEquation Native =_1289800409 FP P Ole CompObj fObjInfo Equation Native  1_1289800470FP P Ole  S`LI mn FMicrosoft Equation 3.0 DS Equation Equation.39qS`LI mnCompObj fObjInfo Equation Native 1_1289802314 FP P Ole CompObjfObjInfoEquation Native 1 FMicrosoft Equation 3.0 DS Equation Equation.39qSH9LI m1 FMicrosoft Equation 3.0 DS Equation Equation.39q_1289802443FP P Ole CompObjfObjInfoEquation Native 1_1289803300"FP P Ole CompObj fSH9LI 1m FMicrosoft Equation 3.0 DS Equation Equation.39qScpLI {(x k ,y k )} k=1nObjInfo!Equation Native _1289829950'$FP P Ole CompObj#% fObjInfo&"Equation Native #_1289830187)FP P  FMicrosoft Equation 3.0 DS Equation Equation.39qSLI f(x)=1 2 2 exp["(x") 2 /2 2 ];""<x<"Ole (CompObj(*)fObjInfo++Equation Native ,Y FMicrosoft Equation 3.0 DS Equation Equation.39qS=pLI ("4,+4)Oh+'0t b  c $A? ?3"`?2ji?96|n,~ `!fji?96|  4xcdd``fed``baV dR`1FYzP1n:&B@q56~) @ ' >47$# !lo@I A $37X/\!(?71aŪXkzZ P.P56J`| r1 2J?fȾܤ\{|a#H.n sJP}*@?eǁ$c. Y.pȂa&#RpeqIj.C (|:@ĞB`;tܺc+Dd Db  c $A? ?3"`?2uTAmg(<#Q_.~ `!ITAmg(<#`!xcdd`` $X bbd12,(ㆫaJ`\,Wcgb Ԁt3C0nĒʂTݿ%`V&br<>ob׸Xuri#.L UV ~n%oL +sss8|a>#ȞH] (1 ~``ÈI)$5nE.B`;@~ 0 HQ+Dd Db  c $A? ?3"`?2uf ]fQ0~ `!If ]f͢`!xcdd`` $X bbd12,(ㆫaJ`\,Wcgb Ԁt3C0nĒʂTݿ%`V&br<>obUMF\ 3@ͫ@Jߐr@W&00 vJ.8\`bE#F&&\ w3u(2tA4,] K,+Dd Db  c $A? ?3"`?2uTAmg(<#Q2~ `!ITAmg(<#`!xcdd`` $X bbd12,(ㆫaJ`\,Wcgb Ԁt3C0nĒʂTݿ%`V&br<>ob׸Xuri#.L UV ~n%oL +sss8|a>#ȞH] (1 ~``ÈI)$5nE.B`;@~ 0 HQ2Dd b  c $A? ?3"`?2|YVclZ~ qX4~ `!PYVclZ~ q@ Hxcdd`` $X bbd12,(ㆫa:,Wcgb x m@øjx|K2B* R vfj KXB2sSRsV\ =dF\ L 2/27)?(ׇp2p؂a.6R 1^+ \@r\1@DkF&&\ 3u(2t5=n`ob]2Dd b  c $A? ?3"`?2|YVclZ~ qX7~ `!PYVclZ~ q@ Hxcdd`` $X bbd12,(ㆫa:,Wcgb x m@øjx|K2B* R vfj KXB2sSRsV\ =dF\ L 2/27)?(ׇp2p؂a.6R 1^+ \@r\1@DkF&&\ 3u(2t5=n`ob]2Dd b   c $A? ?3"`?2|ZqըGzK VϪֈXD9~ `!PZqըGzK VϪֈ@ Hxcdd`` $X bbd12,(ㆫa:,Wcgb x m@øjx|K2B* R vfj `[YB2sSRsV\ HduVl2/27)?"p2@ b.#ܽ`s +B r a"5#RpeqIj.I:@ĞB``̈́aDd |b   c $A? ?3"`? 2xdƎZ[ #v;~ `!xdƎZ[ #` 0sxRJ@=3æEKZD0 [Խ;VX4BZ,;7 `&MǢ̙w9sB 0q)=^iEG*|2dsX@+iVŧØ k퓊{nUirx kL#[;v:;aө5viZ[q/FE8C8mi1>0{hL˯:#|zZ]'M3Q_`މO&$yuGx^_~5-Q (͚]o?^]$64S:Ph4қJղjz/JÜԮHАo7KDd (b   c $A ? ?3"`? 2 <#u ^ |q=~ `!i <#u ^ |@ H1(+7xMhSAgg_Ҿ4$bUx6*X=9iVxEgCH^ORoċGI!ċ =Q f? /ggg?rn \bmjT%1h|}VƗNϐ$9C@G&Pr& 7KQ9E/y)GH45gÆtⲔ'7FB p'q&i7oö%ko\|KMϹ x3Qxo! Y۩Yk znw<5Q?fjyTAQs1du^ο *͠O/TuscX3__#r!4yH[ϑ ;g-O)ly':_\^wlC~JuKU`xWQE<*FpS'+ށ;GS<9~'N.[t*r܊]shxC&A(WR@J=!DjBo ЈT ɘݩ~$hDd @b   c $A ? ?3"`? 21L}f|1LnHA~ `!1L}f|1Lnj   TxuR=KA}<(=`-1F8pp?RSkA Vp$ socfJ@f[s#+ħtr[W3l*]/0 ʍnCԬThwO[ѵ ;&EVi~X{NоDV-4Qv[H.]R|^d\x7xZf<^Zij4sIEqNУީ(ᖸohygX":~Ϣ#tN:hCY{]E؋h99#c8(ˮ (<`RNM:nSj Dd 0   # A  " 3'%)̥j C~ @= 3'%)̥jT:1cQ = xUǟXc5u4X b16֊@VZtEAQ~" &ɭ#uDXh95jd发Ip4dc}OwwQs9yޗ}̮.7Df7+8$3c^bF%`71fY;$a־PmYs$.VG=tUusE]ߟ>*brt JZ3!Jȓ`3J꾾>jP,}Z_/s[6@mv11(6:@El=lvׇv̷a^{0߈z̋wcޅy혷a^Y憹an憹an憹an憹an[il=`#X Ds@7IBZ9RrK%l~ @ܭepjoڰfޒKMMnў>ɖR=nKW,\̞h7`Uii%U1fi\}l doXͼOi|=],ϻmEOo1N(z&$sh'!NZ83 'b88)|F bW7 _ڝ48)Fi XZse_/&٧1IS<1 I2e)L)1'cDL!7Su/OSͳ%~"ށA09Lɼߧa|uB z];)CCm]TT|?2r|͢^GeqBĝi>Q*taSJir;O1y8}qtgΧ|@Ver2ݙcZ`q,_j{'DzO9tzer2ݙcƃű|9]On'DzO9ʱSC;sLx8/q2u5ǡI s\y8}qy)dX)! ; B8PqPսo^<Gy}oLGY}oyb:ů|߳:VWIzW)!3}f~壀>7<1]WPoPw2F}Gy}oyr)dW)!,~K> ~w(O 9O.壀>7<1W.PoPw _Nao>m}0fy]E=L3Z鵊}r>|bQ[;Jg e:PЩ޽ }u=~g,b;k=\Lw.~$>ӘBD;Q~GǗCoSNtmptc׍]F}ʷdJ.$~ӘB>݅jOwt{cq;;;Mtwkɔ\\80 4&qrt j( !_/qHϭ;ٞl?}uD=e-<14Ĥ3D>`|wC w|ےqk{&ٖ}ʵdJ.oA7Иĭ#ܝVLru3wЉv^Zz|>rkdJ$sg;I|IgSubj.|R ׀)f@S5V)ג)Mc 9OL:s(qK\R5t2޷ ^vZ.oɔ\|pe9۲ķdJtO {#4B)='Y1DL!U(A>(Vh :.ƌO瀩jՖrF\ ysqAk&8>gO`8\h+| X.+R \r_ >SσkbdmhKvdvF;׿a]~wٙmߵN8߷Y~'v?`Sg67١迴QՆmoOً{{hO3=bvo/ۭh:{ͮob盳aa{tۏam6l kx+k>'?q?a ~G; 'ѓ}BftϗnVW=d~[d9"YAVw(_~_s>ٯ?֯z?7,wWo~_vr;Dyh-u~/C_?ec Ka__lO W6,x vNz8[6ڄ.M,Fd&3\b\[3Nٲ^~(gQS_^ՀxvǦEiZdbem1߾l Zקx*  Tu0޳]͝gSy&{(c@evsApN}@=։|Nj;4NcTOlB8jڋb5MX߽9,:AdW+uVC | [d OE^7 m j.!9S!^㣽Oc/H~wiRfqKng zFr"'L Dd R0  # A  " 5OՇ&8z P~ @= 5OՇ&8z51cQ =j x{UǟXDY tYGՔ[ dD heԼffX(^4/y)b~*}3G<>E?x7UNP֎0뱟YȱͮdNO`0Y#d' =Owkx;-cT;\k-ݙ7ĥ#umB]< }14hV_c J3!J؃dͷMᎎjͽ[_;k562kl @#h- dr`67 ո/={-7ވ{knnnnu"4,Y"hKq$v~+@Z"\{ќ3m!9'1i+b\9{=W.8n3a;jluuMh7ul{%ɿr3}ܡϮ3gǣиu'z8(]ƊmKJ:KeU'Ϳ5??8G|~BvRʛںV(~bIQ;L1iB,{5/J^롱\;ox<] v Xsuz+s-޲)NI&9Pw-Jn!b&ޝ%wiu`H;*w~1-ֲ)NI&9+T*z*1 _IcLuuu{b:SC[][6%i8I$p Q/*ջuw1|wl^Oc~IZ6%i8I$pҞ;D:Ēt)ܷ5VR}#-޲)n&@]/I?8MW՜|,9mM,=$:ӱu5[u01D֎v ޖUuٔzyRStUI{[Ŝ*:KAw*C:/&r6!έ.$ vqn''9NIǕSIN),Osq`#h5 ZD8 $0Vڊ/եɴ&}, xp8Zd0Si`& \0,g|? K@|| |q9X /*_ZY~%vf5v˦m_g~Mll-&3~}ڿo6w'G|ך6bTp_oa;_}q˟l?m;3|[|z{^w'{^K*nOqk}u޴y?FlڿjHZw_a=FOztrgYVl7çڞ*} A3Ak@!>džp0*B=&K9ޠֹPl-Q_8WQɯ1d~fGf2< 88џBQEy67'ʙO; y?O>|O5"gH_9Q_R??M~ h_)ȏ}|_Ro|)~X*?ůfo5~aq`r3Xm~ V;|~e;`x< |x<~ O_gs`#-x^ w>[>WeEg({N캞a/<^3ϰ+@=\psӘ:9ݲ\oZOY}-wk:_W>՜9xx=Q'sc+1_\-2O}MV꣱,;qo[Kyy 0 < HT\dl shermanp Normal.dotm shermanp15Microsoft Office Word@Q&X@2fT@|[-՜.+,D՜.+,@ hp  Iowa State Universitya5  Title 8@ _PID_HLINKSAq0http://www.ag.unr.edu/moeltner/matlab_stuff.htm~   F'Microsoft Office Word 97-2003 Document MSWordDocWord.Document.89qj 666666666vvvvvvvvv666666>6666666666666666666666666666666666666666666666666hH6666666666666666666666666666666666666666666666666666666666666666662 0@P`p2( 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p8XV~ OJPJQJ_HmH nH sH tH D`D ~NormalxCJ_HaJmH sH tH DA`D Default Paragraph FontRiR 0 Table Normal4 l4a (k ( 0No List 6U@6 -0 Hyperlink >*B*ph4@4 %0Header  H$66 %0 Header CharCJaJ4 "4 %0Footer  H$616 %0 Footer CharCJaJPK![Content_Types].xmlj0Eжr(΢Iw},-j4 wP-t#bΙ{UTU^hd}㨫)*1P' ^W0)T9<l#$yi};~@(Hu* Dנz/0ǰ $ X3aZ,D0j~3߶b~i>3\`?/[G\!-Rk.sԻ..a濭?PK!֧6 _rels/.relsj0 }Q%v/C/}(h"O = C?hv=Ʌ%[xp{۵_Pѣ<1H0ORBdJE4b$q_6LR7`0̞O,En7Lib/SeеPK!kytheme/theme/themeManager.xml M @}w7c(EbˮCAǠҟ7՛K Y, e.|,H,lxɴIsQ}#Ր ֵ+!,^$j=GW)E+& 8PK!Ptheme/theme/theme1.xmlYOo6w toc'vuر-MniP@I}úama[إ4:lЯGRX^6؊>$ !)O^rC$y@/yH*񄴽)޵߻UDb`}"qۋJחX^)I`nEp)liV[]1M<OP6r=zgbIguSebORD۫qu gZo~ٺlAplxpT0+[}`jzAV2Fi@qv֬5\|ʜ̭NleXdsjcs7f W+Ն7`g ȘJj|h(KD- dXiJ؇(x$( :;˹! I_TS 1?E??ZBΪmU/?~xY'y5g&΋/ɋ>GMGeD3Vq%'#q$8K)fw9:ĵ x}rxwr:\TZaG*y8IjbRc|XŻǿI u3KGnD1NIBs RuK>V.EL+M2#'fi ~V vl{u8zH *:(W☕ ~JTe\O*tHGHY}KNP*ݾ˦TѼ9/#A7qZ$*c?qUnwN%Oi4 =3ڗP 1Pm \\9Mؓ2aD];Yt\[x]}Wr|]g- eW )6-rCSj id DЇAΜIqbJ#x꺃 6k#ASh&ʌt(Q%p%m&]caSl=X\P1Mh9MVdDAaVB[݈fJíP|8 քAV^f Hn- "d>znNJ ة>b&2vKyϼD:,AGm\nziÙ.uχYC6OMf3or$5NHT[XF64T,ќM0E)`#5XY`פ;%1U٥m;R>QD DcpU'&LE/pm%]8firS4d 7y\`JnίI R3U~7+׸#m qBiDi*L69mY&iHE=(K&N!V.KeLDĕ{D vEꦚdeNƟe(MN9ߜR6&3(a/DUz<{ˊYȳV)9Z[4^n5!J?Q3eBoCM m<.vpIYfZY_p[=al-Y}Nc͙ŋ4vfavl'SA8|*u{-ߟ0%M07%<ҍPK! ѐ'theme/theme/_rels/themeManager.xml.relsM 0wooӺ&݈Э5 6?$Q ,.aic21h:qm@RN;d`o7gK(M&$R(.1r'JЊT8V"AȻHu}|$b{P8g/]QAsم(#L[PK-![Content_Types].xmlPK-!֧6 +_rels/.relsPK-!kytheme/theme/themeManager.xmlPK-!Ptheme/theme/theme1.xmlPK-! ѐ' theme/theme/_rels/themeManager.xml.relsPK] 5| *****-! a F#-$Z&A'h(*E+5- 189{<uav!"#%&'()+,-.01235678<;(g0<Avav $*/49= ;  0DFp.BD13FZ\8LNB0V0X00005X:::::::::: $&-!8@0(  B S  ?`d=@ h!j!!!""I"O"P"X"m"s"""""$$$$'(%(+((( )%)(),)~)),,-$-001111 2 2222!222222222d3n355555555555555< 0GF]8O'( ((e)i)}))B0Y000555555555555555+)3JP K.OJPH#!^$K%/x3#p9@WD,bDfKEQ5-SdVcY(_,e_,.c7fNeg-S:vkd% Yclgg^pf$~7([55@))@))L 0135x@xx$@x:xx@x@UnknownG* Times New Roman5Symbol3. * Arial?= * Courier New7.{ @CalibriA BCambria Math"1heFv&w-a-an0d552HX $P-2!xxshermanpshermanp