This routine returns a basis of the kernel of expr, an homogeneous expression linear in var.
In the case of a non-homogeneous linear expression, this routine returns a pair having in the first coordinate a basis of the kernel of the associated homogeneous linear expression and in the secod coordinate a particular solution.
In the first example, we compute a basis of projective differential 1-forms in projective 3-space with polynomial coefficients of degree 1. Then, we define a random rational differential form of type (1,1) and compute its tangent directions using the generic projective form defined before.
In the second example, we compute a particular solution of a non-homogeneous linear expression.
i1 : h = newForm(4,1,1,"a")
o1 = (a x + a x + a x + a x + a x )dx + (a x + a x + a x + a x + a x )dx + (a x + a x + a x + a x +
0 0 5 1 10 2 15 3 20 4 0 1 0 6 1 11 2 16 3 21 4 1 2 0 7 1 12 2 17 3
----------------------------------------------------------------------------------------------------------------------------
a x )dx + (a x + a x + a x + a x + a x )dx + (a x + a x + a x + a x + a x )dx
22 4 2 3 0 8 1 13 2 18 3 23 4 3 4 0 9 1 14 2 19 3 24 4 4
o1 : DiffAlgForm
|
i2 : R = radial 4
o2 = x ax + x ax + x ax + x ax + x ax
0 0 1 1 2 2 3 3 4 4
o2 : DiffAlgField
|
i3 : T = genKer(R _ h,h)
o3 = {x dx - x dx , x dx - x dx , x dx - x dx , x dx - x dx , x dx - x dx , x dx - x dx , x dx - x dx , x dx - x dx ,
1 0 0 1 2 0 0 2 2 1 1 2 3 0 0 3 3 1 1 3 3 2 2 3 4 0 0 4 4 1 1 4
----------------------------------------------------------------------------------------------------------------------------
x dx - x dx , x dx - x dx }
4 2 2 4 4 3 3 4
o3 : List
|
i4 : H = linearComb(T,"a")
o4 = (a x + a x + a x + a x )dx + (- a x + a x + a x + a x )dx + (- a x - a x + a x + a x )dx + (- a x - a x - a x
0 1 1 2 3 3 6 4 0 0 0 2 2 4 3 7 4 1 1 0 2 1 5 3 8 4 2 3 0 4 1 5 2
----------------------------------------------------------------------------------------------------------------------------
+ a x )dx + (- a x - a x - a x - a x )dx
9 4 3 6 0 7 1 8 2 9 3 4
o4 : DiffAlgForm
|
i5 : w = random logarithmicForm(4,{1,1},"a", Projective => true)
o5 = (49x + 77x + 14x - 28x )dx + (- 49x + 140x + 70x - 140x )dx + (- 77x - 140x + 70x - 140x )dx + (- 14x - 70x -
1 2 3 4 0 0 2 3 4 1 0 1 3 4 2 0 1
----------------------------------------------------------------------------------------------------------------------------
70x )dx + (28x + 140x + 140x )dx
2 3 0 1 2 4
o5 : DiffAlgForm
|
i6 : genKer(w ^ (diff H) + (diff w) ^ H,H)
1 1 1 1 1
o6 = {(x + x )dx - x dx - x dx , - -x dx + (-x + x )dx - x dx , -x dx + x dx + x dx + (- -x - x - x )dx , (x - -x +
1 2 0 0 1 0 2 5 1 0 5 0 2 1 1 2 5 3 0 3 1 3 2 5 0 1 2 3 1 2 3
----------------------------------------------------------------------------------------------------------------------------
1 11 11 1 1 7 1 7 1
x )dx - x dx + -x dx - x dx , - --x dx + (--x - -x + x )dx + -x dx - x dx , (--x + --x )dx + (- --x + -x )dx +
4 0 0 1 2 0 3 0 4 20 1 0 20 0 2 3 4 1 2 1 3 1 4 20 1 10 3 0 20 0 2 3 1
----------------------------------------------------------------------------------------------------------------------------
1 1 11 11
x dx + (- --x - -x )dx - x dx , - --x dx - x dx + (--x + x + x )dx - x dx }
4 2 10 0 2 1 3 2 4 20 3 0 3 1 20 0 1 4 3 3 4
o6 : List
|
i7 : w1 = random newForm(4,1,1,"a"); |
i8 : w2 = random newForm(4,1,1,"a"); |
i9 : w3 = w1 ^ w2; |
i10 : h = newForm(4,1,1,"a"); |
i11 : last genKer(w1 ^ h - w3,h)
7 9 5 15 13 3 5 25 7 5 3 11 1
o11 = (- -x - x - -x + x + -x )dx + (--x - 5x - --x - -x + -x )dx + (- --x - -x - -x + -x - --x )dx + (-x - 4x -
4 0 1 4 2 3 4 4 0 2 0 1 2 2 4 3 2 4 1 4 0 2 1 4 2 2 3 4 4 2 4 0 1
---------------------------------------------------------------------------------------------------------------------------
3 11 3
-x - 4x - 2x )dx + (--x - -x - 2x + 2x )dx
4 2 3 4 3 4 0 2 1 2 3 4
o11 : DiffAlgForm
|
The object genKer is a method function.