数值分析大作业一、算法设计方案1、矩阵初始化矩阵的下半带宽r=2,上半带宽s=2,设置矩阵,在矩阵C中检索矩阵A中的带内元素的方法是:
这样所需要的存储单元数大大减少,从而极大提高了运算效率
2、利用幂法求出幂法迭代格式:当时,迭代终止
首先对于矩阵A利用幂法迭代求出一个,然后求出矩阵B,其中(为单位矩阵),对矩阵B进行幂法迭代,求出,之后令,比较,大者为,小者为
3、利用反幂法求出反幂法迭代格式:当时,迭代终止,
每迭代一次都要求解一次线性方程组,求解过程为:(1)作分解对于执行1(2)求解(数组b先是存放原方程组右端向量,后来存放中间向量y)使用反幂法,直接可以求得矩阵按模最小的特征值
求与数最接近的特征值,对矩阵实行反幂法,即可求出对应的
4、求出A的条件数和行列式根据,其中分子分母分别对应按模最大和最小的特征值
的计算:由于,其中为下三角矩阵,且对角线元素为1,故,所以有,又为上三角矩阵,故为对其对角线上各元素的乘积,最后可得
二、程序源代码(1)定义所需要的函数:#include2#include#include#defineN501#defineR2#defineS2intmin(inta,intb);//求最小值intmax(inta,intb,intc);//求最大值doubleFan_two(doublex[N]);//计算二范数voidFenjieLU(double(*C)[N]);//解线性方程组的LU分解过程voidSolve(double(*C)[N],double*b,double*x);//解线性方程组的求解过程doublePowerMethod(doubleC[][N],doubleu[N],doubley[N],doublebta,doubleD);//幂法doubleInversePowerMethod(doubleC[][N],doub