2016-08-18 4 views
1

Могу ли я изменить способ отображения Maxima оператора транспонирования? (По умолчанию) только для печати «транспонирование» использует очень много места и делает формулы более трудными для чтения.Могу ли я изменить способ отображения Maxima/wxMaxima оператора транспонирования?

Когда я вхожу:

transpose(M) 

Я хотел бы, чтобы напечатать что-то вроде
M T.

Я использую Maxima через wxMaxima.

PS. Нет метки для wxMaxima на SO.

ответ

1

Это отличный вопрос. К сожалению, в самой Maxima не существует способа справиться с этим, но если это нормально, чтобы сделать небольшое программирование на Lisp, мы можем его решить.

(%i1) :lisp (defun dimension-transpose (expr stuff) (dimension-superscript `((mexpt) ,(cadr expr) |$t|) stuff)) 
DIMENSION-TRANSPOSE 
(%i1) :lisp (setf (get '%transpose 'dimension) 'dimension-transpose) 
DIMENSION-TRANSPOSE 
(%i1) transpose(A.B); 
            T T 
(%o1)        B . A 

По сути, мы просто определяем функцию отображения, который строящий MEXPT (т.е. «^») выражение и показывает, что, а затем сказать Maxima использовать новую функцию для отображения transpose выражений.

Будьте осторожны, чтобы скопировать пунктуацию точно так, как она показана. Будьте осторожны, чтобы отличить обратную ссылку от одиночной кавычки.

EDIT: вышеупомянутые работы для командной строки Maxima. Для wxMaxima, вероятно, существует некоторая аналогичная процедура, но я этого не знаю.

+0

Теперь я просто должен найти способ исправить это в wxMaxima. – Mankka