On Tuesday, July 12, 2016 at 3:27:38 AM UTC+1, saad khalid wrote:
>
> Hey everyone:
>
> So, it turns out that Macaulay2 has an inbuilt function to convert it's 
> ascii output of exponents into a normal string. It can be seen at the end 
> this example:
>
> reset()
> macaulay2.eval("""
> K = toField(QQ[zet]/(zet^6 + zet^3 + 1))
> A=matrix{{zet^1,0},{0,zet^8}}
> needsPackage "InvariantRing"
> G=generateGroup({A},K)
> P = molienSeries G
> X = toString P
>  """)
>
>
> sage:
>
> PolynomialRing
>
> | zet 0            |
> | 0   -zet^5-zet^2 |
>
>         2       2
> Matrix K  <--- K
>
> InvariantRing
>
> Package
>
> {| 1 0 |, | zet 0            |, | zet^5 0     |, | -zet^3-1 0     |, | 
> -zet^4-zet 0     |, | zet^3 0        |, | zet^4 0     |, | -zet^5-zet^2 0   
> |, | zet^2 0          |}
>  | 0 1 |  | 0   -zet^5-zet^2 |  | 0     zet^4 |  | 0        zet^3 |  | 0      
>     zet^2 |  | 0     -zet^3-1 |  | 0     zet^5 |  | 0            zet |  | 0   
>   -zet^4-zet |
>
> List
>
>          2    3    4    5    6    7    8
> 1 - T + T  - T  + T  - T  + T  - T  + T
> ----------------------------------------
>           3    6        2          2
>     (1 + T  + T )(1 - T) (1 + T + T )
>
> Expression of class Divide
>
> (1-T+T^2-T^3+T^4-T^5+T^6-T^7+T^8)/((1+T^3+T^6)*(1-T)^2*(1+T+T^2))
>
>
> So, I want to be able to take that string output and define a Sage 
> function from it, and then ideally be able to take its Taylor series. here 
> is what I'm trying:
>
> var('T')
> str(T) = macaulay2('X')
>
this line does not look right to me.

 

>
> str(1)
>
>
> sage:T
> sage:(1-T+T^2-T^3+T^4-T^5+T^6-T^7+T^8)/((1+T^3+T^6)*(1-T)^2*(1+T+T^2))
>
> this seems to say that T is no longer a variable, but an expression.
What you seem to have done is to define an expression in SR (i.e. in 
Symbolic Ring), but in a variable that is no longer an SR variable.
 

>
> For some reason, it won't recognize T as a variable and won't let me make 
> a function out of it. Would anyone have any tricks on making this work? 
>
>
I thought I already told you a trick - convert things into Sage polynomials 
first, and then convert them into SR elements. E.g.

sage: R.<t,u>=QQ[]
sage: p=t^2+1+7*u     # you can also get such a polynomial from M2
sage: type(p)
<type 
'sage.rings.polynomial.multi_polynomial_libsingular.MPolynomial_libsingular'>
sage: type(SR(p))
<type 'sage.symbolic.expression.Expression'>
sage: sin(SR(p)).diff(t)
2*t*cos(t^2 + 7*u + 1)
sage: sin(SR(p)).diff(u)
7*cos(t^2 + 7*u + 1)

Hope this helps,
Dima

 

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to