首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

求最大特征值及其特征向量的有关问题(4阶内)

2012-03-24 
求最大特征值及其特征向量的问题(4阶内)#includestdio.h#includemath.h#define N 3#define eps 1e-10#

求最大特征值及其特征向量的问题(4阶内)
#include<stdio.h>
#include<math.h>
#define N 3
#define eps 1e-10
#define KM 100
double MaxValue(double x[],int n)
{
  double Max=x[0];
  int i;
  for (i=1;i<n;i++)
  if(fabs(x[i])>fabs(Max))Max=x[i];
  return Max;
 }

void PowerMethod(double *A)
{
  double U[N],V[N],r1,r2,temp;
  int i,j,k=0;
  for(i=0;i<N;i++)U[i]=1;
  while(k<KM)
  {
  k++;
  for(i=0;i<N;i++)
  {
  temp=0;
  for(j=0;j<N;j++)temp+=*(A+i*N+j)*U[j];
  V[i]=temp;
  }
  for(i=0;i<N;i++)U[i]=V[i]/MaxValue(V,N);
  if(k==1)r1=MaxValue(V,N);
  else r2=MaxValue(V,N);
  if(fabs(r2-r1)<eps)break;
  r1=r2;
  }
  printf("r=%.4f\n",r2);
  for(i=0;i<N;i++)printf("x[%d]=%.4f\n",i+1,U[i]);

}

void main()
{
   
  //double A[N][N]={17,-2,-2,-2,14,-4,-2,-4,14} ;
//double A[N][N] = { 1,0,0,2,3,0,4,5,6};
//double A[N][N] = {2,1,3,4,2,6,6,3,9};
//double A[N][N] = {8,-2,-1,-2,5,-2,-3,-6,6};
double A[N][N] = {-4,-10,0,1,3,0,3,6,1};
//double A[N][N] = {3,-2,-4,-2,6,-2,-4,-2,3};

//double A[N][N] = {3,-1,3,0,1,1,4,-1,0,0,5,-3,0,0,3,-1};
//double A[N][N] = {1,1,2,2};
//double A[N][N] = {1,9,1/9.0,1};
//double A[N][N]={17,-2,-2,-2,14,-4,-2,-4,14} ;
//double A[N][N] = { 1,0,0,2,3,0,4,5,6};
//double A[N][N] = {2,1,3,4,2,6,6,3,9};
//double A[N][N] = {8,-2,-1,-2,5,-2,-3,-6,6};
//double A[N][N] = {-4,-10,0,1,3,0,3,6,1};
//double A[N][N] = {3,-2,-4,-2,6,-2,-4,-2,3};

//double A[N][N] = {3,-1,3,0,1,1,4,-1,0,0,5,-3,0,0,3,-1};
//double A[N][N] = {1,1,2,2};
//double A[N][N] = {1,7,9,9,1/7.0,1,7,8,1/9.0,1/7.0,1,7,1/9.0,1/8.0,1/7.0,1};
//double A[N][N] = {1,7,2,1/7.0,1,1,1/2.0,1,1};

//double A[N][N] = {1,2,5,1/2.0,1,3,1/5.0,1/3.0,1};
  PowerMethod(A[0]);

}
目地是求出一个二维三维或者四维矩阵的最大特征值极其特征向量(阶数小于等于4),但是上面的程序只能求出模最大的特征值。比如特征值为1,1,-2时候则求的值为-2,而实际我需要的是1,那位有求矩阵的最大特征值及其对应的特征向量比较完善的代码啊,烦劳发送有的话发至邮箱2451890874@qq.com,非常感谢啊,这几天都在捣鼓这个,还是搞不定,郁闷啊。那位大侠帮帮忙把!

[解决办法]
matlab里面有这个么
[解决办法]
如果你要求绝对值最小的特征值,你得求A得逆矩阵的最大特征值

热点排行