Реализация точки останова для итерации с фиксированной точкой для системы уравнений в 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)

0 ответов

Другие вопросы по тегам