MAT350 8.5 MATLAB: Least Squares Approximation
In this activity you will use a least squares approximation to find a 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.
Enter the data as two column vectors. Note Y is the vector b in the inconsistent system Ax=b.
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 1’s. This is achieved here using the ones() command to create a column vector of length m of all 1’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_transposeA\A_transposeY
Generate points to plot the best-fit line. The points will range from -4 to 4 in increments of 0.1.
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 same data is used for the activity. These are provided
for you.
X = [-2 -1 1 2].’
Y = [3 1 0 1].’
Use the length() command to determine the size of the column vector X. Store this value in m.
m = length(X);
Set up the appropriate matrix A to find the best-fit parabola of the form y=C+Dx+Ex^2. The first column of A will contain all 1’s, using the ones() command. The second column of A contains x values that are stored in X. The third column of A contains the squared x values that are stored in X. Elementwise multiplication of X by itself, using .* operator, will produce the desired values for the third column.
A = [ones(m,1) X X.*X];
Calculate the matrix products. These are provided for you.
A_transposeA = A.’ * A
A_transposeY = A.’ * Y
Use the backslash operation to solve the overdetermined system. Store this in Soln2.
Soln2 = A_transposeA\A_transposeY;
Define the x values to use for plotting the best-fit parabola. This creates a vector x.
This is provided for you.
x=-4: 0.1 :4;
Define the best-fit parabola, storing it in yquadratic. Elementwise multiplication of the x values times themselves to square them is achieved by using .* operator (because x is a vector).
yquadratic = Soln2(1) + Soln2(2)*x + Soln2(3)*(x.*x);
The following sequence of commands plots the data and the best-fit parabola. The command is provided for you.
plot(x, yquadratic, X, Y, ‘k*’);grid;shg
Related; MAT350 8.2 MATLAB: Pseudoinverses.
Order This Paper
Reviews
There are no reviews yet.