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)