MATLAB下的多项式拟合

大学回忆 专栏收录该内容
6 篇文章 0 订阅

本文只进行线性多项式的拟合,至于非线性的拟合不会涉及,参考文献为《MATLAB从入门到放弃》。

多项式格式如下:

a为各项系数,x为自变量,n为阶。

先说说两个会用到的函数:

polyfit(x,y,n)           拟合参数的“普通求取法”调用格式

poly(a,xp,S)           在xp指定点上计算拟合函数值yp及半带宽dyp

sum(x)                         求和

我说点人话,polyfit就是用来拟合多项式的,x为自变量,y为因变量,n为拟合阶数;

polyval用来调用拟合出来的多项式计算值;

        sum ……


以其中的y=7*x.^3+3.4*x.^2+1.2*x+5为例


代码如下:

       x=0:1:10;

       y=[5 16.6 77 228.2 512.2 971 1646.6 2581 3816.2 5394.2 7357];

for i=1:5

    fun=polyfit(x,y,i);%得到i从1到5的多项式

    Y=polyval(fun,x);%计算拟合函数在x处的值。

    if sum((Y-y).^2)<0.1%利用理论值与实际值做平方差和,如果值小与0.1即满足需求

        res=i  

        break;

    end

end


下面是在MATLAB上运行的情况



满足理论值与实际值的平方小与0.1的阶数为3,然后直接拟合结果


得出的拟合结果的三阶系数为7,二阶系数为3.4,一阶系数为1.2,常数项为5。


写于2017-2-13深圳 夜



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

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

抵扣说明:

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

余额充值