Para una matriz simétrica real, escriba su programa usando el algoritmo QR y use el programa escrito para encontrar todos los valores propios de la matriz.
//Utilice el método QR variante para calcular todos los valores propios y vectores propios de una matriz tridiagonal simétrica real
// n-El número de pasos de la matriz
//b-Una matriz de longitud n Cuando se devuelve, la matriz contiene los elementos diagonales principales de la matriz tridiagonal
// c. -matriz de longitud n, cuando se devuelve, la matriz contiene los primeros n-1 elementos del elemento subdiagonal
//c-array, matriz de longitud n*n, si se mantiene la matriz unitaria, devuelve el conjunto de vectores propios de la matriz tridiagonal simétrica real
///////////////////////////// ///// //a-Una matriz de longitud n*n, que contiene una matriz simétrica real de orden n
}
else
{
p>
e=p/c[i];
r=sqrt(e*e+1.0);
c[i+1]=s*c [ i]*r;
s=1.0/r;
e=e/r;
}
> p= e *b[i]-s*g;
b[i+1]=h+s*(e*g+s*b[i]);
para ( k=0; k<=n-1; k++)
{
u=k*n+i+1;
v=u- 1 ;
h=q[u];
q[u]=s*q[v]+e*h;
q[v] = e*q[v]-s*h;
}
}
c[j]=s*p;
b[j]=e*p;
}
mientras (fabs(c[j])>d);
}
b[j]=b[j]+f;
}
para (i=0; i<=n-1; i++)
{
k=i; p=b[i];
si (i+1<=n-1)
{ p >
j=i+1;
mientras ((j<=n-1)&&(b[j]<=p))
{
k=j;
p=b[j];
j=j+1;
}
}
if (k!=i)
{
b[k]=b[i];
b[i]=p;
for (j=0; j<=n-1; j++)
{
u=j*n+i
v=j*n+k;
p=q[u];
q[u]=q[v ];
q[ v ]=p;
}
}
}
retorno(1);
}< / p>
/question/42993521.html?si=2