资源描述:
《数值分析课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程设计报告题目:数值分析课程设计报告学院理学院班级数学与应用数学2010级学生姓名戴铭学号0提交日期2013年8月20日数值分析课程设计报告[设计题一]一.要求编写解线性代数方程组的列主元高斯消去法的函数,并调用该函数计算某个9阶以上的非奇异阵A的逆矩阵。通过计算AA-1检查答案,并与使用inv(A)所得结果和运行时间进行比较。二.设计思路①先确定求逆矩阵A为方阵,构造n*2n矩阵C,使得C=[A+E];②令i=1,2,3……n,找出第i列中从i到n的绝对值最大元素C(k,i),如果k~=I,则两行调换位置,并且把换位信息传给记录矩阵flag,同时对第i行进行化一处理,对第i+
2、1行到n行通过行列变换使得C[:,i]=0,最后得到C为前n*n是上三角的单位阵;③通过行列变换把矩阵C的前n*n部分化成单位阵;④把C的后n*n部分赋给B,则B就是所求的逆矩阵。三.程序清单functionB=inv_dm(A)%用途:列主元高斯消去法求逆矩阵%A----------原矩阵%B----------逆矩阵[n,n]=size(A);B=zeros(n,n);C=zeros(n,2*n);fori=1:nforj=1:nC(i,j)=A(i,j);endfork=n+1:2*nifk~=n+iC(i,k)=0;elseC(i,k)=1;endendend%构造C=[
3、A+E]flag=1:n;%记录行顺序向量fori=1:n-1t=find(abs(C(i:n,i))==max(abs(C(i:n,i))));%寻找最大元素t=t(1)+i-1;flag(i)=t;ift~=ip=C(i,:);C(i,:)=C(t,:);C(t,:)=p;%换位endifC(i,i)==0error('矩阵不可逆');endC(i,:)=C(i,:)/C(i,i);forj=i+1:nC(j,:)=C(j,:)-C(i,:)*C(j,i);endendC(n,:)=C(n,:)/C(n,n);%因为循环结构问题,所以C[n,:]并没有化一,所以在最后才把最后
4、一行化一fori=n:-1:2forj=1:i-1C(j,:)=C(j,:)-C(i,:)*C(j,i);endend%通过行变换,使得C的前n列为单位阵形式fori=n:-1:1t=flag(i);ift~=ip=C(:,t);C(:,t)=C(:,i);C(:,i)=p;endend%通过行变化矩阵还原行的顺序fori=1:nforj=1:nB(i,j)=C(i,n+j);endend%将C的后n列赋给B矩阵三.程序运行操作过程与输出结果操作时间①给出所要求逆的矩阵A:②执行inv_dm(A)③执行inv(A)④检验正确性显然从数量级上我们可以容易判断这是一个单位阵,负号的出
5、现是由于计算机默认误差造成细小误差。[设计题二]一.要求对于迭代法,它显然有不动点。试不用判定收敛阶的定理,设计1至2个数值实验(其中必须有一个不是直接用收敛阶的定义)得到收敛阶数的大概数值。二.设计思路①求出不动点,利用fixed.m函数:确定包含不动点的区间[a,b],此处令a=-0.5,b=0.5,接着从b开始迭代,利用迭代公式,以x0=0.5开始迭代,终止条件为abs(x-x0)>=1e-6或者迭代次数超过了10000次,最终返回不动点①计算收敛阶m,利用jie.m函数:1.由①知道当,所以根据收敛阶公式,其中C为非零常数,转化为2.从1开始找出满足的p,如果p不满足,令
6、p=p+1,直至找到满足条件的p.3.返回收敛阶n=p.三.程序清单1.求不动点函数fixed.mfunctionx=fixed(x0,e)%用途---求不动点%x0-------初值,abs(x0)<0.5%e-----迭代精度x=0.99*x0-x0^2;%迭代公式n=1;while(abs(x-x0)>=e)&&(n<10000)x0=x;x=0.99*x0-x0^2;n=n+1;end%循环体x=x0;2.求收敛阶函数jie.mfunctionn=jie(x0)%用途---求阶函数k=0;symsx;x1=0.99*x-x^2;h=(abs(x0-x1))/(abs(x0
7、-x))^k;whilelimit(h,x,x0)==0k=k+1;h=(abs(x0-x1))/(abs(x0-x))^k;endn=k;四.程序运行操作过程与输出结果操作时间1.求不动点调用fixed.m由执行不动点结果可以看出确定了迭代精度1e-6后,根据迭代精度接近0,所以.2.求收敛阶调用jie.m所以收敛阶数为1,即线性收敛。[设计题四]一.要求某飞机头部的光滑外形曲线的型值点坐标由下表给出:01234567891007013021033757877610121142