2
$\begingroup$

I have an extremely long result in polynomial form following some matrix operations. However, given the symmetry of the problem, I can safely say that the solution will reduce much further than is being displayed here, especially if it can be expressed in summation notation. When I look at simple cases I can see many obvious simplifications that are not being done, primarily with z variables being left in denominators instead of being divided out.

Is there any way I can have mathematica simplify all the way? Can it perform the summation contraction?

a = {{a1}, {a2}, {a3}}/za;
b = {{b1}, {b2}, {b3}}/zb;
c = {{c1}, {c2}, {c3}}/zc;
d = {{d1}, {d2}, {d3}}/zd;
k = {{k1}, {k2}, {k3}};
s = {{s11, s12, s13}, {s21, s22, s23}, {s31, s32, s33}};
G = 
  a.Transpose[a] + b.Transpose[b] + c.Transpose[c] + d.Transpose[d];
MatrixForm[
 Simplify[Transpose[k].s.Inverse[G].Transpose[s].k]] (*Answer is not a matrix but calling like this gives a simpler looking output.*)
$\endgroup$
  • 1
    $\begingroup$ If you see the possibility of simplification on the symmetry ground, may be, a good idea is to introduce this symmetry explicitly. Why not, say, average Gover the group? $\endgroup$ – Alexei Boulbitch Jun 12 '14 at 7:48
  • 1
    $\begingroup$ Could use Experimental`OptimizeExpression[...] on that Simplify result. Cuts it by almost half in terms of LeafCount. $\endgroup$ – Daniel Lichtblau Mar 29 '17 at 15:38
1
$\begingroup$

I don't quite see what you mean by simplifying it further, other than perhaps re-grouping the terms. Do you see any possible cancellations ? I took a simple version of your problem and here is what I see:

In[47]:= a = {{a1}}/za;
b = {{b1}}/zb;
c = {{c1}}/zc;
d = {{d1}}/zd;
k = {{k1}};
s = {{s11}};
G = a.Transpose[a] + b.Transpose[b] + c.Transpose[c] + d.Transpose[d];
Simplify[Transpose[k].s.Inverse[G].Transpose[
   s].k]

Out[54]= {{(k1^2 s11^2)/(
  a1^2/za^2 + b1^2/zb^2 + c1^2/zc^2 + d1^2/zd^2)}}

As can be seen, we can re-arrange the output by using Apart, Together etc..but neither of these is necessarily a "simplified" version of the original answer.

Do let us know if I have missed out anything.

Together[Transpose[k].s.Inverse[G].Transpose[s].k]

Apart[Transpose[k].s.Inverse[G].Transpose[s].k]

Also, as far as I know Mathematica cannot automatically figure out Summation notations based on given terms.

|improve this answer|||||
$\endgroup$
0
$\begingroup$

It's not exactly an answer (I don't have enough reputation to post a comment). but if it is only the $z$ variables that bothers you, why won't you absorb them into the a,b,c variables? (I tried it and and still won't simplify).

btw: you can write $\{a1,a2,a3\}$ instead of $\{\{a1\},\{a2\},\{a3\}\}$ (same for b,c,d).

|improve this answer|||||
$\endgroup$
  • $\begingroup$ Writing them that way turns them into row vectors. These are column vectors. $\endgroup$ – Elliot Jun 12 '14 at 0:43
  • $\begingroup$ I think that M praises itself in that you do not need to distinguish between row and column vectors. so for example the inner product of $\{1,2,3\}.\{4,5,6\}$ is the same as that of $\{\{1\},\{2\},\{3\}\}.\{4,5,6\}$ except for an addition of {}. see reference.wolfram.com/mathematica/tutorial/… $\endgroup$ – user29918 Jun 12 '14 at 9:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.