计算方法上机作业.docx
《计算方法上机作业.docx》由会员分享,可在线阅读,更多相关《计算方法上机作业.docx(70页珍藏版)》请在课桌文档上搜索。
1、计算方法上机报告姓名:学号:班级:上课班级:说明:本次上机实验使用的编程语言是Matlab语言,编译环境为MATLAB1.11.0,运行平台为WindOWS7。1.对以下和式计算:s=y(-i?1Zj16n8n18n+48n+58n+6)TTTr八,要求:若只需保留11个有效数字,该如何进行计算;若要保留30个有效数字,则又将如何进行计算;(1)算法思想1、根据精度要求估计所加的项数,可以使用后验误差估计,通项为:(211148n+48n+5-8n+6Jcc16n8n+lf2、为了保证计算结果的准确性,写程序时,从后向前计算;3、使用MatIab时,可以使用以下函数控制位数:digits(位数
2、)或vpa(变量,精度为数)(2)算法结构t=_L(_l21i_1s-0;16n8n+18n+48n+58n+6/12. for11-0,1,2,Jif10end;3. for11=j-lj-2,0s-5t;O)MatIab源程序clear;%清除工作空间变量clc;%清除命令窗口命令m=input(谛输入有效数字的位数m三,);%输入有E数字的位数s=0;forn=0:50t=(l16n)*(4(8*n+l)-2(8*n+4)-l(8*n+5)-l(8*n+6);ift4/)4*M1不+如石+(JI-MI石)x+(A-Mlrr)x/力=yMatlab源程序clear;clc;x=0:l:20
3、;%产生从0到20含21个等分点的数组X=O:0.2:20;y=9.01,8.96,7.96,7.97,8.02,9.05,10.13,11.18,12.26,13.28,13.32,12.61,11.29,10.22,9.15,7.90,7.95,8.86,9.81,10.80,10.93;%等分用位置的深度数据n=length(x);%等分点的数目N=Iength(X);%求三次样条插值函数S(X)M=y;fork=2:3;%计算二阶差商并存放在M中fori=n:-l:k;M(i)=(M(i)-M(i-l)(i)-x(i-k+l);endendh(l)=(2)-(l);%计算三对角阵系与a
4、,b,c及右端向量dfori=2:n-l;h(i)=x(i+l)-x(i);c(i)=h(i)(h(i)+h(i-l);a()=l-c(i);b(i)=2;d(i)=6*M(i+l);endM(I)=O;%选择自然边界条件M(n)=0;b(l)=2;b(n)=2;c(D=0;a(n)=0;d(D=0;d(n)=0;u(l)=b(l);%对三对角阵进行LU分解yl(l)=d(l);fork=2:n;l(k)=a(k)u(k-l);u(k)=b(k)-l(k)*c(k-l);yl(k)=d(k)-l(k)*yl(k-l);endM(n)=yl(n)u(n);%追赶法求解样条参数M(i)fork=n
5、-l:-l:l;M(k)=(yl(k)-c(k)*M(k+l)u(k);ends=zeros(l,N);form=l:N;k=l;fori=2:n-lifX(m)0;sgn=l;elseifG(kzk)=;sgn=0;elsesgn=-l;endsgm=-sgn*sqrt(sum(G(k:m/k).A2);w=zeros(l,n);w(k)=G(k,k)-sgm;forj=k+l:mw(j)=G(j,k);endbt=sgm*w(k);G(k,k)=sgm;%变换Gk-I到Gkforj=k+l:n+lt=sum(w(k:m)*G(k:m,j)/bt;fori=k:m;G(i,j)=G(i,j)
6、+t*w(i);endendendA(n)=G(n,n+l)G(n,n);%解三角方程求系数Afori=n-l:-l:lA(i)=G(i,n+l)-sum(G(iJ+lrn).*A(i+l:n)/G(iJ);ende=sum(G(n+lmzn+l).2);%计算误差efprintf(,%d次函数的系数是:,h);%输出系数a及idisp(八);fprintf(使用d次函数拟合的误差是f:,h,e);t=0:0.05:24;A=fliplr(八);%将系数数组左右翻转Y=poly2sym(八);%将系数数组转化为多项式SUbS(Yx,t);Y=double(ans);figure(l)plot(
7、,yk*X,r-);%绘制拟合多项式函数图形XlabeIr时期;%标注坐标轴含义Wabel。平均气温上title(wm2str(nl)J次函数的最小二乘曲线grid;%指数函数的最小二乘近似y=og(y);n=3;G=;GG=U;forj=O:(n-l)g=.j;%g(x)按列排列G=vertcat(Gzg);%g垂直连接Ggg=t.j;%g(x)按列排列GG=vertcat(GG,gg);%g垂直连接GendG=G;%转置得到矩阵Gfori=l:m%将数据y作为G的最后一列(n+1列)G(i,n+l)=yy;endG;fork=l:n%形成矩阵Q(k)ifG(k,k)O;sgn=l;else
8、ifG(kzk)=O;sgn=O;elsesgn=-l;endsgm=-sgn*sqrt(sum(G(k:m/k).A2);w=zeros(l,n);w(k)=G(k,k卜Sgm;forj=k+l:mw(j)=G(j,k);endbt=sgm*w(k);G(k,k)=sgm;%变换Gk-I到Gkforj=k+l:n+lt=sum(w(k:m)*G(k:m,j)/bt;fori=k:m;G(i,j)=G(i,j)+t*w(i);endendendA(n)=G(n,n+l)G(nfn);%解三角方程求系数Afori=n-l:-l:lA(i)=(G(i,n+l)-sum(G(iJ+lrn).*A(i
9、+l:n)/G(iJ);endb=-A;c=A(2)(2*b);a=ep(A(l)+b*(c2);G(n+l:m/n+l)=exp(sum(G(n+l:mzn+l).A2);e=sum(G(n+l:mzn+l).A2);%计算误差efprintf(n指数函数的系数是:a=%f,b=%f,c=%f,a,b,c);%输出系数及误差efprintf(,n使用指数函数拟合的误差是:%f,e);t=0:0.05:24;YY=a.*exp(-b.*(t-c).2);figure(2)PlOt(X,y-k*力YYk,);%绘制拟合指数函数图形Xlabel(时亥J);%标注坐标轴含义ylabe(平均气温,);
10、titled指数函数的最小二乘曲线,);grid;(4)结果与分析a、二次函数:一天的平均气温为:21.20002次函数的系数:8.30632.6064-0.0938使用2次函数拟合的误差是:280.339547二次函数的最小二乘曲线如下图所示:302520b、三次函数:一天的平均气温为:21.20003次函数的系数:13.3880-0.22730.2075-0.0084使用3次函数拟合的误差是:131.061822三次函数的最小二乘曲线如下图所示:3;欠函数的最小二乘曲线15时刻2025302520明r口H-C、四次函数:一天的平均气温为:21.20004次函数的系数:16.7939-3.7
11、0500.8909-0.05320.0009使用4次函数拟合的误差是:59.04118四次函数的最小二乘曲线如下图所示:2;,d、指数函数:一天的平均气温为:21.2000指数函数的系数是:a=26.160286,b=0.004442,c=14.081900使用指数函数拟合的误差是:57.034644指数函数的最小二乘曲线如下图所示:通过上述几种拟合可以发现,多项式的次数越高,计算拟合的效果越好,误差越小,说明结果越准确;同时,指数多项式拟合的次数虽然不高,但误差最小,说明结果最准确。4.设计算法,求出非线性方程6/-45/+20=0的所有根,并使误差不超过10”。(1)算法思想首先,研究函数
12、的形态,确定根的范围;通过剖分区间的方法确定根的位置,然后利用二分法的基本原理进行求解,找到满足精度要求的解。二分法是产生一串区间,使新区间P是旧区间的一个子区间,其长度是/的一半,且有一个端点是/的一个端点。由区间确定区间/一的方法是计算区间的中点XE=I(Xw)若f(/(x(k+2)0thenstop3. IfL:I2then输出X-作为根;stop4. IfI/1then输出XT作为根;stop5. 2(O)+)=*6.Ifxm-xx(叫then输出X作为根;StoP7. f(x)=f8. IfI/IAhen输出X作为根;9. Iffjthen9.1 X=X%=clse9.2X=XC)J
13、nJIio.g0to5(3)MatIab源程序x=-100:100;y=6*(x.A5)-45*(x,2)+20;%非线性方程组的表达式g=;fori=-100:l:100%确定根所在的区间k=i+l;if(y(x=i).*y(=k)=10(-4)ifsubs(fzxzx)*subs(f,(x+xl)2)eps0=(0+l)2;elsexl=(x+xl)2;endendroot=xO%输出方程的根end(4)结果与分析该非线性方程组有三个实根,分别为1.8708,0.6812,-0.6545,且满足误差要求。5.编写程序实现大规模方程组的列主元高斯消去法程序,并对所附的方程组进行求解。针对本专
14、业中所碰到的实际问题,提炼一个使用方程组进行求解的例子,并对求解过程进行分析、求解。(1)算法思想高斯消去法是利用现行方程组初等变换中的一种变换,即用一个不为零的数乘一个方程后加只另一个方程,使方程组变成同解的上三角方程组,然后再自下而上对上三角方程组求解。列主元消去法是当高斯消元到第k步时,从A列的”以下(包括11O的各元素中选出绝对值最大的,然后通过行交换将其交换到On的位置上。交换系数矩阵中的两行(包括常数项),只相当于两个方程的位置交换了,因此,列选主元不影响求解的结果。程序的核心就是高斯列主元消去法。根据教材提供的算法,编写列主元消去法的子函数与适应于超大规模超出系统内存的方程组的改
15、编程序。同时,在GaUSS消去过程中,适当交换方程的顺序对保证消去过程能顺利进行及计算解的精确度都是有必要的,交换方程的原则是使寸=A/nL)中,绝对值最大的一个换到(k,k)位置而成为第k步消去的主元,这就是列主元Gauss消去法。(2)算法结构1、数据文件的文件名为:文件名+dat2、数据文件中的数据为二进制记录结构,分为以下四个部分:(1)文件头部分,其结构:typedefstruct(longintid;longintver;longintn;其中:id:为该数据文件的标识,值为OXFlElDlA0,即为:十六进制的FlEn)IAO说明系数矩阵为非压缩格式稀疏矩阵 系数矩阵为非压缩格式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算方法 上机 作业

链接地址:https://www.desk33.com/p-958608.html