北航研究生数值分析大作业二(2014年)资料要点.docxVIP

  • 3
  • 0
  • 约1.73万字
  • 约 31页
  • 2019-02-08 发布于广东
  • 举报

北航研究生数值分析大作业二(2014年)资料要点.docx

数值分析 —计算实习作业二 学 院:17系 专 业:精密仪器及机械 姓 名:张大军 学 号:DY1417114 、程序设计方案 程序设计方案流程图如图1所示。 (开始 图1 ?程序设计方案流程图 二、程序源代码 #include iostream.h #include iomanip.h #include math.h #define N 10 #defineE 1.0e-12 #define MAX 10000 int main() { void nishangsanjiaohua(double (*A)[10]); void QRfenjie(double (*A)[10],double (*Q)[N],double (*R)[N]); void zhengli(double (*A)[10]); void subuQR(double (*A)[10],double *RR,double *11); void tezhengxl(double (*a)[N],double T); double A[10][10]={0},Q[10][10]={0},R[10][10]={0}; double B[10]={0},C[10]={0}; int ij; for(i=l;i=10;i++) for(j=l;j=10;j++) { if(i!=j) A[i-l][j-l]=sin(0.5*i+0.2*j); else A[i-l][j-l]=1.52*cos(i+1.2*j); } 〃对实矩阵A进行拟上三角化 nishangsanjiaohua(A); zhengli(A); coutvv”矩阵A经过拟上三角化所得的矩阵 A(n-l):n?endl; for(i=0;iN;i++) { for(j=0;jN;j++) cout?setiosflags(ios::scientific)?setprecision(12)?setw(21) ?A[i]UJ; } cout?,\n,?endl; } 〃拟上三角化后进行的QR分解 QRfenjie(A,Q,R); zhengli(R); cout?H矩阵A(n-l)三角化得到的Q矩阵:n?endl; for(i=0;iN;i++) for(j=0;jN;j++) cout?setiosflags(ios::scientific)?setprecision(l 2)?setw(21) ?Q[i]Ul; } cout?*\nr?endl; } cout?n矩阵A(n-l)三角化得到的R矩阵:n?endl; for(i=0;iN;i++) { for(j=0;jN;j++) cout?setiosflags(ios::scientific)?setprecision(l 2)?setw(21) ?R[i]Lj]; } cout? *\n ,?endl; } 〃求解A矩阵的全部特征值 subuQR(A,B,C); zhengli(A); cout?n矩阵A(n-l)双步位移QR迭代后RQ阵:M?endl; for(i=0;iN;i++) for(j=0;jN;j++) cout?setiosflags(ios::scientific)?setprecision(12)?setw(21) ?A[i]Ul; } cout?,\n,?endl; } cout?矩阵A(n?l)双步位移QR迭代后求出的所有特征 值:H?endl; for(i=0;iN;i++) cout?setiosflags(ios: :scientific)?setprecision(l 2)?setw(21) ?B[i]?n+n?setw(21)?C[i]?nin?endl; cout?,\n,?endl; } for (i=1; i=10;i++) for(j=l;j=10;j++) { A[i-lJO-l]=siii(0.5*i+0.2*j); else A[i-l][j-l]=1.52*cos(i+1.2*j); } //A相应于实特征值的特征向量 cout?n矩阵A(n?l)双步位移QR迭代后求出的所有实特 征值所对应的特征向量:n?endl; for(i=0;iN;i++) { if(C[i]==O) cout?H入r’vi?n]对应的特征向量n?endl; tezhengxl(A,B[iJ); } } return 1; } void zhengli(double (*A)[10]) { intij; for(i=0;iN;i++) for(j=0;jN;j++) { if(fabs(A[i][j])=E) A[i][j]=0; } } void nishangsanjiaohua(double (*A)[1OJ) {

文档评论(0)

1亿VIP精品文档

相关文档