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

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

Это не то, что Вы имели ввиду? Используйте скобки! В случае необходимости, выберите переменную и пределы интегрирования в разделе "Настройки".

Результаты вычислений

Наверху страницы введите функцию, которую Вы хотите проинтегрировать. Переменная интегрирования, пределы интегрирования и другие параметры могут быть изменены в разделе "Настройки". Нажмите "=" чтобы запустить интегрирование/нахождение первообразной функции. Результат будет показан ниже на этой странице.

Как работает Калькулятор Интегралов

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

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

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

По нажатию кнопки "=", Калькулятор Интегралов отправляет математическое выражение вместе с параметрами (переменной интегрирования и пределами интегрирования) на сервер, где оно анализируется еще раз. В этот раз выражение преобразуется в форму которая будет понятна системе компьютерной алгебры Maxima (Ма́ксима).

Как работает Калькулятор Интегралов

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

Для того чтобы всё-таки показать пошаговое решение, Калькулятор Интегралов использует такие же методы, которыми бы воспользовался человек. Алгоритм, который это осуществляет, разрабатывался в течении нескольких лет и был написан на собственном языке программирования Ма́ксимы. Программа содержит более чем 16000 строк кода. Если интегрируемое выражение совпадает по форме с уже известным, алгоритм применяет заранее определённые правила для решения интеграла (например, метод неопределённых коэффициентов для рациональных функций или тригонометрическую подстановку в интегралах с квадратным корнем из квадратичной функции). Если же оно не совпадает с уже известным, тогда алгоритм пробует разные подстановки и преобразования пока интеграл не будет решен или пока не закончится отведённое для этого время или же пока не кончатся все возможные варианты. С одной стороны, у Калькулятора нет математической интуиции, которая бы очень помогла в поисках первообразной, но зато, с другой стороны, Калькулятор в состоянии перепробовать большое количество разных вариантов за очень короткое время. Такое пошаговое вычисление первообразной по правилам, зачастую, более компактно и элегантно чем вычисленное Ма́ксимой.

Еще один режим работы "Проверка  решения" должен решить сложную задачу по определению являются ли два математических выражения равными друг другу. Разница между выражениями вычисляется и упрощается с помощью Ма́ксимы настолько, насколько это возможно. К примеру, это может быть переписывание тригонометрических/гиперболических функций в их экспоненциальные формы. Если удается упростить разницу до нуля - задача выполнена. В противном случае, применяется вероятностный алгоритм, который вычисляет и сравнивает оба выражения в случайно выбранных местах. В случае с первообразной, вся процедура повторяется для каждой производной, т.к. первообразная может отличаться константой.

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

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