JavaScript中方程组的定点迭代的断点实现

时间:2019-07-20 06:52:29

标签: javascript arrays loops for-loop fixed-point-iteration

const x = new Array(3).fill(0)
const x0 = new Array(3).fill(0)
const er = new Array(3).fill(0)
const C = [1, 1, 1];
for (let j = 0; j < 1000; j++) {
    for (let i = 0; i < C.length; i++) {
        x[i] = C[i] + 1 / x0[i];
        er[i] = Math.abs(x0[i] - x[i])/x0[i];
        x0[i] = x[i];
        if (er[i] < 0.0001){
            break;
        }
    }
}

console.log("x", x, "er", er)

我的目标是使用定点迭代方法求解x0(一维数组),并在每个解决方案收敛到0.0001公差误差内时插入一个断点。不幸的是,当第一个元素达到所需的收敛误差极限时,它打破了循环,而其他解决方案尚未达到。

在这种情况下,是否有更好的方法来实现中断?如果我不包括中断,解决方案将显示在下面(请注意,我已将参数C设置为相同的值,以便更好地了解此问题的症结所在。)

const x = new Array(3).fill(0)
const x0 = new Array(3).fill(0)
const er = new Array(3).fill(0)
const C = [1, 1, 1];
for (let j = 0; j < 1000; j++) {
    for (let i = 0; i < C.length; i++) {
        x[i] = C[i] + 1 / x0[i];
        er[i] = Math.abs(x0[i] - x[i])/x0[i];
        x0[i] = x[i];
    }
}

console.log("x", x, "er", er)

0 个答案:

没有答案