1、华工数学实验作业2Matlab基础知识 数学实验报告 学 院: 电子与信息学院 专业班级: 通信工程4班 学 号: 201130301443 姓 名: 李腾辉 实验名称: Matlab基础知识 实验日期: 2013.03.16 第二次实验1 实验内容2 实验过程1. 观察数据间的大概函数关系 利用题设递推关系,画出100个点的曲线,图片如下:由曲线大致可以看出其是不断增长的,没有收敛的趋势。代码如下:function step1(n) %声明函数名taskan = 1; %定义数组an for i = 2:n %an从第二项开始 an = an,an(i-1)+1/an(i-1); %将第i项
2、添加到数组an中 plot(i-1,an(i-1),r*); hold onend %循环结束2. 获得数据的近似函数关系式 由第一步可以猜想曲线可能可以用 多项式拟合 或者是 幂函数拟合(1)尝试用多项式拟合50项拟合曲线:y = -0.1436*x4 + 0.2261*x3 0.1193*x2 + 1.9093*x + 7.2045100项拟合曲线:y = -0.1844*x4 + 0.3034*x3 0.1982*x2 + 2.7086*x + 10.0951200项拟合曲线:y = -0.2509*x4 + 0.4221*x3 - 0.2990*x2 + 3.8420*x + 14.1
3、978观察拟合数据与原始数据的吻合程度经过几次实验观察发现,这几个拟合曲线的表达式各异,且在后面的数据与实际数据相差甚远,如下图所示:50项拟合曲线:y = -0.1436*x4 + 0.2261*x3 0.1193*x2 + 1.9093*x + 7.2045的后50项严重偏离100项拟合曲线:y = -0.1844*x4 + 0.3034*x3 0.1982*x2 + 2.7086*x + 10.0951的后50项严重偏离200项拟合曲线:y = -0.2509*x4 + 0.4221*x3 - 0.2990*x2 + 3.8420*x + 14.1978的后100项严重偏离于是决定放弃
4、多项式拟合,源代码如下:Function step2(n) %声明函数名taskan = 1; %定义数组anfor i = 2:n %an从第二项开始 an = an,an(i-1)+1/an(i-1); %将第i项添加到数组an中end %循环结束nn = 1:n;p = polyfit(nn,an,4) % 使用前n项进行拟合bn = 1;for i = 2:(n+50) %校验拟合曲线后50项的情况bn = bn,bn(i-1)+1/bn(i-1); end nn = 1:n+50;pn = polyval(p,nn); % 将拟合好的曲线数据放入pn数组中plot(nn,pn,-,n
5、n,bn,+),grid on %同时画出两根曲线(2)尝试用幂函数拟合这里使用Matlab自带的强大的拟合工具箱Curve Fitting Tool,可以方便许多。1.先使用命令行工具生成两个数列i=1:300an=1; for i=2:300;an=an,an(i-1)+1/an(i-1); end; an图片如下2.在Curve Fitting Tool中进行相关操作,如图所示具体是先选择x data 为 i ;然后选择 Y data为 an ;然后在右边的拟合方式选择 power , 参数选择两个 ,如下图然后这个工具就会自动拟合出曲线,以及曲线方程和相关性的结果由结果可知拟合方程为:
6、Y = 1.451*x0.4959 0.0165 更精确地Y = 1.408*x0.5004 + 0.09922 (用3000组数据拟合出的)相关性非常地好下面用这个方程去验证后面的曲线,结果如下图:当n远大时,曲线依然符合得很好,证明这个拟合方程是正确的,只有存在小量的误差,可以通过增加数据采集量将误差降到更小。源码:function step3(n) an = 1; %定义数组an for i = 2:n %an从第二项开始 an = an,an(i-1)+1/an(i-1); %将第i项添加到数组an中end %循环结束pn = ;for i = 1:n pn =pn,1.451*i0.
7、4959-0.0165;endnn = 1:n; plot(nn,pn,r,nn,an,+),grid on %同时画出两根曲线至此,第一题完成。结论:这个数列是幂函数构成的,极限不存在第二题1.实验内容2.实验过程(1)部分和数列Sn的折线图部分和函数S500的图像,从图像上观察,曲线单调上升,增速越来越慢,极限不存在程序:function tiaohe1(n)an = 1;for i = 2:n an = an,an(i-1) + 1/i;endi = 1:n;plot(i,an,r);(2)Hn=S2n-Snn=100的图像n=200的图像n=400的图像经过大量数据的检验,可以知道hn
8、是收敛于小于0.7的某个数程序:function tiaohe2(n)sn1=1; for i=2:n sn1=sn1,sn1(i-1)+1/i; end sn2=1;for i=2:2*n sn2=sn2,sn2(i-1)+1/i;endhn=1/2;for i=1:n hn=hn,sn2(2*i)-sn1(i);endplot(hn)(3)Gn=S2nN=3的图像N=5的图像由图像可猜想可用线性拟合N=5的拟合情况,此时y= 0.6414x + 0.8238N=10的拟合情况,此时y= 0.6733x + 0.7338N=15拟合情况,此时y=0.6831x + 0.6893代码如下:function tiaohe3(n) fn=1; for i=2:2n fn=fn,fn(i-1)+1/ i; end gn=fn(2);for i=2:ngn=gn,fn(2i);endi = 1:n;p = polyfit(i,gn,1)pn = polyval(p,i);plot(i,pn,-,i,gn,*),grid onCorrolation = corrcoef(gn,pn) (4)变化规律Sn单调递增,不收敛;Hn是收敛的;Gn的拟合曲线是一条直线,方程与y=0.6831x + 0.6893 相近
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1