Maple Dr. Tóth László egyetemi docens Pécsi Tudományegyetem, 2007 A Maple egy matematikai formula-manipulációs (vagy számítógép-algebrai) rendszer, amelyben nem csak numerikusan, hanem formális változókkal is lehet műveleteket végezni. Itt rövid általános ismertetőt, ízelítőt adunk és bemutatjuk a legfontosabb számelméleti parancsokat. Lásd a mellékelt Maple munkafájlokat is. További irodalom:. Molnárka Győző és társai, A Maple V és alkalmazásai, Springer Hungarica Kiadó, 996. 2. Klincsik Mihály, Maróti György, Maple 8 tételben, Novadat Kiadó, 99.. Kovács Zoltán, Rövid bevezetés a Maple használatába, 200, http://zeus.nyf.hu/~kovacsz/tutorial.pdf. Általános ismertető, ízelítő > # Valos szamok, muveletek > +2; -2; # osszeadas, kivonas > 2*; 2/; # szorzas, osztas 6 > 2^; 2**; # hatvanyozas 6 > sqrt(9); # gyokvonas >.2; 0.6; # tizedes tort megadasa 6.2 >!; # faktorialis.6 20 > ifactor(200); # egesz szam primfelbontasa (2) () () 2 > Pi, exp(), gamma, infinity; # pi, e, Euler-allando, vegtelen π, e, γ, > pi:=evalf(pi); e:=evalf(exp()); Euler:=evalf(gamma); # kiertekeles π :=.926 e := 2.7828828 > Digits:=0; # pontossag Euler :=.772669 Digits := 0
> evalf(pi); # kiertekeles.926897928626828 > convert(.2,fraction); # atalakitas racionlis szamma > floor(pi); # egeszresz > frac(2.67); # tortresz 269 2000.67 > Sum(k^2,k=..0); sum(k^2,k=..0); # szumma 0 8 > Sum(k^2,k=..n); sum(k^2,k=..n); normal(%); # szumma (n + ) 2 (n + )2 + 6 n + 6 n + 2 n2 + 6 n > Product(/i,i=..7); product(/i,i=..7); # szorzat k= n k= 00 > Product(/i,i=..n); product(/i,i=..n); # szorzat Γ(n + ) > ln(), log(), evalf(ln()); # termeszetes logaritmus; ln(), ln(),.09862289 > log[2](); log[0](); evalf(%); # mas alapu es 0-es alapu logaritmus ln() ln(2) ln() ln(0).69897000 > K:=(x-)^*(x+2)^; expand(k); # kifejezes megadasa, kifejtese 7 i= n i= k 2 k 2 i i K := (x ) (x + 2) x 7 + x 6 + x 7 x 6 x + 2 x 2 + 6 x 6 > factor(k); # szorzatta alakitas (x ) (x + 2) 2
> F:=(a+b)^2+(*a-*b)^2+2*a-7; normal(f); expand(f); # kifejezes szamitasa F := (a + b) 2 + ( a b) 2 + 2 a 7 0 a 2 22 a b + 7 b 2 + 2 a 7 0 a 2 22 a b + 7 b 2 + 2 a 7 > T(x):=(x^2-*x+2)/(x^+*x-); simplify(t(x)); # egyszerusites > # Komplex szamok > 2+*I; # komplex szam megadasa T(x) := x2 x + 2 x + x x 2 x 2 + x + 2 + I > evalc(re(2+*i)), Re(2+*I); # komplex szam valos resze 2, 2 > Im(2+*I); # komplex szam kepzetes resze > abs(2+*i); evalf(%); # komplex szam abszolut erteke.6027 > # Halmazok, halmazmuveletek > A:={0,,2,,}; B:={,2,,6}; # halmaz megadasa A := {0,, 2,, } B := {, 2,, 6} > A union B; A intersect B; A minus B; # halmazmuveletek {0,, 2,,,, 6} {, 2} {0,, } > # Sorozatok, listak > a:=2,,,; sorozat_:=seq(2^n,n=..8); sorozat_2:=seq(i!,i={,,,6}); # sorozatok megadasa a := 2,,, sorozat := 2,, 8, 6, 2, 6, 28, 26 sorozat 2 := 6, 2, 20, 720 > lista_:=[x,y,z,t]; lista_2:=[seq(2^n,n=0..8)]; # listak megadasa lista := [x, y, z, t] lista 2 := [, 2,, 8, 6, 2, 6, 28, 26] > nops(lista_); nops(lista_2); # lista elemeinek szama 9
> # Egyenletek, egyenletrendszerek > f:=x^2-6*x+; solve(f,x); # f(x)=0 gyokei f := x 2 6 x +, > g:=*x^+*x^-*x^2-7*x+8; solve(g,x); + 29 + 7, > fsolve(g,x); # gyokok kozelito ertekei g := x + x x 2 7 x + 8 29 + 7, + 29 7,.9620769,.,.609,.620769 > e_:=2*x+*y-*z=; e_2:=*x+*y+2*z=; e_:=x-2*y+7*z=-2; e := 2 x + y z = e 2 := x + y + 2 z = e := x 2 y + 7 z = 2 > solve({e_,e_2,e_},{x,y,z}); # egyenletrendszer megoldasa {z = 7 7, y = 6 7, x = 7 } > # Grafikonok > plot(sin(x),x=0..2*pi); # fuggveny grafikonja 29 7 0. 0 2 6 x 0. > h:=x^2-*x+; plot(h,x); h := x 2 x +
20 00 80 60 0 20 0 8 6 2 2 6 8 0 x > h:=x^2-*x+; plot(h,x=-2..,y=-2..7); h := x 2 x + 6 y 2 2 2 x 2 > plotd(x^2+*y^2,x=-..,y=-..);
2 0 0.8 0.6 0. 0.2 y0 0.2 0. 0.6 0.8 0.8 0.6 0. 0.2 0x 0.8 0.6 0. 0.2 > # Mas > f:=x^+2*x+6; diff(f,x); int(f,x); int(f,x=-2..); # fuggveny derivaltja, integralja f := x + 2 x + 6 x 2 + 2 x + x 2 + 6 x 08 > A:=matrix(,,[[,0,2],[,,-],[7,-,0]]); B:=matrix(,,[[0,,2],[-,8,0],[2,-,]]); 0 2 A := 7 0 0 2 B := 8 0 2 > with(linalg): evalm(a+b); evalm(2*a-*b); # Linearis algebra csomag, matrixmuveletek 2 2 9 6
> evalm(a&*b); # matrix-szorzas 2 2 9 6 2 8 9 8 6 6 7 > with(numtheory): tau(20); sigma(20); phi(20); # Szamelmelet csomag, szam osztoinak szama, osszege, Euler-fuggveny 2. Számelmélet > # Szamelmelet > with(numtheory): # Szamelmelet csomag > irem(2,, q ); q; # maradekos osztas maradeka es q=hanyadosa > iquo(2,, r ); r; # maradekos osztas hanyadosa es r=maradeka 20 7 > igcd(8,78); # legnagyobb kozos oszto (lnko) 6 > igcd(,27,2,); 2 > ilcm(,67); ilcm(2,27,8); # legkisebb kozos tobbszoros (lkkt) 2 202 > igcdex(6,27, x, y ); x, y; # lnko az euklideszi algoritmussal es x,y megadasa ugy, hogy (a,b)=ax+by 7, 72 > ifactor(26700); # primtenyezokre bontas > ^ mod 7; # maradek (mod n) > 2^(2^)+ mod 6; (2) 2 () 2 (27) (972) 2 0 7
> p_i:=ithprime(600); #i-edik prim > primek:=seq(ithprime(n),n=..0); p i := 09 primek := 2,,, 7,,, 7, 9, 2, 29 > primeksorozata:=seq([n,ithprime(n)],n=..0); primeksorozata := [, 2], [2, ], [, ], [, 7], [, ], [6, ], [7, 7], [8, 9], [9, 2], [0, 29] > isprime(), isprime(7); # prim-e? false, true > primteszt:=seq([n,isprime(n)],n=..0); primteszt := [, false], [2, true], [, true], [, false], [, true], [6, false], [7, true], [8, false], [9, false], [0, false] > prevprime(000), nextprime(000); # n elotti, ill. utani prim 997, 009 > issqrfree(0), issqrfree(0); # negyzetmentes-e? > a:=seq([n,issqrfree(n)],n=..0); true, false a := [, true], [2, true], [, true], [, false], [, true], [6, true], [7, true], [8, false], [9, false], [0, true] > divisors(2); # osztok halmaza > seq([n,divisors(n)],n=..0); {, 2,,, 6, 2} [, {}], [2, {, 2}], [, {, }], [, {, 2, }], [, {, }], [6, {, 2,, 6}], [7, {, 7}], [8, {, 2,, 8}], [9, {,, 9}], [0, {, 2,, 0}] > tau(000); # osztok szama > seq([n,tau(n)],n=..0); 6 [, ], [2, 2], [, 2], [, ], [, 2], [6, ], [7, 2], [8, ], [9, ], [0, ] > seq(tau(n),n=..20);, 2, 2,, 2,, 2,,,, 2, 6, 2,,,, 2, 6, 2, 6 > sigma(000); # osztok osszege > seq([n,sigma(n)],n=..0); 20 [, ], [2, ], [, ], [, 7], [, 6], [6, 2], [7, 8], [8, ], [9, ], [0, 8] > seq(sigma(n),n=..20);,,, 7, 6, 2, 8,,, 8, 2, 28,, 2, 2,, 8, 9, 20, 2 > phi(000); # Euler-fuggveny > seq([n,phi(n)],n=..0); 00 [, ], [2, ], [, 2], [, 2], [, ], [6, 2], [7, 6], [8, ], [9, 6], [0, ] 8
> seq(phi(n),n=..0);,, 2, 2,, 2, 6,, 6, > seq([n,mobius(n)],n=..0); # Mobius-fuggveny [, ], [2, ], [, ], [, 0], [, ], [6, ], [7, ], [8, 0], [9, 0], [0, ] > seq(mobius(n),n=..0); > fermat(n); # Fermat-szamok > fermat(); > fermat(, w ); > w;,,, 0,,,, 0, 0, 2 (2n) + 29967297 29967297 it is completely factored, ( (2) 7 () + ) ( (2) 7 () (79) + ) > mersenne(); mersenne(); # a 2^n- erteke, ha az prim, Mersenne-szam false > mersenne([]); # az n-edik Mersenne-prim 27 > legendre(,), legendre(,); # Legendre-szimbolum, > lambda(), lambda(200); # Carmichael-fuggveny 2, 20 > bigomega(0); # Omega-fuggveny (primhatvanyosztok szama) > mcombine(7,,,); # Kinai maradektetel, az mcombine(m,a,n,b) megad egy olyan x egesz szamot, amelyre x=a (mod m), x=b (mod n) > mcombine(,,,2); 60 FAIL > order(,0); # order(a,m) az a rendje (mod m) > mlog(,,7); # index: mlog(a,g,m) megadja az ind_g(a) mod n szamot > mlog(,,7); 7 FAIL > primroot(,7); # primroot(a,m) a legkisebb a-nal negyobb primitiv gyok (mod m) 9
. Gauss-egészek > # Gauss-egeszek > with(gaussint): # Gauss-egeszek csomag > with(plots): conformal(z, z=-0-0*i..0+0*i); # a komplex sik 0 0 0 0 > GInorm(2+*I); # norma 7 > GInearest(-2.+6.87*I), GInearest((2+8*I)/(-7*I)); # egy komplex szamhoz legkozelebbi Gauss-egesz 2 + 7 I, + I > GInormal(-2*I); # az elso negyedbeli asszocialt > GIgcd(-+*I,7+68*I); # lnko 2 + I + 7 I > GIgcdex(-+*I,7+68*I, u, v ), u, v; # lnko(z,t) az euklideszi algoritmussal es olyan u,v megadasa, amelyekre (z,t)=uz+vt + 7 I, 2 I, 2 I > GIquo(6+2*I,-8+*I, r ), r; # maradekos osztas hanyadosa es r=maradeka I, 2 + I > GIrem(6+2*I,-8+*I, q ), q; # maradekos osztas maradeka es q=hanyadosa > GIlcm(+2*I,-+*I,+*I); # lkkt 2 + I, I 6 + 7 I > GIprime(7), GIprime(+9*I), GIprime(-+*I); # Gauss-prim teszt true, true, false 0
> GIfactor(20-29*I); # primtenyezokre bontas ( ) ( + I) ( + I) ( + 8 I) (9 + 6 I) ( 7 8 I) > expand(%); # visszaalakitas 20 29 I > GIsieve(0); # GIsieve(m) megadja azokat az x+yi Gauss-primeket, amelyek normaja <= m^2 es 0<y<=x [, [ + I, + 2 I,, 2 + I, + I, 2 + I, + 6 I, + I, 7, 2 + 7 I, + 6 I, + 8 I, + 8 I, + 9 I]] > GIdivisor(6+20*I); # az elso negyedbeli osztok {, + I, 6 + 20 I, 2 + 7 I, + 8 I} > GInodiv(0-2*I); # a nemasszocialt osztok szama > GIphi(-2+*I); # GIphi(m) egy mod m redukalt maradekrendszer elemeinek a szama 8 22