请您先登录,才能继续操作

0 0

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

已知二维数组 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作一个数学模型,哪位高人了解,请予以指教,我非常感激!!
2009年12月28日 14:02

2个答案 按时间排序 按投票排序

0 0

采纳的答案

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

建议代码:

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]);
		}
	}
}

2009年12月29日 08:09
0 0

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

2009年12月29日 09:10

相关推荐

    使用Excel两个一维数组构造二维数组.rar

    本案例"使用Excel两个一维数组构造二维数组.rar"重点讲解如何通过Excel的数组公式,将两个一维数组合并成一个二维数组,并进行加法运算。 首先,我们有两个一维数组,它们可能代表不同的数据系列或者是在不同维度上...

    C++一维数组二维数组写入txt,从txt中读取数据存到一维数组二维数组

    声明二维数组时,需要提供行数和列数,如 `int matrix[3][4]` 创建了一个3行4列的二维数组。 3. **指针**:在C++中,指针是存储内存地址的变量。可以使用指针来动态管理数组,特别是当数组大小在运行时确定时。例如...

    labview一维数组转二维数组

    一维数组转二维数组

    二维数组转一维数组

    将labview内二维数组方便的转化为一维数组使用

    易语言学习进阶二维数组赋值

    下面是一个简单的易语言二维数组赋值源码示例,它创建一个二维数组并填充1到9的数字: ```易语言 .整数型 数组名[3, 3] .循环(3) .循环(3) 数组名[循环索引1, 循环索引2] = 循环索引1 * 3 + 循环索引2 + 1 ...

    Q1064245.zip c#winform如何实现一维数组转二维数组并保存在某处

    在C#编程中,一维数组到二维数组的转换是一个常见的操作,特别是在处理表格数据或者在Windows Forms(WinForm)应用程序中创建控件布局时。本篇将详细讲解如何进行这种转换以及如何保存二维数组的数据。 首先,让...

    C语言二维数组编程练习

    1. **数组初始化**:如何声明并初始化一个二维数组,包括静态初始化和动态分配内存。 2. **遍历数组**:使用for循环遍历二维数组的所有元素,进行简单的操作,如打印或计算。 3. **指针操作**:使用指针遍历数组,...

    C#实现对二维数组排序的方法

    方法内部首先检查`sortCol`是否在数组的列范围内,然后创建一个新的`DataTable`对象,并根据二维数组的第二维度(列)为每一列添加`DataColumn`。接着,将二维数组的数据逐行加载到`DataTable`中。完成数据加载后,...

    读取二维数组所有数据_labview读取数组_

    在这里,你可以找到“创建数组”VI,它可以用来创建一个指定大小的二维数组。你需要提供行数和列数作为输入,然后默认填充0或者自定义初始值。 2. **连接数据源**: 如果二维数组数据来自外部源,如文件或硬件设备,...

    C# json 一维数组 和 二维数组的转换

    C# json 一维数组 和 二维数组的转换 写的非常详细,对大家有帮助

    JNA调用C++动态库,传入二维数组,通过C++返回二维数组,java调用C++完整案例

    这里我们声明了一个名为`processArray`的函数,它接受一个二维整型数组作为输入,另一个二维整型数组作为输出,返回一个整型值。 接下来,加载C++动态库。在Java中,我们可以通过以下方式加载库: ```java MyDLL ...

    二维数组如何进行冒泡排序

    - 使用双层循环,从二维数组的每一个元素出发,将元素逐个添加到一维数组中。 - 示例代码片段: ```c int b[6]; // 定义一维数组 int k = 0; // 初始化计数器 for (int i = 0; i ; i++) { for (int j = 0; j ...

    将二维数组进行线性插值

    在本场景中,我们处理的是一个二维数组,这种数据结构通常用来存储矩阵或图像数据。以下是关于二维数组和线性插值的详细知识: 二维数组在计算机科学中,是一个多维数据结构,它由一串连续的内存位置组成,这些位置...

    二维数组作为函数形参的两种方法

    因此,当我们传递一个二维数组的名称给函数时,实际上是传递了一个指向该数组第一行首元素的一维指针。下面是一个简单的示例: ```cpp // 定义函数,通过指针接收二维数组 void sum2DArray(int (*arr)[3][3], int ...

    二维数组排序

    public class Test { // 二维数组冒泡排序 public static void main... //一维数组的长度(二维数组的列*宽) System.out.println("原始二维数组:"); //打印原始二维数组 for(i=0;i;i++) { for(j=0;j;j++) {

    实现一个“可变长二维数组”,这个二维数组的行数可由输入决定,每行的元素个数仍可由输入决定。每个数组元素值都是1.

    实现一个“可变长二维数组”,这个二维数组的行数可由输入决定,每行的元素个数仍可由输入决定。每个数组元素值都是1. 执行结果如下: 请输入行数: 5 请输入第1行的元素个数: 20 请输入第2行的元素个数: 34 请...

    读取二维数组所有数据_labview_读取二维数组_

    在提供的“读取二维数组所有数据”文件中,可能包含了一个实际的VI示例,演示了如何读取并处理二维数组。这个VI可能包含了以下部分: - 一个初始化或填充数据的子VI,用来创建二维数组。 - 使用“数组索引”或“数组...

    LabVIEW二维数组排序.rar

    在LabVIEW中,二维数组是数据处理和分析中常见的数据结构。它由多个一维数组按行或列堆叠而成,可以表示表格或其他多维数据。本教程将深入探讨如何在LabVIEW中对二维数组进行排序,这在处理实验数据、进行算法分析或...

    二维数组表单提交

    在实际应用中,提交这个二维数组通常会涉及到Ajax请求,将数据以JSON格式发送到服务器。JQuery的`$.ajax`或`$.post`方法可以轻松实现这一点,例如: ```javascript $.ajax({ url: 'submit_data.php', type: 'POST...

    二维数组转json的java源码

    在上面的代码中,我们首先定义了一个二维数组,然后创建了一个JSONObject和一个JSONArray。通过双重循环遍历二维数组,将每一行转换为一个JSONObject,并将每个JSONObject的键设置为二维数组的第一行(即列名),值...

Global site tag (gtag.js) - Google Analytics