There are some protected identifiers in MuPAD. Usually, they use uppercase letters. For example, I
denotes the imaginary unit, and E
represents Euler's number. See the difference between entering E
(upright letter 'e') and e
(slanted letter 'e').
If you want to use any of these identifiers in your fashion, you can unprotect
them:
unprotect E
results in:
ProtectLevelError
which is not an error message but the former protection level that you just changed. Check the succesful change by entering the same command again. This time, you will get:
ProtectLevelNone
Now you can assign to E
as you would to any other identifier:
E(s) := R(s) - B(s);
will give the expected result.
If you want to not define E
explicitly, you should delete it after lifting the protection:
delete(E)
Then it will be available like any other symbol.
In any case, if you need to use the Euler's number later, you will have to use exp(1)
instead of E
.
To get a list of all length-one identifiers, type:
select(op(map(op(anames(All)), expr2text)), x -> bool(length(x) = 1))
giving:
"E", "I", "O", "D"
Similarly, for length two, this gives:
"N_", "Re", "R_", "Si", "C_", "is", "Z_", "op", "id", "Li", "ln", "Im", "Ax",
"Q_", "fp", "Ci", "Ei"