matlab拟合多项式曲线方法
表格数据如下
matlab中导入表格数据,如下两图所示
%方法一 ---------------------------------------------
%多项式拟合polyfit
% x=[1 2 3 4 5 6 7 8 9];
% y=[9 7 6 3 -1 2 5 7 20];
%从表格中读取数据
data=xlsread('ploat.xlsx');
x = xlsread('ploat.xlsx','Sheet1','A1:A10');
y = xlsread('ploat.xlsx','Sheet1','B1:B10');
P= polyfit(x, y, 3); %三阶多项式拟合
xi=0:.1:10; %在(0,10)区间中,每隔0.1取一个点的意思
yi= polyval(P, xi); %求对应y值
plot(xi,yi,x,y,'r*');
%方法二---------------------------------------------
%工具箱拟合
% x=[1 2 3 4 5 6 7 8 9];
% y=[9 7 6 3 -1 2 5 7 20];
% cftool(x,y)
生成曲线如下:
三次多项式的系数如p所示,y=a*x^3 +b*x^2+c*x+d