Least square polynomial fit

1 回表示 (過去 30 日間)
Pranab Bhuyan
Pranab Bhuyan 2012 年 1 月 21 日
コメント済み: B 2017 年 11 月 22 日
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?

採用された回答

John D'Errico
John D'Errico 2012 年 1 月 21 日
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 件のコメント
Matt J
Matt J 2015 年 5 月 10 日
Looks like the OP forgot to accept this one.
B
B 2017 年 11 月 22 日
How would I use this process to find the polynomial equation if I know points on the curve?

サインインしてコメントする。

その他の回答 (1 件)

Dr. Seis
Dr. Seis 2012 年 1 月 21 日
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

カテゴリ

Help Center および File ExchangePolynomials についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by