Java 和我的高斯-乔丹消去码混淆了吗
所以,我一直在从Rosetta代码的伪代码中研究java算法,我认为它非常接近于工作,只是值的最后一列是错误的。我想知道是否有人可以偷看一下,告诉我我的错误。我试过搜索,但就是找不到。谢谢Java 和我的高斯-乔丹消去码混淆了吗,java,algorithm,Java,Algorithm,所以,我一直在从Rosetta代码的伪代码中研究java算法,我认为它非常接近于工作,只是值的最后一列是错误的。我想知道是否有人可以偷看一下,告诉我我的错误。我试过搜索,但就是找不到。谢谢 public static double[][] gaussJordan2(double[][] gauss) { int lead = 0; int rowCount = gauss.length; int columnCount = gauss[0].length; fo
public static double[][] gaussJordan2(double[][] gauss)
{
int lead = 0;
int rowCount = gauss.length;
int columnCount = gauss[0].length;
for(int r = 0; r < gauss.length; r++)
{
if(columnCount <= lead)
{
//return gauss;
}
int i = r;
while(gauss[i][lead] == 0)
{
i++;
if(rowCount == i)
{
i = r;
lead++;
if(columnCount == lead)
{
//return gauss;
}
}
}
swapRows(gauss, i, r);
if(gauss[r][lead] != 0)
{
for(int j = 0; j < gauss[r].length; j++)
{
gauss[r][j] /= gauss[r][lead];
}
}
for(i = 0; i < rowCount; i++)
{
if (i != r)
{
double f = gauss[i][lead];
for (int k = 0; k < gauss[r].length; k++)
{
gauss[i][k] -= f * gauss[r][k];
printMatrix(gauss);
}
}
}
lead++;
}
printMatrix(gauss);
return gauss;
}
公共静态双[][]高斯约旦2(双[][]高斯)
{
int铅=0;
int rowCount=高斯长度;
int columnCount=高斯[0]。长度;
对于(int r=0;r if(columnCount)你能给我们一个示例输入以及预期和实际的输出吗?你应该试着写一些单元测试。查找JUnit。谢谢你的快速回复。Oops:这是我传递给它的数组:double[][]a={{1,2,-1,-4},{2,3,-1,-11},{-2,0,-3,22};我期望这个数组能输出:{{10-8},{01-01},{0 0 1-2}但我知道:{1.0 0.0 0 0.0 80.0},{0.0 1.0 0 0.0-29.0},{-0.0-0.0 1.0 26.0}问题解决了,还是没有解决?
double grab = 0.0;
double place = 0.0;
for (int i = highRow; i < a.length; i++) {
for (int j = 0; j < a[0].length; j++) {
grab = a[highRow][j];
place = a[lowRow][j];
a[highRow][j] = place;
a[lowRow][j] = grab;
}
}
printMatrix(a);
return a;
}