How can I perform multivariable polynomial curve fitting?

155 views (last 30 days)
Hey Community! I am looking to perform a polynomial curve fit on a set of data so that I get a multivariable polynomial. I have successfully been able to fit a variable on an independent set using polyfit(). In my case, that was "voltage as a function of current." I want to be able to perform a fit that gives me a function for something like, "voltage as a function of current and temperature." Any ideas?
Cheers!

Accepted Answer

Shashank Prasanna
Shashank Prasanna on 15 May 2013
You can use the curve fitting toolbox (cftool) or the statistics toolbox (regress, LinearModel.fit, NonLinearModel.fit) to perform multiple linear regression.
If you don't have any of those toolboxes then you can set up your own optimization problem to fit your function as below:
  2 Comments
Mitchell
Mitchell on 15 May 2013
So surface fitting gives me a 3D graph with x,y,z axis. From the looks of the help cftool file it seems like it is z as a function of x and y? Am I interpreting this correctly?
On another note, the temperature vector (call it y) will not be the same length as the current vector (call it x) since the experiment will be performed a discrete temperatures (say 5) and current will be ramped giving thousands of data-points. Will this be a problem?
Shashank Prasanna
Shashank Prasanna on 15 May 2013
Edited: Shashank Prasanna on 15 May 2013
1) Yes Z = f(X,Y)
2) If you don't have same size data, you may have to interpolate.

Sign in to comment.

More Answers (2)

cr
cr on 15 May 2013
I dont think basic Matlab has got that ability. You will need curve fitting toolbox to do surface fitting. See this link: http://www.mathworks.in/help/curvefit/surface-fitting.html
Regards.
  1 Comment
Mitchell
Mitchell on 15 May 2013
I have full MatLab with pretty much every toolbox! Thank goodness for university licensing!

Sign in to comment.


David Graff
David Graff on 27 Apr 2015
Use the excellent polyfitn package at http://www.mathworks.com/matlabcentral/fileexchange/34765-polyfitn . I love it and use it all the time.

Community Treasure Hunt

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

Start Hunting!