幂法的原理可参考此篇论文:
本文求解的是 3 阶矩阵最大特征值及其特征向量
下面是其 C++ 实现代码:
#include#include #include #include #include using namespace std;double A[3][3];double Y[3]={1,1,1};double X[3]={0,0,0};int row=0; int col=0;double max1=0;void open_file(){ FILE *fp; fp = fopen("array.txt", "r"); //3*3矩阵由外部读入 if(fp==NULL) cout<<"File opened failed!"< tmp) tmp=fabs(X[i]); } for(int i=0;i<3;i++) { Y[i]=X[i]/tmp; } max1=tmp;}int main(){ cout < 0.000001) { ago=max1; for(int j=0;j<3;j++) { feature_vector[j]=Y[j]; } mult(); to1(); cout<<"k= "< <<" "; for(int i=0;i<3;i++) cout< <<" "; cout<
部分参数可修改用于扩展