JS中二维数组的赋值
试着写一个矩阵的LU分解,浏览器报错为 Uncaught TypeError: Cannot set property '0' of undefined
查了一些目前还不能解决,猜着是自己对数组的操作不懂
希望路过的您指点一下,谢谢!
html>
习题2-矩阵LU分解原矩阵为
L为
U为
//输入数组
var myMatrix = [
[2,2,3],
[4,7,7],
[-2,4,5]
];
var myLength = myMatrix.length;
var l= new Array(myLength);
var u = new Array(myLength);
//计算
for(j=0;j
u[0][j] = myMatrix[0][j];//报错行
}
for(k=1;k
l[k][0] = myMatrix[k][0]/u[0][0];
}
for(i=1;i
//求Uij
for(j=i;j
//求和Lit*Utj
for(t=0;t
var tmp =0;
tmp = tmp + l[i][t]*u[t][j];
}
u[i][j] = a[i][j]-tmp;
}
//求Lki
for(k=i+1;k
//
for(t2=0;t2
var tmp2 = 0;
tmp2 = tmp2 + l[k][t2]*u[t2][j];
}
l[k][i] = 1/u[i][i]*(a[k][i] - tmp2);
}
}
document.getElementById("myA").innerHTML = myMatrix;
document.getElementById("resultL").innerHTML = l;
document.getElementById("resultU").innerHTML = u;
分享到:
更多
------解决方案--------------------
u[0] = new Array();//这里该一下
for(j=0;j
u[0][j] = myMatrix[0][j];//报错行
}
for(k=1;k
l[k] = [];//这里改一下。同时,为啥k是从1开始的?
l[k][0] = myMatrix[k][0]/u[0][0];
}
后面的a数组没有看到,你自己测试再改动下。
------解决方案--------------------
一维数组不能当做二维数组使用
var u = new Array(myLength);一维数组
u[0][j] = myMatrix[0][j];当做二维数组使用了
l一样
a哪来的