MATLAB中的polyfit函数的使⽤⽅法
MATLAB中的polyfit函数的使⽤⽅法
  在MATLAB中polyfit函数是⽤来进⾏多项式拟合的。其数学原理是基于最⼩⼆乘法进⾏拟合的。具体使⽤语法是:p = polyfit(x,y,n);
% 其中x,y表⽰需要拟合的坐标点,⼤⼩需要⼀样; n表⽰多项式拟合的次数。
% 返回值p表⽰多项式拟合的系数,系数从⾼到低排列
具体⽤法⽰例:
1、使⽤polyfit函数拟合⼀次多项式,⽰例:
%% polyfit函数的使⽤
clear; clc; close all;
% 原始数据
x = 1:20;
y = [1,12,23,46,78,98,100,123,160,210,230,270,292,350,346,386,438,349,460,512];
p = polyfit(x,y,1);  % 进⾏拟合
y1 = x*p(1)+p(2);  % ⽣成表达式,计算y的值
figure;  % 绘图
scatter(x,y,'.');
hold on;
plot(x,y1,'Color','r');
% 添加说明
xlabel('x');ylabel('y');title('⾃⼰构建表达式');
legend('原始数据','拟合直线');
结果⽰例:
2、在⼀般情况下使⽤polyfit函数的同时也会使⽤polyval函数,其中polyval函数是⽤来计算多项式的结果的。这样就不需要⾃⼰⼿动来计算多项式的结果了。其中polyval函数的使⽤⽅法如下:
p = polyfit(x,y,1);
y1 = polyval(p,x);
% 其中p就是使⽤polyfit函数拟合数据集x,y之后的结果,p是⼀个向量。
% 结果y1表⽰使⽤拟合多项式系数p来求出拟合结果y1。
具体⽰例:
clear; clc; close all;
% 原始数据
x = 1:20;
y = [1,12,23,46,78,98,100,123,160,210,230,270,292,350,346,386,438,349,460,512];
p = polyfit(x,y,1);  % 进⾏拟合
y1 = polyval(p,x);  % ⽣成表达式,计算y的值
figure;  % 绘图
scatter(x,y,'.');
hold on;
plot(x,y1,'Color','r');
% 添加说明
xlabel('x');ylabel('y');title('使⽤polyval函数');
legend('原始数据','拟合直线');
matlab拟合数据结果⽰例:
3、在⼀些特殊的情况下,当x的坐标值不是从⼩到⼤进⾏排列的时候,只要是x,y的坐标点⼀⼀对应的,都可以使⽤polyfit函数进⾏拟合处理,⽰例:
%% 当拟合的数据x的坐标不是排列好顺序的时候同样可以进⾏拟合
clear; clc; close all;
% 遇到的数据的x轴的坐标是乱序的,不是按照从⼤到⼩进⾏排序,每个点是⼀⼀对应的
x = [1,2,5,7,3,6,9,10,4,8,15,16,13,11,17,12,19,18,20];
y = [1,12,78,100,23,98,160,210,46,123,346,386,292,230,438,270,460,349,512];
% 当遇到x的点是乱序的时候,同样的可以使⽤polyfit函数直接进⾏拟合
p = polyfit(x,y,1);
y1 = polyval(p,x);
figure;  % 绘图
scatter(x,y,'.');
hold on;
plot(x,y1,'Color','r');
% 添加说明
xlabel('x');ylabel('y');title('x乱序');
legend('原始数据','拟合直线');
结果⽰例:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。