现在网站给源码,宗亲网站建设建议,老域名交易平台,wordpress文章分类显示文章目录 一、实验目的二、实验内容三、仿真结果四、实践中遇到的问题及解决方法 一、实验目的 1. 熟悉根据已知数据进行回归法曲线拟合。 2. 熟悉根据已知数据进行多项式曲线拟合。 3. 熟悉根据已知数据利用指定方法进行数据插值#xff08;临近插值、线性插值、立方… 文章目录 一、实验目的二、实验内容三、仿真结果四、实践中遇到的问题及解决方法 一、实验目的 1. 熟悉根据已知数据进行回归法曲线拟合。 2. 熟悉根据已知数据进行多项式曲线拟合。 3. 熟悉根据已知数据利用指定方法进行数据插值临近插值、线性插值、立方插值、三次样条插值。 4. 熟悉脚本文件和函数文件的概念、各自的特点以及二者的区别。 5. 熟悉主函数和私有函数的特点。 6. 了解MATLAB编程的特点。
二、实验内容 1.多项式曲线拟合的介绍 已知变量x,y之间的函数关系为ya1x(n)a2x(n-1)…a(n)xa(n1) 现在希望通过实验获得一组关于(x,y)的测量数据确定出系数(a1,a2,…a(n1))。这类问题就称为多项式拟合。MATLAB求解该问题的命令是 ppolyfit(x,y,n) %x,y数组所给数据的n阶拟合多项式系数向量p 2.多项式曲线拟合的注意事项 A、为保证较好的拟合效果多项式阶数要取得恰当。过低可能残差较大过高拟合模型包含噪声影响。观察数据图形曲线有助于适当阶数的确定。 B、拟合多项式只能在给定数据所限定的区间内使用不要任意向外拓展。 3.多项式曲线拟合的应用举例 x0:0.1:1;
y[-0.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];
ppolyfit(x,y,3) %三次拟合
xx0:0.001:1;
yypolyval(p,xx);
plot(xx,yy)
p 56.6915 -87.1174 40.0070 -0.90434. 回归法曲线拟合的说明 A、最小二乘解的求取方法不仅适用于多项式模型还适用于其他更广泛的模型。 B、适用最小二乘解的条件是只要应变量y与自变量x的数据阵X满足线性关系即可。 5.回归法曲线拟合的应用举例
t[0,0.3,0.8,1.1,1.6,2.3];
y[0.5,0.82,1.14,1.25,1.35,1.40];
x[ones(size(t)),t,t.^2];
ax\y
T(0:0.1:2.5);
Y[ones(size(T)),T,T.^2]*a;
plot(T,Y,O)
a 0.53180.9191-0.23876.插值介绍 插值就是在已知数之间寻找估计值。一般的从各种试验得来的数据总是有一定的数量而利用插值技术能够从有限的数据中获取系统整体的状态。因此数据插值在各行各业特别是信号处理领域内有着广泛的应用。MATLAB软件作为数据处理的优秀软件之一自然提供了常用的各种数据插值计算的函数。 7.一维插值的两种类型 A、多项式插值 格式yiinterp1(x,y,xi,method)。xi用于插值的点method指定插值的方法 B、基于傅里叶变换的一维插值 格式yinterpfit(x,n)。x为含有周期函数值的矢量并且为等间距点的个数n为返回等间距点的个数。 8. 一维插值中多项式插值的方法 一维插值中多项式插值的方法9.二维插值 格式yinterp2(x,y,z,xi,yi,method) 9.三种二维插值
插值说明临近插值用分段连续的面来拟合已知数据插入最邻近的点双线性插值用分段的双线性来拟合已知数据二重三次方插值通过已知数据拟合一个双立体面 10.常用一维插值中多项式插值的指令
指令说明yinterp1(x,y,x1,‘spline’)三次样条插值yinterp1(x,y,x1,‘nearest’)临近插值yinterp1(x,y,x1,‘linear’)线性插值yinterp1(x,y,x1,‘cublic’)立方插值
三、仿真结果
1.给出两组数据x[0 0.3 0.8 1.1 1.6 2.3]’ y[0.82 0.72 0.63 0.60 0.55 0.50]’,我们可以简单的认为这组数据在一条衰减的指数函数曲线上yC1C2exp(-x)通过曲线拟合求出这条衰减曲线的表达式并且在图形窗口画出这条曲线已知的点用*表示。 答 x[0 0.3 0.8 1.1 1.6 2.3];
y[0.82 0.72 0.63 0.60 0.55 0.50];
x1[ones(size(x)),exp(-x)];
cx1\y
T(0:0.1:10);
y1[ones(size(T)),exp(-T)]*c;
plot(T,y1, x,y,*)
c 0.4760
0.3413由程序结果可知衰减曲线的表达式y10.47600.3413*exp(-t) 2.通过测量得到一组数据
t12345678910y4.8424.3623.7543.3683.1693.0833.0343.0163.0123.005
分别采用y1(t) C1C2exp(-t)和y2(t) d1d2t*exp(-t)进行拟合并画出拟合曲线进行对比。 答 t[1:10];
y[4.842 4.362 3.754 3.368 3.169 3.083 3.034 3.016 3.012 3.005];
x1[ones(size(t)),exp(-t)];
cx1\y
x2[ones(size(t)),t.*exp(-t)];
dx2\y
T(0:0.1:10);
y1[ones(size(T)),exp(-T)]*c;
y2[ones(size(T)),T.*exp(-T)]*d;
plot(T,y1,T,y2,t,y,*),
legend(y1(t) C1C2*exp(-t),y2(t) d1d2*t*exp(-t))
c 3.16215.1961
d 3.0039
5.0046由程序结果可知衰减曲线的表达式y13.16215.1961exp(-t);y23.00395.0046t*exp(-t); 分析从图中可以看出曲线y2更加准确与各点的误差较小 3.从某一个过程中通过测量得到
t00.20.40.60.81.02.05.0y1.01.511.882.132.292.402.60-4.00
分别采用多项式和指数函数进行曲线拟合。 答采用三次多项式拟合以及指数函数y1c1c2*exp(-t)拟合具体程序如下 x[0,0.2,0.4,0.6,0.8,1.0,2.0,5.0];
y[1.0,1.51,1.88,2.13,2.29,2.40,2.60,-4.00];
ppolyfit(x,y,3) %三次多项式拟合
xx0:0.1:8;
yypolyval(p,xx);
x1[ones(size(x)),exp(-x)]; %指数函数拟合
cx1\y
T(0:0.1:10);
y1[ones(size(T)),exp(-T)]*c;
plot(xx,yy,T,y1,x,y,*)
legend(三次多项式拟合,指数函数y1c1c2*exp(-t)拟合)
p 0.0190 -0.7217 2.1198 1.0712
c -0.0565
2.5674 分析从图中可以看出三次多项式拟合更加准确与各点的误差较小而指数函数拟合误差很大不适合该题
4.对应时间矢量t测得一组矢量y
t00.30.81.11.62.3y0.50.821.141.251.351.40
采用一个带有线性参数的指数函数进行拟合ya0a1exp(-t)a2t*exp(-t),利用回归方法求出拟合函数并画出拟合曲线已知点用圆点表示。 答 x[0,0.3,0.8,1.1,1.6,2.3];
y[0.5,0.82,1.14,1.25,1.35,1.40];
x1[ones(size(x)),exp(-x),x.*exp(-x)];
cx1\y
T(0:0.1:5);
y1[ones(size(T)),exp(-T),T.*exp(-T)]*c;
plot(T,y1,x,y,o)
c 1.3974-0.89880.4097由程序结果可知曲线的表达式y1.3974-0.8988exp(-t) 0.4097t*exp(-t) 5.某钢材厂从1990年到2010年的产量如下表所示请利用三次样条插值的方法计算1999年该钢材厂的产量并画出曲线已知数据用星号表示。要求写出达到题目要求的MATLAB操作过程不要去计算结果。
年份19901992199419961998200020022004200620082010产量万吨75.9991.97105.71123.20131.66150.69179.32203.21226.50249.63256.34
答 x1990:2:2010;
y[75.95,91.97,105.71,123.20,131.66,150.69,179.32,203.21,226.21,249.63,256.34];
x11990:0.01:2020;
y1interp1(x,y,x1,spline);
plot(x1,y1,x,y,*)
y1interp1(x,y,1999,spline)
y1 139.2732四、实践中遇到的问题及解决方法 1.问题以上面第三题为例多项式和指数函数进行曲线拟合时数组x和y分不清什么时候转置 解决办法其中多项式拟合多为非转置而指数函数拟合多为数组转置x’和y’。 2.问题回归法曲线拟合步骤的原理我开始一直不懂是为什么 解决办法我询问了一下同学明白了其实是利用解方程的原理来求解曲线式中未知的参数其中ones(size(x))对应的是1。 3.问题有这麽一道题数据具有yx^2的变化趋势用最小二乘法 求解y并画图。开始我以为只能用曲线拟合的方法做。 解决办法后来我明白了最小二乘解的求取方法同样适用于多项式模型直接用多项式拟合求解即可。