Sage что за программа

Одним из курсов в последнем семестре у меня был Mathematical Software, где мы изучали фундаментальные алгоритмы, лежащие в основе почти всех математических операций, проводимых в компьютере (удобные для вычислений виды представления данных, быстрое умножение, трансформации Фурье, алгоритм Карацубы и т.д.). Курс не был похож на другие: к концу семестра в классе осталось только трое человек; не было никаких тестов или экзаменов, финальная оценка состояла из двух домашних заданий и одного проекта; и, наконец, я давно не исписывал сотню с лишним страниц тетради в течение одного курса. Практическая часть — работа с системой Sage.

Sage (анг. ‘Мудрец’) — система компьютерной алгебры покрывающая много областей математики, включая алгебру, комбинаторику, вычислительную математику и матанализ. Первая версия Sage была выпущена 24 февраля 2005 года в виде свободного программного обеспечения с лицензией GNU GPL. Первоначальной целью проекта было «создание открытого программного обеспечения альтернативного системам Magma, Maple, Mathematica, и MATLAB». Разработчиком Sage является Уильям Стейн — математик Университета Вашингтона.

Эти нейросети (РЕАЛЬНО) лучше ChatGPT

Для финального проекта нужно было сделать что-нибудь полезное для сообщества Sage. Учитывая приличную нагрузку из-за других курсов, мы (я и мой друг Темирлан) решили пойти путем наименьшего сопротивления и сделать русскоязычную документацию для Sage. Мы перевели официальный туториал, а я записал четыре скринкаста.

Sage имеет удобный веб-интерфейс, который полностью повторяет функциональность основной программы. Доступ к нему осуществляется посредством сервера, так что если вашей школе/организации/университету нужно математическое программное обеспечение, Sage имеет неоспоримый плюс: его можно поставить на одной машине, запустить веб-сервер Sage Notebook и пользоваться программой смогут все, у кого есть браузер с поддержкой javascript. Туториал описывает работу Sage Notebook и покрывает такие темы, как простые арифметические операции, работа с полиномами, кольцами, интерактивной консолью, с различными интерфейсами (Sage включает в себя некоторые другие мат. пакеты: (GP/PARI, GAP, Singular, Maxima), программирование (Sage использует Python).

Скринкасты

Вводный скринкаст о командной строке, справочной системе, Python’е и графиках.

Второй скринкаст: подробнее о двумерных графиках.

Третий скринкаст: работа с трехмерными графиками.

Четвертый скринкаст: interact.

  • sage
  • математика
  • computer science student

Источник: habr.com

Sage

Sage

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

Как это ни странно звучит, но Sage работает через web-интерфейс. Данный интерфейс называется notebook. Sage может работать как локально, так и удаленно. В простейшем случае работа с программой происходит следующим образом. Вы вводите последовательно команды (выражения, инструкции), затем нажимаете кнопку Evaluate (Запустить) и получаете результат.

Архитектурно Sage включает в себя множество (около 100) open-source математических пакетов (подпрограмм, библиотек). Полный список можно посмотреть на официальном сайте программы.

Sage вполне может стать бесплатной альтернативой таким математическим программам, как Matlab, Maple, Mathematica и т.д.

Существует специальная онлайн версия Sage — https://sagecell.sagemath.org/, позволяющая использовать Sage через интернет.

Установка

Установка Sage в Ubuntu Linux

Для Ubuntu существует PPA репозиторий, из которого можно легко установить Sage. Обратите внимание, что во время установки будет загружено порядка 700Мб. Итак, для установки Sage в Ubuntu Linux выполните в терминале последовательно следующие команды:

Читайте также:
Программа аврора что это такое

sudo apt-add-repository -y ppa:aims/sagemath sudo apt-get update sudo apt-get install sagemath-upstream-binary

После установки вам нужно будет задать пароль администратора для доступа к Sage. Затем вы можете запустить Sage из меню запуска программ или из командной строки, выполнив:

sage

Sage автоматически откроет браузер и перейдет на страницу http://localhost:8080/ — откроется web-интерфейс.

Установка в Fedora

sudo dnf install sage

Разработка

Open Source (открыт)

Источник: pingvinus.ru

Русские Блоги

Начало работы с SAGE: мастер математических систем с открытым исходным кодом

Недавно изучая Sage, систему математического программного обеспечения с открытым исходным кодом, Baidu обнаружил, что домашнее внимание все еще относительно мало, поэтому напишите введение в Sage.

Sage(http://www.sagemath.org) Является ли математическое программное обеспечение аналогичным Maple, Matlab, Mathematica и т. Д., Согласно лицензии GPL, целями проекта являются:

Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab.

Что может сделать Sage? Во введении есть такое предложение: «Сторонники этого программного обеспечения с открытым исходным кодом утверждают, что Sage может делать что угодно от 12-мерных объектов до расчета осадков в математической модели эффектов глобального потепления». Sage включает в себя все, от линейной алгебры до исчисления Криптография, численный расчет, комбинаторная математика, теория групп, теория графов, теория чисел и другие вычислительные функции элементарной и углубленной математики.

Важной особенностью Sage является интеграция многих превосходных математических программ с открытым исходным кодом, так что пользователи могут легко использовать соответствующие функции в этих библиотеках в Sage. В настоящее время Sage объединяет около ста математических библиотек с открытым исходным кодом, в том числе знаменитые ATLAS, BLAS, LAPACK, Boost, GSL, SciPy и т. Д. Полный список можно просмотретьВот。

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

С Sage вы можете:

  • Скачайте и установите Sage на локальный (Ссылка на скачивание)
  • Используйте онлайн-версию. В настоящее время Sage предоставляет две онлайн-платформы, которые являются раннимиThe Sage NotebookИ недавно запущенSageMathCloud

Вот некоторые особенности Sage.

Sage Notebook

Его также можно открыть в локальной командной строке Sage с помощью notebook (), что эквивалентно рабочему листу Maple. Хотя он выглядит немного грубым, он все же очень мощный. Вы можете вводить команды Sage, отображать формулы, отображать графику и т. Д.

Sage Notebook

SageMathCloud

SageMathCloud похожа на онлайн-платформу для написания и программирования: после регистрации вы можете создавать проекты и редактировать различные исходные файлы. Здесь создается тестовый проект и создается новый файл рабочей книги .sagews (Sage Worksheet). Интерфейс аналогичен рабочему листу Maple. Вы можете ввести в него код и нажать кнопку запуска, чтобы отобразить результаты.

Sage Worksheet

Хотя он все еще находится в бета-версии, он все еще чувствует себя очень полезным. В дополнение к Worksheet, вы также можете создать новый терминал. Эффект такой же, как у локального терминала Linux. Ввод Sage может вводить командную строку Sage. Использование очень похоже на командную строку Python.

Читайте также:
Программа менеджмент что это

Вы можете использовать help () и tutorial () для просмотра справки и учебных пособий.

sage-intro-term

Sage Could Terminal

Основной расчет

Как и большинство математических программных систем, он очень прост и удобен в использовании. Например, чтобы найти главный фактор 2013 года:

sage : f = factor ( x )

Или инверсия матрицы

sage : matrix ( [ [ 1 , 2 ] , [ 3 , 4 ] ] ) ^ ( — 1 )

Символьный расчет

Символьные вычисления Sage очень просты в использовании, вы можете использовать x == var (‘var_name’) для объявления символьных переменных. Например, найти интеграл функции

sage : a = var ( ‘a’ )

sage : x = var ( ‘x’ )

sage : f = a * sin ( x ) + 1 / x

sage : f . integrate ( x )

— a* cos ( x ) + log ( x )

Или решить уравнение

sage : solve ( x ^ 2 + a , x )

[ x == — sqrt ( — a ) , x == sqrt ( — a ) ]

Функция рисования

Например, нарисуйте изображение выше, где f == a * sin (x) + x1 + x1, когда a = 1 и x = 1 ~ 10. Размер изображения — это размер изображения

sage : f = f . substitute ( a == 1 )

sage : plot ( f , ( x , 1 , 10 ) , figsize = 2 )

Sage Plot

В дополнение к 2D, Sage также поддерживает 3D-рисование, вы можете специально просматривать документ.

Основные числовые поля и кольца

Sage поддерживает вычисления на множествах целочисленных колец (ZZ), полей рациональных чисел (QQ), полей действительных чисел (RR), полей комплексных чисел (CC) и более сложных полиномиальных колец и конечных полей (Finite Field). Здесь мы должны рассмотреть абстрактную алгебру, такую ​​как некоторые простые понятия:

sage: QQ. gens () # Элемент единицы и нулевой элемент поля рациональных чисел

sage: CC. gens () # элементарная ячейка и нулевой элемент в сложном поле

Диапазон расчета отличается, а результаты разные. Например:

sage: ratpoly. = PolynomialRing (QQ) # Определить ratpoly как кольцо полиномов на основе t в поле рациональных чисел

sage: realpoly. = PolynomialRing (RR) # Определить realpoly как кольцо полиномов на основе z в области реализации

sage : factor ( t ^ 2 — 2 )

sage : factor ( z ^ 2 — 2 )

( z — 1.41421356237310 ) * ( z + 1.41421356237310 )

Внешний программный / библиотечный интерфейс

Для встроенной внешней математической библиотеки программного обеспечения с открытым исходным кодом Sage предоставляет удобный интерфейс для вызова. Использование этих интерфейсов в Sage позволяет легко интегрировать библиотеки математических программ разных языков и различных функций в одну и ту же программу, что также позволяет Sage интегрировать сильные стороны многих математических программ с открытым исходным кодом. Конечно, многие из этих внешних математических библиотек являются очень профессиональными, и только практическая их часть должна использоваться только в ограниченном количестве. Вот два официальных сайтаSage TutorialПример.

Используйте GP / PARI, чтобы найти (этот) первообразный корень

GP / PARI — пакет для теории чисел (wiki). Каков первоначальный рут? Если вы были в теории чисел, но забыли, пожалуйста, посмотрите в лицо 🙁

вgcd(a,m)=1Время, определениеaУмеретьmИндексOrd_m(a)Делатьa^d equiv 1 pmod<m>Наименьшее положительное целое числоd, Известный из ранееOrd_m(a)Должно быть меньше или равноphi (m)ЕслиOrd_m (a) = phi (m), СказалaДа умеретьmОригинальный корень。

Положительное число(a,m)=1Если a является исходным корнем модуля m, то a являетсяЦелочисленная модульная n мультипликативная группа(То есть дополнение группыZ/mZОбратимый элемент, который все связано с мВзаимный премьерИз целых положительных чиселэквивалентСоставляют мультипликативную группу)Zп × одинГенератор。

Генератор является очень важным понятием в теории чисел: в целой группе умножения по модулю n генератор может умножиться сам (а затем и по модулю n), чтобы сгенерировать все элементы в группе. Мета-корень можно получить с помощью функции znprimroot (n) в PARI.

sage : gp ( ‘znprimroot(7)’ )

sage : pari ( ‘znprimroot(7)’ )

3 является мета-корнем группы умножения по модулю 7.

Использование максимумов для поиска собственного вектора матрицы в рациональной области

Система компьютерной алгебры Maxima, написанная на LISP, ранее известная как Macsyma, на появление таких программ, как Matlab и Mathematica, зависит от Macsyma. Систему алгебры Максима легко назвать в Sage. Например, ниже приведен пример поиска вектора признаков и преобразования его в векторное пространство рационального домена .Код также взят с официального веб-сайта.Sage Tutorial, С некоторыми примечаниями:

Читайте также:
Aurora borealis что это за программа

мудрец: A = максимумы («матрица ([1, 0, 0], [1, -1, 0], [1, 3, -2])») # матрица генератора

sage: eigA = A. eigenvectors () # вычислительные характеристики громкие

sage: V = VectorSpace (QQ, 3) # V — трехмерное векторное пространство в поле рациональных чисел,

sage: eigA # Выходной формат: [[[eigenvalue], [eigenvalueultiple]], [[eigenvector 0], [eigenvector 1], [eigenvector 2]]]

[ [ [ — 2 , — 1 , 1 ] , [ 1 , 1 , 1 ] ] , [ [ [ 0 , 0 , 1 ] ] , [ [ 0 , 1 , 3 ] ] , [ [ 1 , 1 / 2 , 5 / 6 ] ] ] ]

sage : v1 = V ( sage_eval ( repr ( eigA [ 1 ] [ 0 ] [ 0 ] ) ) ) ; lambda1 = eigA [ 0 ] [ 0 ] [ 0 ]

sage : v2 = V ( sage_eval ( repr ( eigA [ 1 ] [ 1 ] [ 0 ] ) ) ) ; lambda2 = eigA [ 0 ] [ 0 ] [ 1 ]

sage : v3 = V ( sage_eval ( repr ( eigA [ 1 ] [ 2 ] [ 0 ] ) ) ) ; lambda3 = eigA [ 0 ] [ 0 ] [ 2 ]

sage: M = MatrixSpace (QQ, 3, 3) # M — это размерное матричное пространство 3 × 3 в области подходящих чисел

sage : AA = M ( [ [ 1 , 0 , 0 ] , [ 1 , — 1 , 0 ] , [ 1 , 3 , — 2 ] ] )

sage: b1 = v1. base_ring () # b1 == QQ — рациональное поле

sage: AA * v1 == b1 (lambda1) * v1 # Проверьте определение значения признака A * v = lambda1 * v

sage : b2 = v2 . base_ring ( )

sage : AA* v2 == b2 ( lambda2 ) * v2

sage : b3 = v3 . base_ring ( )

sage : AA* v3 == b3 ( lambda3 ) * v3

Обратите внимание, что M (), V (), b1 (), b2 () и b3 () эквивалентны преобразованию типов, и ограниченные операции выполняются в поле рациональных чисел. Кроме того, векторы признаков здесь не объединены, поскольку они находятся в поле рациональных чисел.

Сотрудничать с латексом

Sage может сотрудничать с Latex внутри страны. Для любого объекта Sage foo вы можете получить вывод Latex, вызвав latex (foo). Например:

sage : latex ( z ^ 12 )

sage : latex ( integrate ( z ^ 4 , z ) )

sage : latex ( ‘a string’ )

verb | a | phantom < verb ! x ! > verb | string |

sage : latex ( QQ )

sage : latex ( matrix ( QQ , 2 , 3 , [ [ 2 , 4 , 6 ] , [ — 1 , — 1 , — 1 ] ] ) )

Точно так же использование view (foo) в локальной командной строке Sage

Используя SageTex Package в tex-файле через usepackage , вы можете напрямую вставить команду Sage в tex-файл и вывести результат в pdf с помощью Latex. Для получения подробной информации, пожалуйста, обратитесь к официальномуSage Tutorial。

резюме

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

Я сам не профессионал в математике, но я чувствую, что если я хочу создать программное обеспечение уровня Matlab, Mathematica или Maple в проекте с открытым исходным кодом, я должен положиться на него. Sage родился в 2005 году, и до сих пор не уделялось особого внимания, с одной стороны, это объясняется тем, что дао-версия Matlab и другого программного обеспечения слишком удобна, с другой стороны, потому что сама математическая система включает в себя множество очень профессиональных математических знаний, общих программистов Очень мало контактов, профессионалы редко обращают внимание на open source. Я чувствую, что если его можно будет использовать в университетских курсах (таких как абстрактная алгебра, теория чисел и т. Д.), Он будет лучше популяризировать.

Источник: russianblogs.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru