Least square polynomial fit

16 views (last 30 days)
Pranab Bhuyan
Pranab Bhuyan on 21 Jan 2012
Commented: B on 22 Nov 2017
I have two arrays x(i) ,y(i). I need to do a least square polynomial fitting for y(i). After the polynomial fit is done, I need to find the maximum of y(i), say y(n) and then corresponding to that find the value of x(n). Can you please suggest, how shall I proceed? What are the math functions involved?

Accepted Answer

John D'Errico
John D'Errico on 21 Jan 2012
Learn to use matlab. By this, I mean learn how to look for the tools you need. So you want to find a polynomial model. A good idea is to learn the lookfor function.
lookfor polynomial
If you do this, you will find a tool for polynomial fitting - polyfit. It will also show you polyder, an important thing since you are looking for a maximum. A stationary point on a curve will come at a root of the derivative. Finally, you might notice roots.
So much to glean from a simple lookfor command.
I will add that the best programmatic solution is to use a better tool than a polynomial fit anyway. Polynomials are terribly poor tools for curve fitting. Instead, use a tool designed to do the job.
x = rand(1,50);
y = sin(pi*x) + randn(size(x))/100;
slm = slmengine(x,y,'knots',8,'plot','on');
[maxfun,maxloc] = slmpar(slm,'maxfun')
maxfun =
0.99971
maxloc =
0.50241
Here, I used my slm tools (it is on the file exchange) to do the curve fitting. It includes a tool that will determine various parameters from the resulting model, one of which is the maximum value of the function, and the location thereof.
  2 Comments
Matt J
Matt J on 10 May 2015
Looks like the OP forgot to accept this one.
B
B on 22 Nov 2017
How would I use this process to find the polynomial equation if I know points on the curve?

Sign in to comment.

More Answers (1)

Dr. Seis
Dr. Seis on 21 Jan 2012
Check out "polyfit", "polyval" and "max"
- polyfit will give you the polynomial coefficients for an n-order polynomial
- polyval will give you new y-values when you supply it new x-values and the polynomial coefficients found in polyfit
- max will give you the max value associated with you new y-values, it can also supply you the index of the max value so you can determine its corresponding value from your new x-values

Categories

Find more on Polynomials in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!