Sage | |
---|---|
| |
Анимированный график, созданный в Sage, y=x2 (красная кривая), y=x3(синяя кривая) | |
Тип | Система компьютерной алгебры |
Разработчик | William A. Stein[d] |
Написана на | Python, Cython |
Операционная система | Кроссплатформенное программное обеспечение |
Первый выпуск | 24 февраля 2005 |
Аппаратная платформа | Python |
Последняя версия | |
Лицензия | GNU General Public License |
Сайт | sagemath.org |
Sage (с англ. — «мудрец») — система компьютерной алгебры, покрывающая много областей математики, включая алгебру, комбинаторику, вычислительную математику и матанализ.
Первая версия Sage была выпущена 24 февраля 2005 года в виде свободного программного обеспечения с лицензией GNU GPL. Первоначальной целью проекта было «создание открытого программного обеспечения альтернативного системам Magma, Maple, Mathematica, и MATLAB»[1]. Разработчиком Sage является Уильям Стейн — математик Вашингтонского университета.
Многочисленные возможности Sage включают[2]:
Хотя это не представлено непосредственно, Sage может быть вызван из интерфейса Mathematica.[5][6]
В процессе разработки Sage Уильям Стейн основывался на следующих фактах:
Таким образом, вместо того, чтобы начинать с нуля, было решено объединить всё специализированное математическое программное обеспечение в систему с общим интерфейсом. Конечному пользователю необходимо лишь знать язык Python.
Если для какой-то частной задачи не существовало программного обеспечения с открытым кодом, тогда стояла задача написания соответствующего блока для Sage. Но Sage не изобретает колесо, и в отличие от коммерческих систем компьютерной алгебры может открыто использовать исходные коды свободного программного обеспечения.
К разработке Sage привлекаются как профессионалы, так и студенты. Разработчики работают на общественных началах и поддерживаются грантами.[7]
Исходный код и исполняемые файлы Sage доступны для скачивания. Если компиляция производится на конечном компьютере, многие входящие в комплект библиотеки будут автоматически настроены для оптимальной работы на данном оборудовании, принимая в расчёт количество процессоров, размер кэш-буферов и поддержку специальных наборов инструкций, например SSE.
Sage — свободное программное обеспечение, распространяемое по условиям лицензии GNU General Public License версии 2+. Доступность Sage имеет следующие аспекты:
Несмотря на то, что Microsoft спонсировала разработку версии Sage специально под операционную систему Windows [8], на данный момент пользователям этой операционной системы нужно использовать технологию виртуализации для работы с 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((xˆ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 = xˆ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» (с англ. — «выпускай раньше, выпускай чаще»), новые релизы появляются каждые две-три недели.
Версия | Дата Релиза | Описание |
---|---|---|
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 | Интерактивная оболочка, интерфейс к языку R |
4.0 | May 2009 | Поддержка Solaris 10, поддержка 64bit OSX |
5.0 | Май 2012[9] | Поддержка OSX Lion |
6.0 | Декабрь 2013 | Репозиторий Sage перемещён в Git[10] |
7.0 | Январь 2016 |
В 2007 году Sage выиграл первый приз международного конкурса свободного программного обеспечения en:Les Trophées du Libre (англ.) в разделе научного ПО.[11]
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .