Question: How to avoid undesired simplifications ?

Hi everybody,

I'm working with orthogonal or Bernstein polynomials and I would like to keep my results expressed in terms of such polynomials.
Here is a notional example.
 

with(orthopoly):
#  first example : the result of diff is of the desired form  (p*q)' =  p' * q + p * q'
p := H(2, x):
q := H(3,x):
pq;
    (4*x^2-2)*(8*x^3-12*x)
dpq := diff(pq, x);
    8*x*(8*x^3-12*x)+ (4*x^2-2)*(24*x^2-12)   
  
#  second example : the result of diff is not exactly of the desired form (p*q)' =  p' * q + p * q'
# for  p' * q has been expanded

p := H(1,x)
q := H(3,x):
pq := p*q;
    2*x*(8*x^3-12*x)
diff(pq, x);
    16*x^3-24*x+ 2*x*(24*x^2-12)  
    
#  third example : here the result has been fully expanded
p := H(1,x)
q := H(2,x):
pq := p*q;
    2*x*(4*x^2-2)
diff(pq, x);
    24*x^2-4
   

First question : How could Iforce Maple to  preserve the form  p' * q + p * q' in all the situations ?

______________________________________________________________________


In the first test case the value of dpq (   8*x*(8*x^3-12*x)+ (4*x^2-2)*(24*x^2-12)    ) is not expressed in terms of Hermite polynomials.
I would like it to be, so I tried this ...

r := degree(dpq, x):
A := add(a__||k*H(k,x), k=0..r):
C := coeffs(expand(dpq-A), x)
S := solve(C, {seq(a__|-k, k=0..r)});
      {a0=48, a1=0, a2=72, a3=0, a4=10}
Hdpq := subs(S, A)
    160*x^4-192*z^2+24

...but  I had hope to obtain   Hdpq := 48*H(0,z)+72*H(2,z)+10*H(4,z), so here 
   48 + 72 * (4*z^2 - 2) + 10 * (16*z^4 - 48*z^2 + 12)
 

Second question : How could I prevent Maple to simplify the result os subs(S, A) ?




Thanks in advance

Please Wait...