⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 收集的C语言算法程序
💻
字号:
幂法求矩阵最大特征值和特征向量2007-07-16 18:56#include<iostream>
#include<math.h>
using namespace std;
#define n 3                          //三阶矩阵
#define N 20
#define err 0.0001

void main()
{
int i,j,k;
double A[n][n],X[n],u,y[n],max;

cout<<"Please input the matrix:\n";
for(i=0;i<n;i++)
for(j=0;j<n;j++)
   cin>>A[i][j];          //输入矩阵
cout<<"Please input the initialized vector:\n";
for(i=0;i<n;i++)
cin>>X[i];               //输入初始向量

k=1;
u=0;
while(1)
{
max=X[0];
for(i=0;i<n;i++)
{
if(max<X[i]) max=X[i];          //选择最大值
}

for(i=0;i<n;i++)
y[i]=X[i]/max;                 

for(i=0;i<n;i++)
{
X[i]=0;
for(j=0;j<n;j++)
X[i]+=A[i][j]*y[j];                     //矩阵相乘
}

if(fabs(max-u)<err)                                     
{
   cout<<"The eignvalue of A is:"<<max<<"\n";
   cout<<"The eignvector of A is:";
   for(i=0;i<n;i++) 
    cout<<X[i]<<" ";                             
   break;
}
else 
{
   if(k<N) {k=k+1;u=max;}
      else {cout<<"error\n";break;}          
}

}
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -