数学实验报告数据拟合.docx
《数学实验报告数据拟合.docx》由会员分享,可在线阅读,更多相关《数学实验报告数据拟合.docx(15页珍藏版)》请在冰豆网上搜索。
数学实验报告数据拟合
实验报告
一·实验指导书解读
本次实验是通过两个变量的多组记录数据利用最小二乘法寻求两个变量之间的函数关系!
两个变量之间的函数关系要紧有两种:
一是线性关系(一次函数);二是非线性关系(非一次的其它一元函数)。
因此本实验做两件事:
一是线性拟合(练习1);二是非线性拟合(练习2、3、4)。
练习2是用多项式函数拟合,练习3是用指数函数、对数函数、双曲函数、三角函数、分式有理多项式函数等初等函数拟合,练习4是用分段函数(非初等函数)拟合。
二、实验打算
1.用线性函数拟合
程序
线性拟合曲线ft1可由如下mathematica程序求出:
lianxi1biao={{100,45},{110,51},{120,54},{130,61},{140,66},{150,70},{160,74},{170,78},{180,85},{190,89}}
ft1=Fit[lianxi1biao,{1,x},x]
gp=Plot[ft1,{x,100,190},PlotStyle->{RGBColor[1,0,0]}]
fp=ListPlot[lianxi1biao,PlotStyle->{PointSize[],RGBColor[0,0,1]}]
Show[fp,gp]
a=;b=;
f[x_]=a*x+b;
dareta=Sum[(lianxi1biao[[i,2]]-f[lianxi1biao[[i,1]]])^2,{i,1,10}]
修改、补充程序:
要说明拟合成效,要紧从形(大多数散点是不是在拟合曲线上或周围)与量(残差是不是小)!
计算残差的程序:
假设对两个变量的多组记录数据已有程序
biao={{x1,y1},{x2,y2},…,{xn,yn}}
而且通过Fit取得线性拟合函数y=ax+b
咱们能够先概念函数(程序)
f[x_]:
=a*x+b
再给出计算残差的程序
dareta=Sum[(biao[[i,2]]-f[biao[[i,1]]])^2,{i,1,n}]
程序说明:
biao[[i]]是提取表biao的第i行,即{xi,yi}
biao[[i,1]]是提取表biao的第i行的第一个数,即xi
biao[[i,2]]是提取表biao的第i行的第一个数,即yi
biao[[i,2]]-f[biao[[i,1]]]即yi-(a*xi+b)
实验思路
1、先对练习1的十组数据线性拟合,并从形与量看拟合成效;
2、对练习1的十组数据中的九组数据线性拟合,并从形与量看拟合成效;
3、对练习1的十组数据中的八组数据线性拟合,并从形与量看拟合成效;
4、对练习1的十组数据中的七组数据线性拟合,并从形与量看拟合成效;
5、对练习1的十组数据中的六组数据线性拟合,并从形与量看拟合成效。
6、对练习1的十组数据增加数据线性拟合,并从形与量看拟合成效。
2.用多项式函数或指数函数拟合
程序
Clear[gp,fp];
k=;
lianxi2biao={{1,4},{2,},{3,},{4,},{5,},{6,},{7,},{8,},{9,},{10,},{11,},{12,},{13,},{14,},{15,},{16,}}
gp=ListPlot[lianxi2biao,PlotStyle->{RGBColor[0,1,0],PointSize[]}]
ft2=Fit[lianxi2biao,Table[x^i,{i,0,k}],x]
fp=Plot[ft2,{x,0,17},PlotStyle->{RGBColor[1,0,0]}
n=;
f[x_]=expr;
dareta=Sum[(lianxi2biao[[i,2]]-f[lianxi2biao[[i,1]]])^2,{i,1,n}]
修改、补充程序:
要说明拟合成效,要紧从形(大多数散点是不是在拟合曲线上或周围)与量(残差是不是小)!
计算残差的程序:
假设对两个变量的多组记录数据已有程序
biao={{x1,y1},{x2,y2},…,{xn,yn}}
而且通过Fit取得非线性拟合函数y=f(x)
咱们能够先概念函数(程序)
f[x_]:
=
再给出计算残差的程序
dareta=Sum[(biao[[i,2]]-f[biao[[i,1]]])^2,{i,1,n}]
程序说明:
biao[[i]]是提取表biao的第i行,即{xi,yi}
biao[[i,1]]是提取表biao的第i行的第一个数,即xi
biao[[i,2]]是提取表biao的第i行的第一个数,即yi
biao[[i,2]]-f[biao[[i,1]]]即yi-f(xi)
2.2实验思路
1、先对练习2的数据用二次、三次、…、十五次多项式函数别离非线性拟合,并从形与量看拟合成效;试探用多项式函数非线性拟合的优势与缺点。
考虑对练习2的数据增加或减少
2、先对练习2的数据用指数函数、对数函数、双曲函数、三角函数、分式有理多项式函数等初等函数别离非线性拟合,并从形与量看拟合成效;试探用初等函数非线性拟合的优势与缺点,同时试探有无其它更好的非线性拟合。
考虑对练习2的数据增加或减少
3、先对练习2的数据用分段函数(非初等函数)非线性拟合,并从形与量看拟合成效;试探用分段函数非线性拟合的优势与缺点,同时试探有无其它更好的非线性拟合。
4、对练习2的数据增加或减少。
考虑对练习2的数据增加或减少
三.实验进程与结果
1.用线性函数拟合
实验
在上输入如下程序:
lianxi1biao={{100,45},{110,51},{120,54},{130,61},{140,66},{150,70},{160,74},{170,78},
{180,85},{190,89}}
ft1=Fit[lianxi1biao,{1,x},x]
gp=Plot[ft1,{x,100,190},PlotStyle->{RGBColor[1,0,0]}]
fp=ListPlot[lianxi1biao,PlotStyle->{PointSize[],RGBColor[0,0,1]}]
Show[fp,gp]
运行结果如下
ft1=+x
再输入以下程序
a=0.;b=;
f[x_]=a*x+b;
dareta=Sum[(lianxi1biao[[i,2]]-f[lianxi1biao[[i,1]]])^2,{i,1,10}]
运行结果为
Dareta=
即残差为
对练习1的十组数据中选取的九组数据线性拟合取得的结果为
残差为
拟合成效:
点与线大体重合。
对练习1的十组数据中选取的八组数据线性拟合取得的结果为
残差为
拟合成效:
点与线大体重合。
对练习1的十组数据中选取的七组数据线性拟合取得的结果为
残差为
拟合成效:
点与线大体重合,残差升高。
对练习1的十组数据中选取的六组数据线性拟合取得的结果为
残差为
拟合成效:
点与线大体重合。
对练习1的十组数据另增加两组数据{200,94},{220,103}线性拟合取得的结果为
残差为
拟合成效:
点与线大体重合,数据的增加使残差增大。
实验小结:
在线性拟合中数据的增加与减少对拟合的成效阻碍专门大,在取十对数据时残差大约为7,而取到六对数据时残差慢慢升高至9左右。
2.用多项式函数或指数函数等拟合
用多项式函数拟合
Clear[gp,fp];
k=;
lianxi2biao={{1,4},{2,},{3,},{4,},{5,},{6,},{7,},{8,},{9,},{10,},{11,},{12,},{13,},{14,},{15,},{16,}}
gp=ListPlot[lianxi2biao,PlotStyle->{RGBColor[0,1,0],PointSize[]}]
ft2=Fit[lianxi2biao,Table[x^i,{i,0,k}],x]
fp=Plot[ft2,{x,0,17},PlotStyle->{RGBColor[1,0,0]}]
Show[gp,fp]
n=;lianxi2biao中数组数
f[x_]=expr;由上面的结果确信
dareta=Sum[(lianxi2biao[[i,2]]-f[lianxi2biao[[i,1]]])^2,{i,1,n}]
取得结果为
残差为
拟合成效:
点与线重合不行,残差较大。
用四次曲线拟合取得结果为
残差为
拟合成效:
点与线大体重合,残差很小。
用六次曲线拟合取得结果为
残差为
拟合成效:
点与线重合专门好,残差很小。
用九次曲线拟合取得结果为
残差为
拟合成效:
点与线重合专门好,残差很小。
用十二次曲线拟合取得结果为
残差为
拟合成效:
点与线重合专门好,残差很小。
用十五次曲线拟合取得结果为
残差为×10-12
拟合成效:
点与线完美重合,多项式次数越高,残差越小。
2.2用指数函数拟合
在中输入如下程序:
fx[x_]:
=1/x
fy[y_]:
=Log[y]
lianxi2biao={{1,4},{2,},{3,},{4,},{5,},{6,},{7,},{8,},{9,},{10,},{11,},{12,},{13,},{14,},{15,},{16,}};
nb=Table[{fx[lianxi2biao[[i,1]]],fy[lianxi2biao[[i,2]]]},{i,1,15}];
ft3=Fit[nb,{1,x},x]
a1=;b1=;a1,b1的值由上面的结果确信
f4=Exp[a1-b1/x]
t1=Plot[f4,{x,1,18},PlotStyle->{RGBColor[1,0,0]}]
t2=ListPlot[lianxi2biao,PlotStyle->{RGBColor[0,1,0],PointSize[]}]
Show[%,%%]
n=;
f[x_]=expr;由上面的结果确信
dareta=Sum[(lianxi2biao[[i,2]]-f[lianxi2biao[[i,1]]])^2,{i,1,n}]
对数函数拟合
Clear[b];
g[y_]:
=1/y
b=Table[{lianxi2biao[[i,1]],g[lianxi2biao[[i,2]]]},{i,1,15}]
t5=Fit[sb,{1,1/x},x]
f5=1/ft5
t3=Plot[f5,{x,1,16},PlotStyle->{RGBColor[0,0,1]}]
Show[t1,t2,t3]
n=;
f[x_]=expr;由上面的结果确信
dareta=Sum[(lianxi2biao[[i,2]]-f[lianxi2biao[[i,1]]])^2,{i,1,n}]
取得结果如下
残差为
拟合成效:
点与线大体重合,残差很小。
减少数据时有结果
残差为
拟合成效:
比数据减少前好。
用对数函数拟合
在中输入如下程序:
Clear[b];
g[y_]:
=1/y
b=Table[{lianxi2biao[[i,1]],g[lianxi2biao[[i,2]]]},{i,1,15}]
t5=Fit[sb,{1,1/x},x]
f5=1/ft5
t3=Plot[f5,{x,1,16},PlotStyle->{RGBColor[0,0,1]}]
Show[t1,t2,t3]
n=;
f[x_]=expr;由上面的结果确信
dareta=Sum[(lianxi2biao[[i,2]]-f[lianxi2biao[[i,1]]])^2,{i,1,n}]
取得结果如下:
残差为
拟合成效:
与指数函数相较较,与原数据偏离较大,残差也较大。
减少数据时有
残差为
实验小结:
非线性拟合时,数据的减少会使拟合成效提高,残差减小。
练习三的分线性拟合
在中输入如下程序:
fx[x_]:
=1/x
fy[y_]:
=Log[y]
biao={{2,},{3,},{4,},{5,},{6,},{7,},{8,},{9,},{10,},{11,},{12,},{13,},{14,},{15,},{16,}};
nb=Table[{fx[biao[[i,1]]],fy[biao[[i,2]]]},{i,1,15}];
ft3=Fit[nb,{1,x},x]
f4=a*Exp[b/x]
t1=Plot[f4,{x,1,18},PlotStyle->{RGBColor[1,0,0]}]
t2=ListPlot[biao,PlotStyle->{RGBColor[0,1,0],PointSize[]}]
Show[%,%%]
取得结果如下:
残差为
减少数据有
残差为
拟合成效:
数据的减少使成效提高。
四.实验总结
在线性拟合中,拟合的成效完全取决于数据的多少,当数据减少和增加时,残差会适应增大,因此在进行实验室对数据多少的选择很重要。
在非线性拟合中,拟合函数次数的增加使得拟合成效提高,残差减小。
而且当数据减少时,拟合精准度老是提高,因此实验室时虑应同时两个因素,使成效提高。
非线性拟合中指数函数与对数函数的拟合成效又是区别专门大的。