Что делает этот калькулятор
Калькулятор применяет одно математическое выражение f(x, y, z) к каждой строке таблицы из трёх столбцов. В каждой строке три числа подставляются в переменные x (1-й столбец), y (2-й столбец) и z (3-й столбец). Формула разбирается всего один раз, после чего вычисляется для каждой строки — и вы получаете по одному результату на строку. Это версия с тремя переменными для инструментов с одной и двумя переменными, по сути — универсальный пакетный «движок» для вычисления выражений.
Как пользоваться
Введите своё выражение в поле f(x, y, z) =, а затем впишите данные: по одной строке на каждую запись и по три числа в строке, разделённых пробелами, запятыми или табуляцией. Выберите число значащих цифр для вывода результата (внутренние расчёты всегда идут с полной точностью double). Поддерживаются операторы + - * / ^, скобки, константы pi и e, а также функции sqrt, abs, exp, ln, log, log10, sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, floor, ceil, round, pow, min, max и mod.
Разбор формулы
Для строки i результат вычисляется просто: $$\text{results}_i = f(x_i, y_i, z_i)$$ Выражение преобразуется в абстрактное синтаксическое дерево с помощью парсера на основе рекурсивного спуска, который соблюдает стандартный приоритет операций (сначала унарный минус, затем ^, потом * и /, в конце + и -). Поэтому \(2 + 3 \cdot 4\) даёт \(14\), а \(2 \char`^ 3 \char`^ 2\) вычисляется по правилу правой ассоциативности степени.
Пример расчёта
С формулой по умолчанию \(f(x, y, z) = \sqrt{x} + \sqrt{y} + \sqrt{z}\) и строками 1 4 9, 16 25 36 и 0 100 4 получаем: первая строка — $$1 + 2 + 3 = 6,$$ вторая — $$4 + 5 + 6 = 15,$$ третья — $$0 + 10 + 2 = 12.$$ А с формулой \(f(x, y, z) = x \cdot y + z\) для строки 2 3 5 выходит $$2 \cdot 3 + 5 = 11.$$
Частые вопросы
Что будет при делении на ноль или извлечении корня из отрицательного числа? Такая строка помечается особо: при делении на ноль выводится Infinity, а результат вне области определения — NaN. Остальные строки при этом считаются как обычно.
Почему после 15-го знака цифры перестают меняться? Стандартная арифметика двойной точности хранит около 15–16 значащих цифр, поэтому запрос большего числа знаков не добавит реальной точности.
Что если в строке меньше трёх чисел? Для такой строки выводится ошибка ввода, ведь нужно указать все три значения — x, y и z.