Differential Operator Rings

Contents

Creation

DifferentialOperatorRing(F) : RngDiff -> RngDiffOp
Returns the differential operator ring over the differential field F.

Example RngDiff_create-diff-op-ring (H118E33)

> F<z> := RationalDifferentialField(Rationals());
> R := DifferentialOperatorRing(F);
> R;
Differential operator ring over Differential Ring of Algebraic function field
defined over Rational Field by
$.2 - 4711
with derivation given by (1) d(z)
AssignNames(~R, S) : RngDiffOp, [MonStgElt] ->
Given a differential operator ring R with n indeterminates and a sequence S of n strings, assign the elements of S to the names of the variables of R.

This procedure only changes the names used in the printing of the elements of R.

Creation of Differential Operators

The easiest way to create an element in a given ring is to use the angle bracket construction to attach a name to the indeterminate of the differential operator ring. Other constructions are given below.

Name(R, i) : RngDiffOp, RngIntElt -> RngDiffElt
R . i : RngDiffOp, RngIntElt -> RngDiffOpElt
The i-th indeterminate of the differential ring R, where i must be 1.
R ! s : RngDiffOp, RngElt -> RngDiffOpElt
Coerce the element s into the differential operator ring R. Elements that are coercible into R are elements coercible into its underlying ring, sequences, and differential operators defined over the base ring of the coefficient ring of R.

When the base ring of R is an algebraic differential field, elements of other differential operator rings over algebraic differential fields can be coerced into R so long as the underlying rings of the differential fields are the same.

Zero(R) : RngDiffOp -> RngDiffOpElt
The zero element of the differential operator ring R.
One(R) : RngDiffOp -> RngDiffOpElt
The identity element of the differential operator ring R.

Example RngDiff_example-diff-op-coercion (H118E34)

> F<z> := RationalDifferentialField(Rationals());
> R<D> := DifferentialOperatorRing(F);
> R.1;
D
> R!(1/z);
1/z;
> R![1/2,0,5,z];
z*D^3 + 5*D^2 + 1/2
> S<T> := DifferentialOperatorRing(ChangeDerivation(F,z));
> R!T;
z*D
> S!D;
1/z*T
V2.28, 13 July 2023