日期:2014-05-16  浏览次数:20359 次

JS中二维数组的赋值
试着写一个矩阵的LU分解,浏览器报错为 Uncaught TypeError: Cannot set property '0' of undefined
查了一些目前还不能解决,猜着是自己对数组的操作不懂
希望路过的您指点一下,谢谢!

<!DOCTYPE html>
<html>
<head>
    <title>习题2-矩阵LU分解</title>
</head>
<body>

<p id="myA">原矩阵为</p>
<p id="resultL">L为</p>
<P id="resultU">U为</P>
<script>
    //输入数组
    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<myLength;j++){
        u[0][j] = myMatrix[0][j];//报错行
    }

    for(k=1;k<myLength;k++){
        l[k][0] = myMatrix[k][0]/u[0][0];
    }

    for(i=1;i<myLength;i++){
        //求Uij
        for(j=i;j<myLength;j++){
            //求和Lit*Utj
            for(t=0;t<i-1;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<myLength;k++){
             //
             for(t2=0;t2<i-1;t++){
                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;
</script>

</body>
</html>