Algoritma dan Pemrograman : Implementasi Eigen Value Menggunakan Metode Power
Table of Contents
Pelengkap flowchart utama diatas :
Implementasi dalam pemrograman java :
/** * * @author ABD. CHARIS FAUZAN */ public class EigenValue_MetodePower { private double matriks[][]; public EigenValue_MetodePower() { int row, col; double ea = 100; double es = 5; double max, lamda = 0, oldLamda; double x0[]; double mul[], abs[], x[]; double A[][] = { {2, 8, 10}, {8, 4, 5}, {10, 5, 7} }; row = A.length; col = A[0].length; matriks = new double[row][col]; x0 = new double[row]; abs = new double[row]; x = new double[row]; for (int i = 0; i < row; i++) { x0[i] = 1; for (int j = 0; j < col; j++) { matriks[i][j] = A[i][j]; } } do { mul = MMULT(matriks, x0); for (int i = 0; i < mul.length; i++) { abs[i] = Math.abs(mul[i]); } max = getMax(abs); oldLamda = lamda; lamda = max; for (int i = 0; i < mul.length; i++) { x[i] = mul[i] / max; x0[i]=x[i]; } ea = Math.abs((lamda - oldLamda) / lamda) * 100; System.out.println("Lamda = " + lamda); System.out.println("Ea = " + ea); System.out.println("--------------------------"); } while (es<=ea); System.out.println("Lamda : "+lamda); } private double getMax(double[] tmp) { double max = tmp[0]; for (int i = 0; i < tmp.length; i++) { if (max < tmp[i]) { max = tmp[i]; } } return max; } // perkalian matrik double[] MMULT(double A[][], double x[]) { double[] result = new double[x.length]; for (int i = 0; i < A.length; i++) { double temp = 0; for (int j = 0; j < A.length; j++) { temp += A[i][j] * x[j]; } result[i] = temp; } return result; } public static void main(String[] args) { new EigenValue_MetodePower(); } }
Hasil program ketika dijalankan
Post a Comment