Почему 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"