# Problem with supercripts

I've read that variables can be subscripted with underscore "_" and superscripted with caret "^". However supescripting doesn't seem to work. I think the caret is seen as a power operator. How to work around this?

Subscript example that works:

var('x,y,z_a')
eqn = x == y*z_a
solve(eqn, z_a)


Superscript example that fails:

var('x,y,z^a')
eqn = x == y*z^a
solve(eqn, z^a)

edit retag close merge delete

Can you let us know where you found that in documentation? That would help us answer this. Caret does indeed mean power, pretty much always in Sage (this is a custom preparsing of Python, where that has a different meaning).

( 2011-01-19 12:49:39 -0500 )edit

Sort by ยป oldest newest most voted

Although underscores can be used to define new variables

sage: var('x,y,z_a')
(x, y, z_a)
sage: z_a
z_a


"carrots" cannot be used

sage: var('x,y,z^a')
(x, y, z^a)
sage: z^a
Traceback (click to the left of this block for traceback)
...
NameError: name 'z' is not defined


This is because in that last statement, z^a, Sage is looking for a variable called z and trying to exponentiate it with some other variable called a. Note that the symbol ^ is used in Sage for exponentiation. In short, you shouldn't use it to define a new variable.

more