The following is one of the simplest example I could find to produce this behavior of “Eliminate”:
Imagine that 2 vectors a={a1,a2,a3} and b= {b1,b2,b3} are given and we search a vector z={z1,z2,z3} perpendicular to a and b.
This gives following equations:
eq1={
a.z==0,
b.z==0
}
Now apply one of the simplest coordinate transformations: z->u: ct={z1->u1,z2->u2,z3->u3+1}
eq1/.ct
resulting in the following 2 equations:
{a1 u1 + a2 u2 + a3 (1 + u3) == 0,
b1 u1 + b2 u2 + b3 (1 + u3) == 0}
So far nothing exciting. Now lets do the same using “Eliminate”.
eq2={
z1==u1,
z2==u2,
z3==u3+1,
a.(z/.ct) ==0,
b.(z/.ct) ==0
}
and feed it to Eliminate to get rid of z1,z2,z3:
Eliminate[eq2,{z1,z2,z3}] //Simplify
this gives:
a3+a1 u1+a2 u2+a3 u3==0 &&
b3+b1 u1+b2 u2+b3 u3==0 &&
a1 (b3+b2 u2+b3 u3)==b1 (a3+a2 u2+a3 u3)
We get 3 equations! The first two equations are our equations from above, but the third one is a redundant linear depended equation.
Lets make things worse by additionally requiring that z is normalized:
eq3={
(z/.ct).(z/.ct) == 1,
z1==u1,
z2==u2,
z3==u3+1,
a.(z/.ct) ==0,
b.(z/.ct) ==0
}
Feeding this to “Eliminate”:
Eliminate[eq3, {z1, z2, z3}] // Simplify
we now get 5 equations, the first 3 the expected ones and two additional ones:
a3+a1 u1+a2 u2+a3 u3==0 &&
b3+b1 u1+b2 u2+b3 u3==0 &&
u1^2+u2^2+u3 (2+u3)==0 &&
a1 (b3+b2 u2+b3 u3)==b1 (a3+a2 u2+a3 u3) &&
a1 (-b3 u2 (1+u3)+b2 u3 (2+u3))==a3 (b2 u1-b1 u2) (1+u3)+a2 (-b3 u1 (1+u3)+b1 u3 (2+u3))
I would be grateful if somebody can explain me this behavior.
