1 | initial version |

In Sage it is usual manipulate function *values* rather than functions, e.g. $\frac{d}{dx}(f+g)$ can be expressed by working with symbolic *expressions*, evaluated at a symbolic variable $x$ (basically, the "abuse of notation" $f = f(x)$):

```
sage: var('x'); f = function('f')(x); g = function('g')(x)
sage: diff(f + g, x)
diff(f(x), x) + diff(g(x), x)
```

(I also used the `diff`

function rather than the method, with the additional benefit that it works on constants.)

Similarly, I would write an operator by letting it act on an expression (we interpret the expression as a function evaluated at a symbolic variable):

```
sage: var('x'); var('hbar', latex_name='\hbar'); var('m')
sage: psi = function('psi')(x); V = function('V')(x)
sage: H = lambda expr: -(hbar^2/(2*m))*diff(expr, x, x) + V*expr
sage: (conjugate(psi)*H(psi)).expand()
V(x)*conjugate(psi(x))*psi(x) - 1/2*hbar^2*conjugate(psi(x))*diff(psi(x), x, x)/m
```

You will want to replace `psi`

and/or `V`

here by symbolic *expressions* in `x`

.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.