Differential Operator Rings#

Creation#

DifferentialOperatorRing(F): RngDiff -> RngDiffOp#

Returns the differential operator ring over the differential field \(F\).

Example: Create Diff Op Ring (ex-42ff41)#
> 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)

Run in calculator

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 Diff Op Coercion (ex-facb79)#
> 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

Run in calculator