2014-12-08 4 views
0

Я совершенно новой для 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' являются обратные матрицы.

+0

Этот вопрос о математике действительно и не программирование. Попробуйте сайт [Mathematics.SE]. – ja72

+0

Но мне все еще нужно научиться вычислять симболические матрицы. – JPV

+0

Это было бы вторичным зная, как вычислять обратные. _If_ есть обратная форма, которую вы просите, тогда кодирование 'B^-1' было бы простым (используя предоставленное уравнение). После того, как вы найдете матрицы компонентов A0'''A1 и A2, используя математику, вы можете задать здесь вопрос кодирования. – ja72

ответ

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

+0

Пожалуйста, проверьте коэффициенты самостоятельно, используя [tag: maple] и символическую замену выше. – ja72

Смежные вопросы