北航大学数值分析计算实习报告范本.doc

北航大学数值分析计算实习报告范本.doc

ID:55176413

大小:1.03 MB

页数:25页

时间:2020-04-30

北航大学数值分析计算实习报告范本.doc_第1页
北航大学数值分析计算实习报告范本.doc_第2页
北航大学数值分析计算实习报告范本.doc_第3页
北航大学数值分析计算实习报告范本.doc_第4页
北航大学数值分析计算实习报告范本.doc_第5页
资源描述:

《北航大学数值分析计算实习报告范本.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、北航大学数值分析计算实习报告实习题目:第一题设有的实对称矩阵A,其中,。矩阵A的特征值为,并且有1.求,和的值。2.求A的与数最接近的特征值。3.求A的(谱数)条件数和行列式detA。说明:1.在所用的算法中,凡是要给出精度水平的,都取。2.选择算法时,应使矩阵A的所有零元素都不储存。3.打印以下容:(1)全部源程序;(2)特征值以及的值。4.采用e型输出实型数,并且至少显示12位有效数字。一、算法设计方案1、求,和的值。由于,可知绝对值最大特征值必为和其中之一,故可用幂法求出绝对值最大的特征值,如果=0,则=,否则=。将矩阵A进行

2、一下平移:(1)对用幂法求出其绝对值最大的特征值,则A的另一端点特征值或为+。为按模最小特征值,,可对A使用反幂法求得。2、求A的与数最接近的特征值。计算-,其模值最小的值对应的特征值与最接近。因此对A进行平移变换:(2)对用反幂法求得其模最小的特征值,则=+。3、求A的(谱数)条件数和行列式detA。由矩阵A为非奇异对称矩阵可得:(3)其中为按模最大特征值,为按模最小特征值,通过第一问我们求得的和可以很容易求得A的条件数。在进行反幂法求解时,要对A进行LU分解得到。因L为单位下三角阵,行列式为1,U为上三角阵,行列式为主对角线乘积

3、,所以A的行列式等于U的行列式,为U的主对角线的乘积。二、算法实现1、矩阵存储原矩阵A为一个上、下半带宽都为2的501×501的带状矩阵,由于矩阵中的0元素太多,如果分配一个501×501的空间保存矩阵的话会浪费很多空间。因此,为了节省存储量,A的带外元素不给存储,值存储带元素,如下C矩阵所示:(4)C是一个5×501的矩阵,相比A大大节省了存储空间,在数组C中检索矩阵A的带元素的方法是:(5)2、幂法幂法迭代公式如下:(6)其中,不断迭代当时即可认为其满足精度要求,令。在程序中计算时,根据A矩阵的特点,简化如下:(7)3、反幂法反

4、幂法迭代公式如下:(8)当k足够大时,。在求解时,可先对A进行Doolittle分解,由于A是带状结构,所以分解出的L、U也是带状结构,利用C矩阵进行Doolittle分解并求向量的算法如下:(1)作分解A=LU对于执行:(9)由于C语言中数组下标是从0开始的,所以在程序中矩阵元素c的下标都减1。(2)求解(数组b先是存放原方程组右端向量,后来存放中间向量y,在程序中b和y都保存在数组y[501]中。)(10)求出后,其他部分与幂法求解相同。三、结果分析实验表明,本程序中,初始向量对结果影响较大,合适的初始向量对得到正确的收敛结果比

5、较重要,如表1是不同初始向量的情况下的得到的部分结果。(实验结果截图见附录)迭代次数迭代次数159381160381535573350592674611311611304611343611343611343611表1不同初始向量对应的和及其迭代次数由表1可以得到如下结论:1.不同的初始向量对本程序的影响大,对没有影响,都能保证收敛到正确值。1.初始向量中必须保证中至少有一个为1才能保证收敛到正确值。2.初始向量非零值的多少和大小对迭代次数并没有明显影响。3.为解决初始向量对程序的影响,可以先对A做平移变换再求。三、实验程序#incl

6、ude#include#includestaticdoubleb=0.16,c=-0.064;#definePrecision1e-12voidcopy(doubleb[501],doubley[501]);doubledianji(doublex[],doubley[]);//计算两个向量积voidInitMatrix(double*p);//InitMatrixAdoubleNeiJi(doublea[],doubleb[]);//get2数voidget_y(double*

7、y,double*u);//getyvoidget_u(double*u,double*y,double*a);//getuvoidInitu(double*p);//初始化初始向量udoubleGet_Fabs_Eigenvalue(double*a,double*u,int*iterations);//循环迭代得到绝对值最大特征值voidA_sub_minI(double*a,doublemin);//A-min*IvoidInitC(doubleC[5][501]);//初始化数组CvoidDoolittleC(doubleC

8、[5][501],intn,ints,intr);//进行Doolittle分解intmin(inta,intb);//取返回a,b最小值intmax(inta,intb);//求最大值voidDoolittle_getx(doubl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。