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((I1)2erf((21I21)2x)+(I+1)2erf((21I+21)2x))π 
81((I1)2erf((21I21)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)) 
       

You do not have Java applets enabled in your web browser, or your browser is blocking this applet.
Check the warning message from your browser and/or enable Java applets in
your web browser preferences, or install the Java Runtime Environment from www.java.com

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()])) 
       

You do not have Java applets enabled in your web browser, or your browser is blocking this applet.
Check the warning message from your browser and/or enable Java applets in
your web browser preferences, or install the Java Runtime Environment from www.java.com

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) 
       
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.