Differential Operator Rings

Creation

DifferentialOperatorRing(F): RngDiff -> RngDiffOp

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

Example: Creating a Differential Operator 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 (opens in a new tab)

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: Coercion into an Operator Ring (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 (opens in a new tab)