How can I apply a polynomial to a set of data?

1 次查看(过去 30 天)
I am somewhat of a beginner, so please bear with me!
I generated a series of curves for different situations based on a set of data I was given. Now, I have a new curve for one of the situations. I want to take the difference between the new and old, and then apply that difference to all of the old curves.
Essentially, I want to find an equation for the difference between the old and new curves, and then apply that equation to the remaining curves that I was not given new data for to extrapolate all of my new data.
For example, here is my code:
newdata=[1003 270; 2482 690; 3977 1140];
olddata=[994 290; 1459 420; 2452 740; 3444 1070; 3959 1250];
newpoly=polyfit(newdata(:,1),newdata(:,2),2);
oldpoly=polyfit(olddata(:,1),olddata(:,2),2);
x=400:50:8250;
oldval=polyval(oldpoly,x);
newval=polyval(newpoly,x);
plot(x,oldval,'m',x,newval,'b')
I essentially want to find the equation describing the difference between the two curves and apply it to my other old curves, to generate a new series of curves.
Does that make sense? Please let me know, and I will elaborate if necessary.

回答(2 个)

dpb
dpb 2014-7-14
Carrying on from where you left off...
>> hold on
>> plot(x,oldval-newval) % see what diff actually looks like--pretty smooth
>> difpoly=polyfit(x,oldval-newval,2);
>> difval=polyval(difpoly,x);
>> plot(x,newval+difval,'rx')

Star Strider
Star Strider 2014-7-14
From a statistical perspective, that is a very bad idea, especially if you want to extrapolate, which itself is generally not a good idea. You have no idea what your data actually do beyond the region-of-fit. The extrapolation could be spot-on or wildly inaccurate. You will never know. This is especially the case if you are using polynomial curve fitting. Polynomial curve fitting is useful to see if there are any trends in your data, but not beyond that.
If you have a model of your data that you want to fit, use that model. You are on somewhat firmer footing if you want to extrapolate in that situation. Even then, taking the difference between two curves (by taking the differences between the parameters?) is not statistically appropriate.

类别

Help CenterFile Exchange 中查找有关 Least Squares 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by