Я совершенно новичок в 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'
— обратные матрицы.
B^-1
будет простым (используя предоставленное уравнение). После того, как вы найдете матрицы компонентовA0'
A1'
иA2'
с помощью математики, вы можете задать вопрос о кодировании здесь. - person John Alexiou   schedule 08.12.2014B^-1(t)
символически, поэтому вам не нужно инвертировать матрицу на каждом шаге. Это правильно? - person John Alexiou   schedule 08.12.2014