目录

一、拟合问题和插值问题区别

二、拟合计算

三、matlab代码

1、多项式拟合

应用举例

 2、非线性拟合

 应用举例

 3、拟合工具箱

应用举例

 四、拟合使用场景


一、拟合问题和插值问题区别

 1、插值函数过已知点,而拟合函数不一定过已知点;

2、插值主要用于求函数值,而拟合的主要目的是求函数关系,从而进行预测等进一步的分析。

二、拟合计算

曲线拟合需解决如下两个问题:
(1) 线型的选择;
(2) 线型中参数的计算。
线型的选择是拟合计算的关键和难点。通常主要根据专业知识和散点图确定线型。
线 性 拟 合 中 参 数 的 计 算 可 采 用 最 小 二乘法,而非线性拟合参数的计算则要应用Gauss-Newton迭代法。


三、matlab代码

1、多项式拟合

应用举例

x=1:12;
y=[5, 8, 9, 15, 25, 29, 31, 30, 22, 25, 27, 24];
a=polyfit(x,y,9)
xp=1:0.1:12;
yp=polyval(a,xp);
plot(x,y,'.k',xp,yp,'r');

 (x,y,9)表示最高此项为9;利用polyval求出系数,a表示系数;然后讲a和需要预测的xp带入polyval求出预测值。

 2、非线性拟合

 应用举例

 x=1:16;
y=[4.00 6.40 8.00 8.80 9.22 9.50 9.70 9.86 10.00 10.20 10.32 10.42 10.50 10.55 10.58 10.60];
y1=@(b,t)b(1)*exp(-t/b(2))+b(3)*exp(-t/b(4))+b(5);
b0=[-1 1 -1 1 1];
a=nlinfit(x,y,y1,b0)
xp=1:0.1:16;
yp=y1(a,xp);
plot(x,y,'.k',xp,yp,'r');

x y为自变量和因变量,y1为拟合的函数,b0为随机带的数。利用nlinfit求出参数后可以带入预测的数。

 3、拟合工具箱

命令窗口输入cftool启动

 在 命 令 窗 口 录 入 自 变 量 x 和 函 数 y 的 数 据 , (也可以导入数据)然 后 在Data菜单中即可选中上述数据,并产生Data sets。此时工具箱会自动画出散点图。

点击Fitting->New fit,可以修改Fit name, 选择Datasets(自动)和Type of Fit。Apply后即可完成拟合。

 若想自定义函数,可以选定Type of Fit中的Custom Equations,然后定义新函数。
 

应用举例

仍使用上方非线性拟合的数据

 点击不同的函数类型,使用不同的方法拟合效果都不同,

 

R-square和Adjusted R-square越大说明拟合效果越好

 四、拟合使用场景

1、求预测,小样本预测,样本比较少的时候,并且对未来很小范围的预测。比如有10年的数据,对未来11年预测。

2、通过x y坐标不能直接的答案,必须进行求导,也就是先要拟合出x和y之间的关系式才能进一步计算。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐