Problem:
Write a program to multiply two matrices.
Output:
Enter matrix1: 5 3 9 0 6 5 2 3 5
Enter matrix2: 0 4 2 9 5 3 1 0 5
5.0 3.0 9.0 0.0 4.0 2.0 36.0 35.0 64.0
0.0 6.0 5.0 x 9.0 5.0 3.0 = 59.0 30.0 43.0
2.0 3.0 5.0 1.0 0.0 5.0 32.0 23.0 38.0
Enter matrix2: 0 4 2 9 5 3 1 0 5
5.0 3.0 9.0 0.0 4.0 2.0 36.0 35.0 64.0
0.0 6.0 5.0 x 9.0 5.0 3.0 = 59.0 30.0 43.0
2.0 3.0 5.0 1.0 0.0 5.0 32.0 23.0 38.0
Solution:
import java.util.Scanner;
public class MultiplyMatricies
{
public static double[][] multiplyMatrix(double[][] a, double[][] b)
{
double[][] c = new double[3][3];
for (int i =0;i<c.length;i++)
{
for (int j =0;j<c[i].length;j++)
{
c[i][j] = a[i][0]*b[0][j] +
a[i][1]*b[1][j] +
a[i][2]*b[2][j];
}
}
return c;
}
public static double[][] scanA()
{
System.out.print("Enter matrix1: ");
Scanner scan = new Scanner (System.in);
double[][] a = new double[3][3];
for (int i =0;i<a.length;i++)
{
for (int j =0;j<a[i].length;j++)
{
a[i][j]= scan.nextInt();
}
}
return a;
}
public static double[][] scanB()
{
System.out.print("Enter matrix2: ");
Scanner scan = new Scanner (System.in);
double[][] b = new double[3][3];
for (int i =0;i<b.length;i++)
{
for (int j =0;j<b[i].length;j++)
{
b[i][j]= scan.nextInt();
}
}
return b;
}
public static void printMatrix(double[][] a,double[][] b, double[][] c)
{
for (int i =0; i< a.length;i++)
{
for (int j =0;j< a[i].length;j++)
{
System.out.print(a[i][j] + " ");
}
if ( i ==1)
System.out.print(" x ");
else
System.out.print(" ");
for (int j =0;j< b[i].length;j++)
{
System.out.print(b[i][j] + " ");
}
if ( i ==1)
System.out.print(" = ");
else
System.out.print(" ");
for (int j =0;j< c[i].length;j++)
{
System.out.print(c[i][j] + " ");
}
System.out.println();
}
}
public static void main (String[] args)
{
double[][] a= scanA();
double[][] b= scanB();
double[][] c = multiplyMatrix(a,b);
printMatrix(a,b,c);
}
}
No comments :
Post a Comment