Использование Солвера Ньютона-Рафсона для системы уравнений с одной переменной в Javascript - PullRequest
1 голос
/ 13 марта 2019

Я хочу решить уравнение вида ax ^ 2 -bx + c для различных значений определенных параметров a, b и c в одномерных массивах A, B и C соответственно.

const A = [1, 1, 1]
const B = [5, 3, 2];
const C = [4, 2, 1];
var i = 0
var x0 = [10, 12, 11];
var x1 = [];
var fx = [];
var fxp = [];
const tol = [0.1, 0.1, 0.1]
for (let j = 0; j < A.length; j++) {
    do {
        x1[j] = x0[j];
        fx[j] = A[j] * x1[j] * x1[j] - B[j] * x1[j] + C[j]; //function 
        fxp[j] = 2 * A[j] * x1[j] - B[j]; //first derivative of f(x)
        x0[j] = x1[j] - fx[j] / fxp[j];
        i++
        if (i > 100) break;
    } while (x0[j] - x1[j] < tol[j])
}

console.log("x1", x1)

Я поместил итератор цикла do-while в цикл for, но мои проблемы / проблемы:

  1. Решено только первое уравнение (т. Е. A [0], B [0], C [0]), остальные два возвращают только начальные предположения x1.
  2. Есть ли лучший способ достичь моей цели, так как цикл итератора в цикле for может быть вычислительно дорогостоящим, когда A.length >>> large?
...