Ringar, kroppar och polynomringar
De klassiska talmängderna är exempel på ringar och kroppar.
Integer Ring
Rational Field
Real Field with 53 bits of precision
Complex Field with 53 bits of precision
Ändliga ringar
Låt vara ett positivt heltal större än . Mängden är en ring under vanlig addition och multiplikation modulo . Om är ett primtal, så är en kropp.Ring of integers modulo 28
[, , , , , , , , , , , , , , , , , , , , , , , , , , , ]
Genom att skriva Z28() konverterar man till ett element i under förutsättning att det går. Speciellt utförs all aritmetik modulo för element i .
Vid utskrift ser det ut som vilka heltal som helst. Men internt har Sage koll på i vilken algebraisk struktur som variabelns värde hör hemma.
Aritmetik sker nu automatiskt modulo .
Vi kan betrakta och som vanliga heltal, d.v.s. lyfta dem till .
Vilket är det minsta positiva heltal sådant att ?
Aha! Den multiplikativa inversen till ges således av .
Ändliga kroppar
För att deklarera en ändlig kropp använder man funktionen GF (Galois Field).Finite Field of size 7
[, , , , , , ]
Polynomringar
Vi börjar med att deklarera polynomringen , d.v.s. ringen av alla polynom med heltalskoefficienter.Univariate Polynomial Ring in X over Integer Ring
Vidare deklarerar vi kvotringen , vilket är ringen av alla polynom med heltalskoefficienter modulo . Vi låter Sage använda x som variabel för polynom i denna ring.
Univariate Quotient Polynomial Ring in x over Integer Ring with modulus X^5 - 1
Det finns flera olika sätt att deklarera ett polynom. Dels på sedvanligt sätt:
Man kan även specificera koefficienterna i en lista, med konstanttermen först och högstagradskoefficienten sist.
Variabeln avslöjar till vilken polynomring respektive polynom hör (Sage skiljer på gemener och versaler).
Univariate Quotient Polynomial Ring in x over Integer Ring with modulus X^5 - 1
Vi kan lyfta ett polynom från till . (Notera ''variabelbytet''.)
Vid omvandling av polynom i till ''motsvarande'' polynom i , så ersätts med det polynom för vilket och $\deg g [removed]
Vid aritmetik med denna typ av polynom sker förenkling per automatik.
Kroppsutvidnignar av ändliga kroppar
Låt . Vi ska studera hur man konstruerar en kropp av ordning . Till att börja med behöver vi polynomringen .Univariate Polynomial Ring in X over Finite Field of size 3
Låt oss definiera några element i .
Man kan även givet ett polynom bestämma motsvarande lista av koefficienter.
[, , , , , ]
Vid addition och multiplikation hanterar Sage koefficienterna modluo 3.
Vi behöver ett irreducibelt femtegradspolynom.
Om vi delar med får vi följande kvot och rest.
Låt vara kroppen där aritmetiken sker moldulo . Notera hur vi i definitionen nedan väljer att använda gement som symbol i polynom ur .
Finite Field in x of size 3^5
()
Vi kan definiera element i på samma sätt som ovan.
Men vi kan även konvertera mellan och .
För att kunna bestämma en koefficientlista måste polynomet lyftas till polynomringen .
[, , , ]
Eftersom är av grad större än , så bestämmer Sage automatiskt resten modulo . Jämför nedanstående resultat med resten vid divisionen av med som vi bestämde ovan.
Sage gör skillnad på vilken symbol som används. Därför kan man inte blanda X och x i samma algebraiska uttryck.
Notera att polynomet motsvarar 0 i kroppen .
Produkten i respektive .
I det senare fallet bestämmer inte Sage resten modulo . Det sker automatiskt vid beräkningar i kroppen .
Eftersom är en kropp har alla element i utom nollpolynomet en multiplikativ invers.
Kontroll i :
Kontroll i $R: