许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Matlab以编程方式拟合数据(拟合函数)

Matlab以编程方式拟合数据(拟合函数)

阅读数 11
点赞 0
article_banner

适用于多项式模型的 MATLAB 函数

有两个 MATLAB® 函数可通过多项式对您的数据建模。

多项式拟合函数

函数说明polyfit(x,y,n) 通过最大限度地减小数据与模型偏差的平方和(最小二乘拟合),求拟合 y 数据的 n 次多项式 p(x) 的系数。

polyval(p,x) 返回基于 x 进行计算,且由 polyfit 确定的 n 次多项式的值。

此示例说明如何使用多项式对数据建模。

在时间 t 的多个值处测量数量 y。

t = [0 0.3 0.8 1.1 1.6 2.3];

y = [0.6 0.67 1.01 1.35 1.47 1.25];

plot(t,y,'o')

title('Plot of y Versus t')

667e59efecf386ce419fd49b5aa25440.png

您可尝试使用以下二次多项式函数对此数据进行建模:

y=a2t2+a1t+a0.

通过最大限度地减小数据与模型偏差的平方和(最小二乘拟合),计算未知系数 a0、a1 和 a2。

使用 polyfit 求多项式系数。

p = polyfit(t,y,2)

p = 1×3

-0.2942 1.0231 0.4981

MATLAB 以降幂计算多项式系数。

数据的二次多项式模型由以下方程给出:

y=-0.2942t2+1.0231t+0.4981.

按统一的时间间隔 t2 计算多项式。然后,在同一个图中绘制原始数据和模型。

t2 = 0:0.1:2.8;

y2 = polyval(p,t2);

figure

plot(t,y,'o',t2,y2)

title('Plot of Data (Points) and Model (Line)')

e9b74f588255bc815c28eb202375eba3.png

按数据时间向量计算模型

y2 = polyval(p,t);

计算残差。

res = y - y2;

绘制残差图。

figure, plot(t,res,'+')

title('Plot of the Residuals')

c75ece1f31e3a7e410869954bbb6d15e.png

请注意,二阶拟合大致遵循数据的基本形状,但并不能捕获数据似乎具备的平滑曲线。残差似乎存在一个模式,意味着可能需要不同的模型。如下所示,五次多项式在遵循数据波动方面表现更佳。

重复该练习,不过这次使用来自 polyfit 的五次多项式。

p5 = polyfit(t,y,5)

p5 = 1×6

0.7303 -3.5892 5.4281 -2.5175 0.5910 0.6000

在 t2 上计算多项式,并在新的图窗窗口中基于数据绘制拟合图。

y3 = polyval(p5,t2);

figure

plot(t,y,'o',t2,y3)

title('Fifth-Degree Polynomial Fit')

cdb146347b448bf39c30833e1f221f4e.png

注意

如果您尝试对物理情况建模,务必考虑特定阶次的模型是否对您的情况有意义。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空