Когда дело доходит до решения математических уравнений в Linux, мы ранее обсуждали GeoGebra, программное обеспечение для геометрии и двумерных графиков. Однако, если вы ищете более мощные инструменты, вам стоит попробовать Sage. Мы все слышали о Matlab или Magma, но Sage предлагает альтернативу этим двум с открытым исходным кодом, и, на мой взгляд, ее проще использовать.
Установка
Sage постоянно находится в стадии интенсивной разработки, а это означает, что новые улучшения добавляются очень часто. Чтобы установить его из исходного кода:
Во-первых, вам нужно будет удовлетворить несколько зависимостей.
sudoContents
Установка
build-essential m4 gfortran libssl-dev dpkg-devЗатем вы сможете скачать исходники с официальной страницы. Извлеките их и из терминала запустите скрипт
./make
Примечание. Для правильной работы Sage вам потребуется около 3 ГБ свободного места. Обязательно имейте их перед запуском компиляции (это займет некоторое время).
Если вы предпочитаете двоичную версию, для Ubuntu также доступен PPA:
sudo apt-add-repository -y ppa:aims/sagemath sudo apt-get update sudo apt-get install sagemath-upstream-binary
Вы также можете установить все дополнительные пакеты:
sudo apt-get install texlive evince xpdf xdvi tk8.5-dev
Использование
Чтобы запустить Sage, вы можете сделать это с помощью команды
./sage
из загруженного каталога.
Если вы хотите запустить sage откуда угодно, вы можете создать символическую ссылку с помощью
ln -s [path to the sage launcher] /usr/local/bin/sage
или даже создайте псевдоним в файле ~/.bashrc, как это сделал я:
alias sage=/home/adrien/sage-5.2/sage
По умолчанию Sage — это неграфический инструмент. При запуске вы должны получить что-то вроде этого
После этого у вас есть
Использование
оту с консолью или перейти к графическому интерфейсу на основе браузера, набравnotebook()
Оба варианта практически эквивалентны с точки зрения функциональности. Графический интерфейс более интуитивно понятен, особенно для графиков и графиков, но терминал также работает довольно хорошо. Используя графический интерфейс, попробуйте команду
circle((0,0), 1, rgbcolor=(1,1,0))
Вы увидите желтый кружок под ним.
Если вы сделаете то же самое в консоли, откроется программа просмотра изображений по умолчанию и отобразится тот же кружок.
Примечание. И в графическом интерфейсе, и в консоли есть функция автозаполнения.
Теперь, когда вы выбрали интерфейс sage, можно поговорить о самих функциях. Sage абсолютно огромен, и я серьезно. Мы просто не можем обсудить все аспекты этого вопроса в одной статье. Вместо этого я покажу вам несколько распространенных приложений, которые вы, возможно, захотите попробовать.
1. Калькулятор
Да, Сейдж умеет выполнять базовые математические вычисления. Сложение, умножение и т. д. Поскольку он написан в основном на Python, вы также можете использовать синтаксис Python для таких операций, как целочисленное деление.
2. Полиномиальные корни
Очень часто получают многочлен и спрашивают, есть ли у него корни. В Sage вы сначала создаете полиномиальное кольцо с
P.<x> = PolynomialRing(RR)</x>
где x — генератор, а RR — действительные числа. Например, если вы хотите, чтобы ваше кольцо превышало рациональные числа, замените RR на QQ. Затем вы копируете свой полином:
t = x^2 - 25
А потом вы спрашиваете корни
t.roots()
Примечание : это вернет корни в базовом кольце многочлена и их кратности. Если вы хотите, чтобы корни были из другого базового кольца, поместите его в качестве аргумента функции root().
3. Обратная матрица
Если вы немного увлекаетесь торговлей или экономикой, возможно, вы видели матрицы в какой-то момент своей жизни. Обычно существует целый процесс поиска обратных этих матриц. Что ж, Sage сделает это за вас очень просто. Создайте матрицу на основе желаемого базового кольца.
m = matrix(QQ, [[1, 2], [3, 4]])
И чтобы найти обратное:
m.inverse()
1. Калькулятор="https://saintist.ru/wp-content/uploads/2024/05/sage-matrix_inverse.jpg" alt="sage-matrix_inverse">
4. Графики
Sage также обладает некоторыми возможностями графического отображения. Ранее мы рисовали круг с
circle((0,0), 1, rgbcolor=(1,1,0))
Я почти уверен, что вы поняли, что первый параметр — это центр круга, вт
2. Полиномиальные корни
круга в стандарте RGB. Ну, вы также можете построить основные функции, сначала объявив переменную:x = var('x')
А затем используйте функциюplot():
plot(x^3, (-10,10))
Первый аргумент — это функциональное уравнение, второй — диапазон. Итак, я просил кубическую функцию, показанную на графике x от -10 до 10.
Примечание. Если у вас установлен Jmol, вы даже можете создавать трехмерные графики, объявив две переменные
x, y = var('x,y')
А затем используйте функциюplot3d():
plot3d(x^2 + y^2, (x,-2,2), (y,-2,2))
5. Решение уравнений
Иногда нам нужно найти решение уравнения, но калькулятор дает только приближение. Еще хуже, есл
3. Обратная матрица
какие-то переменные и мы хотим, чтобы решение было выражено как функция от них. В течение многих лет в старшей школе мне приходилось делать это вручную. Как глупо! Сэйдж делает это отлично. Объявите все ваши переменныеx, a, b, c = var('x a b c')
А затем просто используйте функциюsolve() с уравнением(ями) в качестве первого аргумента и переменными(ями), которые вы хотите выразить после:
solve([x - 3*a == 6, x + b*c == 10], x, b)
<
Хотел бы я знать это еще в старшей школе…
6. Дифференциация и интеграция
Вот идеальное приложение, когда вам очень лень. Вы можете использовать эту программу для дифференциации и интеграции функций
4. Графики
ите переменныеx = var('x')
А затем используйте функцию diff() или Integrated().
diff(x^3 + 4*x + 16, x)
для различения и
integral(x^3 + 4*x + 16, x)
для интеграции.
Заключение
Sage — действительно невероятный инструмент. Синтаксис быстро изучается и остается довольно стандартным. Недостаток заключается в том, что вам действительно следует прочитать документацию, чтобы понять, что вы действительно можете сделать. Приложений настолько много, что легко заблудиться. Вы можете решать дифференциальные уравнения вместе с криптографией. И это настолько специфично, что прямо сейчас разрабатывается функция для нахождения поля разложения многочленов по конечному полю (да, я тоже понятия не имею, что это значит).
Можете ли вы предложить еще какой-нибудь пример? Вопрос о Сейдже? Пожалуйста, дайте нам знать в комментариях.
Изображение предоставлено: Maths от Big Stock Photo.