sage: var('q')
q
sage: (q+q^(-1))^(1/2)
sqrt(q + 1/q)

(By the way, I'm not sure I would call using a fraction field "naive".)


On Sunday, April 26, 2020 at 9:01:35 AM UTC-7, Jin Guu wrote:
>
> I am writing a calculator for various 'q' quantities, and often find that 
> I need to manipulate symbols more flexibly. For example, I have to deal 
> with the expression
>
> ( q + q^(-1) ) ^ (1/2) ------------------ (*)
>
> But currently I could not find any way to achieve this. A naive attempt 
> gives a failure:
>
> sage: q = Frac(ZZ['q']).gen()
> sage: q ^ (1/2)
> ---> ValueError: not a 2nd power
> sage: power(q, 1/2)
> NotImplementedError: non-integral exponents not supported
>
> Leave alone the expression I need! Indeed, one might have to define a 
> larger parent for the expression (*) to live in. So this might require 
> implementing a new algebraic structure. If that's the case, I'm willing to 
> write it. The problem is that implementing a new structure seems a bit 
> complicated to me.. I might take some time, and need some guides. Thank you 
> so much!
>
> PS. Weirdly enough, exp(sin(q)) is already implemented as in the class 
> <class 'sage.symbolic.expression.Expression'>. Perhaps what I need might 
> not be too hard to implement?
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/ade75123-de8c-4c93-a81b-ba244057c72a%40googlegroups.com.

Reply via email to