多项式拟合
三次多项式拟合就是用
y
=
f
(
x
)
=
a
0
+
a
1
x
1
+
a
2
x
2
+
a
3
x
3
y=f(x)=a_0+a_1x_1+a2x_2+a_3x_3
y=f(x)=a0+a1x1+a2x2+a3x3这样的函数来拟合一段曲线。
使用的函数为
p
o
l
y
f
i
t
polyfit
polyfit这个函数,其形式为:
[
p
,
S
,
m
u
]
=
p
o
l
y
f
i
t
(
x
,
y
,
n
)
[p,S,mu] = polyfit(x,y,n)
[p,S,mu]=polyfit(x,y,n)
- 输入量x和y为输入的x和y轴坐标,n为次数。
- 输出的p为多项式系数(用矩阵形式储存)
- 输出的S为一个结构体,可用来获取误差
- mu(1) 是 mean(x),mu(2) 是 std(x)
初始化
待拟合点
待拟合点设置为:
x:
y:
拟合结果
待拟合点用黑色表示,绘制拟合得到的函数图像如下图红色曲线:
如果要求函数上特定的x所对应的y,不妨设待求点的x为:
使用下列代码:
y1 = polyval(P,x1); %求多项式拟合下的y值
求得y1的值如下:
绘图如下红色的点:
代码
源代码下载链接:https://download.csdn.net/download/callmeup/89652012
只有一个m文件,使用MATLAB运行后即可得到跟我一样的运行结果。待拟合点、待求点的x坐标均可在源代码上面进行更改,有中文注释。
另有关于7次多项式拟合和5次多项式拟合的文章,可供参考:
- 七次多项式拟合:https://blog.csdn.net/callmeup/article/details/141252108
- 五次多项式拟合:https://blog.csdn.net/callmeup/article/details/141101617