8.5 MATLAB: Least Squares Approximation LAB ACTIVITY 8.5.1: MATLAB: Least Squares Approximation This tool is provided by a third party. Though your activity may be recorded, a page refresh may be needed to fill the banner. 0/1 MATLAB: Least Squares Approximation In this activity you will use a least squares approximation to find curve of best fit for a data set. Consider the four points in the plane: (-2,3), (-1, 1), (1, 0), and (2, 1). Use the least squares approximation to find the best-fit line for this data. Note Y is the vector b in the inconsistent system Ax=b. Enter the data as two column vectors. X = [-2 -1 1 2].' Y = [3 1 0 1].' %Use the length() command to determine the size of the column vector. m = length(x) %Set up the appropriate matrix A to find the best-fit line of the form y=C+Dx. The first column %of A will contain all l's. This is achieved here using the ones() command to create a column %vector of length m of all l's. The second column of A contains X. A = [ones (m, 1) X] %Calculate the matrix products. A_transposeA = A.' * A A_transposeY = A.' * Y %Use the backslash operation to solve the overdetermined system. Soln1 = A_transposeAA_transposeY The points will range from -4 to 4 in increments of 0.1. %Generate points to plot the best-fit line. X=-4: 0.1 : 4 ylinear = Soln1(1) + Soln1(2)*X %The following sequence of commands plots the data and the line of best fit. plot(x, ylinear, X, Y, 'k*'); grid;shg The MATLAB code produces the following image. 35 3 2.5 15 1 0.5 -0.5 -1 0 Script Save C Reset MATLAB Documentation 1 %The same data is used for the activity. These are provided for you. 2 X = (-2 -1 1 2]. '|| 3 Y = [3 1 0 1].' 4 5 %Use the length() command to determine the size of the column vector X. Store this value in m. 6 7 %Set up the appropriate matrix A to find the best-fit parabola of the form y=C+Dx+Ex^2. The 8 %first column of A will contain all l's, using the ones() command. The second column of A 9 %contains x values that are stored in X. The third column of A contains the squared x values 10 %that are stored in X. Elementwise multiplication of x by itself, using .* operator, will 11 %produce the desired values for the third column. 12 13 %Calculate the matrix products. These are provided for you. 14 A_transposeA = A.' * A 15 A_transposeY = A.' * Y 16 17 %Use the backslash operation to solve the overdetermined system. Store this in Soln2. 18 19 %Define the x values to use for plotting the best-fit parabola. This creates a vector X. 20 %This is provided for you. 21 X=-4: 0.1 : 4 22 Define the best-fit parabola, storing it in yquadratic. Elementwise multiplication of the 23 %x values times themselves to square them is achieved by using .* operator (because x is a vector). 24 VOICI Voce Cenu i Vucu 10 %that are stored in X. Elementwise multiplication of x by itself, using .* operator, will 11 %produce the desired values for the third column. 12 13 %Calculate the matrix products. These are provided for you. 14 A_transposeA = A.' * A 15 A_transposeY = A.' *Y 16 17 %Use the backslash operation to solve the overdetermined system. Store this in Soln2. 18 19 Define the x values to use for plotting the best-fit parabola. This creates a vector x. 20 %This is provided for you. 21 X=-4: 0.1 : 4 22 %Define the best-fit parabola, storing it in yquadratic. Elementwise multiplication of the 23 %x values times themselves to square them is achieved by using .* operator (because x is a vector). 24 25 %The following sequence of commands plots the data and the best-fit parabola. The command is 26 %provided for you. 27 plot(x, yquadratic, X, Y, 'k*'); grid;shg