| Програмер(и) | Независна група људи |
|---|---|
| Прво издање | 2007.; пре 19 година (2007) |
| Стабилно издање | 0.7.6.1 / 3. септембар 2015.; пре 10 година (2015-09-03) |
| Репозиторијум | |
| Написан у | Пајтон |
| Оперативни систем | Вишеплатформни |
| Тип | Систем за компјутерско израчунавање |
| Лиценца | BSD лиценца |
| Веб-сајт | sympy |
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 модул.
SymPy за своје покретање, не захтева ништа осим Пајтона, али постоји пар опција које могу да побољшају њене могућности:
Омогућава да излазне информације буду преведене у знатно уређенији формат преко функције 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))⎛x⎞⎝ℯ⎠x>>># Излазна информација без 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)))____4╱x╲╱ℯ>>>(1/cos(x)).series(x,0,10)2468x5⋅x61⋅x277⋅x⎛10⎞1+──+────+─────+──────+O⎝x⎠2247208064
>>>fromsympyimportinit_printing,Symbol,expand>>>init_printing()>>>>>>a=Symbol('a')>>>b=Symbol('b')>>>e=(a+b)**5>>>e5(a+b)>>>e.expand()54322345a+5⋅a⋅b+10⋅a⋅b+10⋅a⋅b+5⋅a⋅b+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)2⋅x───+2y>>>diff(f,y)2x1-──-─2yy>>>diff(diff(f,x),y)-2⋅x────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))=-3⋅x⋅f(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+2⋅x+1>>>integrate(f,x)1log(x+1)+─────x+1>>># Експоненцијално-полиномске функције>>>f=x**2*exp(x)*cos(x)>>>f2xx⋅ℯ⋅cos(x)>>>integrate(f,x)2x2xxxx⋅ℯ⋅sin(x)x⋅ℯ⋅cos(x)xℯ⋅sin(x)ℯ⋅cos(x)────────────+────────────-x⋅ℯ⋅sin(x)+─────────-─────────2222>>># Сложени интеграл>>>f=exp(-x**2)*erf(x)>>>f2-xℯ⋅erf(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))2468x5⋅x61⋅x277⋅x⎛10⎞1+──+────+─────+──────+O⎝x⎠2247208064>>>e=1/sin(x)>>>pprint(e)1──────sin(x)>>>pprint(e.series(x,0,4))31x7⋅x⎛4⎞─+─+────+O⎝x⎠x6360