matlab曲线拟合函数ployfit

matlab拟合 专栏收录该内容
0 篇文章 0 订阅

matlab多项式拟合ployfit

在matlab中,函数polyfit()采用最小二乘法对给定的数据进行多项式拟合,得到该多项式的系数。该函数的调用方式如下:

  • polyfit(x,y,n):找到次数为n的多项式系数,对于数据集合{(xi,yi]},满足差的平方和最小。
  • [P,E]=polyfit(x,y,n):返回同上的多项式P和矩阵E。多项式系数在向量p中,矩阵E用在polyval函数中来计算误差。

例:x=[0.3 0.4 0.7 0.9 1.2 1.9 2.8 3.2 3.7 4.5 4.7 4.9 5.3 5.8];,y=[1 2 3 4 5 2 6 9 2 7 10 12 14 17];,对该数据进行拟合。
代码如下:

clear all
clc
x=[0.3 0.4 0.7 0.9 1.2 1.9 2.8 3.2 3.7 4.5 4.7 4.9 5.3 5.8];
y=[1 2 3 4 5 2 6 9 2 7 10 12 14 17];
p5=polyfit(x,y,5); %5阶多项式拟合
y5=polyval(p5,x); %求解拟合曲线上,点对应的函数值
p5=vpa(poly2sym(p5),5) %显示5阶多项式
p9=polyfit(x,y,9); %9阶多项式拟合
y9=polyval(p9,x); %求解拟合曲线上,点对应的函数值
p9=vpa(poly2sym(p9),9)  %显示9阶多项式
figure(1);
plot(x,y,'bo',x,y5,'r:');
figure(2);
plot(x,y,'bo',x,y9,'g-');

结果如下:

p5 =
 
- 0.033944*x^5 + 0.48301*x^4 - 2.1069*x^3 + 2.8047*x^2 + 1.6141*x + 0.88082
 
 
p9 =
 
0.0211329103*x^9 - 0.484773106*x^8 + 4.44712476*x^7 - 20.5563796*x^6 + 48.4888632*x^5 - 45.961033*x^4 - 19.1552862*x^3 + 64.673101*x^2 - 33.0722292*x + 6.24438566

在这里插入图片描述

在这里插入图片描述
注意,使用ployfit时,多项式的阶数最大不超过length(x)-1。

  • 9
    点赞
  • 0
    评论
  • 81
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值