jsMath

# Sage bevez

## 774 days ago by hudhud

Sage bevezető

Demó a Sage használatából:

1+1
 2 2
var('x,a,b,c,d') solve(a*x^2+b*x+c==0,x)
 [x == -1/2*(b + sqrt(-4*a*c + b^2))/a, x == -1/2*(b - sqrt(-4*a*c + b^2))/a] [x == -1/2*(b + sqrt(-4*a*c + b^2))/a, x == -1/2*(b - sqrt(-4*a*c + b^2))/a]
solve(a*x^3+b*x^2+c*x+d==0,x)
 [x == -1/2*(I*sqrt(3) + 1)*(1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3) - 1/3*b/a + 1/18*(-I*sqrt(3) + 1)*(3*a*c - b^2)/((1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3)*a^2), x == -1/2*(-I*sqrt(3) + 1)*(1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3) - 1/3*b/a + 1/18*(I*sqrt(3) + 1)*(3*a*c - b^2)/((1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3)*a^2), x == (1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3) - 1/3*b/a - 1/9*(3*a*c - b^2)/((1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3)*a^2)] [x == -1/2*(I*sqrt(3) + 1)*(1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3) - 1/3*b/a + 1/18*(-I*sqrt(3) + 1)*(3*a*c - b^2)/((1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3)*a^2), x == -1/2*(-I*sqrt(3) + 1)*(1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3) - 1/3*b/a + 1/18*(I*sqrt(3) + 1)*(3*a*c - b^2)/((1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3)*a^2), x == (1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3) - 1/3*b/a - 1/9*(3*a*c - b^2)/((1/18*sqrt(27*a^2*d^2 + 4*a*c^3 - b^2*c^2 - 2*(9*a*b*c - 2*b^3)*d)*sqrt(3)/a^2 - 1/54*(27*a^2*d - 9*a*b*c + 2*b^3)/a^3)^(1/3)*a^2)]
diff(tan(x),x)
 tan(x)^2 + 1 tan(x)^2 + 1
show(diff(tan(x),x,8))
 128(tan(x)2+1)tan(x)7+7680(tan(x)2+1)2tan(x)5+24576(tan(x)2+1)3tan(x)3+7936(tan(x)2+1)4tan(x) 128(tan(x)2+1)tan(x)7+7680(tan(x)2+1)2tan(x)5+24576(tan(x)2+1)3tan(x)3+7936(tan(x)2+1)4tan(x)
integral(sin(x),x)
 -cos(x) -cos(x)
show(integral(sin(x^2),x))
 81((I−1)√2erf((21I−21)√2x)+(I+1)√2erf((21I+21)√2x))√π  81((I−1)√2erf((21I−21)√2x)+(I+1)√2erf((21I+21)√2x))√π
plot(sin(x),(x,0,2*pi))
animate([sin(x + float(k)) for k in [0,0.3,..,2*pi]], xmin=0, xmax=2*pi).show()
factor(19753908033962706153880721511761)
 238749823749839 * 82738942897234399 238749823749839 * 82738942897234399
for l in permutations(range(8)): if all([ abs(l[i]-l[j]) != i-j or i == j for i in range(8) for j in range(8) ]): show(matrix_plot([[ l[i]!=j for i in range(8)] for j in range(8)])) break
var('x,y'); plot3d(sin(x-y)*y*cos(x),(x,-3,3),(y,-3,3))
G=graphs.DodecahedralGraph()
 Dodecahedron: Graph on 20 vertices Dodecahedron: Graph on 20 vertices
G.plot()
G.plot(partition=G.coloring())
G.show3d(vertex_colors=dict([((random(),random(),random()),i) for i in G.coloring()]))
s='informatika 1 sage math' g=DiGraph({}, loops=True, mutiedges=True) for a,b in [(s[i],s[i+1]) for i in [0..len(s)-2]]: g.add_edge(a,b,b) g.plot(color_by_label=True,edge_style='solid').show(figsize=(8,8))
t = Tachyon(xres=600,yres=600, camera_center=(2,0,0)) t.light((4,3,2), 0.2, (1,1,1)) t.texture('t2', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(1,0,0)) t.texture('t3', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(0,1,0)) t.texture('t4', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(0,0,1)) t.sphere((0,0.5,0), 0.2, 't2') t.sphere((0.5,0,0), 0.2, 't3') t.sphere((0,0,0.5), 0.2, 't4') t.show()
n(pi,digits=1000)
 3.1415926535897932384626433832795028841971693993751058209749445923078164\ 062862089986280348253421170679821480865132823066470938446095505822317253\ 594081284811174502841027019385211055596446229489549303819644288109756659\ 334461284756482337867831652712019091456485669234603486104543266482133936\ 072602491412737245870066063155881748815209209628292540917153643678925903\ 600113305305488204665213841469519415116094330572703657595919530921861173\ 819326117931051185480744623799627495673518857527248912279381830119491298\ 336733624406566430860213949463952247371907021798609437027705392171762931\ 767523846748184676694051320005681271452635608277857713427577896091736371\ 787214684409012249534301465495853710507922796892589235420199561121290219\ 608640344181598136297747713099605187072113499999983729780499510597317328\ 160963185950244594553469083026425223082533446850352619311881710100031378\ 387528865875332083814206171776691473035982534904287554687311595628638823\ 53787593751957781857780532171226806613001927876611195909216420199 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420199
%latex $\int\limits_{-\infty}^{\infty} \frac{\sin(x)}x\, \mathrm{d}x$
factorial(150)
 571338395644585459047893286526105400318955357860112641825483758331798291\ 248453983931265744886753111453771078787468542041626662501986845044663559\ 491959220665749425920957357789293253572904449624724054167907221184454371\ 22269675520000000000000000000000000000000000000 57133839564458545904789328652610540031895535786011264182548375833179829124845398393126574488675311145377107878746854204162666250198684504466355949195922066574942592095735778929325357290444962472405416790722118445437122269675520000000000000000000000000000000000000
a=factorial(150000) n( log(a)/log(10) )
 711272.503708669 711272.503708669
help(factorial)
     Click to open help window         Click to open help window    
factorial?

Sage Math

• 2005. február: William Stein (University of Washington) kiadta az első változat a Sage-ből
• Céljuk, hogy egy ingyenes, nyílt forráskódú alternatívát kínáljanak a Magma, Maple, Mathematica és Matlab programokhoz.
• General Public License (illetve a legtöbb komponens, amire támaszkodik az: http://sagemath.org/links-components.html )
• projekt honlapja: www.sagemath.org
• Regisztrálás után kipróbálható a szerverükön. A regisztráció gyors, még email cím sem kell.
• Mindenki kap belejentkezési lehetőséget a BME Matematika Intézet gépére: https://omnibus2.math.bme.hu:8000/
• Nincs saját szintaxisa, Python-t vették alapul.
• Sok esetben a Sage nem maga számol, hanem meghívja a GP/PARI, GAP, Singular, Maxima, stb. programokat. Képes Mathematica-t, Maple-t, Matlab-ot is használni, ha azok telepítve vannak.
• Használható konzolosan (karaketeresen) és böngészőből (ajax, gnuplot, jmol a 3D-s grafikonokhoz).
• LaTeX támogatás. A cellákban írhatunk LaTeX kódokat (amennyiben van LaTeX fordítónk, ekkor a png képpé alakított eredményt látjuk a böngészőben), a kifejezéseket kérhetjük LaTeX szintaxisban.
• 2 hetente, havonta kiadások, aktív levéllisták, trac rendszer, irc.
• doctest rendszer: a függvényekben help-jében példák vannak eredménnyel együtt, amelyek helyességét fordításkor ellenőrzi.

Hátrányok:

• Még nincs natív Windows-os változat, mivel a Sage által használt programok egy része nem fordul Windows-on. Dolgoznak rajta. VMWare segítségével futtatható, ehhez adnak képfájlt is.
• A formulák nem teljesen egységesek, mivel sok más programra támaszkodik.
• Saját vélemény: bár algebrából erős, analízisből (bonyolultabb integrálás, sorok összegzése) még gyenge.

Kezelőfelület:

• sor végi ENTER -> új sort kezd
• SHIFT + ENTER -> végrehatja az adott cellát
• Escape -> futtatás megszakítása
• ctrl ;    -> az adott cellát szétvágja két részre
• ctrl BACKSPACE   -> az adott cellát összevonja az előző cellával
• alt + ENTER -> Futtatj a cellát, majd utána új mezőt nyit
• a kék csíkra kattintva lehet egérrel új mezőt nyitni (ha közben a SHIFT-et lenyomva tartjuk, akkor olyan megjegyzést írhatunk, mint ez is)
• a megjegyzézeket dupla kattintással tudjuk megint szerkeszthetővé tenni
• ha cellán belül egy vagy több sorban kijelölünk részeket (a SHIFT és a nyilak segítségével vagy egérrel), akkor Firefoxban a TAB és SHIFT+TAB hatására változtathatjuk a kijelölt sorok behúzását
• A eredmények előtt van egy kis fehér rész, ami felett az egér kézzé alakulva jelzi, hogy funkciója van. 3 állapot között lehet váltani: az eredmény normál megjelenítése, egy sorban való kiíratása, vagy az eredmény eltüntetése.
• Van lehetőség LaTeX kódok írására megjegyzések között:
−∞xsin(x)dx

Segítség a parancsokhoz:

• help(parancs) + SHIFT ENTER -> egy linket ad, amivel új oldalon nyílik meg a parancs leírása
• parancs? + SHIFT ENTER -> a parancs leírása
• parancs? + TAB -> a parancs leírását csak megmutatja
• paran +TAB -> kiegészíti a parancs nevét, illetve ha ez nem egyértelmű, akkor megadja az opciókat. Az opciók közül nyilakkal választhatunk. Ha ekkor az egyik opción nyomunk mégegy TAB-ot, akkor kiírja a hozzá tartozó leírást.