Анимированный график, созданный в Sage, y=x2 (красная кривая), y=x3(синяя кривая) |
|
Тип | |
---|---|
Написана на | |
Операционная система | |
Первый выпуск | |
Аппаратная платформа | |
Последняя версия | |
Лицензия | |
Сайт |
www.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. Рекомендуемая программа виртуализации — VirtualBox.
Алгебра | 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 | |
4.0 | Май, 2009 |
В 2007 году Sage выиграл первый приз международного конкурса свободного программного обеспечения en:Les Trophées du Libre (англ.) в разделе научного ПО.[9]
Математическое программное обеспечение | |
---|---|
Open source | Символьные вычисления: Axiom • GAP • Maxima • ; Численные вычисления: Fityk • FreeMat • GNU Octave • gretl • LabPlot • QtiPlot • R • Sage • SciDAVis • Scilab • |
Proprietary | Символьные вычисления: Mathcad • Maple • Mathematica • SMath Studio ; Численные вычисления: GAUSS • LabVIEW • MagicPlot • MATLAB • Origin • SigmaPlot • Speakeasy • VisSim |
Музыка gdfrfeat sage the gemini and lookas, juicy j kevin gates future sage the gemini payback vk.com\/s3music.
Альтернативное урегулирование споров онлайн, Счётчик, Демонстрация против расширения болгарской зоны оккупации.