You are on page 1of 6

Tìm giá trị riêng- vecto riêng

A= B= C=
Ta có:

A= n=3 Ta tìm
Lần 1: Chọn

Lần 2: Chọn

Gía trị riêng là nghiệm của phương trình: =0 3

Ta có: 3

= . =

= . = Vậy vectơ riêng của A là =


B= n=3 Ta tìm
Lần 1: Chọn

Lần 2:Chọn

Gía trị riêng là nghiệm của phương trình: 5.31

Ta có: 5.31

= . =

= . = Vậy vectơ riêng của B là =


C= n=3 Ta tìm
Lần 1:Chọn

Lần 2:Chọn

Gía trị riêng là nghiệm của phương trình: , , 6

Ta có:

= . =

= . = Vậy vectơ riêng của C là =

. = Vậy vectơ riêng của C là =

6
. = Vậy vectơ riêng của C là =

#include <bits/stdc++.h>

using namespace std;


int n;
float a[100][100], a1[100][100], a2[100][100], c[100][100];
void insertArray()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
scanf("%f", &a[i][j]);
}
}
void OneArray()
{
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
{
if (i == j)
{
a1[i][j] = 1;
a2[i][j] = 1;
}
if (i != j)
{
a1[i][j] = 0;
a2[i][j] = 0;
}
}
}
void ArrayMulti()
{
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
{
float m = 0;
for (int k = 1; k <= n; k++)
{
c[i][j] = m + a1[i][k] * a[k][j];
m = c[i][j];
}
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
{
float m = 0;
for (int k = 1; k <= n; k++)
{
a[i][j] = m + c[i][k] * a2[k][j];
m = a[i][j];
}
}
}
void ProcessArray()
{
int i = 1;
while (i != n)
{
OneArray();
for (int j = 1; j <= n; j++)
a1[n - i][j] = a[n - i + 1][j];
float m = a[n - i + 1][n - i];
for (int j = 1; j <= n; j++)
if (j == n - i)
a2[n - i][j] = 1.0 / m;
else
a2[n - i][j] = - a[n - i + 1][j] / m;
ArrayMulti();
i++;
}
}
void printArray(float a[][100])
{

for (int i = 1; i <= n; i++)


a[1][i]=-a[1][i];
printf("x^%d+",n);
for(int i=1;i<n;i++)
printf(" %lfx^%d+ ",a[1][i],n-i);
printf(" %lf = 0", a[1][n]);

}
int main()
{
scanf("%d", &n);
insertArray();
OneArray();
ProcessArray();
printArray(a);
}

You might also like