与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小化损失函数)
插值算法中,得到的多项式f(x)要经过所有样本点。但是如果样本点太多,那么这个多项式次数过高,会造成龙格现象。
尽管我们可以选择分段的方法避免这种现象,但是更多时候我们更倾向于得到一个确定的曲线,尽管这条曲线不能经过每一个样本点,但只要保证误差足够小即可,这就是拟合的思想。(拟合的结果是得到一个确定的曲线)
证明SST = SSE + SSR,条件是
(当不等的时候不用R2),那何时不用R2(即不是线性函数的时候)
线性函数是对参数为线性,
也可以用matlab 的工具箱来拟合,更方便
常用的拟合方法还有:
左上角 文件 下 点击 generate code 生成代码
产生 随机数的函数
(1)randi : 产生均匀分布的随机整数
产生一个1至10之间的随机矩阵,大小为2x5;
s1 = randi(10,2,5);
%产生一个-5至5之间的随机矩阵,大小为1x10;
s2 = randi([-5,5],1,10);
(2) rand: 产生均匀分布的随机数
产生一个0至1之间的随机矩阵,大小为1x5;
s3 = rand(1,5);
产生一个a至b之间的随机矩阵,大小为1x5;
a + (b-a) * rand(1,5); 如:a,b = 2,5
s4= 2 + (5-2) * rand(1,5);
(3)**normrnd:**产生正态分布的随机数
产生一个均值为0,标准差为2的正态分布的随机矩阵,大小为3x4;
s5 = normrnd(0,2,3,4);
(4)roundn—任意位位置四舍五入
a = 3.1415
roundn(a,-2) % ans = 3.1400
roundn(a,2) % ans = 0
a =31415
roundn(a,2) % ans = 3