0

我有代码:

  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) 不会被 Mupad 自动更改……老实说,这是迟钝的……奖励 :(

....Wtf

E(s):=R(s)-B(s) 错误:标识符“E”受到保护。[_分配]

4

1 回答 1

0

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.

要获取所有长度为 1 的标识符的列表,请键入:

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"
于 2015-06-01T07:26:14.863 回答