Добавить в корзинуПозвонить
Найти в Дзене
Герман Геншин

11 Способов выполнять математические операции в терминале Linux

Хотите решать математические задачи быстро и без лишних отвлечений, как это делают учёные и инженеры? Существует множество инструментов, позволяющих выполнять расчёты прямо в терминале Linux. Благодаря этим программам вы сможете справляться как с простыми, так и со сложными задачами. Приходилось ли вам когда-либо выполнять арифметические операции в Bash? Для этого вам подойдут арифметические операторы Bash. Синтаксис может показаться не самым удобным, но он выполняет свою функцию. В Bash арифметические операции заключаются в блоки $(( )), где знак доллара сопровождается открывающими и закрывающими скобками. Арифметические операторы здесь аналогичны тем, что можно найти на обычном калькуляторе или в программе для работы с таблицами. Например, чтобы сложить два числа и вывести результат на экран терминала: В результате вы должны получить число 4 в терминале. Чтобы вычесть два числа; Ответ будет -2. Для умножения используется оператор *: Оператор возведения в степень - это ** (две звёздо
Оглавление

Быстрые ссылки

Хотите решать математические задачи быстро и без лишних отвлечений, как это делают учёные и инженеры? Существует множество инструментов, позволяющих выполнять расчёты прямо в терминале Linux. Благодаря этим программам вы сможете справляться как с простыми, так и со сложными задачами.

11 Арифметических операторов Bash

Приходилось ли вам когда-либо выполнять арифметические операции в Bash? Для этого вам подойдут арифметические операторы Bash. Синтаксис может показаться не самым удобным, но он выполняет свою функцию.

-2

В Bash арифметические операции заключаются в блоки $(( )), где знак доллара сопровождается открывающими и закрывающими скобками. Арифметические операторы здесь аналогичны тем, что можно найти на обычном калькуляторе или в программе для работы с таблицами.

Например, чтобы сложить два числа и вывести результат на экран терминала:

В результате вы должны получить число 4 в терминале.

Чтобы вычесть два числа;

Ответ будет -2. Для умножения используется оператор *:

Оператор возведения в степень - это ** (две звёздочки). Запомните это простое правило: возведение в степень - это умножение числа на само себя:

Для деления применяется оператор / (разделитель). Он возвращает частное, но не остаток, который можно получить с помощью оператора остатка (%). Таким образом, $((5 / 2)) вернёт 2, а $((5 % 2)) выдаст 1, что является остатком от деления 5 на 2. Недостаток арифметики Bash заключается в том, что она поддерживает только целые числа.

Хотя арифметика Bash лучше подходит для скриптов, она доступна на большинстве систем Linux.

10 Python

Если математика в Bash кажется вам неудобной, Python может быть более подходящим вариантом. Вам не нужно вводить $(( для ваших вычислений - всё гораздо проще.

-3

Просто введите "python" в командной строке Linux. Если у вас установлен iPython, можете использовать его вместо стандартного Python. Запустив интерактивный режим, вы можете использовать привычные операторы.

Например, для сложения:

А для вычитания:

Для умножения:

А для деления:

Арифметика Python также поддерживает числа с плавающей запятой, что позволяет свободно использовать десятичные дроби.

Оператор возведения в степень аналогичен тому, что используется в Bash:

В результате вы получите число 256.

Простота арифметических возможностей Python в интерактивном режиме стала шуткой среди программистов, что Python отлично подходит в качестве настольного калькулятора, что упоминается в официальном учебнике по калькулятору Python.

Хотя Python подходит для простых арифметических операций, его библиотеки значительно расширяют возможности. Вы можете использовать множество библиотек для решения задач от статистики до исчисления.

8 Советов и хитростей по использованию Python в качестве калькулятора

Забудьте о навороченном калькуляторе и откройте окно Python!

Эти библиотеки и простота Python делают его языком по умолчанию для науки, и вы можете использовать те же инструменты прямо на своём рабочем столе.

9 SageMath

Одним из моих любимых инструментов для математических вычислений в терминале является SageMath. Он был создан как открытое решение для популярных платных пакетов, таких как MATLAB и Mathematica, которые широко используются как в академической, так и в промышленной среде. Это полезно, если вы изучаете продвинутую математику или хотите поэкспериментировать с мощными вычислительными системами.

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

SageMath - это система компьютерной алгебры, что означает, что она работает с символической математикой так же, как ручной калькулятор работает с числами. Например, если вы возьмёте квадратный корень, он вычислит его символически:

Sage отобразит 42 под знаком радикала, так как это не полный квадрат. Если взять квадратный корень из 180:

Он автоматически выделит 6, поскольку 6 в квадрате - это 36, а 36 * 5 = 180, следовательно, символический результат будет 6 умножить на корень из 5.

-4

Вы можете получить десятичное приближение, аналогичное тому, что вы бы получили на научном калькуляторе, с помощью функции n():

Вы также можете указать количество знаков для точности, используя опцию digits:

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

Вы сможете использовать SageMath в качестве калькулятора так же, как и Python и Bash, но также сможете выполнять удивительные вещи, например, решать уравнения. Чтобы решить уравнение 5x 3 - 15, используйте функцию solve для нахождения x:

Sage вернёт ответ 12/5. Кажется, он предпочитает неправильные дроби.

Также можно решать квадратные уравнения.

-5

Полиномы более высоких степеней работают аналогичным образом.

Давайте решим систему линейных уравнений. Вы можете использовать функцию solve, но для этого придется записывать уравнения полностью. Использование матрицы позволяет сократить ввод данных. Вот как это делается в SageMath. Я люблю использовать первый пример из статьи о системах линейных уравнений на Википедии:

3x 2y - z = 1

2x - 2y 4z = -2

-x 1/2y - z = 0

Сначала мы зададим матрицу коэффициентов, используя команду matrix:

Затем определим столбцовый вектор:

А потом решим систему:

-6

Существует множество других возможностей, которые я не могу осветить здесь. Поскольку SageMath основан на Python, вы можете использовать и другие библиотеки Python с этой мощной системой компьютерной алгебры. Вы получите функциональность графического калькулятора совершенно бесплатно и на более качественном экране.

8 Maxima

Maxima - это ещё одна алгебраическая система, похожая на SageMath. Она основана на более ранней системе Macsyma, разработанной в MIT в 1960-х годах. Хотя Symbolics выкупили Maxima в 1980-х, Министерство энергетики США лицензировало оригинальную версию для учебных и государственных нужд.

-7

Эта версия в конечном итоге стала открытой и получила новое имя - Maxima. У Maxima небольшая аудитория среди академиков для математических и научных вычислений. SageMath даже использует её для выполнения некоторых функций.

Операции здесь аналогичны SageMath. Завершение выражения обозначается с помощью точки с запятой, что может быть немного раздражающим, если вы это забудете. Я всё время об этом помню.

Взять квадратный корень числа очень просто:

Также можно решать уравнения с помощью Maxima, как и в SageMath:

7 R

R - это популярный язык для статистического анализа и науки о данных. Хотя существуют графические IDE, которые можно использовать с ним, он также отлично работает в терминале. Вы можете выполнять простые дескриптивные статистики, такие как средние значения, медианы и стандартные отклонения, а также выполнять более сложные задачи, такие как линейные регрессии и статистические тесты, включая t-критерий Стьюдента, критерий хи-квадрат и ANOVA.

Вот несколько простых дескриптивных статистик:

Давайте определим небольшой набор данных. В R список называется вектором:

Давайте найдем среднее значение вектора a:

И медиану:

-8

6 sc-im

-9

sc-im - это приложение для работы с таблицами, выполняемое в терминале. Если вы когда-либо использовали Lotus 1-2-3 в 80-х, интерфейс вам будет знаком. Оно основано на оригинальном sc, разработанном создателем Java Джеймсом Гослингом. Цель - добавить множество улучшений, аналогично тому, как Vim улучшил Vi.

С sc-im вы можете вернуться назад во времени и выполнять расчёты в текстовом формате, представляя себя трейдером с Уолл-стрит.

Перемещение по sc-im похоже на Vim. Чтобы ввести числовое значение, нажмите клавишу =.

Чтобы суммировать ряд ячеек, используйте функцию sum:

5 bc

-10

bc - это калькулятор командной строки, название которого расшифровывается как "Базовый калькулятор". Он включает все основные операции, которые вы ожидаете от простого калькулятора, но без сложного синтаксиса Bash. Как и Bash, bc является частью проекта GNU.

В отличие от dc, bc работает в более привычном инфиксном режиме. Например, 2 2 - это просто 2 2, так, как большинство людей учатся этому в школе.

4 dc

-11

dc - это очень старая утилита Unix, но она также широко доступна на современных системах Linux. Она использует форму ввода, известную как Обратная польская нотация или RPN, которая была популярна на калькуляторах HP, использовавшихся учеными и инженерами в 1970-х и 1980-х годах.

Суть RPN заключается в использовании стека. Вы помещаете числа в стек, как будто это пружинные тарелки в столовой, и извлекаете их для выполнения операций. Чтобы вычислить 23 45, вы помещаете оба числа в стек, а оператор " " извлекает их и помещает результат обратно в стек.

Вот как это выглядит в терминале:

Вы используете команду "p", чтобы вывести результат в терминал.

3 Qalculate!/Qalc

Qalculate! известен как мощный калькулятор с множеством продвинутых математических опций, но у него также есть командная версия, известная как qalc. Все стандартные операции присутствуют, но также имеются и некоторые мощные функции, аналогичные тем, что я показал в других CAS-программах, включая исчисления.

Мне нравится, как он выделяет результаты в терминале с помощью цвета. Это выглядит приятно и делает результаты более заметными на экране.

Если вы настоящий фанат калькуляторов, вы даже можете настроить его в режим RPN, как в bc. Список возможностей Qalculate - это мечта любителя математики и науки.

2 GNU Octave

GNU Octave - это клон MATLAB, предназначенный для работы с матрицами и векторами линейной алгебры, широко используемыми во всех типах научных и инженерных вычислений. Вы сможете получить ту же мощь без больших лицензионных сборов.

Вот та же система, которую мы решили ранее, теперь решенная в стиле Octave путём умножения обратной матрицы на столбцовый вектор:

-12

1 Axiom

-13

Как и Maxima, Axiom - это система компьютерной алгебры с долгой историей. Идеи, стоящие за Axiom, были изначально разработаны IBM в 1960-х годах. Она также была выпущена как коммерческий продукт, который в конечном итоге стал открытым.

Хотя Axiom выполняет свои команды в терминале, при запуске вы получаете наглядное меню справки, которое показывает все функции.

Как и в SageMath и Maxima, вы можете воспользоваться мощью научных вычислений на своём компьютере, решая задачи от простых уравнений до исчисления и линейной алгебры. Функция solve аналогична той, что мы видели ранее.

Linux - это операционная система, выбранная научным сообществом благодаря множеству инструментов для исследователей, и вы также можете начать своё путешествие в мир математики и науки прямо из терминала, используя эти инструменты и многие другие, которые вы можете найти в своём менеджере пакетов.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Вы также можете читать наши материалы в: