资源简介
经典jacobi法 求矩阵的全部特征值与特征向量
代码片段和文件信息
#include
#include
#include
#include
#include
#define pi 3.1415926
ifstream fin(“input.txt“ios::in);
ofstream fout(“output.txt“ios::out);
int sign(double x)
{
if(x>0)
return 1;
else if(x=0)
return 0;
else
return -1;
}
void main()
{
int ijknpq;
double egtcso;
double summax;
double **A**B**R**r;
fin>>n;
fin>>e;
fout<<“经典jacobi法 求矩阵的全部特征值与特征向量(终止条件ε为“< A=new double*[n+1];
B=new double*[n+1];
R=new double*[n+1];
r=new double*[n+1];
for(i=1;i {
A[i]=new double[n+1];
B[i]=new double[n+1];
R[i]=new double[n+1];
r[i]=new double[n+1];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
fin>>A[i][j];
r[i][j]=0;
R[i][i]=0;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fin>>R[i][j];
for(k=1;;k++)
{
fout< fout< fout<<“第“<
max=0;
for(i=1;i<=n;i++) //在矩阵右上角找模最大值的值
{
for(j=i+1;j<=n;j++)
if(A[i][j]>=0)
{
if(A[i][j]-max>e)
{
max=A[i][j];
q=j;
p=i;
}
}
else
{
if((-A[i][j]-max)>e)
{
max=-(A[i][j]);
q=j;
p=i;
}
}
}
fout<<“模最大值的下标为: p=“< fout<<“模最大值对应的数值为: “<
if (fabs(A[p][p]-A[q][q])>e) //A[p][p]!=A[q][q]时
{
g=(A[p][p]-A[q][q])/(2*A[p][q]); //(3.2.19)
t=sign(g)*(-fabs(g)+sqrt(1+pow(g2))); //(3.2.18)
c=1/sqrt(1+pow(t2)); //(3.2.16)
s=t*c; //(3.2.17)
fout<<“A[p][p]!=A[q][q]“< }
else //A[p][p]=A[q][q]时
{
o=(pi/4)*sign(A[p][q]);
c=cos(o);
s=sin(o);
}
fout<<“sin和cos的值分别为 “<
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
B[i][j]=A[i][j];
B[p][p]=A[p][p]*c*c+A[q][q]*s*s+A[p][q]*(2*c*s); //(3.2.9)
B[q][q]=A[p][p]*s*s+A[q][q]*c*c-A[p][q]*(2*c*s);
B[p][q]=(A[q][q]-A[p][p])*s*c+A[p][q]*(1-2*s*s);
B[q][p]=B[p][q];
for(i=1;i<=n;i++) //(3.2.10)
{
if(i!=p&&i!=q)
{
B[p][i]=A[i][p]*c+A[i][q]*s;
B[i][p]=B[p][i];
B[q][i]=-1*A[i][p]*s+A[i][q]*c;
B[i][q]=B[q][i];
}
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
A[i][j]=B[i][j];
fout< fout<<“经计算得,A为:“< for(i=1;i<=n;i++)
{
fout< for(j=1;j<=n;j++)
fout< }
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
r[
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 58 2010-10-28 20:09 (yi)3.2.2经典jacobi法 p89\input.txt
文件 4225 2010-10-28 20:09 (yi)3.2.2经典jacobi法 p89\output.txt
文件 4080 2010-10-11 19:44 (yi)3.2.2经典jacobi法 p89\yi经典jacobi法 求矩阵的全部特征值与特征向量.cpp
目录 0 2010-10-28 20:10 (yi)3.2.2经典jacobi法 p89
----------- --------- ---------- ----- ----
8363 4
- 上一篇:黑莓9630 移动SB
- 下一篇:DXF轨迹图转G代码工具
评论
共有 条评论