Как мне заставить MuPAD прекратить использовать заполнители для матричных элементов?
Я пытаюсь оценить некоторые умножения матриц в MuPAD. Выходные данные используют сигмы в качестве заполнителей для матричных элементов, поскольку они являются длинными выражениями (я полагаю, в этом причина). Есть ли способ заставить MuPAD отображать отдельные матричные элементы как (в моем случае) экспоненциальные функции, которыми они на самом деле являются, независимо от длины выражения?
Ниже приведен пример случая, когда MuPAD использует сигмы вместо реальных экспоненциальных функций. Я хотел бы иметь возможность увидеть, что отдельные элементы матрицы TotT^4
действительно есть.
Команды, которые я выполнял в интерфейсе MuPAD, которые приводят к TotT^4
являются:
T1 := matrix([[exp((J+B/2)/T),exp(-(J+B/6)/T)],[exp((-J+B/6)/T),exp((J-B/2)/T)]])
T2 := matrix([[exp((J1+B/2)/T),exp(-(J1+B/6)/T)],[exp((-J1+B/6)/T),exp((J1-B/2)/T)]])
T1d := linalg::transpose(T1)
TotT := T1d*T2
1 ответ
Класс вашей переменной можно получить через type(totT)
: Dom::Matrix
, Возможно, вы захотите взглянуть на многие методы этого класса в документации. Насколько я могу судить, эта проблема имеет отношение к красивой печати класса print
метод. Другие классы демонстрируют такую же замену, поэтому она может быть функцией перегруженного print
, Я не смог изменить поведение, настроив setPrintMaxSize
, PRETTYPRINT
, TEXTWIDTH
или любой из необязательных аргументов print
, Вы все еще можете попробовать себя, так как есть много перестановок.
Я также пытался использовать expand
функция. expand(TotT,IgnoreAnalyticConstraints)
почти работает, хотя в некоторых случаях это может привести к нежелательным последствиям, если что-то будет слишком расширено призвание simplify
действительно избавляются от подстановок, но это также меняет природу некоторых записей путем упрощения. Вероятно, это также не общее решение этой проблемы.
Один способ, который работает, но уродлив, это использовать expr2text
метод, который возвращает результат в виде строки:
expr2text(TotT)
который возвращается
"matrix([[exp((B/6 - J)/T)*exp((B/6 - J1)/T) + exp((B/2 + J)/T)*exp((B/2 + J1)/T), ...
exp(-(B/2 - J1)/T)*exp((B/6 - J)/T) + exp((B/2 + J)/T)*exp(-(B/6 + J1)/T)], ...
[exp(-(B/2 - J)/T)*exp((B/6 - J1)/T) + exp((B/2 + J1)/T)*exp(-(B/6 + J)/T), ...
exp(-(B/2 - J)/T)*exp(-(B/2 - J1)/T) + exp(-(B/6 + J)/T)*exp(-(B/6 + J1)/T)]])"
Я думаю, что этот вопрос было бы хорошо задать в Matlab Central или путем подачи запроса на обслуживание, если у вас есть лицензия с поддержкой.