Matlab 多项式曲线拟合polyfit

polyfit

               多项式曲线拟合

常见语法

                a = polyfit ( x, y, n)

说明

              a=polyfit(x,y,n)中参数n为x的最高阶,返回值a是n阶函数的系数,a是一个长度为n+1的行向量,

即拟合出来的公式形式应为:

 示例

用多项式拟合法求一个形如 y=ax^2+bx+c 的公式,使它与表1.1中所列数据拟合

表1.1 拟合数据表
x 19 25 31 38 44
y 19.0 32.3 49.0 73.3

97.8

 解: 编写程序如下

>> x=[19 25 31 38 44];
y=[19.0 32.3 49.0 73.3 97.8];
a=polyfit(x,y,2);          %拟合2次函数
x0=19:0.1:44;              %步长为0.1
y0=polyval(a,x0);          %返回值y0是对应于x0的函数值
plot(x,y,'o',x0,y0,'r')    %画图,o表示圆圈,r表示红色red
legend('拟合前','拟合后')   %给曲线加上说明
xlabel('x');               %给x轴加上说明
ylabel('y'); 
grid on;                   %添加网格线
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);  %将网格线变成虚线
a                          %直接输出a

a =

    0.0497    0.0193    0.6882

所以可以得出拟合函数  y=0.0497x^2+0.0193x+0.6882

效果如下图

猜你喜欢

转载自blog.csdn.net/Mr_HCW/article/details/81806154