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

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

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

Почему Mupad выдает e(s) на выходе? Мупад выход:

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

Как я могу сделать так, чтобы мой E(s) не изменялся автоматически Мупадом... Честно говоря, это отстало... Бонус :(

....Втф

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


person TraceKira    schedule 26.12.2014    source источник
comment
Поскольку я больше не могу отвечать на свой вопрос (забанен), я опубликую здесь решение: U(s):=hold(E(s))+hold(E(s)) Ps: вы также можете использовать level(E(s) ,0) Симпатично :) Обожаю мупад :))   -  person TraceKira    schedule 29.12.2014


Ответы (1)


В MuPAD есть несколько защищенных идентификаторов. Обычно они используют заглавные буквы. Например, I обозначает мнимую единицу, а E представляет число Эйлера. Обратите внимание на разницу между вводом E (прямая буква «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"
person Ingo Schalk-Schupp    schedule 01.06.2015