MDD

317 Reputation

7 Badges

10 years, 35 days

MaplePrimes Activity


These are replies submitted by MDD

@Kitonum 

I think that the coeffs command use from my procedure.

@asa12 

There is a minor fault in the answer of Carl. For example if p=x^2 then by using Maple 14 we have

[op(p)]=[x,2]!!

For this simple question I implement the following procedure: In this procedure f is a polynomial and T is a monomial ordering such as lex or tdeg ordering.

 

FL := proc (f, T)
local L, p;
L := [];
p := f;
while p <> 0 do
    L := [op(L), lt(p, T)];
    p := simplify(p-lt(p, T))
end do;
RETURN(L)
end proc:

 

FL(x^2,plex(x))=[x^2]

FL(1+xy-x^2,plex(x))=[1,xy,x^2]

@Carl Love Thank you for this replying.

@Carl Love What is debug? I don't understand your idea. Could you please send me a Maple sheet contained your idea (running the debug)?

@Carl Love I think that eliminate command use from grobner basis also. Do you know its algorithm?

@Carl Love I don't know why you ask my title? I study Grobner basis and comprehensive grobner basis.
What is your idea about my procedure?

@Carl Love I don't know how you deduce that my reply is rude and evasive! I study some topics in Grobner basis and if I yield new results I will thank MaplePrime and especially you.
If you are sad I don't ask any question from now?

@Axel Vogt This is a little part of my main project.

@Carl Love  In the following procedeure F is a list of polynomials, f is a polynomial, R is a monomial ordering on parameters, T is a monomial ordering on variables and N is null set.

Since, F and f are homogeneous and linear and also F is a Grobner basis we can use from NormalForm command for checking linearly dependent.

 

ExtPolyLinear := proc (F, f, R, T, N)

local nf, nfp, L, nf1;

nf1 := Groebner:-NormalForm(f, F, T, 'Q');

nf := numer(nf1);

nfp := Groebner:-NormalForm(nf, N, R, 'K');

L := subs(seq(N[i] = 0, i = 1 .. nops(N)), Q);

if nfp = 0 then

   RETURN(true, L)

else

   RETURN(false, [])

end if

end proc;

 

Example:


ExtPolyLinear([a*A1+b*A3, c*A2+d*A3], e*A1+h*A2,plex(a,b,c,d,e,h), plex(A1,A2,A3, A4, A5), [h, e]);
                                    true, [0, 0]


ExtPolyLinear([a*A1+b*A3, c*A2+d*A3], e*A1+h*A2, plex(a, b, c, d, e, h), plex(A1, A2, A3, A4, A5), []);
                                    false, []
ExtPolyLinear([a*A1+b*A3,c*A2+d*A3],e*A1+h*A2,plex(a,b,c,d,e,h),plex(A1, A2, A3, A4, A5), [e*c*b+h*d*a]);
                        

What is your idea?

@Carl Love now I am presenting an implementation for the answer my question without using eliminate command and then posted it!

@Carl Love Please consider the following example:

The null set is {h, b*d} and the notnull set is {a,c,e}. Therefore F=[cA4,caA2] and f=eA2 w.r.t. these two sets where shows that f is linearly dependent of F, But the output of your implementation is false. What is your idea?

@Carl Love Thank you for this draft. What is your idea about adding "W[i]-1" to the set  {coeffs(expand(`+`((C*~F)[]) - f), V)} to effectively utilize the NotNull conditions? Since, the elements of W are nonzero we can set all of them equal 1. What is your idea?

@Carl Love Now I want to test linearly dependence by additional condition for linear parametric polynomial (linear for variables not parameters). 

For example let

and

(a,b,c,d,e,h are parameters and A1,A2,A3 are variables).

If I use PolyLinearCombo(F,f,{A1,A2,A3}) then its output is false,[].

Now we let to condition sets for parameters as the following:

N:=[ebc+ahd]

W:=[a,c]

The elements of N must be zero means that ebc+ahd=0

and the elements of W are non-zero that is a<>0 and c <>0.

Let a=b=c=d=h=1 and e=-1. This specialization satisfy in the above condition sets. By this specialization we have:

and

Now if I use PolyLinearCombo(F,f,{A1,A2,A3}) then its output is true,[-1,1].

By this additional two condition sets I have to check that whether f is linearly independent of F or not. How can I do this without specialization? In fact I want an algorithm that its input is (null condition, not-null condition, list of polynomials F, a polynomial f, the set of variables) and its output is true and coefficients if f is linearly dependent of F w.r.t. null and not-null conditions, else its output is false.

If the name of new procedure is ExtPolyLinearCombo and 

N:=[ebc+ahd]

W:=[a,c]

I want the output of

ExtPolyLinearCombo(N,W,F,f,{A1,A2,A3}) be true,[coefficients]

Thank you very much in advance.

@Dmitry Lyakhov 

You can use double sequences for your purpose. This is faster from loop for. See the following example:

> A := [1, 2, 3]; B := [a, b, c];
                          
> seq(seq({A[i], B[j]}, j = 1 .. nops(B)), i = 1 .. nops(A));


{1, a}, {1, b}, {1, c}, {2, a}, {2, b}, {2, c}, {3, a}, {3, b}, {3, c}

@Carl Love Yes it is good for some example so far.

First 6 7 8 9 10 11 Page 8 of 11