Библиотека решателей JavaScript

Есть ли библиотека или функция JavaScript, которая будет решать уравнения для переменных?

Например, 9 = 3 + x и решить для x. Но он также должен решать более сложные уравнения, которые включают синус, косинус и касательную.

Ответ 1

Вы можете приблизить решение, выполнив то, что называет excel "Goal Seek" - тестирование значений для x, пока обе стороны уравнения не совпадут. Вы можете сделать это, разделив уравнение на знак "=", заменив каждое появление x на значение eval с обеих сторон и определив, падает ли разница ниже определенного порога. Хотя относительно просто, есть недостатки в этом методе (кроме того, что это приближение), например, алгоритм может думать, что обе стороны сходятся, когда на самом деле это всего лишь локальный min/max и будет расходиться после разница падает ниже вашего порога. Вам также потребуется проверить несколько стартовых точек для решения уравнений с несколькими решениями.

Для того, чтобы программа действительно решала уравнение как человека, (путем перегруппировки двух сторон уравнения и применения обратных функций, производных/интегралов и еще чего-то) намного сложнее и как-то чувствует себя полностью собственными;)

Ответ 2

Быстрый поиск появляется algebra.js и js-solver. Я ничего не знаю о них, но они кажутся законными. У алгебры .js есть хороший API ООП, но он, похоже, не обрабатывает тригонометрические функции.