矩阵的逆和

时间:2014-12-08 16:20:14

标签: matrix maple

我是Maple的新手,我想解决以下线性系统:

Y=BX

其中X是输入,Y是输出,B是传递函数,具有以下形式:

B :=(t) ->  matrix(A0)+matrix(A1)*f1(t)+matrix(B1)*f2(t)

A0 := matrix(3, 3, [1, 0, 0, 1, 0, 0, 1, 0, 0]);
A1 := matrix(3, 3, [1, 1/2, (1/2)*sqrt(3), 1/2, 1, (1/2)*sqrt(3), (1/2)*sqrt(3), 1/2, 2]);
B1 := matrix(3, 3, [1, 1/2, -(1/2)*sqrt(3), -1/2, 1, (1/2)*sqrt(3), (-sqrt(3))*(1/2), 1/2, 2]);

f1 := (t) -> cos(omega*t)
f2 := (t) -> sin(omega*t)

omega:=0.95;

但是,现在我想获得给定输出的输入向量,因此我需要反转B,因为:

X = B^-1 Y

我希望得到一个暗示,以获得B的逆的符号表达式。但是,当我做的时候

inverse(B(t)) :  nothing happens
inverse(matrix(B(t))) :  Error, (in matrix) invalid argument 
solve(x = B(t), t): Error, (in SolveTools:-complexity) invalid input: numer expects its 1st argument

如果可能,我希望以下面的形式:

B^-1 := A0' + A1'*f1(t) + B1'*f2(t)

其中A0'A1'B1'是反矩阵。

1 个答案:

答案 0 :(得分:0)

考虑使用tangent half angle substitution创建(伪代码)

z = TAN(ω·t/2) = TAN(φ/2)
φ = ω·t = 2 ATAN(z)

       | 2*(z+1)/(1+z^2)          (z+1)/(1+z^2)-1/2  √3*(1-z)/(1+z^2)-√3/2  |
B(z) = | 1/2+(1-z)/(1+z^2)        2*(z+1)/(1+z^2)-1   √3*(z+1)/(1+z^2)-√3/2 |
       | 1-√3/2+√3*(1-z)/(1+z^2)  (z+1)/(1+z^2)-1/2  4*(z+1)/(1+z^2)-2      |

然后您可以获取IB(z)=inverse(B(z))作为X = IB(tan(omega*t/2))*Y

使用