Einzelnen Beitrag anzeigen
Ungelesen 19.11.12, 19:50   #1
nick01987
Anfänger
 
Registriert seit: Jan 2010
Beiträge: 7
Bedankt: 0
nick01987 ist noch neu hier! | 0 Respekt Punkte
Standard Java - Matrix Potenzieren

Hi ich soll Eine gegebene Matrix 15 mal potenzieren.
M^1=M // M^2 = M*M^1 // M^3 = M*M^2 // M^4=M*M^3..... M^15=M*M^14.

Die kodierung für die Multiplikation hab ich schon nur ich komm einfach nich drauf wie ich die 4x4 Matrix 15 mal in der kodierung potenzieren und ausgeben soll. Ich hab grad erst angefangen mit java und hab noch einige Lücken.

Hier noch die Matrix die gegeben ist : 0 1 0 0
0 0 1 0
0 0 0 1
-1 1 -1 3
Code:
import java.util.Scanner;
 
class MatrixPotenz {

   public static void main(String args[]) {
   
      int m, n, p, q, sum = 0, c, d, k;
 
      // Eingabe der Zeilen und Spalten der ersten Matrix
	  Scanner in = new Scanner(System.in);
      System.out.println("Geben Sie Bitte die Anzahl der Zeilen und Spalten der ersten Matrix ein");
      m = in.nextInt();
      n = in.nextInt();
 
      int first[][] = new int[m][n];
 
      // Erste Matrix
	  System.out.println("Geben Sie die Elemente der ersten Matrix ein");
 
      for ( c = 0 ; c < m ; c++ )
         for ( d = 0 ; d < n ; d++ )
            first[c][d] = in.nextInt();
 
	  // Eingabe der Zeilen und Spalten der zweiten Matrix
      System.out.println("Geben Sie die Anzahl der Zeilen und Spalten der zweiten Matrix ein,");
      p = in.nextInt();
      q = in.nextInt();
	
	  // Falls die Berechnung unter umständen nicht möglich sein sollte, Meldung !
      if ( n != p )
         System.out.println("Matrizen mit eingegebenen Zahlen können nicht miteinander multipliziert werden.");
      else
		{ 
			 int second[][] = new int[p][q];
			 int multiply[][] = new int[m][q];
				
			// Erbeute Eingabe falls es nicht Möglich sein sollte / Berechnung im Anschluss
			 System.out.println("Geben Sie die Elemente der zweiten Matrix ein");
	 
			for ( c = 0 ; c < p ; c++ )
				for ( d = 0 ; d < q ; d++ )
				   second[c][d] = in.nextInt();
	 
			for ( c = 0 ; c < m ; c++ )
			{
				for ( d = 0 ; d < q ; d++ )
				{   
				   for ( k = 0 ; k < p ; k++ )
				   {
					  sum = sum + first[c][k]*second[k][d];
				   }
	 
				   multiply[c][d] = sum;
				   sum = 0;
				   Math.pow(1,2);
				}
			}
		
			// Ausgabe der Endmatrix
			 System.out.println("Produkt der eingegebenen Matrizen:");
	 
			for ( c = 0 ; c < m ; c++ )
			{
				for ( d = 0 ; d < q ; d++ )
				   System.out.print(multiply[c][d]+"\t");
	 
				System.out.print("\n");
			}
		}
	  	
   }
}
nick01987 ist offline   Mit Zitat antworten