Почему Mupad заменил мои E(s) здесь?

У меня есть код:

  C(s):=E(s)*G(s);
  B(s):=C(s)*H(s);
  openLoopTransferFunction:=B(s)/E(s)

Почему Мупад дает в качестве вывода е (с)? Выход Mupad:

G (s) * exp (1) (s) (или написано G(s)*e(s) синим цветом)

Как я могу сохранить мои E не измененными автоматически Mupad ... Честно говоря, это задерживается... Бонус:(

.... Wtf

E (s): = R (s) -B (s) Ошибка: идентификатор 'E' защищен. [_Assign]

1 ответ

В MuPAD есть несколько защищенных идентификаторов. Обычно они используют заглавные буквы. Например, I обозначает мнимую единицу, и E представляет число Эйлера. Увидеть разницу между вводом E (вертикальная буква "е") и e (наклонная буква "е").

Если вы хотите использовать любой из этих идентификаторов по-своему, вы можете unprotect их:

unprotect E

результаты в:

ProtectLevelError

это не сообщение об ошибке, а прежний уровень защиты, который вы только что изменили. Проверьте успешное изменение, введя ту же команду еще раз. На этот раз вы получите:

ProtectLevelNone

Теперь вы можете назначить E как и для любого другого идентификатора:

E(s) := R(s) - B(s);

даст ожидаемый результат.

Если вы хотите не определять E явно, вы должны удалить его после снятия защиты:

delete(E)

Тогда он будет доступен как любой другой символ.

В любом случае, если вам понадобится использовать номер Эйлера позже, вам придется использовать exp(1) вместо E,

Чтобы получить список всех идентификаторов длины один, введите:

select(op(map(op(anames(All)), expr2text)), x -> bool(length(x) = 1))

давая:

"E", "I", "O", "D"

Аналогично, для длины два это дает:

"N_", "Re", "R_", "Si", "C_", "is", "Z_", "op", "id", "Li", "ln", "Im", "Ax",
"Q_", "fp", "Ci", "Ei"
Другие вопросы по тегам