The category, or type, of the differential operator L.
The parent of the differential operator L.
All the usual arithmetic operations are possible for differential operators. It follows from the multiplication rule for differential operators that the multiplication of differential operators is non--commutative.
The sum of the two differential operators s and t.
The negation of the differential operator s.
The difference between the differential operators s and t.
The product of the differential operators s and t.
Given a differential operator s and an integer n≥0, return the n-th power of s.
> F<z> := RationalDifferentialField(Rationals()); > R<D> := DifferentialOperatorRing(F); > (z*D-1)*(D+1); z*D^2 + (z - 1)*D + -1 > (D+1)*(z*D-1); z*D^2 + z*D + -1 > (D-1/z)^2; D^2 + -2/z*D + 2/z^2
Return true iff the differential operators s and t are exactly the same.
Return true iff the differential operator L is the zero element of its parent.
Return true iff the differential operator L is the unity element of its parent.
Return true iff the differential operator L is monic.
Returns true if and only if the differential operator L is weakly equal to the operator P. This means that the i-th coefficients of L and P should be weakly equal to each other for every i ∈[0..max(deg(L), deg(P))].
Returns true if and only if the differential operator L∈R is weakly equal to R ! 0.
Returns true if and only if the leading coefficient of the differential operator L is weakly equal to 1.
Differential operators look like univariate polynomials with coefficients in a differential ring. Some of the terminology used for polynomial rings is mimicked for differential operators.
Given an operator L with coefficients in R, this function returns the sequence of elements in R, that are the coefficients of L. The sequence is ordered from the constant coefficient to the coefficient of the highest order term of L.
Given an operator L with coefficients in R, this function returns the coefficient of the monomial of degree i in L, as an element of R.
Given an operator L with coefficients in R, this function returns the coefficient of the highest order term of L.
The leading term of the differential operator L.
Given an operator L with coefficients in R, this function returns the sequence of non--zero coefficients of L as elements of R. The sequence is ordered from the lowest order term to the highest order term in L.
> F<z> := RationalDifferentialField(Rationals()); > R<D> := DifferentialOperatorRing(F); > L := D^3 + (-4*z + 5)*D + (3*z - 4); > L; D^3 + (-4*z + 5)*D + 3*z - 4 > Eltseq(L); [ 3*z - 4, -4*z + 5, 0, 1 ] > LeadingTerm(L); D^3 > Terms(L); [ 3*z - 4, (-4*z + 5)*D, D^3 ]
Returns the order of the differential operator L. In the case that L is identically 0, the order is defined to be -1.
If the differential operator L is defined over a differential series ring, then the exponent of the highest coefficient of L that is not weakly 0 is returned.
> S<t> := DifferentialLaurentSeriesRing(Rationals()); > R<D> := DifferentialOperatorRing(S); > L := D^2 + 2*t; > P := O(t)*D^3 + (1+O(t))*D^2 + 2*t; > Order(L); 2 > Degree(P); 3 > L eq P; false > IsWeaklyEqual(L,P); true > WeakOrder(P); 2
Given the differential operator L, this function returns the monic differential operator 1/c.L, where c is the leading coefficient of L.
Returns the formal adjoint of the differential operator L. The formal adjoint of L=∑i=0n aiDi in the differential operator ring R=F[D] over F, is the differential operator L * :=∑i=0n ( - 1)iDi * ai∈R. It follows from the definition that the orders of L and L * are the same and that the leading coefficient of L * is ( - 1)n an.
If R is the parent of the differential operator L and e is a suitable ring element, then the operator in R obtained by replacing R.1 by R.1 + e in L is returned. The second argument returned is the translation map on R by e.
If L is defined over a differential series ring, then returned is the operator whose coefficients are the truncations of the coefficients of L.
> F<z> := RationalDifferentialField(Rationals()); > R<D> := DifferentialOperatorRing(F); > L := z*D^3 + (-4*z + 5)*D + (3*z - 4); > Order(L); 3 > MonicDifferentialOperator(L); D^3 + (-4*z + 5)/z*D + (3*z - 4)/z > Adjoint(L); -z*D^3 + -3*D^2 + (4*z - 5)*D + 3*z > trans, mp := Translation(L, 2); > trans; z*D^3 + 6*z*D^2 + (8*z + 5)*D + 3*z + 6
> S<t> := DifferentialLaurentSeriesRing(Rationals()); > RS<DS> := DifferentialOperatorRing(S); > L := (5-O(t))*DS^3+(2*t^-1+t^2+O(t^4))*DS - t^-2+t+O(t^3); > L; (5 + O(t))*DS^3 + (2*t^-1 + t^2 + O(t^4))*DS + -t^-2 + t + O(t^3) > TruncateCoefficients(L); 5*DS^3 + (2*t^-1 + t^2)*DS + -t^-2 + t > L -TruncateCoefficients(L); O(t)*DS^3 + O(t^4)*DS + O(t^3)
As pointed out in the introduction a differential operator L=anDn + an - 1Dn - 1 + ... + a1D + a0 in F[D] leads to the differential equation L(y)=0 given by L(y)=an δFn(y) + an - 1 δFn - 1(y) + ... + a1 δF(y) + a0 y This notation is formal, but also defines an action of L on any element y∈F. The function Apply returns the ring element obtained by this action.
Given a differential operator L and a ring element f, return the ring element obtained after applying L to f, as an element of the base ring of L. The element f must be coercible into the base ring of L.
> F<z> := RationalDifferentialField(Rationals()); > R<D> := DifferentialOperatorRing(F); > L := D^2-2/z^2; > Apply(L, z); -2/z > L(z); -2/z > Apply(L, z^2); 0