Movatterモバイル変換


[0]ホーム

URL:


Пређи на садржај
Википедија
Претрага

SymPy

С Википедије, слободне енциклопедије
SymPy
Програмер(и)Независна група људи
Прво издање2007.; пре 19 година (2007)
Стабилно издање
0.7.6.1 / 3. септембар 2015.; пре 10 година (2015-09-03)
РепозиторијумУреди на Википодацима
Написан уПајтон
Оперативни системВишеплатформни
ТипСистем за компјутерско израчунавање
ЛиценцаBSD лиценца
Веб-сајтsympy.org

SymPy јепајтонова библиотека засимболичко израчунавање. Она омогућава компјутерско израчунавање било као самостална апликација, као библиотека у другим апликацијама, или директном применом на веб страницама као што су SymPy Live или SymPy Gamma. SymPy је једноставан за инсталирање и преглед садржаја јер је у потпуности написан у Пајтону и зато што не зависи од других додатних библиотека.[1][2] Оваква једноставност приступа у комбинацији са једноставном и проширивом кодном базом на добро познатом језику чини SymPy рачунарско алгебарским системом са ниском почетном баријером.

SymPy укључује својства у опсегу од основних симболичко аритметичких израчунавања, до математичке анализе, алгебре, дискретне математике и квантне физике. Такође пружа могућност претварања резултата израчунавања уLaTeX код.[1][2]

SymPy јеслободни софтвер и лиценциран од странеBSD лиценце. Главни програмери који су заслужни за развијање овог софтвера су Ondřej Čertík и Aaron Meurer.

Карактеристике

[уреди |уреди извор]

SymPy библиотека је подељена на језгра са великим бројем опционалних модула.

Тренутно, језгро SymPy има око 260,000 линија кода[3] (укључујићи обиман сет  кодова за само тестирање: преко 100,000 линија у 350 fајлова  верзије 0.7.5).) и њене могућности обухватају:[1][2][4][5][6]

Основне могућности

[уреди |уреди извор]
  • Основне аритметичке операције: *, /, +, -, **
  • Поједностављење
  • Проширење
  • Функције: тригонометријске, хиперболичке, експоненцијалне, кореновање, логаритмовање, апсолутне вердности, сферни хармоници, факторијел и гама функције, зета функције, полиноми, хипергеометрија, специјалне функције, ...
  • Измене
  • Приближна прецизност целих, рационалних и децималних бројева
  • Некомутативни симболи
  • Упаривање образаца

Полиноми

[уреди |уреди извор]

Рачун

[уреди |уреди извор]


Решавање једначина

[уреди |уреди извор]

Дискретна математика

[уреди |уреди извор]

Матрице

[уреди |уреди извор]

Геометрија

[уреди |уреди извор]
  • Тачке, праве, равни, сегменти, елипсе, кругови, полигони, ...
  • Пресеци
  • Додирне тачке
  • Сличност

Цртање

[уреди |уреди извор]

Напомена, цртање захтева екстерни Pyglet  модул.

  • Координате модела
  • Цртање геометријских тела
  • 2Д и 3Д
  • Интерактивни приступ
  • Боје

Физика

[уреди |уреди извор]

Статистика

[уреди |уреди извор]


Штампање

[уреди |уреди извор]

Повезани пројекти

[уреди |уреди извор]
  • Sage:алтернатива отвореног кода заMathematica,Maple,MATLAB, и Magma (SymPy је укључен у Sage)
  • SymEngine: преведена библиотека SymPy језгра у C++, како би се побољшао његов рад. Третнутно се ради на томе да SymEngine постане основа и за Sage .
  • mpmath: Пајтонова библиотека за аритметику приближне прецизности покретног зареза (постоји у оквиру SymPy)
  • sympycore: још један Пајтонов систем за компјутерско израчунавање
  • SfePy: Софтвер за решавање система већег броја диференцијалних једначина (PDEs) помоћу методе коначних елемената  у 1Д, 2Д и 3Д.

Опцоналне зависности

[уреди |уреди извор]

SymPy за своје покретање, не захтева  ништа осим Пајтона, али постоји пар опција које могу да побољшају њене могућности:

  • gmpy: Ако је gmpy иснталиран, SymPy-јев модул за полиноме ће аутоматски да га користи за брже основне типове. Ово омогућава значајно побољшање рада одређених операција.

Примери коришћења

[уреди |уреди извор]

Pretty Printing - Стилско форматирање конвенционалних текстуалних фајлова

[уреди |уреди извор]

Омогућава да излазне информације буду преведене у знатно уређенији формат преко функције pprint. Такође, init_printing() метод ће омогућити pretty printing, тако да pprint не мора да буде позван. Pretty printing ће користити unicode симболе који су доступни у датој околини, у супротном ће користитиASCII карактере .

>>>fromsympyimportpprint,init_printing,Symbol,sin,cos,exp,sqrt,series,Integral,Function>>>>>>x=Symbol("x")>>>y=Symbol("y")>>>f=Function('f')>>># pprint ће поставити unicode као подразумеван, ако је доступан>>>pprint(x**exp(x))xx>>># Излазна информација без unicode-a>>>pprint(Integral(f(x),x),use_unicode=False)/||f(x)dx|/>>># Поређење истих израза али је овога пута unicode омогућен>>>pprint(Integral(f(x),x),use_unicode=True)f(x)dx>>># Алтернативно, можете позвати init_printing() једном и pretty print без функције pprint.>>>init_printing()>>>sqrt(sqrt(exp(x)))____4x╲╱>>>(1/cos(x)).series(x,0,10)2468x5x61x277x101+──+────+─────+──────+Ox2247208064

Проширење

[уреди |уреди извор]
>>>fromsympyimportinit_printing,Symbol,expand>>>init_printing()>>>>>>a=Symbol('a')>>>b=Symbol('b')>>>e=(a+b)**5>>>e5(a+b)>>>e.expand()54322345a+5ab+10ab+10ab+5ab+b

Пример арбитрарне прецизности

[уреди |уреди извор]
>>>fromsympyimportRational,pprint>>>>>>e=Rational(2)**50/Rational(10)**50>>>pprint(e)1/88817841970012523233890533447265625

Извод

[уреди |уреди извор]
>>>fromsympyimportinit_printing,symbols,ln,diff>>>init_printing()>>>x,y=symbols('x y')>>>f=x**2/y+2*x-ln(y)>>>diff(f,x)2x───+2y>>>diff(f,y)2x1-──-2yy>>>diff(diff(f,x),y)-2x────2y

Плотовање - Цртање

[уреди |уреди извор]
Пример плотованог излаза
>>>fromsympyimportsymbols,plot3d,cos>>>fromsympy.plottingimportplot3d>>>x,y=symbols('x y')>>>plot3d(cos(x*3)*cos(y*5)-y,(x,-1,1),(y,-1,1))<sympy.plotting.plot.Plotobjectat0x3b6d0d0>

Граничне вредности

[уреди |уреди извор]
>>>fromsympyimportinit_printing,Symbol,limit,sqrt,oo>>>init_printing()>>>>>>x=Symbol('x')>>>limit(sqrt(x**2-5*x+6)-x,x,oo)-5/2>>>limit(x*(sqrt(x**2+1)-x),x,oo)1/2>>>limit(1/x**2,x,0)>>>limit(((x-1)/(x+1))**x,x,oo)-2

Диференцијалне једначине

[уреди |уреди извор]
>>>fromsympyimportinit_printing,Symbol,Function,Eq,dsolve,sin,diff>>>init_printing()>>>>>>x=Symbol("x")>>>f=Function("f")>>>>>>eq=Eq(f(x).diff(x),f(x))>>>eqd──(f(x))=f(x)dx>>>>>>dsolve(eq,f(x))xf(x)=C₁⋅>>>>>>eq=Eq(x**2*f(x).diff(x),-3*x*f(x)+sin(x)/x)>>>eq2dsin(x)x⋅──(f(x))=-3xf(x)+──────dxx>>>>>>dsolve(eq,f(x))C-cos(x)f(x)=───────────3x

Интеграли

[уреди |уреди извор]
>>>fromsympyimportinit_printing,integrate,Symbol,exp,cos,erf>>>init_printing()>>>x=Symbol('x')>>># Полиномске функције>>>f=x**2+x+1>>>f2x+x+1>>>integrate(f,x)32xx──+──+x32>>># Рационалне функције>>>f=x/(x**2+2*x+1)>>>fx────────────2x+2x+1>>>integrate(f,x)1log(x+1)+─────x+1>>># Експоненцијално-полиномске функције>>>f=x**2*exp(x)*cos(x)>>>f2xxcos(x)>>>integrate(f,x)2x2xxxxsin(x)xcos(x)xsin(x)cos(x)────────────+────────────-xsin(x)+─────────-─────────2222>>># Сложени интеграл>>>f=exp(-x**2)*erf(x)>>>f2-xerf(x)>>>integrate(f,x)___2╲╱πerf(x)─────────────4

Серије

[уреди |уреди извор]
>>>fromsympyimportSymbol,cos,sin,pprint>>>x=Symbol('x')>>>e=1/cos(x)>>>pprint(e)1──────cos(x)>>>pprint(e.series(x,0,10))2468x5x61x277x101+──+────+─────+──────+Ox2247208064>>>e=1/sin(x)>>>pprint(e)1──────sin(x)>>>pprint(e.series(x,0,4))31x7x4++────+Oxx6360

Виде још 

[уреди |уреди извор]
  • Поређење компјутерских система за израчунавање

Референце

[уреди |уреди извор]
  1. ^абв"SymPy homepage".
  2. ^абвJoyner, David; Čertík, Ondřej; Meurer, Aaron; Granger, Brian E. (2012).
  3. ^"Sympy project statistics on Open HUB".
  4. ^Gede, Gilbert; Peterson, Dale L.; Nanjangud, Angadh; Moore, Jason K.; Hubbard, Mont (2013).
  5. ^Rocklin, Matthew; Terrel, Andy (2012).
  6. ^Asif, Mushtaq; Olaussen, Kåre (2014).

Спољашње везе

[уреди |уреди извор]
Отворени код
Затворени код
Без подршке
SymPy насродним пројектима Википедије:
Медији на Остави
Подаци на Википодацима
Преузето из „https://sr.wikipedia.org/w/index.php?title=SymPy&oldid=29237511
Категорије:
Сакривене категорије:

[8]ページ先頭

©2009-2026 Movatter.jp