北航数值分析编程大作业一

北航数值分析编程大作业一

ID:15303159

大小:76.50 KB

页数:9页

时间:2018-08-02

北航数值分析编程大作业一_第1页
北航数值分析编程大作业一_第2页
北航数值分析编程大作业一_第3页
北航数值分析编程大作业一_第4页
北航数值分析编程大作业一_第5页
资源描述:

《北航数值分析编程大作业一》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数值分析B》大作业一4系ZY1104219许柱山一.算法设计方案:1.首先应该创建原矩阵,但由于题目所给的矩阵是501*501的大型矩阵,计算机在计算时可能会运行不起来。而我们可以发现原矩阵A是一个带状矩阵,因此可以利用这一特点将其压缩存储。2.由于λ1‹λ2‹…‹λ501,所以在以所有特征值建立的数轴上,λ1、λ501位于数轴的两端,两者之一必为按模最大。利用幂法,可以求出来按模最大的特征值,但该值可能为λ1也可能为λ501;3.上步求出按模最大的特征值λM后,将原矩阵平移λM,再利用幂法求一次平移后矩阵

2、的按模最大的特征值,即是数轴上另一端点值λM′。4.比较λM与λM+λM′的大小,大的为矩阵A的最大特征值,小的为A矩阵的最小的特征值;5.利用反幂法,求矩阵A的按模最小的特征值。但是反幂法中要用到线性方程组的求解,而原矩阵A又是带状矩阵,采用LU分解。所以在这之前要定义一个LU分解子程序,将A矩阵分解为单位下三角矩阵L和上三角矩阵U的乘积。6.先利用循环求出k从1到39变化的uk的值。当循环次数为39时,在每次循环时都将压缩后的矩阵A的第三行减去相应的,然后调用LU分解的子程序,利用反幂法求出与uk最接近的

3、特征值,该特征值等于利用反幂法求出的值与uk的和。7.A的谱范数条件数等于按模最大的特征值的绝对值与按模最小的特征值的绝对值之比,按模最大的特征值与按模最小的特征值已分别在前面求出。6.A的行列式的值就是矩阵A进行LU分解后U的对角线元素的乘积。先把带状线性矩阵A[501][501]转存为一个矩阵c[5][501].二.源程序#include#include#include#include#include#incl

4、ude/*****************全局变量、函数声明*************/#defineN501#defineEPSI1.0e-12#definer2#defines2doublec[5][N];/*A非零元素的压缩存储矩阵*/doublefuzhi();/*对A赋值函数*/voidLUDet();/*利用LU分解求解矩阵A的行列式*/intint_max2(inta,intb);/*求两个数字中最大值的*/intint_min2(inta,intb);/*求两个数字中最小

5、值的*/intint_max3(inta,intb,intc);/*求三个数字中最大值的*/doublemifa();/*幂法计算矩阵A按模最大的特征值*/doublefmifa();/*反幂法求矩阵A按模最大的特征值*///*主程序*//voidmain(){inti;/*利用幂法计算矩阵A的最大特征值和最小特征值*/doublea1,a2;fuzhi();a1=mifa();if(a1<0)cout<<"矩阵A最小的特征值lambda1:"<=0)cout<<"矩阵A最大的

6、特征值lambda501:"<=0)cout<<"矩阵A最大的特征值lambda501:"<

7、:scientific)<

8、0;i<39;i++){u[i]=a1+(i+1)*(a2-a1)/40;c[2][i]=c[2][i]-u[i];u[i]=fmifa()+u[i];cout<<"lambda"<<"[ik]"<<"("<0)cond_A=fabs(a1/a3);elseif(

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

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

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