Senin, 15 Maret 2010

Perkalian Matriks

Perkalian Matriks:


public class kaliMatriks
{
public static void main(String args[])
{
int[][] A={{1,2,3},{4,5,6},{7,8,9}};
int[][] B={{9,8,7},{6,5,4},{3,2,1}};
int[][] C=new int[A.length][A[0].length];
//mencetak matriks A dan matriks B
System.out.println("Matriks A x Matrix B =");
for (int baris=0;baris {
for (int kolom=0;kolom {
System.out.print(A[baris][kolom]+" ");
}
System.out.print(" ");
if (baris==1)
System.out.print("x");
else
System.out.print(" ");
System.out.print(" ");
for (int kolom=0;kolom {
System.out.print(B[baris][kolom]+" ");
}
System.out.println();
}
// perkalian matrix
System.out.println("\nHasil =");
for (int baris=0;baris {
for (int kolom=0;kolom {
C[baris][kolom]=0;
for (int k=0;k {
C[baris][kolom]+=A[baris][k]*B[k][kolom];
}
System.out.print(C[baris][kolom]+" ");
}
System.out.println();
}
}
}



Piramida bilangan:

//program untuk membuat matriks segitiga dengan
// elemen yang merupakan perkalian elemen i dan j-nya
public class MatriksSegitiga {
public static void main (String [] args) {
int matrix [] [] = new int [5][];
for (int i=0;i<5;i++)
{
matrix[i]=new int [i+1];
for (int j=0;j { matrix [i] [j] = i*j;
System.out.print (matrix[i][j]+ " ");
}
System.out.println();
}
}
}

Segitiga PASCAL:

import java.io.*;

class PascalTriangle {
public static int incDigit(int d) {
d++;
if(d==10)
return 0;
return d;
}

public static int decDigit(int d) {
d--;
if(d==-1)
return 9;
return d;
}

public static void main(String args[]) {
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int height=0;;
System.out.print("Masukkan tinggi segitiga pascal : ");
try {
height=Integer.parseInt(in.readLine());
} catch(IOException e) {
System.out.println(e);
}
String s="";
int digit;
for(int i=1;i<=height;i++) {
for (int j=0;j s+=" ";
}
digit=i%10;
for(int k=0;k s+=digit;
digit=incDigit(digit);
}
s+=digit;
for(int k=0;k digit=decDigit(digit);
s+=digit;
}
s+="\n";
}
System.out.println(s);
}
}

Perkalian Matriks:

public class Matrix {
private Integer[][] matrix;

/**
* Mengisi matriks ukuran : row x col dengan bilangan integer fill
* @param int row
* @param int col
* @param int fill
*/
private void fillWith(int row, int col, int fill){
for(int i=0; i<=row-1;i++){
for(int j=0; j<=col-1;j++){
this.matrix[i][j]=fill;
}
}
}

/**
* (KONSTRUKTOR 1) Membuat suatu matriks dengan ukuran: row x col
* @param int row
* @param int col
*/
public Matrix(int row, int col){
this.matrix = new Integer[row][col];
}

/**
* (KONSTRUKTOR 2) Membuat suatu matriks dengan mendefiniskannya secara langsung,
* baik ukuran maupun nilainya.
* @param Integer[][] initMatrix
*/
public Matrix(Integer[][] initMatrix){
this.matrix = initMatrix;
}

/**
* Mendapatkan jumlah elemen baris matrix
* @return int
*/
public int getNumberOfRow(){
return matrix.length;
}

/**
* Mendapatkan jumlah elemen kolom matrix
* @return int
*/
public int getNumberOfCol(){
return matrix[0].length;
}

/**
* Menampilkan isi dari matriks
*/
public void showMatrix(){
for(int i=0;i<=matrix.length-1;i++){
for(int j=0;j<=matrix[i].length-1;j++){
if(this.matrix[i][j] != null){
System.out.print(matrix[i][j] + " ");
}
}
System.out.println();
}
}

/**
* Melakukan operasi CROSS dengan matriks lainnya.
* @param Matrix matrix
* @return Matrix
*/
public Matrix crossWithMatrix(Matrix matrix){

int rowA = this.matrix.length;
int colA = this.matrix[0].length;
int colB = matrix.matrix[0].length;

Matrix MResult = new Matrix(rowA,colB);
MResult.fillWith(rowA, colB, 0);

for(int n=0; n<=rowA-1; n++){
for(int m=0; m<=colB-1; m++){
MResult.matrix[n][m]=0;
for(int i=0; i<=colA-1; i++){
MResult.matrix[n][m] += (this.matrix[n][i] * matrix.matrix[i][m]);
}
}
}
return MResult;
}
}








Test Matriks :
public class TestMatrix {

public static void main(String[] args) {
Matrix matriksA = new Matrix(new Integer[][] {{1,2,3},{4,5,6}});
matriksA.showMatrix();

System.out.println();

Matrix matriksB= new Matrix(new Integer[][] {{1,2},{2,1},{1,3}});
matriksB.showMatrix();

System.out.println();

Matrix matriksC= new Matrix(matriksA.getNumberOfRow(),matriksB.getNumberOfCol());

matriksC = matriksA.crossWithMatrix(matriksB);
matriksC.showMatrix();
}

}




Output :
H[0][0] = (A[0][0]*B[0][0]) + (A[0][1]*B[1][0]);
H[0][1] = (A[0][0]*B[0][1]) + (A[0][1]*B[1][1]);
H[1][0] = (A[1][0]*B[0][0]) + (A[1][1]*B[1][0]);
H[1][1] = (A[1][0]*B[0][1]) + (A[1][1]*B[1][1]);

Tidak ada komentar:

Posting Komentar