Я хочу решить уравнение вида 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, но мои проблемы / проблемы:
- Решено только первое уравнение (т. Е. A [0], B [0], C [0]), остальные два возвращают только начальные предположения x1.
- Есть ли лучший способ достичь моей цели, так как цикл итератора в цикле for может быть вычислительно дорогостоящим, когда A.length >>> large?