Maple Vs. Sage Vs. Geogebra
Mit tudunk Lineáris algebrából???
Sipos Csaba
Geogebra
• Mátrixok, illetve vektorok definiálása:
MatrixFromvectors[{lista},{lista}]
VectortFromPoints[{x,y}]
• A geogebra 2 dimenziós vektorokat kezel
• Néhány fontosabb művelet:
Transpose[Mátrix]
Eigenvalue[Mátrix]
Eigenvector[mátrix]
MatrixTimesVector MatrixTimesMatrix Determinant
Inverse
Sage
PointFromVector VectorFromPoint MatrixFromVectors
• Az eszköz egyébként nagyon szemléletes, elég sok mindent meg lehet rajta érteni.
• Sage egy kicsit komolyabb eszköz, mint a GeoGebra
• Mátrix, vektor definiálás
A = Matrix([[1,2,3],[3,2,1],[1,1,1]]) w = vector([1,1,-4])
• Műveltek Mátrixokkal, vektorokkal w*A
A*w
Sage
• A.eigenvalues () – A sajátértékei
• A.eigenvectors_left() - sajátértékek, sajátvektorok, algebrai multiplicitás
• Mátrix definíciójánál megadhatjuk, hogy mi felett legyen értelmezve:
– AZ = matrix(ZZ, [[2,0], [0,1]]) ∈ ℤ2𝑥2 – AQ = matrix(QQ, [[2,0], [0,1]]) ∈ ℚ2𝑥2 – AR = matrix(RR, [[2,0], [0,1]]) ∈ ℝ2𝑥2
• Lehetőség van Mátrix terek létrehozásáre Q, Z, R felett
• M = MatrixSpace(QQ,3)
• B = M.basis() - bázisrendszer
• A = M(range(9)) – mátrix létehozása
• M = MatrixSpace(GF(2),4,8) – kettes számrendszerben 4x8-as mátrixok
Sage
• A.rows() – A-nak a sorai
• A.columns() – A-nak az oszlopai
• A.transpose() – A transzponáltja
• fA.charpoly(’t’) - a karakterisztikus polinom .
• A.inverse() - inverz
• A.conjugate() - konjugált
• A[i,j] - i. sor j.eleme
• A.nrows()
• A.ncols()
• A.determinant()
• A.trace
Sage
• A.norm()
• A.norm(1)
• A.norm(Infinity)
• A.norm(‚Frob’)
• A.jordan_form(transformation=True) – Jordan alak, A=P^(-1)*J*P
• A.LU() (p permutáció mátrix, L alsó, U felső háromszög mátrix), PA=LU
• A.QR() (Q-ortog onális mátrix, R felsőháromszög mátrix ) A=QR
• A.SVD() - A=USV^(konjugált v. transzponált) Vektor Műveletek:
u.dot_product(v) - <u,v>
Sage
u.norm() =u.norm(2) - euklideszi norma u.norm(1) – 1-es (összeg) -norma
u.norm(Infinity) – végtelen(maximum) norma Összegzés:
Véleményem szerint a Sage elég jól alkalmazható lineáris algebrai feladatok megoldására, elég sok függvényt
tartalmaz, amely alkalmazható és segíti a programozó munkáját
Maple
• A maple –ben két csomag is található a lineáris
algebrai feladatokat kedvelő emberek számára
• A maple-ben néhány függvényhez van írva grafikus oktatófelület, ami nagyon jól
használhatók a fogalmak megértésére
• A Linear Algebra csomagban megtalálható függvények:
– Basis(V) – V vektortér bázisa
– CharacteristicPolynomial(M,x) – Az M matrix karakterisztikus polinomja
Maple
• CrossProduct (v1,v2) - kiszámolja két vektor vektoriális szorzatát
• Determinant(M) – az M mátrix determinánsa
• Dimension(M) – az M mátrix dimenziója
• DotProduct(v1,v2) - <v1,v2>
• Eigenvalues(M) – M mátrix sajátértékei
• Eigenvectors(M) - M mátrix sajátértékei
• GaussianElimination(M) – Felsőháromszög alakra hozaa az M mátrixot
Maple
• LinearSolve(M) – A*x=b egyenlet megoldása
• MatrixInverse(M) - M-nek az inverze
• MatrixScalarMultiply(M,a) – kiszámítja az a*M-et, ahol a az skalár
• Transpose(M) – az M mátrix transzponáltjának a kiszámítása
• QRDecomposition(M) – Az M QR felbontása
• JordanForm(M) – Jordan felbontás
Maple
• MatrixVectorMultiply(M,v) – Mátrix –vektor szorzás
• Trace(M) – diagonális elemek összege
• VectorNorm(v) – norma
• MatrixNorm(M) - mátrix norma
Összegzés: A maple-t kényelmesebbnek tartom a
Sage-nél lineáris algebrában, de sajnos a Maple-
ért fizetni kell!!!
Maple
A Maple nagy segítségre lehet a programozónak a help-jével, amelyben példákkal illusztrálva könnyen megtalálhatjuk azt, amire szükségünk van.
Van még egy programcsomag, ami Szimbolikus számításokra szintén alkalmas.
A Maple inputjára tekintve biztosan jobb, mert a Maple újabb verzióiban szerintem igen csak nem sikerült megoldani az input bevitelt.
Ha van még egy kis idő, akkor ejtenék pár szót a Mathematica nevű programcsomag lineáris
algebrában való használhatóságáról.
Mathematica
• Úgy mint a Maple-ben, vagy a Sage-ben itt is megtalálhatók a legfontosabb lineáris algebrai műveletek:
• EigenValues
• Norm
• Cross
• Dot (.) – van operátor a skaláris szorzatra, ami nem hátrányos, a v1.v2 = <v1,v2>
• MatrixNorm
• LinearSolve
Mathematica
• SingularValueDecomposition
• QRDecomposition
• SchurDecomposition
• Inverse
• Transpose
• Det
• Stb.
• A Mathematica-nak is nagyon jó a helpje, talán még jobb is mint a Maplé. Mostanában dolgoztam Maplben és
Mathematica-ban is és az utóbbi jobban tetszett. Lehet azért mert gyorsabb, vagy talán az input de nekem jobban
tetszett.