This page demonstrates some features of FriCAS. Let's begin with the construction of a polynomial ring in the indeterminate with coefficients from the ring of square matrices with entries that are polynomials where is the Galois field with 3 elements. fricas F := PrimeField 3
Type: Typefricas P := UnivariatePolynomial(x,
Type: Typefricas S := SquareMatrix(2,
Type: Typefricas R := UnivariatePolynomial(z,
Type: TypeOK, now we have the type . Let's construct an element. We start with constructing some coefficients first. fricas s1:S := matrix[[2*x +1 ,
fricas s2 := transpose s1
And now we build the polynomial. fricas r: R := z^2 + s1*z + s2
Of course, since we work in characteristic 3, the following sum must be zero. fricas r+ 2*r
Note that this is not the integer 0, but it is still a polynomial of type . Asking for the degree of is no problem, because is a univariate polynomial ring. fricas degree r
Type: PositiveInteger?Let us add 1 to . fricas r+1
Oh, interesting, FriCAS figured out that by 1 we actually meant the polynomial 1 in . fricas one: R := 1
No no, it is not the unit square matrix. It is the unit square matrix multiplied by . Look at the type. So let's see what happens if we multiply by itself. fricas r2 := r*r
Well, of course there is a common factor of an . Can FriCAS find it? fricas gcd(r2, Ooops. What does that say?: Cannot find a definition or applicable library operation named gcd. Ah, of course, the coefficient ring of is the matrix ring and this is unfortunately not a field (not even an integral domain), so we cannot simply apply Euclid's algorithm. FriCAS simply stops by telling you that there is no applicable operation. Of course, FriCAS can compute a gcd of univariate polynomials. fricas p1:=s1(1,
fricas p2:=s1(1,
fricas gcd(p1,
OK, let us do that again. fricas q1: UP(x,
fricas q2: UP(x,
fricas gcd(q1,
Nice! Depending on where I compute these polynomials either have a common factor or are coprime. Well, all depends on the underlying ring, of course. |