数值分析列主元素消元法能求矩阵的特征值吗?用C++编程。

如题所述

#include<stdio.h>
int main(){
double A[24][24],b[24],x[24];
int i,j;
//给A,b赋初值
for(i=0;i<24;i++){
b[i]=i+1;
for(j=0;j<24;j++){
if(j==i-2)A[i][j]=1;
else if(j==i-1)A[i][j]=2;
else if(j==i)A[i][j]=6;
else if(j==i+1)A[i][j]=2;
else if(j==i+2)A[i][j]=1;
else A[i][j]=0;
}
}
//在屏幕上输出线性方程组
for(i=0;i<24;i++){
for(j=0;j<24;j++){
printf("%2.f",A[i][j]);
}printf(" %2.f\n",b[i]);
}
//高斯消去(★★精髓:注意A中0的分布★★)
for(i=0;i<22;i++){
A[i+1][i]=A[i+1][i]/A[i][i];
A[i+1][i+1]-=A[i][i+1]*A[i+1][i];
A[i+1][i+2]-=A[i][i+2]*A[i+1][i];
b[i+1]-=b[i]*A[i+1][i];
A[i+2][i]=A[i+2][i]/A[i][i];
A[i+2][i+1]-=A[i][i+1]*A[i+2][i];
A[i+2][i+2]-=A[i][i+2]*A[i+2][i];
b[i+2]-=b[i]*A[i+2][i];
}
A[23][22]/=A[22][22];
A[23][23]-=A[23][22]*A[22][23];
b[23]-=b[22]*A[23][22];
//解上三角方程组
x[23]=b[23]/A[23][23];
x[22]=(b[22]-x[23]*A[22][23])/A[22][22];
for(i=21;i>=0;i--)
x[i]=(b[i]-x[i+1]*A[i][i+1]-x[i+2]*A[i][i+2])/A[i][i];
//输出解X
for(j=0;j<24;j++)
printf("%12.7f",x[j]);
putchar('\n');
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答