Реализация точки останова для итерации с фиксированной точкой для системы уравнений в Javascript
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)
Моя цель состоит в том, чтобы найти для x, одномерный массив, используя метод итерации с фиксированной точкой и вставить точку останова, когда каждое решение сходится в пределах погрешности 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)