请教一个二维数组数学模型的求解

已知二维数组 W(0),W(1)。
求解W(n+1)=W(n)+a*(W(n)-W(n-1)).
.......
.......
W1=W;

for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
W[i][j]=W[i][j]+a*(W[i][j]-W0[i][j]);
}
}
W0=W1;
..........

我写了上述的代码,可结果怎么也不正确,好像是W0=W1出了问题,W0的新值不是原来W 赋予W1 的值,而是计算后新的W值。

本人学Java时间还不长,现急着要用Java作一个数学模型,哪位高人了解,请予以指教,我非常感激!!

数组本身是一个特殊的对象,而java里的对象都是引用赋值。
所以,W0 = W1 是让W0成了W1数组的引用,原来的W0数组啥的都变。此时对新的W0做操作,同时也就改变了W1(因为它们此时是同一个东西的引用)。
要想把W1中的值赋给W0,写循环一个一个赋值。

建议代码:
[code="java"]
int MAX; // 表示最大的n,记得给个值。
int SIZE; // 表示矩阵的大小,记得给个值。

// ...

// 用三维数组,W[0]就是第一个矩阵,W[1]就是第二个。。。
int[][][] W = new int[][][MAX];

for (int k = 0; k < MAX; k++) {
W[k] = new int[SIZE][SIZE];
if (k == 0) {
// 在这里给W[0]初值
// ...
} else if (k == 1) {
// 在这里给W[1]初值
// ...
}

for (int i = 0; i < SIZE; i++) {
    for (int j = 0; j < SIZE; j++) {
        // 在这里实现你的递推公式
        W[k][i][j] = W[k - 1][i][j]
            + a * (W[k - 1][i][j] - W[k - 2][i][j]);
    }
}

}
[/code]

恩,LS回答的正确,是引用造成的。至于数组拷贝,可以考虑使用Arrays类的copyOf方法。