ホームページ >Java >&#&チュートリアル >Java での行列乗算
Java の行列は配列に格納されます。 1 次元配列と 2 次元配列が存在し、配列として知られる次元の行列の形式で値を格納します。 1 次元配列では 1 次元に数値のみが格納されますが、2 次元配列では数値は行と列の形式で格納されます。行列は、Java プログラミング言語で数値の加算、減算、乗算に使用できます。行列の乗算は、Java プログラミング方法論の中で最も複雑なタスクの 1 つです。この記事では Java で行列の乗算を実行し、2 つの行列を乗算して適切な出力を提供する方法を示します。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
Java プログラミング言語における行列の乗算は、非常に簡単な方法で実行されます。まず、最初の 2 次元配列に数値を入力し、次に 2 番目の 2 次元配列に要素の数値を入力します。数値は行ごとに追加されます。つまり、最初の行が作成され、次に 2 行目の数値が作成されます。次に、2 番目の行列が同様の方法で作成され、行列内の数値の乗算を開始します。
以下は行列乗算の例です
コーディング例では、2 つの行列が行ごとに入力され、行列の乗算が実行される様子が示されています。 2 つの行列の乗算のコードを以下に示します。宣言されている配列は 3 つあります。 1 番目と 2 番目の行列の積が 3 番目の行列の内側に表示されます。次に、行列は、配列内の 2 つの行列の積である出力として表示されます。
コード:
import java.util.Scanner; public class MatixMultiplication { public static void main(String args[]) { int n; Scanner input = new Scanner(System.in); System.out.println("Enter the number of rows and columns of the matrices. They must be equal."); n = input.nextInt(); int[][] a = new int[n][n]; int[][] b = new int[n][n]; int[][] c = new int[n][n]; System.out.println("Enter the numbers of the first matrix. Numbers will be added row wise \n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = input.nextInt(); } } System.out.println("Enter the numbers of the 2nd matrix. Numbers will be added row wise. \n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { b[i][j] = input.nextInt(); } } System.out.println("Generating the multiplication of matrices....."); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { c[i][j] = c[i][j] + a[i][k] * b[k][j]; } } } System.out.println("The product of the matrices is shown as below"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.print(c[i][j] + " "); } System.out.println(); } input.close(); } }
2*2 行列の出力が表示されます。最初の行列は、{ 1,2
の要素で構成されます。3,4}
2 番目の行列にも同じ要素が含まれています。サンプル出力では、行列とサンプル出力の乗算に注目してください。マトリックスの要素は非常に優れた方法で生成されます。生成された出力
{1,2 { 1,2 { 7, 10
3,4} * 3,4} = 15, 22}
出力:
コーディング例 2 では、同じプログラムを使用していますが、乗算に 3 次元配列を使用しています。ここで 3 * 3 行列の乗算を使用し、出力を別の 3 次元配列で表示します。
コード:
import java.util.Scanner; public class Matix { public static void main(String args[]) { int n; Scanner input = new Scanner(System.in); System.out.println("Enter the number of rows and columns of the matrices. They must be equal."); n = input.nextInt(); int[][] a = new int[n][n]; int[][] b = new int[n][n]; int[][] c = new int[n][n]; System.out.println("Enter the numbers of the first matrix. Numbers will be added row wise \n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = input.nextInt(); } } System.out.println("Enter the numbers of the 2nd matrix. Numbers will be added row wise. \n"); for (int z = 0; z < n; z++) { for (int k = 0; k < n; k++) { b[z][k] = input.nextInt(); } } System.out.println("Generating the multiplication of matrices....."); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { c[i][j] = c[i][j] + a[i][k] * b[k][j]; } } } System.out.println("The product of the matrices is shown as below"); for (int k = 0; k < n; k++) { for (int l = 0; l < n; l++) { System.out.print(c[k][l] + " "); } System.out.println(); } input.close(); } }
2 番目のサンプル コードから、2 つの 3 * 3 行列を出力します。最初の行列は {1,1,1
です1,1,1
1,1,1}
2 番目の行列も同じです。行列の乗算は次の方法で生成されます
{1,1,1 {1,1,1 { 3,3,3
1,1,1 * 1,1,1 = 3,3,3
1,1,1} 1,1,1} 3,3,3}
出力:
この記事では、2 * 2 行列と 3 * 3 行列の乗算を見て、その出力が非常にうまく表示されています。出力は明確に与えられます。行列の乗算を使用すると、行列の 4*4 の乗算を作成することもできます。塩基はプログラムの最初のステップで尋ねられます。 5 * 5、6 * 6 の行列も作成できます。ベースが多ければ多いほど、プログラムは複雑になります。
ただし、行列の単純な乗算は、X 軸、Y 軸、または Z 軸を反射軸として点の反射を計算する場合に非常に役立ちます。これらの単純な概念は座標幾何学で使用され、幾何学アプリケーションの数学的モデリングでも使用されます。
以上がJava での行列乗算の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。