У меня возникли проблемы с умножением матриц для этого кода, когда я делаю это вручную, и с помощью инструмента вычисления я получаю нечто совершенно иное, чем то, что дает мой код.Умножающиеся матрицы Java
Код:
public class mult1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
double[][] colaO = {{.9,0.05,0.05},{0.05,.9,0.05},{0.05,0.05,.9}};//orginal
double[][] colaD = {{.9,0.05,0.05},{0.05,.9,0.05},{0.05,0.05,.9}};//copy
double[][] colaC = {{.9,0.05,0.05},{0.05,.9,0.05},{0.05,0.05,.9}};//for algs
mult1 test = new mult1();
test.output(colaC);
test.Alg1(colaO, colaD, colaC);
test.output(colaC);
}
public void Alg1(double colaO[][],double colaD[][],double colaC[][]){
for(int i=0;i<colaO.length;i++){
for(int j=0;j<colaO.length;j++){
for(int k=0;k<colaO.length;k++){
colaC[i][j]+=colaO[i][k]*colaD[k][j];
}
}
}
}
public void output(double colaC[][]){
for(int i=0;i<colaC.length;i++){
for(int j=0;j<colaC.length;j++){
System.out.printf("%.3f",colaC[i][j]);
System.out.print(" ");
}
System.out.println();
}
}
}
Результаты:
---original-----
0.900 0.050 0.050
0.050 0.900 0.050
0.050 0.050 0.900
---what i'm getting------
1.715 0.143 0.143
0.143 1.715 0.143
0.143 0.143 1.715
---should be-----
0.815 0.092 0.092
0.092 0.815 0.092
0.092 0.092 0.815
Я не совсем понимаю, где я Мессинг уравнение
возможно дубликат [Умножение двух матриц в Java] (http://stackoverflow.com/questions/15733829/multiplying-two-matrices-in- java) – fernandohur
@fernandohur Это немного другая проблема, чем эта –