用Maxima进行符号矩阵分离

时间:2015-12-22 10:21:58

标签: maxima

我试图用Maxima操纵一些代数,这是我的代码:

Pd: matrix( [a00, a01, a02, a03], [a10, a11,a12,a13], [a20,a21,a22,a23]);
Pdd: matrix( [b00, b01, b02, b03], [b10, b11,b12,b13], [b20,b21,b22,b23]);
T1: col( Pd, 1) . transpose( col(Pdd,4) )  -  col( Pd, 4 ) . transpose( col(Pdd,1) );
T2: col( Pd, 2) . transpose( col(Pdd,4) )  -  col( Pd, 4 ) . transpose( col(Pdd,2) );
    T3: col( Pd, 3) . transpose( col(Pdd,4) )  -  col( Pd, 4 ) . transpose( col(Pdd,3) );

    t: matrix( list_matrix_entries( T1 ), list_matrix_entries( T2 ), list_matrix_entries( T3 ) );

transpose( list_matrix_entries( t ) );

这最终给出了27个等式,如:

matrix([a00*b03−a03*b00],
[a00*b13−a03*b10],
[a00*b23−a03*b20],
[a10*b03−a13*b00],
[a10*b13−a13*b10],
[a10*b23−a13*b20],
[a20*b03−a23*b00],
[a20*b13−a23*b10],
[a20*b23−a23*b20],
[a01*b03−a03*b01],
[a01*b13−a03*b11],
[a01*b23−a03*b21],
[a11*b03−a13*b01],
[a11*b13−a13*b11],
[a11*b23−a13*b21],
[a21*b03−a23*b01],
[a21*b13−a23*b11],
[a21*b23−a23*b21],
[a02*b03−a03*b02],
[a02*b13−a03*b12],
[a02*b23−a03*b22],
[a12*b03−a13*b02],
[a12*b13−a13*b12],
[a12*b23−a13*b22],
[a22*b03−a23*b02],
[a22*b13−a23*b12],
[a22*b23−a23*b22])

我的问题是,如何用Maxima操纵(重新排列)这27个方程式为t = Ea,其中a是堆叠为列向量的所有a..个条目。

1 个答案:

答案 0 :(得分:2)

试试这个:

coefmatrix (list_matrix_entries (foo),
  [a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23]);

其中foo是上面transpose( list_matrix_entries( t ) );的结果。