|
D.15.2.42 derivationEval
Procedure from library difform.lib (see difform_lib).
- Usage:
- phi(df); phi derivation, df difform
- Return:
- the polynomial phi(df), the derivation phi evaluated at df
- Remarks:
- - By linearity it is enough to compute the sum of all differential forms:
(coefficient of dx_i)*(image of dx_i)
- The coefficient list of df is computed via difformCoef
- To avoid searching generators in lists, the coefficient list of df and the
structure list of phi are sorted the same way
- Note:
- - the differential form 0 is allowed as input
- an error will occur if the given differential form is not of degree 1 or -1
Example:
| LIB "difform.lib";
ring R = 13,(x,y,z,t),dp;
diffAlgebra();
==> // The differential algebra Omega_R was constructed and the differential \
forms dDx, dDy, dDz, dDt, dx, dy, dz, dt are available.
/////////////////////////////////
// Construction of derivations //
/////////////////////////////////
list L_1; L_1[1] = list(dx,dt,dz,dy); L_1[2] = list(x,y,z,t);
derivation phi_1 = L_1; phi_1;
==> Omega_R^1 --> R
==> dx |--> x
==> dy |--> t
==> dz |--> z
==> dt |--> y
==>
==>
list L_2; L_2[1] = list(dx,dy,dz,dt); L_2[2] = list(y2x-zt,zt + y, t3-x, y4-y5);
derivation phi_2 = L_2; phi_2;
==> Omega_R^1 --> R
==> dx |--> xy2-zt
==> dy |--> zt+y
==> dz |--> t3-x
==> dt |--> -y5+y4
==>
==>
list L_3; L_3[1] = list(dx,dy,dz,dt); L_3[2] = list(0,0,0,0);
derivation phi_3 = L_3; phi_3;
==> Omega_R^1 --> R
==> dx |--> 0
==> dy |--> 0
==> dz |--> 0
==> dt |--> 0
==>
==>
///////////////////////////////
// Evaluation of derivations //
///////////////////////////////
phi_1(0);
==> 0
phi_1(dx+dy+dz+dt);
==> ? Cannot apply derivation to non-homogeneous element!
==> ? leaving difform.lib::derivationEval (0)
phi_1(3*dx - dt);
==> ? Cannot apply derivation to non-homogeneous element!
==> ? leaving difform.lib::derivationEval (0)
phi_2(dt);
==> -y5+y4
phi_2(dx+dt);
==> ? Cannot apply derivation to non-homogeneous element!
==> ? leaving difform.lib::derivationEval (0)
phi_2(dx - dy + (x3-y2)*dz + 12*dt);
==> ? Cannot apply derivation to non-homogeneous element!
==> ? leaving difform.lib::derivationEval (0)
phi_3(dx);
==> 0
phi_3(dy);
==> 0
phi_3(dx - 24*(dx + dz) - x4*dy);
==> 0
kill Omega_R,dx,dy,dz,dt,L_1,L_2,L_3,phi_1,phi_2,phi_3;
| See also:
difformCoef;
difformListSort.
|