Следующее выражение будет вычислено:

Загрузка … пожалуйста подождите!
Это займет несколько секунд.

Используйте скобки, если необходимо. См. также «Примеры». Измените переменную дифференцирования и порядок в «Настройки».

Поддержка

David Scherfgen

Вам помог мой калькулятор? Расскажите своим друзьям об этом Калькуляторе и Вы тоже сможете мне помочь!

Результаты вычислений
Загрузка …

Наверху страницы введите функцию, которую Вы хотите дифференцировать. Переменная дифференцирования и другие параметры могут быть изменены в разделе «#{options}». Нажмите «#{go}» чтобы запустить вычисление производной. Результат будет показан ниже на этой странице.

Как работает Калькулятор Производных

Для тех, кому интересны технические подробности, в этой части рассказывается, как устроен и работает Калькулятор Производных.

Сначала синтаксический анализатор (па́рсер) анализирует исходное математическое выражение. Он преобразует его в форму, более удобную для компьютера, а именно в форму дерева (см. картинку ниже). В процессе такого преобразования Калькулятор Производных должен соблюдать порядок операций с учетом их приоритета. Так же, как и то, что в математических выражениях знак умножения часто опускается, например, мы обычно пишем 5x вместо 5*x. Калькулятор Производных должен уметь понимать такие случаи и сам добавлять знак умножения.

Па́рсер написан на JavaScript и основывается на алгоритме сортировочной станции, поэтому может исполняться прямо в браузере. Это дает возможность генерировать удобочитаемое выражение на ходу, преобразуя получающееся дерево в код для LaTeX (Ла́тех). С помощью MathJax происходит генерация картинки и ее отображение в браузере.

По нажатию кнопки «#{go}» Калькулятор Производных отправляет математическое выражение вместе с параметрами (переменной дифференцирования и порядком) на сервер, где оно анализируется еще раз. В этот раз выражение преобразуется в форму, которая будет понятна системе компьютерной алгебры Maxima (Ма́ксима).

Как работает Калькулятор Производных

Ма́ксима вычисляет производную математической функции. Результат Ма́ксимы снова преобразуется в Ла́тех, а затем показывается пользователю. Как и любая система компьютерной алгебры, она применяет ряд правил, чтобы упростить функцию и вычислить производные в соответствии с общеизвестными правилами дифференцирования.

Отображение шагов вычисления является более сложной задачей. В этом случае калькулятор не может полностью полагаться на Ма́ксиму, а должен выполнять вычисления шаг за шагом самостоятельно. Для этого все правила дифференцирования (правило произведения, правило частного, цепное правило, …) были реализованы на JavaScript. Для тригонометрических, степенных, логарифмических и экспоненциальных функций соответствующие производные хранятся в таблице. На каждом шаге вычисления выполняется или переписывается одно действие, например, константы выносятся за знак производной, а суммы разбиваются на отдельные производные (правило суммы). Эти действия, а также общие упрощения выражений, выполняются с помощью Ма́ксимы. Для каждой вычисленной производной выражения в формате Ла́тех, получаемые в результате, помечаются в HTML-коде, что позволяет в дальнейшем подсвечивать их.

Функция «#{checkAnswer}» должен решить сложную задачу по определению являются ли два математических выражения равными друг другу. Разница между выражениями вычисляется и упрощается с помощью Ма́ксимы настолько, насколько это возможно. К примеру, это может быть переписывание тригонометрических/гиперболических функций в их экспоненциальные формы. Если удается упростить разницу до нуля — задача выполнена. В противном случае, применяется вероятностный алгоритм, который вычисляет и сравнивает оба выражения в случайно выбранных местах.

Интерактивные графики функций вычисляются в браузере и отрисовываются на Сanvas («Холст») из HTML5. Для каждой математической функции, которая должна быть отрисована, Калькулятор создает функцию JavaScript, которая затем вычисляется с шагом, необходимым для правильного отображения графика. Все сингулярности (например полюса) функции обнаруживаются в процессе отрисовки и обрабатываются отдельно. Управление жестами для мобильных устройств сделано на основе hammer.js.

Если у Вас есть вопросы или пожелания, а так же идеи как улучшить Калькулятор Производных, пожалуйста пишите мне на e-mail.