 259 Lecture 17 Working with Data in MATLAB. Overview  In this lecture, we’ll look at some commands that are useful for working with data!  fzero  sum,

Presentation on theme: "259 Lecture 17 Working with Data in MATLAB. Overview  In this lecture, we’ll look at some commands that are useful for working with data!  fzero  sum,"— Presentation transcript:

259 Lecture 17 Working with Data in MATLAB

Overview  In this lecture, we’ll look at some commands that are useful for working with data!  fzero  sum, min, max, length, mean, median, std, and sort  polyval, polyfit, polyder, polyint 2

fzero  One of MATLAB’s built-in functions is “fzero”.  fzero uses the Bisection Method to find a zero of a function f(x).  Syntax: fzero(‘f’,x0) where f is a function defined in MATLAB and x0 is either a starting value or an interval of the form [x1 x2].  In the second case, f(x1) and f(x2) must differ in sign. 3

fzero  Example 1: Try each of the following commands:  fzero('cos',1.5)  z1 = fzero('cos(x.^2)', [0 sqrt(pi)]) For Octave, to use this command, create a function M-file for cos(x.^2), such as “Sample2.m”. 4

fzero  Example 2: Plot the function y=Sample1(x) on the interval [-2,2].  Use the graph to pick a starting value x0 for fzero to locate the positive zero.  Then try z2 = fzero('Sample1',x0).  In MATLAB, the following should produce the same result:  z3 = fzero('x+x.^2- x.^4',x0). 5

fzero  Example 3: Create an M-file called Example3.m with this script:  x = -2:0.01:2;  plot(x, Sample1(x));  z = fzero('Sample1', [1 2]);  title('The positive zero of y = x+x^2-x^4');  grid on;  set(gca, 'Xtick', [-2:1 z 2]);  %This last command specifies tick-marks on the x- axis.  %Note that tick marks must be specified in ascending or descending order. 6

Working with Data  MATLAB has several functions that can be used to work with sets of data, including:  sum, min, max, length, mean, median, std, and sort  Use the Help file to learn more about each! 7

Working with Data  Example 4: Let x = [5 2 1 6 3]. Enter vector x and find each of the following:  sum(x)  min(x)  [mx, indx] = min(x)  max(x)  [Mx, indx] = max(x)  length(x)  mean(x)  sum(x)/length(x)  std(x)  sort(x) 8

Working with Data  Example 5: Let A = [5 2 1 6; -1 0 4 -3]. Enter matrix A and find each of the following:  sum(A)  min(A)  [mx, indx] = min(A)  max(A)  [Mx, indx] = max(A)  length(A)  mean(A)  sum(A)/length(A)  sum(A)/length(A(:,1))  std(A)  sort(A) 9

Working with Data  Example 5: Use the following MATLAB commands to locate the minimum of the function y = 2 cos(2x) – 3 cos(x) on the interval [0, 2]. x = linspace(0, 2*pi, 700); y = 2*cos(2*x)-3*cos(x); m = min(y)  Plot this function and see if the “MATLAB solution” agrees with the graph.  How else could we use MATLAB to solve this problem? 10

Working with Data  Example 5 (cont.)  One possible solution:  Find where the derivative of y = 2 cos(2x) – 3 cos(x) is equal to zero and use fzero! plot(x, -4*sin(2*x)+3*sin(x)) x1 = fzero('-4*sin(2*x)+3*sin(x)',[1 2]) y1 = 2*cos(2*x1)-3*cos(x1)  Each method yields a minimum of m = -2.5625. 11

Polynomials  Recall that a polynomial is a function of the form p(x) = a 0 x n + a 1 x n-1 + … + a n-1 x + a n where n is a non-negative integer and the a i are constants called coefficients. The degree of polynomial p(x) is n.  In MATLAB, a polynomial can be represented as a row vector containing the coefficients.  For example, the polynomial p(x) = x 5 +2x 4 -3x 2 +7x+12 is saved in MATLAB as p = [1 2 0 -3 7 12]  Note that missing powers of x are included as 0’s in the vector.  What polynomial would the vector r = [1 2 -3 7 12] represent in MATLAB?  Answer: r(x) = x 4 + 2x 3 -3x 2 +7x+12. 12

Polynomials  To evaluate a polynomial, we use “polyval”.  Example 6: Try the following: p = [1 2 0 -3 7 12] polyval(p,3) %You should get 411. x = linspace(-2,2); y = polyval(p,x); plot(x,y) 13

Polynomials  Example 7: Estimate the definite integral  -2 2 x 5 +2x 4 -3x 2 +7x+12)dx.  Choose equal subinterval widths x = (b-a)/n and sample points x i * to be each subinterval’s midpoint, i.e. x i * =a+(2*i-1)*(b-a)/2n, for a=-2, b=2, and n=100.  Do this first with the polynomial’s formula. a=-2; b=2; n=100; dx = (b-a)/n; xstar = a+dx/2:dx:b-dx/2; Rn = sum(xstar.^5+2*xstar.^4-3*xstar.^2+7*xstar+12)*dx  Repeat with “polyval”. Rn = sum(polyval(p,xstar))*dx  In each case, you should get the approximation to be about 57.5931.  What is the actual value of this integral?  Answer: 288/5. 14

Polynomials – polyder  Using the command “polyder”, we can differentiate a polynomial, polynonial product, or polynomial quotient!  Syntax: “polyder(p)” returns the derivative of the polynomial whose coefficients are the elements of vector p. “[K] = polyder(a,b)” returns the derivative of polynomial a*b. “[Q,D]” = polyder(b,a) returns the derivative of the polynomial ratio b/a, represented as Q/D.  Try this command with  p = [1 2 0 -3 7 12]  a = [1 1]  b = [1 2 1]  Do your results agree with calculations done by hand? 15

Polynomials – polyint  Using the command “polyint”, we can integrate a polynomial!  Syntax: “polyint(p,K)” returns a polynomial representing the integral of polynomial p, using a scalar constant of integration K. “polyint(p)” assumes a constant of integration K=0.  Try this command with  p = [1 2 0 -3 7 12]  K = 7  Do your results agree with calculations done by hand? 16

Fitting Polynomials to Data  We can use the command “polyfit” to fit a polynomial to a set of data via a least- squares fit.  Syntax: p = polyfit(x, y, n) will fit a polynomial of degree n to data given as ordered pairs (x i,y i ) for i = 1, 2, …, m. 17

Fitting Polynomials to Data  Example 8: Let’s try with the Toad Data and a polynomial of degree 3!!!  Note: The Import Wizard feature that follows only works in MATLAB – for Octave create two vectors, Year and Area with the appropriate toad data as entries – we will see a way to do this in a couple slides!.  From our class web page, save the toaddata.txt file to your Desktop.  Within this file, rename the second column Area.  Next, in MATLAB, from the File menu, choose File-> Import Data and select the toaddata.txt file.  In the Import Wizard window that appears, click on comma for the Column Separator.  Click on Next. 18

Fitting Polynomials to Data  Example 8 (cont):  Click on Create vectors from each column using column names.  Click on Finish.  Two new vectors have been created – Year and Area. 19

Fitting Polynomials to Data  Another way to import data from a text file is via “load”.  Remove the headings “Year” and “Area” from the first line of the toaddata.txt file.  Then use the commands load(‘toadata.txt’) Year = toaddata(:,1)’ Area = toaddata(:,2)’ 20

Fitting Polynomials to Data  Example 8 (cont.)  Fit our cubic polynomial to the toad data with polyfit: p = polyfit(Year, Area, 3)  To show more decimal places for our coefficients, use format long  Plot the toad data along with the polynomial! plot(Year,Area,'r*',Year, polyval(p,Year),'b')  Compare to Mathematica’s Fit command or Excel’s trendline for a cubic polynomial.  We should get the same coefficients! 21

22 References  Using MATLAB in Calculus by Gary Jenson 22

Download ppt "259 Lecture 17 Working with Data in MATLAB. Overview  In this lecture, we’ll look at some commands that are useful for working with data!  fzero  sum,"

Similar presentations