拟合算法
理论
拟合与插值不同,不需要经过所有的点,只需要误差比较小,拟合就是可行的。
基本的方法是最小二乘法,
设一条曲线
因为这些方程都是线性方程,所以除了求导计算最小值满足的k,b之外,还可以用线性代数解决最小二乘法问题。详见:https://open.163.com/newview/movie/free?pid=M6V0BQC4M&mid=M6V2AOJPU
大意为,一个线性方程组 Ax=b如果无解,那么最近的近似解可以通过
现实中的拟合可能要求高次函数,一次函数的拟合效果可能不好,所以可以用若干非线性函数来拟合。考虑一下插值算法,总体效果不好的情况下可以分段插值,所以拟合也可以分段,我们可以用若干非线性函数来拟合
- 直线y=kx+b
- 多项式
- 双曲线
- 指数函数
.
有那么多的拟合函数,那么如何评价拟合效果呢?
用拟合优度(可决系数),
拟合优度
MATLAB
MATLAB自带拟合工具包,支持曲线拟合工作,在APP中找 Curve Fitting Tool.
最小二乘法,求一个y=a+bx的公式,用线性代数方法
%x,y为初始数据
x;
y;
%构造r它是方程中已知量的矩阵
r = [ones(5,1) x.^2];
ab = r\y %ab是r左除y,即ab=inv(r)*y,这样能得到方程的解,拟合曲线的系数在ab中。
多项式拟合
a = polyfit(x0,y0,m)
%x0,y0为初始数值
%m为多项式次数
%a为参数
y = polyval(a,x)
%要求拟合函数在x处的值用polyval
本文作者:West11
本文链接:https://www.cnblogs.com/cxy1114blog/p/18290075
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步