Проблемы с выполнением символических операций над матрицами


1

У меня есть некоторые проблемы.

Прежде всего, я объявляю матрицы, как показано ниже

$Assumptions = { 
  Element[X, Matrices[{m, n}]], 
  Element[T, Matrices[{n, k}]], 
  Element[Y, Matrices[{m, k}]]}; 

и я хочу, чтобы применить

transpose(X T - Y).(X T - Y) = 
  transpose[T].transpose[X].X.T - transpose[T].transpose[X].Y - 
  transpose[Y].X.T + transpose[Y].Y 

поэтому я попытался

  1. Inner[Times, {X \[Transpose]}, {T \[Transpose]}, Plus] - \[Transpose][Y]

  2. Inner[NonCommutativeMultiply, {X}, {T}] - {Y} = {-Y + X ** T} ...

Но я не могу умножить два вышеуказанных выражения.

Inner[NonCommutativeMultiply, 
  Inner[Times, {X\[Transpose]}, {T\[Transpose]}, Plus] - Transpose[Y], 
  Inner[NonCommutativeMultiply, {X}, {T}] - {Y}] 

потому что я получаю ошибки. Не могли бы вы помочь мне?

1

Работает отлично для меня. Единственное, что я вижу, это неправильно, так это то, что вы забыли скобки для Transpose[Y], поэтому код должен выглядеть так:

Inner[NonCommutativeMultiply, 
Inner[Times, {X\[Transpose]}, {T\[Transpose]}, Plus] - {Transpose[Y]}, 
Inner[NonCommutativeMultiply, {X}, {T}] - {Y}]