• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB学习--多项式拟合(1) - 铁树银花

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

MATLAB学习--多项式拟合(1)

(1)polyfit函数

MATLAB的polyfit函数用于多项式拟合,其语法为:

p = polyfit(x, y, k);

其中,x,y分别是横纵坐标向量,它们不仅元素个数相同,而且同为行向量或同为列向量。k为非负整数,是待拟合的多项式的最高次数。p是输出项,为待拟合的多项式的系数向量(由高次到低次排列)。

例子:

在MATLAB的命令窗口输入以下代码:

>> x = [1, 2, 3, 4];
>> y = [3, 5, 7, 9];
>> p = polyfit(x, y, 1)

敲击回车键,得到输出结果:

p =

    2.0000    1.0000

所以拟合得的函数就是:y = 2.0000X + 1.0000.

在进行多项式拟合时,必须注意的是,拟合的精度是有限的,一般而言,需要满足以下条件:

记m为不重复的横坐标的数目,则拟合次数k <= m - 1,在此前提下尽量使用低次多项式进行拟合。

 

(2)polyval函数

polyval,顾名思义就是“多项式的值”,该函数的功能是将已知数据代入拟合得的多项式求值。语法格式:

y = polyval(p, x);

其中,p是已经拟合的多项式(比如说(1)中的p),x是自变量组成的向量,y是所求值组成的向量。

例子:

在命令窗口输入以下代码:

>> clear
>> x = [1, 2, 3];
>> y = [3, 5, 7];
>> p = polyfit(x, y, 1); %得到拟合多项式:y = 2*x + 1
>> t = [1, 2, 3, 4, 5];
>> s = polyval(p, t)

得到结果:

s =

    3.0000    5.0000    7.0000    9.0000   11.0000


(3)计算多项式拟合的方差

已知原始数据x和y,拟合得到多项式p,判断拟合效果好坏的一个重要指标是方差,方差的计算方法是

e = sum((y - polyval(p, x)).^2).

polyval(p, x)得到拟合值向量,y是真实值向量,两者相减得到真实值和拟合值的差值向量,“.^2”表示对矩阵中的每一个元素进行平方运算,于是得到差值向量中每一个元素的平方,sum是求和函数,显然就是求差值向量元素的平方和,而这就是方差。

例子:

编写代码求多项式:

>> x = [1, 2, 3, 4];
>> y = [4, 5, 6, 7];
>> p = polyfit(x, y, 1)

得到

p =

    1.0000    3.0000

于是拟合的多项式为:y = 1.0000x + 3.0000

编写代码求方差:

>> e = sum((y - polyval(p, x)).^2)

得到方差:

e =

  3.1554e-030

可见,方差≈0.表明拟合效果很好。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
quickreport4.5安装--fordelphi6.0发布时间:2022-07-18
下一篇:
DELPHI基础教程第十八章Delphi客户服务器应用开发发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap