Sage

Sage
Sage
Sage logo
Sage image x squared vs x cubed.gif
Анимированный график, созданный в Sage, y=x2 (красная кривая), y=x3(синяя кривая)
Тип

Система компьютерной алгебры

Написана на

Python, Cython

Операционная система

Кроссплатформенное программное обеспечение

Первый выпуск

24 февраля 2005

Аппаратная платформа

Python

Последняя версия

4.8 (20 января 2012)

Лицензия

GNU General Public License

Сайт

www.sagemath.org

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

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

Содержание

Возможности

Веб-интерфейс Sage notebook работает в большинстве современных веб-браузеров.
Решение уравнений с использованием веб-интерфейса Sage notebook.

Многочисленные возможности Sage включают[2]:

  • Процедуры для импорта и экспорта различных форматов данных: изображений, видео, аудио, САПР, ГИС, документов и медицинских форматов.
  • Поддержка комплексных чисел, символьных и вычислений с произвольной точностью.
  • Подготовка научно-технической документации с использованием редактора формул и возможностью встраивания Sage в документацию формата LaTeX.[4]
  • Сетевые инструменты для соединения с базами данных SQL, поддержка сетевых протоколов, включая HTTP, NNTP, IMAP, SSH, IRC, FTP.
  • Программные интерфейсы для работы с системами Mathematica, Magma, и Maple.

Хотя это не представлено непосредственно, Sage может быть вызван из интерфейса Mathematica.[5][6]

Философия разработки Sage

В процессе разработки Sage Уильям Стейн основывался на следующих фактах:

  • Для создания достойной альтернативы системам Magma, Maple, Mathematica, и MATLAB потребуются сотни или тысячи человеко-лет, если начинать процесс разработки с нуля.
  • Существует большое количество готового математического ПО с открытым исходным кодом, но написанного на различных языках программирования, из которых наиболее встречаемыми являются C, C++, Fortran и Python.

Таким образом, вместо того, чтобы начинать с нуля, было решено объединить всё специализированное математическое ПО в систему с общим интерфейсом. Конечному пользователю необходимо лишь знать язык Python.

Если для какой-то частной задачи не существовало ПО с открытым кодом, тогда стояла задача написания соответствующего блока для Sage. Но Sage не изобретает колесо, и в отличие от коммерческих систем компьютерной алгебры может открыто использовать исходные коды свободного ПО.

К разработке Sage привлекаются как профессионалы, так и студенты. Разработчики работают на общественных началах и поддерживаются грантами.[7]

Производительность

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

Лицензирование и доступность

Sage — свободное программное обеспечение, распространяемое по условиям лицензии GNU General Public License версии 2+. Доступность Sage имеет следующие аспекты:

  • Исходный код может быть скачан со страницы загрузки. Так же доступны релизы, находящиеся в процессе разработки, хотя они не рекомендуются обычным пользователям.
  • Исполняемые файлы доступны для операционных систем Linux, OS X и Solaris (как под архитектуру x86, так и SPARC).
  • Также доступен live CD с версией Linux, что позволяет опробовать Sage без установки на компьютер.
  • Пользователи могут использовать он-лайн версию Sage, доступную по адресу t2nb.math.washington.edu:8000. При этом имеются ограничения на объём доступной памяти и конфиденциальность работы.

Несмотря на то, что Microsoft спонсировала разработку версии Sage специально под ОС Windows [8], на данный момент пользователям этой операционной системы нужно использовать технологию виртуализации для работы с Sage. Рекомендуемая программа виртуализации — VirtualBox.

Содержащиеся в Sage программные пакеты

Математические пакеты
Алгебра GAP, Maxima, Singular
Алгебраическая геометрия Singular
Арифметика произвольной точности GMP, MPFR, MPFI, NTL
Арифметическая геометрия PARI, NTL, mwrank, ecm
Матанализ Maxima, SymPy, GiNaC
Комбинаторика Symmetrica, Sage-Combinat
Линейная алгебра Linbox, IML
Теория графов NetworkX
Теория групп GAP
Численные расчёты GSL, SciPy, NumPy, ATLAS
Другие пакеты
Интерфейс командной строки IPython
Базы данных ZODB, Python Pickles, SQLite
Графический интерфейс Sage Notebook, jsmath
Графика Matplotlib, Tachyon3d, GD, Jmol
Интерпретатор команд Python
Сетевые возможности Twisted

Примеры работы с командной строкой

Анализ

x,a,b,c = var('x,a,b,c')
 
log(sqrt(a)).simplify_log() # returns (log(a))/2
log(a/b).simplify_log() # returns log(a) - log(b)
sin(a+b).simplify_trig() # returns cos(a)*sin(b) + sin(a)*cos(b)
cos(a+b).simplify_trig() # returns cos(a)*cos(b) - sin(a)*sin(b)
(a+b)ˆ5 # returns (b + a)ˆ5
expand((a+b)ˆ5) # returns bˆ5 + 5*a*bˆ4 + 10*aˆ2*bˆ3 +
 # 10*aˆ3*bˆ2 + 5*aˆ4*b + aˆ5
 
limit((2+1)/(2+x+3*xˆ2), x=infinity) # returns 1/3
limit(sin(x)/x, x=0) # returns 1
 
diff(acos(x),x) # returns -1/sqrt(1 - xˆ2)
f = exp(x)*log(x)
f.diff(x,3) # returns e^x*log(x) + 3*e^x/x - 3*e^x/x^2 + 2*e^x/x^3
 
solve(a*x^2 + b*x + c, x) # returns [x == (-sqrt(b^2 - 4*a*c) - b)/(2*a),
 # x == (sqrt(b^2 - 4*a*c) - b)/(2*a)]
 
f =2 + 432/x
solve(f.diff(x)==0,x) # returns [x == 3*sqrt(3)*I - 3,
 # x == -3*sqrt(3)*I - 3, x == 6]

Дифференциальные уравнения

t = var('t') # define a variable t
x = function('x',t) # define x to be a function of that variable
DE = lambda y: diff(y,t) + y - 1
desolve(DE(x(t)), [x,t]) # returns '%e^-t*(%e^t+%c)'

Линейная алгебра

A = Matrix([[1,2,3],[3,2,1],[1,1,1]])
y = vector([0,-4,-1])
A.solve_right(y) # returns (-2, 1, 0)
A.eigenvalues() # returns [5, 0, -1]
 
B = Matrix([[1,2,3],[3,2,1],[1,2,1]])
B.inverse() # returns [ 0 1/2 -1/2]
 # [-1/4 -1/4 1]
 # [ 1/2 0 -1/2]
 
# Call numpy for the Moore-Penrose pseudo-inverse,
# since Sage does not support that yet.
 
import numpy
C = Matrix([[1 , 1], [2 , 2]])
matrix(numpy.linalg.pinv(C.numpy())) # returns [0.1 0.2]
 # [0.1 0.2]

Теория чисел

prime_pi(1000000) # returns 78498, the number of primes less than one million
 
E = EllipticCurve('389a') # construct an elliptic curve from its Cremona label
P, Q = E.gens()
7*P + Q # returns (2869/676 : -171989/17576 : 1)

История версий

Ниже приведены только значительные релизы. В разработке Sage практикуются правило «release early, release often» (англ. "выпускай раньше, выпускай чаще"), новые релизы появляются каждые две-три недели.

Версии Sage
Версия Дата Релиза Описание
0.1 Январь, 2005 Включена Pari, но отсутствуют GAP и Singular
0.2 — 0.4 С марта по июль 2005 База данных Cremona, мультивариантные полиномы, large finite fields и больше документации
0.5 — 0.7 С августа по сентябрь 2005 Векторные поля, кольца, modular symbols и windows usage
0.8 Октябрь 2005 В полном составе включены GAP, Singular
0.9 Ноябрь, 2005 Добавлены Maxima и clisp
1.0 Февраль, 2006
2.0 Январь, 2007
3.0 Апрель, 2008
4.0 Май, 2009

В 2007 году Sage выиграл первый приз международного конкурса свободного программного обеспечения en:Les Trophées du Libre (англ.) в разделе научного ПО.[9]

См. также

Примечания

  1. Stein, William SAGE Days 4 (12 июня 2007).(недоступная ссылка — история) Проверено 2 августа 2007.
  2. Sage documentation
  3. Sage Interact functionality. Архивировано из первоисточника 19 апреля 2012. Проверено 11 апреля 2008.
  4. The TeX Catalogue OnLine, Entry for sagetex, Ctan Edition
  5. http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/ Calling Sage from Mathematica
  6. http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb A Mathematica notebook to call Sage from Mathematica.
  7. Explicit Approaches to Modular Forms and Modular Abelian Varieties. National Science Foundation (14 апреля 2006). Архивировано из первоисточника 17 июня 2012. Проверено 24 июля 2007.
  8. Sage — Acknowledgment
  9. Free Software Brings Affordability, Transparency To Mathematics. Science Daily (December 7, 2007). Архивировано из первоисточника 19 апреля 2012. Проверено 20 июля 2008.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Sage" в других словарях:

  • sage — sage …   Dictionnaire des rimes

  • sage — [ saʒ ] adj. et n. • 1080; p. ê. lat. pop. °sapius, °sabius, du lat. class. sapidus (cf. ne sapius « imbécile »), avec infl. de sapiens I ♦ Adj. 1 ♦ Vx Qui a la connaissance juste des choses. ⇒ éclairé, savant. « Rien n est si dangereux qu un… …   Encyclopédie Universelle

  • Sage — or SAGE can refer to one of the following:Plants, Salvia officinalis . ] *Any of a number of ornamental and medicinal plants in three genera of the mint family, Lamiaceae: ** Salvia , a large genus ***Common sage, a small evergreen subshrub used… …   Wikipedia

  • sage — SAGE. adj. de t. g. Prudent, circonspect, judicieux. avisé. Un homme sage. il a tousjours esté sage. les adversitez l ont rendu sage. il a fait en homme sage. gens sages se meslent de ses affaires. il s est fait sage aux despens d autruy. plus… …   Dictionnaire de l'Académie française

  • SAGE — steht für: Sage, eine Literaturgattung Sage (Automarke), französische Automarke Sage (Computeralgebrasystem), ein Computeralgebrasystem Sage Derby Käsesorte Sage Group, britisches Software Unternehmen „Großenkneten Sage“, ein Ort, siehe… …   Deutsch Wikipedia

  • SAGE-AU — is an Australian non profit professional association of system administrators. SAGE AU was originally formed to provide the same services for Australian system administrators as the SAGE organisation did in the United States, but is completely… …   Wikipedia

  • Sage — Sage, n. [OE. sauge, F. sauge, L. salvia, from salvus saved, in allusion to its reputed healing virtues. See {Safe}.] (Bot.) (a) A suffruticose labiate plant ({Salvia officinalis}) with grayish green foliage, much used in flavoring meats, etc.… …   The Collaborative International Dictionary of English

  • Säge — und Sägemaschinen (hierzu Tafel »Sägemaschinen«). Die Säge ist ein Werkzeug zum Zerschneiden von Holz, Metall, Stein etc., aus Stahl und von der Form eines Blattes (Sägeblattes), am Rande mit Zähnen (Sägezähnen) versehen, die gewöhnlich mit dem… …   Meyers Großes Konversations-Lexikon

  • SAGE — Saltar a navegación, búsqueda Para otros usos de este término, véase Sage (desambiguación). SAGE El interface gráfico bajo Firefox …   Wikipedia Español

  • Sage Ja! — Unheilig Veröffentlichung 2. Oktober 2000 Länge 3:34 Genre(s) Electro Rock Autor(en) Der Graf und …   Deutsch Wikipedia

  • Sage Ja! — Saltar a navegación, búsqueda Sage Ja! Álbum de estudio de Unheilig Publicación 4 de septiembre de 2000 Grabación  ? …   Wikipedia Español


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»