3D - Surface Response Plot - Surface of best fit

38 views (last 30 days)
I'm having trouble plotting a curve/surface of best fit through data points. I have z - matrix of 9 data points, which correspend to different combinations of values from an x-vector of 3 and a y-vector of 3. I have managed to plot a surface plot which uses interpolation and fits a curve through the data. Instead of this, I would like to plot a curve of best fit through the data points using a low order polynomial instead.
Assistance would be greatly appreciated.
This is a plot of what I have so far.

Accepted Answer

Ameer Hamza
Ameer Hamza on 30 Oct 2020
Edited: Ameer Hamza on 30 Oct 2020
If you have a curve fitting toolbox, you can use fit(): https://www.mathworks.com/help/curvefit/fit.html function with fitype chosen from polyij as given here: https://www.mathworks.com/help/curvefit/list-of-library-models-for-curve-and-surface-fitting.html#btbcxlm. For example
x; % x-values 9x1
y; % y-values 9x1
z; % z-values 9x1
X = [x y];
Y = z;
fitted_model = fit(X, Y, 'poly22')
If you don't have the toolbox, you can still use mldivide (\) to do least square curve-fitting. For example, suppose you want to fit following model
Then you can do something like this
X = [ones(size(x)) x y x.^2 y.^2 x.*y];
Y = z;
a = X\Y;
  11 Comments
Muhammad Hamza Saloojee
Muhammad Hamza Saloojee on 30 Oct 2020
This is perfect.
Thank you so much for the assistance!
Much appreciated.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!