Sage Worksheet: Sage alapok
1 / 13
http://www.sagenb.org/home/istvan/40/print
To print higher-resolution math symbols, click the Hi-Res Fonts for Printing button on the jsMath control panel. If the math symbols print as black boxes, turn off image alpha channels using the Options pane of the jsMath control panel.
Sage alapok A Sage program használható egyszerő számolási feladatok elvégzésére: #Összeadás 2+3 5 #Kivonás 5-2 3 #A szorzás jele a * 3*6 18 #Az osztás jele a /. Nem használható a :, ami papíron szokásos 32/5 32/5 #Az elızı eredményt közönséges tört formájában kaptuk meg. #Ha tizedestört alakban szeretném megkapni, akkor kasználhatjuk az n() függvényt, n(32/5) 6.40000000000000 #Vagy az N() függvényt, N(32/5) 6.40000000000000 #Vagy az .n() metódust: 32/5.n() 6.40000000000000 #Az értékes jegyek számát megváltoztathatjuk. n(32/5,digits=5) 6.4000 32/5.n(digits=4) 6.400 N(32/5,digits=4) 6.400 n(pi) 3.14159265358979 n(pi,digits=3) 3.14 n(pi,digits=100) 3.141592653589793238462643383279502884197169399375105820974944592307\ 816406286208998628034825342117068 #Elıírhatjuk azt is, hogy hány bitet használjon fel a program az 2009.09.09. 15:48
Sage Worksheet: Sage alapok
2 / 13
http://www.sagenb.org/home/istvan/40/print
eredmény ábrázolására n(pi,prec=20) 3.1416 #Ha az eredménynek csak az egészrésze érdekel bennünket, használhatjuk az egészosztást. 32//5 6 #Az osztás maradékát is megkaphatjuk a % (maradék) mővelettel. 32%5 2 #A hatványozás jele a ^, illetve a ** 3^10 59049 3**10 59049 #A négyzetgyökvonás az sqrt() függvény, vagy az .sqrt() metódus segítségével végezhetı el. sqrt(25) 5 25.sqrt() 5 #Ha a gyökvonás eredménye nem egész, a Sage a pontos értéket adja meg algebrai formában. 30.sqrt() sqrt(30) sqrt(48) 4*sqrt(3) #Ha a közelítı értékre vagyunk kíváncsiak, a szokásos n() függvényt (és társait) használhatjuk. n(sqrt(48)) 6.92820323027551 #Egy cellában több parancsot is kiadhatunk. Visszatérési értéket azonban csak az utolsó parancs esetén kapunk. sqrt(30).n() sqrt(48).n() 6.92820323027551 #Ha több számolás eredményét is szeretnénk látni ugyanannak a cellának a kimenetében, akkor használhatjuk a print parancsot. print sqrt(30).n() print sqrt(48).n() 5.47722557505166 6.92820323027551 #A print paranccsal szövegeket is ki tudunk iratni. A szöveg (string) két idézıjel vagy két aposztrofjel között kell legyen. print "Hello vilag" print 'Romeo es Julia' Hello vilag Romeo es Julia
2009.09.09. 15:48
Sage Worksheet: Sage alapok
3 / 13
http://www.sagenb.org/home/istvan/40/print
#Az egyes print parancsok eredménye alapértelmezésben külön sorba kerül, de ezt megváltoztathatjuk, ha a parancs végére egy vesszıt teszünk print "Hello vilag", print 'Romeo es Julia' Hello vilag Romeo es Julia #Ugyanezt egy print paranccsal is megkaphatjuk print "Hello vilag", 'Romeo es Julia' Hello vilag Romeo es Julia #Stringek alkalmazásával az outputok olvashatóbbá tehetık print 'A 30 négyzetgyöke közelítıleg',sqrt(30).n() A 30 négyzetgyöke közelítıleg 5.47722557505166 #Az .nth_root() metódus lehetıvé teszi a gyökvonást nagyobb gyökkitevı esetén is. print "A 81 negyedik gyöke =",81.nth_root(4) A 81 negyedik gyöke = 3 #Faktoriálisok kiszámítása a .factorial() metódus segítségével print "5!=",5.factorial() 5!= 120 Szimbolikus számítások #Ha a Sage programban értéket adunk egy változónak, amit itt nemcsak egyetlen bető jelölhet, akkor a Sage ezt a változót ezzel az értékkel azonosítja, mindaddig, míg az értékadás érvényét nem veszti. a=8 b=5 a 8 b 5 a+b 13 #Ha újra értéket adunk a változónak, akkor korábbi értékét elveszti a=12 a 12 #A matematikában gyakran számolunk szimbólumokkal (pl. betők), amelyek egy változót, paramétert vagy ismeretlent jelölnek. Ha ilyen szimbólumként akarjuk, használni valamelyik változót, akkor ezt a var() függvénnyel jelezhetjük a Sage programnak. (a,b)=var('a,b') a a #Látható, hogy a var() függvény hatására a változó elveszítette a korábbi értékét. (a+b)^2 (a + b)^2
2009.09.09. 15:48
Sage Worksheet: Sage alapok
4 / 13
http://www.sagenb.org/home/istvan/40/print
#A szimbolikus kifejezés matematikai formáját a show() függvénnyel vagy .show() metódussal kapjuk meg. show((a+b)^2) (a + b)2 ((a+b)^2).show() (a + b)2 #Az algebrai kifejezéseket összeggé alakíthatjuk az expand() függvénnyel vagy .expand() metódussal ((a+b)^2).expand() a^2 + 2*a*b + b^2 ((a+b)^3).expand() a^3 + 3*a^2*b + 3*a*b^2 + b^3 ((a+b)^10).expand() a^10 + 10*a^9*b + 45*a^8*b^2 + 120*a^7*b^3 + 210*a^6*b^4 + 252*a^5*b^5 + 210*a^4*b^6 + 120*a^3*b^7 + 45*a^2*b^8 + 10*a*b^9 + b^10 #Az összeggé alakítás megfordítása algebrai kifejezések esetén a szorzattá alakítás. Ezt a factor() függvénnyel vagy .factor() metódussal lehet elérni akár számok, akár szimbolikus kifejezések esetén factor(187) 11 * 17 187.factor() 11 * 17 (x,y)=var('x,y') (3*x*y^2+12*x*y+6*x^2*y^2).factor() 3*(2*x*y + y + 4)*x*y show(_) 3 (2 xy + y + 4)xy tort=(2*x^2+4*x)/(x+2) show(tort) 2
(x2 + 2 x) (x + 2)
#A felírt törtet egyszerősíteni szeretném, de ez a .simplify() metódussal nem most sikerül. tort.simplify() #!!! 2*(x^2 + 2*x)/(x + 2) #Megtörténik azonban az egyszerősítés a .simplify_full(), illetve a .simplify_rational() metódusok alkalmazása esetén. tort.simplify_full() 2*x
2009.09.09. 15:48
Sage Worksheet: Sage alapok
5 / 13
http://www.sagenb.org/home/istvan/40/print
tort.simplify_rational() 2*x #Ugyancsak végbemegy az egyszerősítés, ha a .factor() metódust alkalmazzuk, mert a számláló és a nevezı szorzattá bontása után a Sage azonnal felismeri azok azonos tényezıit és automatikusan egyszerősít. tort.factor() 2*x #ÍMég egy példa a szorzattá alakításra: (a,b)=var('a,b') (a^2-b^2).factor() (a - b)*(a + b) Relációk #Konkrét számok vagy azok kifejezései között a szokásos egyenlıség vagy #egyenlıtlenségrelációkat felírva a Sage azt kiértékeli és igaz értéket (True) vagy hamisat #(False) ad vissza. 3==2+1 True 2*2==5 False 12>9 True 12>15 False 5>=5 True #Ugyanez a helyzet, ha a reláció szimbólumokat is tartalmaz, ha azok értéke adott. a=2 a<5 True b=2 a==b True 2*a>3*b False #Ha a szimbólumnak nem adtunk konkrét értéket, akkor a Sage a relációt adja vissza outputként. x^2>=0 x^2 >= 0 #Ebben az esetben is kikényszeríthetı azonban a reláció kiértékelése a bool() függvénnyel. bool(x^2>=0) True Függvények ábrázolása
2009.09.09. 15:48
Sage Worksheet: Sage alapok
6 / 13
http://www.sagenb.org/home/istvan/40/print
#A plot() függvény a grafikus objektumot ad vissza, amely megjeleníthetı. #A plot() függvény elsı paramétere maga az ábrázolandó függvény, második paramétere az az intervallum, amelyen ábrázolni akarjuk. plot(x^2,(-3,3))
#Ha azt szeretnénk, hogy a két tengelyen az egységek ugyanakkorák legyenek, akkor szükség van #egy harmadik (opcionális) paraméterre is: be kell állítanunk az aspect_ratio értékét 1-re plot(x^2,(-3,3),aspect_ratio=1)
2009.09.09. 15:48
Sage Worksheet: Sage alapok
7 / 13
http://www.sagenb.org/home/istvan/40/print
#Két ismert trigonometrikus függvény: plot(sin,(-pi,2*pi))
2009.09.09. 15:48
Sage Worksheet: Sage alapok
8 / 13
http://www.sagenb.org/home/istvan/40/print
#Itt most a grafikon színét pirosnak választjuk plot(sin,(-pi,2*pi),rgbcolor='red')
#A két függvény egy koordinátarendszerben is ábrázolható, ha egy-egy változónév alatt elmentjük a két grafikos objektumot és a show() függvény segítségével jelenítjük meg ıket g1=plot(sin,(-2*pi,2*pi)) g2=plot(cos,(-2*pi,2*pi),rgbcolor='red') show(g1+g2)
#Megjeleníthetjük az egyes függvények nevét is. g1=plot(sin,(-2*pi,2*pi))+text('sin',(6.6,-0.2),rgbcolor='blue') g2=plot(cos,(-2*pi,2*pi),rgbcolor='red')+text('cos', (6.6,0.8),rgbcolor='red') show(g1+g2)
2009.09.09. 15:48
Sage Worksheet: Sage alapok
9 / 13
http://www.sagenb.org/home/istvan/40/print
#A tangens és kotangens függvények ábrázolása itt nem sikeres, mert a szakadási helyek #környékén felvett nagy abszolútértékő számok miatt az y-tengelyen nagyon kicsi lett az egység g3=plot(tan,(x,-2*pi,2*pi))+text('tg',(5,10),rgbcolor='blue') g4=plot(cot,(x,-2*pi,2*pi),rgbcolor='red')+text('ctg', (6.6,-3.5),rgbcolor='red') show(g3+g4)
#Ha a show() függvény ymin, ymax paramétereivel megakadályozzuk a túl nagy értékek ábrázolását, #akkor használhatóbb ábrát kapunk. #Ennek az ábrának már csak az a szépséghibája, hogy a függıleges aszimptotákat is mutatja. g3=plot(tan,(x,-2*pi,2*pi))+text('tg',(5,10),rgbcolor='blue')
2009.09.09. 15:48
Sage Worksheet: Sage alapok
10 / 13
http://www.sagenb.org/home/istvan/40/print
g4=plot(cot,(x,-2*pi,2*pi),rgbcolor='red')+text('ctg', (6.6,-3.5),rgbcolor='red') show(g3+g4,ymin=-10,ymax=10)
#Az aszimptoták ábrázolását kikapcsolhatjuk a plot() függvényben, ha a detect_poles paraméter #értékét igazra állítjuk. g3=plot(tan,(x,-2*pi,2*pi),detect_poles=True)+text('tg', (5,10),rgbcolor='blue') g4=plot(cot, (x,-2*pi,2*pi),detect_poles=True,rgbcolor='red')+text('ctg', (6.6,-3.5),rgbcolor='red') show(g3+g4,ymin=-10,ymax=10)
Trigonometrikus kifejezések
2009.09.09. 15:48
Sage Worksheet: Sage alapok
11 / 13
http://www.sagenb.org/home/istvan/40/print
(sin(x))^2+(cos(x))^2 #A Sage a matematikai jelöléstıl eltérı jelölést használ! sin(x)^2 + cos(x)^2 #Brrr!!!!! ((sin(x))^2+(cos(x))^2).show() sin x
2
+ cos x
2
#Konkrét értékek esetén a Sage esetleg kiszámítja a kifejezés értékét. (sin(pi/3))^2+(cos(pi/3))^2 1 #De nem mindig! (sin(2))^2+(cos(2))^2 sin(2)^2 + cos(2)^2 #Ha az argumentum lebegıpontos, akkor az eredményt is ilyen alakban kapjuk vissza. (sin(2.1))^2+(cos(2.1))^2 1.00000000000000 (sin(2.))^2+(cos(2.))^2 1.00000000000000 #Ha a kifejezés szimbólumot tartalmaz, ugyancsak elmaradhat a kiértékelés #Ezen még a .simplify() metódus sem tud segíteni. ((sin(x))^2+(cos(x))^2).simplify() sin(x)^2 + cos(x)^2 #Segít viszon a .simplify_trig() metódus! ((sin(x))^2+(cos(x))^2).simplify_trig() 1 #Megtörténik az egyszerőbb alakra hozás a .simplify_full() metódussal is. ((sin(x))^2+(cos(x))^2).simplify_full() 1 #Hasonló a helyzet az összefüggés átrendezett alakjával is: 1-(sin(x))^2 -sin(x)^2 + 1 (1-(sin(x))^2).simplify() -sin(x)^2 + 1 (1-(sin(x))^2).simplify_trig() cos(x)^2 (1-(sin(x))^2).simplify_full() cos(x)^2 #Használhatjuk a görög betőket is szimbólumként (alpha,beta)=var('alpha,beta') sin(alpha+beta) sin(alpha + beta) #A show() függvénnyel vagy a .show() metódussal megjeleníthetjük ıket a szokásos alakban 2009.09.09. 15:48
Sage Worksheet: Sage alapok
12 / 13
http://www.sagenb.org/home/istvan/40/print
sin(alpha+beta).show() sin
+
#Az .expand() metódus a trigonometrikus függvényeket nem tudja összeggé alakítani. (sin(alpha+beta)).expand().show() sin
+
#Az expand_trig() azonban már igen. (sin(alpha+beta)).expand_trig().show() sin
cos
+ sin
cos
Paraméteres függvény a=var('a') g(x)=(x^2-a*x)/(x+2) g(3) -3/5*a + 9/5 #A sub() metódus segítségével kiszámíthatjuk a helyettesítési értéket a paraméter egy konkrét #értéke esetén g(3).subs(a=1) 6/5 g(3).subs(a=2) 3/5 #Nem ábrázolhatjuk a függvényt, ha a paraméter nincs megadva plot(g,(-4,4)) Traceback (click to the left for traceback) ... ValueError: free variable: a #A paraméter egy adott értéke esetén a függvény már ábrázolható show(plot(g.subs(a=5),(-20,10),detect_poles=True),ymin=-30,ymax=30)
2009.09.09. 15:48
Sage Worksheet: Sage alapok
13 / 13
http://www.sagenb.org/home/istvan/40/print
2009.09.09. 15:48