Theoretical Paper
- Computer Organization
- Data Structure
- Digital Electronics
- Object Oriented Programming
- Discrete Mathematics
- Graph Theory
- Operating Systems
- Software Engineering
- Computer Graphics
- Database Management System
- Operation Research
- Computer Networking
- Image Processing
- Internet Technologies
- Micro Processor
- E-Commerce & ERP
- Dart Programming
- Flutter Tutorial
- Numerical Methods Tutorials
Practical Paper
Industrial Training
Greatest Eigen value and Eigen vector using Power Method
Source Code:
#include< stdio.h>
#include< math.h>
#include< stdlib.h>
void matrix_mul(float matrix1[3][3],float matrix2[3][1],float matrix3[3][1]){
int i,j,k;
for(i = 0; i < 3; i++){
for(j = 0; j < 1; j++){
matrix3[i][j] = 0;
for(k = 0; k < 3; k++){
matrix3[i][j] += matrix1[i][k]*matrix2[k][j];
}
}
}
}
float findmax(float array[3][1]){
int i;
float maximum;
maximum = array[0][0];
for(i = 0; i < 3; i++){
if(maximum < array[i][0])
maximum = array[i][0];
}
return maximum;
}
int isEqual(float matrix1[3][1], float matrix2[3][1]){
if(matrix1[0][0] == matrix2[0][0]
&& matrix1[1][0] == matrix2[1][0]
&& matrix1[2][0] == matrix2[2][0])
return 1;
return 0;
}
int main(){
float matrix1[3][3], matrix2[3][1],result[3][1];
float eigenValue;
int i,j,k;
printf("Enter 3x3 matrix:\n");
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
scanf("%f",&matrix1[i][j]);
}
}
for(i = 0; i < 3; i++){
for(j = 0; j < 1; j++){
matrix2[i][j] = 1.0;
}
}
while(1){
matrix_mul(matrix1,matrix2,result);
eigenValue = findmax(result);
for(i = 0; i < 3; i++){
result[i][0]/=eigenValue;
}
if(isEqual(matrix2,result)==1){
break;
}
for(i = 0; i < 3; i++){
matrix2[i][0] = result[i][0];
}
}
printf("Greatest Eigen Value = %f", eigenValue);
printf("\nAny one of Eigen Vector: \n");
for(i = 0; i < 3; i++){
for(j = 0; j < 1; j++){
printf("%.2f",result[i][j]);
printf("\t");
}
printf("\n");
}
return 0;
}
Hi I am Pluto.
