Bird
Raised Fist0
MATLABdata~10 mins

Curve fitting (polyfit, fit) in MATLAB - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to fit a polynomial of degree 2 to data points.

MATLAB
p = polyfit(x, y, [1]);
Drag options to blanks, or click blank then click option'
A1
B2
C0
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Using degree 1 fits a straight line, not a curve.
Using degree 0 fits a constant, which is not a curve.
2fill in blank
medium

Complete the code to evaluate the polynomial fit at points x_new.

MATLAB
y_fit = polyval(p, [1]);
Drag options to blanks, or click blank then click option'
Ax_new
By_new
Cp
Dx
Attempts:
3 left
💡 Hint
Common Mistakes
Using y-values instead of x-values as input to polyval.
Passing the coefficients vector again instead of points.
3fill in blank
hard

Fix the error in the code to create a fit object for a linear fit.

MATLAB
f = fit(x, y, [1]);
Drag options to blanks, or click blank then click option'
A'poly2'
B'linear'
C'exp1'
D'poly1'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'linear' which is not a valid model name for fit.
Using 'poly2' which fits a quadratic, not linear.
4fill in blank
hard

Fill both blanks to create a quadratic fit and plot it.

MATLAB
f = fit(x, y, [1]);
plot(f, [2]);
Drag options to blanks, or click blank then click option'
A'poly2'
Bx
Cx_new
D'poly1'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'poly1' instead of 'poly2' for quadratic fit.
Plotting against original x instead of new x-values.
5fill in blank
hard

Fill all three blanks to create a cubic polynomial fit, evaluate it, and plot the results.

MATLAB
p = polyfit(x, y, [1]);
y_fit = polyval(p, [2]);
plot([3], y_fit, '-r');
Drag options to blanks, or click blank then click option'
A3
Bx_new
Dx
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong degree for cubic fit.
Plotting against original x instead of new x-values.

Practice

(1/5)
1. What does the MATLAB function polyfit(x, y, n) do?
easy
A. It returns a fit object that can be used to predict new values.
B. It plots the data points x and y on a graph.
C. It finds the coefficients of a polynomial of degree n that fits the data points x and y.
D. It calculates the correlation coefficient between x and y.

Solution

  1. Step 1: Understand the purpose of polyfit

    polyfit calculates polynomial coefficients that best fit the data points given by x and y.
  2. Step 2: Differentiate from other functions

    Unlike fit, polyfit returns just coefficients, not a fit object or plot.
  3. Final Answer:

    It finds the coefficients of a polynomial of degree n that fits the data points x and y. -> Option C
  4. Quick Check:

    polyfit = polynomial coefficients [OK]
Hint: Remember: polyfit returns coefficients, fit returns a fit object [OK]
Common Mistakes:
  • Confusing polyfit with fit function
  • Thinking polyfit plots data
  • Assuming polyfit returns a fit object
2. Which of the following is the correct syntax to fit a quadratic polynomial to data vectors x and y using polyfit?
easy
A. p = polyfit(x, y, 2);
B. p = polyfit(y, x, 2);
C. p = polyfit(x, y, 3);
D. p = polyfit(x, 2, y);

Solution

  1. Step 1: Identify correct argument order

    The syntax is polyfit(x, y, n) where n is the polynomial degree.
  2. Step 2: Confirm degree for quadratic

    Quadratic means degree 2, so the third argument must be 2.
  3. Final Answer:

    p = polyfit(x, y, 2); -> Option A
  4. Quick Check:

    polyfit(x, y, 2) fits quadratic [OK]
Hint: Remember order: x, y, degree in polyfit [OK]
Common Mistakes:
  • Swapping x and y arguments
  • Using wrong polynomial degree
  • Incorrect argument order
3. What is the output of the following MATLAB code?
x = [1 2 3 4 5];
y = [2.2 4.1 6.0 8.1 10.2];
p = polyfit(x, y, 1);
y_fit = polyval(p, 6);
medium
A. y_fit = 12.1
B. y_fit = 12.3
C. y_fit = 13.0
D. y_fit = 10.2

Solution

  1. Step 1: Fit a line to data

    Using polyfit with degree 1 fits a line y = mx + b to points.
  2. Step 2: Calculate predicted value at x=6

    Using polyval, we evaluate the fitted line at x=6. The slope and intercept from polyfit give approximately y_fit = 12.1.
  3. Final Answer:

    y_fit = 12.1 -> Option A
  4. Quick Check:

    polyval(polyfit(x,y,1),6) ≈ 12.1 [OK]
Hint: polyval evaluates polynomial at given x [OK]
Common Mistakes:
  • Confusing polyfit output with predicted value
  • Using wrong degree in polyfit
  • Calculating y_fit without polyval
4. Identify the error in this MATLAB code snippet for fitting data with fit:
x = (1:5)';
y = [2 4 6 8 10]';
f = fit(x, y, 'poly2');
medium
A. The fit type string should be 'poly1' for linear fit, not 'poly2'.
B. The fit function requires the Curve Fitting Toolbox to be installed.
C. The input vectors x and y must be row vectors, not column vectors.
D. The syntax is correct; there is no error.

Solution

  1. Step 1: Check syntax and input shapes

    Vectors x and y as column vectors are valid inputs for fit.
  2. Step 2: Verify toolbox requirement

    The fit function requires the Curve Fitting Toolbox; without it, the code will error.
  3. Final Answer:

    The fit function requires the Curve Fitting Toolbox to be installed. -> Option B
  4. Quick Check:

    fit needs toolbox installed [OK]
Hint: fit needs Curve Fitting Toolbox installed [OK]
Common Mistakes:
  • Assuming fit works without toolbox
  • Confusing poly1 and poly2 as errors
  • Thinking vector orientation causes error
5. You have noisy data vectors x and y. You want to fit a cubic polynomial and then predict the value at x = 7. Which sequence of MATLAB commands correctly does this?
hard
A. p = polyfit(x, y, 3); y_pred = p(7);
B. f = fit(x, y, 'poly2'); y_pred = feval(f, 7);
C. p = polyfit(y, x, 3); y_pred = polyval(p, 7);
D. f = fit(x, y, 'poly3'); y_pred = feval(f, 7);

Solution

  1. Step 1: Choose correct fit function and degree

    Using fit with 'poly3' fits a cubic polynomial to x and y.
  2. Step 2: Predict value at x=7 using fit object

    Use feval(f, 7) or f(7) to get predicted y value from the fit object.
  3. Final Answer:

    f = fit(x, y, 'poly3'); y_pred = feval(f, 7); -> Option D
  4. Quick Check:

    fit with 'poly3' and feval predicts y at 7 [OK]
Hint: Use fit with 'poly3' and feval to predict [OK]
Common Mistakes:
  • Swapping x and y in polyfit
  • Using wrong polynomial degree
  • Using poly2 instead of poly3 for cubic fit
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard