res-solv

[M d] res-solv [c' r] 
 M : matrix,  d, c' : vectors, r : scalar(integer) 
 c:=c'/r is a solutions of Sum[c_i M_i] = d where c_i is the i-th element 
 of the vector c and M_i is the i-th row vector of M.
If there is no solution, then res-solv returns null. 
Note that M and d are not treated as an element of the homogenized Weyl
algebra. If M or d contains the homogenization variable h, it automatically
set to 1. If you need to use h, use the command res-solv-h
[M d rng] res-solv [c' r] 
 rng is a ring object. 
 res-solv extracts variables names from rng, but defines a new ring. 
Example 1:  [(x,y) ring_of_differential_operators [[(x) -1 (Dx) 1]] weight_vector 0] 
              define_ring 
 [ [ [(x Dx + 2).] [ (Dx (x Dx + 3) - (x Dx + 2) (x Dx -4)).]]   [(1).]] 
  res-solv :: 
Example 2: 
 [ [ (x Dx + 2).  (Dx (x Dx + 3) - (x Dx + 2) (x Dx -4)).]   (1).] 
  res-solv :: 
Example 3: 
 [ [[(x Dx + 2). (0).] 
    [(Dx+3).     (x^3).]
    [(3).        (x).]
    [(Dx (x Dx + 3) - (x Dx + 2) (x Dx -4)). (0).]]   [(1). (0).]] 
  res-solv :: 
Example 4: 
 [[ (x*Dx+h^2). (Dx^2+x*h).] [(x^2+h^2). (h Dx + x^2).]] /ff set 
 [[ (x^2 Dx + x h^2). (Dx^3).]] /gg set  
 [ff gg ff mul 0 get ] res-solv-h :: 
   
res*solv and res*solv*h accept string inputs, too. For example,
 [[ [ [(x Dx + 2)] [ (Dx (x Dx + 3) - (x Dx + 2) (x Dx -4))]]   [(1)]] 
  (x)]  res*solv ::



Nobuki Takayama 2020-11-24