1 / 22

259 Lecture 17

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

trevet
Download Presentation

259 Lecture 17

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 259 Lecture 17 Working with Data in MATLAB

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

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

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

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

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

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

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

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

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

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

  12. Polynomials • Recall that a polynomial is a function of the form p(x) = a0xn + a1xn-1 + … + an-1x + an where n is a non-negative integer and the ai 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) = x5+2x4-3x2+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) = x4 + 2x3 -3x2+7x+12.

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

  14. Polynomials • Example 7: Estimate the definite integral -22x5+2x4-3x2+7x+12)dx. • Choose equal subinterval widths x = (b-a)/n and sample points xi* to be each subinterval’s midpoint, i.e. xi*=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.

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

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

  17. 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 (xi,yi) for i = 1, 2, … , m.

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

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

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

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

  22. References Using MATLAB in Calculus by Gary Jenson 22 22

More Related