Есть ли библиотека или функция JavaScript, которая будет решать уравнения для переменных?
Например, 9 = 3 + x
и решить для x. Но он также должен решать более сложные уравнения, которые включают синус, косинус и касательную.
Есть ли библиотека или функция JavaScript, которая будет решать уравнения для переменных?
Например, 9 = 3 + x
и решить для x. Но он также должен решать более сложные уравнения, которые включают синус, косинус и касательную.
Вы можете приблизить решение, выполнив то, что называет excel "Goal Seek" - тестирование значений для x
, пока обе стороны уравнения не совпадут. Вы можете сделать это, разделив уравнение на знак "="
, заменив каждое появление x
на значение eval
с обеих сторон и определив, падает ли разница ниже определенного порога. Хотя относительно просто, есть недостатки в этом методе (кроме того, что это приближение), например, алгоритм может думать, что обе стороны сходятся, когда на самом деле это всего лишь локальный min/max и будет расходиться после разница падает ниже вашего порога. Вам также потребуется проверить несколько стартовых точек для решения уравнений с несколькими решениями.
Для того, чтобы программа действительно решала уравнение как человека, (путем перегруппировки двух сторон уравнения и применения обратных функций, производных/интегралов и еще чего-то) намного сложнее и как-то чувствует себя полностью собственными;)
Быстрый поиск появляется algebra.js и js-solver. Я ничего не знаю о них, но они кажутся законными. У алгебры .js есть хороший API ООП, но он, похоже, не обрабатывает тригонометрические функции.
Посмотрите на script в Newton Method Program для f (x) = 0. Он решает уравнение, используя метод касания Ньютона.