一、(1)已知数据如下:
x
1.0
1.4
1.8
2.2
2.6
y
0.931
0.473
0.297
0.224
0.168
求形如拟合函数。
解:
y1=polyfit(x,y,N)
函数的说明:这里函数polyfit第一个参数传递的是拟合数据的自变量,第二个参数是因变量,第三个参数是拟合多项式的阶数,这个由我们给定。如下图。我们可以给定不同的N,运用不同的多项式进行拟合。
多项式阶数N的确定:
vps云服务器
这里有些人可能会有问题了,我们事先不知道要拟合的数据是几阶的,那么我们如何判断我们给定的拟合阶数N最终为多少呢?
阶数确定方法一:
这种方法是最常用的确定方法,一般情况下,我们拟合函数的目的,就是为了调用,所以在用函数拟合之前会用matlab曲线拟合工具箱进行拟合函数阶数的确定,由其确定拟合的阶数,然后我们用这个函数命令在其他地方进行十分方便地调用,这是最常用的做法。我们往往拟合的是多个同类型的数据,所以确定好一组样本的次数之后,就可以对其他数据用同样的N进行拟合。
阶数确定方法二:
这种方法方法可以取代用cftool进行判断的过程,具体实现代码如下:
for i=1:5
? ? y2=polyfit(x,y,i);
? ? Y=polyval(y2,x);%计算拟合函数在x处的值。
? ? if sum((Y-y).^2)<0.1
? ? ??
? ? ? ? c=i ?
? ? ? ? break;
? ? end
end
解:x=[1.0,1.4,1.8, 2.2,2.6];
y=[0.931,0.473,0.297,0.224,0.168];
?
for i=1:5
? ? y2=polyfit(x,y,i);
? ? Y=polyval(y2,x);%?????ao?oˉêy?úx′|μ??μ?£
? ? if sum((Y-y).^2)<0.1
? ? ??
? ? ? ? c=i ?
? ? ? ? y1=polyfit(x,y,1)
? ? ? ? break;
? ? end
end
syms x f(x) ? %拟合多项式的显示
f(x)=poly2sym(y2,x)
21569779