1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > matlab 线性拟合polyfit_从零开始的matlab学习笔记——(24)曲线拟合

matlab 线性拟合polyfit_从零开始的matlab学习笔记——(24)曲线拟合

时间:2022-11-05 10:56:50

相关推荐

matlab 线性拟合polyfit_从零开始的matlab学习笔记——(24)曲线拟合

matlab应用——求极限,求导,求积分,解方程,函数绘图,三维图像,拟合函数....更多内容尽在个人专栏:matlab学习

才发现这个数据插值的返回值不是个函数表达式,是一系列点集,不能使用polyval函数预测值。

上一节我们说了数据插值,这一节我们再说一个差不多的东西,叫曲线拟合

曲线拟合:

先看一下百度百科的定义:

曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。

主要方法就是我们高中学过的最小二乘法。

我们先生成一系列离散数据点:

x=1790:10:

y=[3 5 7 9 12 13 15 16 18 21 23 37 24 29 30 28 33 34 36 38 39 44 42]

plot(x,y,'r.')

polyfit函数:

polyfit函数用于进行曲线拟合,调用格式和插值函数interp1相似

polyfit(x,y,n),

x,y构成离散数据点(x,y),n则是设定用n次多项式进行拟合,比如n=3就是用最高三次多项式进行拟合。

现在对上面的离散数据点进行拟合:

x=1790:10:

y=[3 5 7 9 12 13 15 16 18 21 23 37 24 29 30 28 33 34 36 38 39 44 42]

f=polyfit(x,y,3) %用f记录拟合后的函数

x1=1790:0.2: %重新定义自变量x1

y1=polyval(f,x1) %重新定义因变量y1

plot(x,y,'r*',x1,y1,'b')

为了区分,这里plot函数把原来的数据点也画进去:

这里我们还可以预测后面的数据

比如要求的数据:

ans=polyval(f,)

结果就是:

这里简单说一说数据插值和曲线拟合的异同:

同:两者都是函数逼近的方法,都可以对未知数据点进行合理的预测,但都会有一定的误差。

异:插值需要的数据点相比曲线拟合较少

插值要求函数必须经过所有已知数据点,拟合不需要

最后再补充一点,可能会有知友发现插值和拟合的多项式函数都采用三次多项式。

首先,次数低于3,多项式拟合程度较差,不容易进行准确的拟合和插值

其次,多项式函数并非越高越好,这里有个Runge现象,即多项式函数次数越高,越容易产生振荡而偏离原函数,使得误差增大

到这里我们简单梳理了插值和拟合两种函数处理方式,下一节的内容暂定,我们可能要再回到符号计算。

欢迎喜欢的朋友点赞关注收藏啊:)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。