幂法 反幂法 带双步位移

时间:2012-12-05 05:13:41
【文件属性】:

文件名称:幂法 反幂法 带双步位移

文件大小:10KB

文件格式:CPP

更新时间:2012-12-05 05:13:41

幂法 反幂法 带双步位移

void main(void) { cout.setf(ios::scientific); //输出值为科学计数法 cout.precision(12); //输出值精度为12位 char f; int i; double maxNorm,maxNorm1,lambda[N],lambda_s,miu[N],cond_A,det_A; double A[UB+DB+1][N]; MatrixInit(A); //为矩阵A赋初值 maxNorm=PowerMethod(A); //求得模最大的特征根 maxNorm1=PMwithTr(A,maxNorm); //求得距离模最大特征根最远的根 lambda_s=AntiPowerMethod(A); //求得模最小特征根 if(maxNorm>maxNorm1) //////////////////////////// { // lambda[0]=maxNorm1; // 判断maxNrom与maxNorm1 lambda[N-1]=maxNorm; // 的大小,大的即为最大特征值, } // 小的即为最小特征值。 else // lambda[0]=maxNorm; // lambda[N-1]=maxNorm1; ///////////////////////////// for(i=1;i<=39;i++) //循环调用带原点平移的 { //反幂法求最接近特征值 miu[i]=lambda[0]+i*(lambda[500]-lambda[0])/40; lambda[i]=APMwithTr(A,miu[i]); } cond_A=fabs(maxNorm/lambda_s); //求条件数 det_A=Det_A(A); //求行列式 cout<<"lambda_1="< 立即下载


网友评论