Sage alapok. A Sage program használható egyszerő számolási feladatok elvégzésére: #Összeadás #Kivonás

Hasonló dokumentumok
Komputeralgebra Rendszerek

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

ALGEBRAI KIFEJEZÉSEK, EGYENLETEK

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

2018/2019. Matematika 10.K

Másodfokú egyenletek, egyenlőtlenségek

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Excel Hivatkozások, függvények használata

Komplex számok. Wettl Ferenc előadása alapján Wettl Ferenc előadása alapján Komplex számok / 18

Másodfokú egyenletek, egyenlőtlenségek

Excel Hivatkozások, függvények használata

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Abszolútértékes és gyökös kifejezések Megoldások

Komplex számok trigonometrikus alakja

KOVÁCS BÉLA, MATEMATIKA I.

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

Megoldások. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) 1. Számítsd ki a következő kifejezések pontos értékét!

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

HÁZI FELADATOK. 2. félév. 1. konferencia Komplex számok

Algoritmusok Tervezése. 1. Előadás MATLAB 1. Dr. Bécsi Tamás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

a) A logaritmus értelmezése alapján: x 8 0 ( x 2 2 vagy x 2 2) (1 pont) Egy szorzat értéke pontosan akkor 0, ha valamelyik szorzótényező 0.

Maple: Deriváltak és a függvény nevezetes pontjai

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Abszolútértékes és Gyökös kifejezések

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei

LEGO robotok. XII. rész

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Baran Ágnes, Burai Pál, Noszály Csaba. Gyakorlat Differenciálegyenletek numerikus megoldása

Függvények Megoldások

Baran Ágnes. Gyakorlat Halmazok, függvények, Matlab alapok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 34

SCILAB programcsomag segítségével

Közönséges differenciálegyenletek megoldása Mapleben

Matlab alapok. Baran Ágnes. Grafika. Baran Ágnes Matlab alapok Grafika 1 / 21

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

Numerikus matematika

Matematika tanmenet 10. osztály (heti 3 óra) A gyökvonás 14 óra

Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások

Excel 2010 függvények

Függvények határértéke és folytonosság

1. Alapok. #!/bin/bash

9. Trigonometria. I. Nulladik ZH-ban láttuk: 1. Tegye nagyság szerint növekvő sorrendbe az alábbi értékeket! Megoldás:

Maple. Maple. Dr. Tóth László egyetemi docens Pécsi Tudományegyetem, 2007

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Komputeralgebra Rendszerek

Osztályozó- és javítóvizsga. Matematika tantárgyból

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

1. Komplex számok. x 2 = 1 és x 2 + x + 1 = 0. egyenletek megoldását számnak tekinthessük:

Matematikai programok

x = 1 = ı (imaginárius egység), illetve x 12 = 1 ± 1 4 2

Tanmenet a Matematika 10. tankönyvhöz

2. Algebrai átalakítások

Követelmény a 7. évfolyamon félévkor matematikából

BASH script programozás II. Vezérlési szerkezetek

Diszkrét matematika 1.

Matematika 8. osztály

Komputeralgebra Rendszerek

TANMENET 2015/16. Készítette: KOVÁCS ILONA, Felhasználja: Juhász Orsolya

SZÁMÍTÁSOK A TÁBLÁZATBAN

Matematikai programok

Differenciálegyenletek. Vajda István március 4.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

MATLAB OKTATÁS 1. ELŐADÁS ALAPOK. Dr. Bécsi Tamás Hegedüs Ferenc

Java II. I A Java programozási nyelv alapelemei

Egyenletek, egyenletrendszerek, egyenlőtlenségek Megoldások

9.fejezet: Függvények és külső eljárások

Kalkulus. Komplex számok

2018, Funkcionális programozás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

2012. október 9 és 11. Dr. Vincze Szilvia

Függvények ábrázolása

Osztályozó- és javítóvizsga témakörei MATEMATIKA tantárgyból 2016 / tanév

TANMENET. a matematika tantárgy tanításához 10. E.osztályok számára

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Abszolútértékes és gyökös kifejezések

Függvények csoportosítása, függvénytranszformációk

Komputeralgebra rendszerek

Limesz, Derivált, Integrál

2018, Diszkrét matematika

Komputeralgebra rendszerek

Matematika 11. osztály

Komputeralgebrai Algoritmusok

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

A Föld középpontja felé szabadon eső test sebessége növekszik, azaz, a

>> x1 = linspace( ); plot(x1,sin(x1),'linewidth',1,'color',[1 0 0]);

Mathematica automatikusan dolgozik nagy pontossággal, például 3 a 100-dik hatványon egy szám 48 tizedes jeggyel:

M. 33. Határozza meg az összes olyan kétjegyű szám összegét, amelyek 4-gyel osztva maradékul 3-at adnak!

ködös határ (félreértés, hiba)

First Prev Next Last Go Back Full Screen Close Quit. Komplex számok (2)

MATEMATIKA TANMENET SZAKKÖZÉPISKOLA 11B OSZTÁLY HETI 4 ÓRA 37 HÉT/ ÖSSZ 148 ÓRA

Analízis elo adások. Vajda István szeptember 10. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Bevezetés a MATLAB programba

Csima Judit március 9. és 16.

A lineáris algebrában központi szerepet betöltı vektortér fogalmát értelmezzük most, s megvizsgáljuk e struktúra legfontosabb egyszerő tulajdonságait.

Diszkrét matematika 1. estis képzés

A C# PROGRAMOZÁSI NYELV

Beregszászi István Programozási példatár

Egyenletek, egyenlőtlenségek V.

Az osztályozóvizsgák követelményrendszere 9. évfolyam

1. A komplex számok definíciója

Átírás:

1 / 13 2009.09.09. 15:48 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

2 / 13 2009.09.09. 15:48 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

3 / 13 2009.09.09. 15:48 #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 a+b 5 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

4 / 13 2009.09.09. 15:48 #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 (2x y +y + 4) xy tort=(2*x^2+4*x)/(x+2) show(tort) 2 (x 2 + 2x) (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

5 / 13 2009.09.09. 15:48 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

6 / 13 2009.09.09. 15:48 #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)

7 / 13 2009.09.09. 15:48 #Két ismert trigonometrikus függvény: plot(sin,(-pi,2*pi))

8 / 13 2009.09.09. 15:48 #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)

9 / 13 2009.09.09. 15:48 #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')

10 / 13 2009.09.09. 15:48 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

11 / 13 2009.09.09. 15:48 (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

12 / 13 2009.09.09. 15:48 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)

13 / 13 2009.09.09. 15:48