欢迎光临
我们一直在努力

matlab已知一组实验数据,求它的拟合曲线,matlab数据拟合曲线

一、(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

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。