2022-01-17 05:13:44 +0100 received badge ● Popular Question (source) 2018-10-16 03:36:38 +0100 asked a question Change binary Operation in Monoid/Semigroup Rings I have been experimenting in Semigroup rings and what I’m wondering is whether Sage allows me to define a Set, it’s binary operation, and take its Semigroup Ring via the Set.algebra constructor. Example would be S=Set([0,1,2]) #generators A=S.algebra(RR,Semigroups()) A.product=lambda x,y: x+y  But this does work on the basis elements of A. I want to modify the way basis elements multiply. 2018-08-30 04:31:21 +0100 asked a question Bug in ODE solving? I am trying to solve this equation system F’(x) = Sin(x)*F(x)+G(x) G’(x) = F(x) For some reason, putting this in sagemath: var('xx','real') assume(xx>0) assume(sin(xx)>0) f,g=[function(i)(xx) for i in 'fg'] eq= [g+sin(xx)*f==diff(f),diff(g)-f==0] desolve_system(eq,[f,g],ivar=xx)  It yield an error:  ---------------------------------------------------------------------------  ValueError Traceback (most recent call last) in () 4 f,g=[function(i)(xx) for i in 'fg'] 5 eq= [g+sin(xx)*f==diff(f),diff(g)-f==Integer(0)] ----> 6 desolve_system(eq,[f,g],ivar=xx) /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/calculus/desolvers.pyc in desolve_system(des, vars, ics, ivar) 838 soln = list(soln) 839 for i, sol in enumerate(soln): --> 840 soln[i] = sol.sage() 841 if ics is not None: 842 ivar_ic = ics[0] /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc in sage(self, args, *kwds) 1049 [0 0] 1050 """ -> 1051 return self._sage_(args, *kwds) 1052 1053 def __repr__(self): /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/interfaces/maxima_abstract.pyc in _sage_(self) 1236 import sage.calculus.calculus as calculus 1237 return calculus.symbolic_expression_from_maxima_string(self.name(), -> 1238 maxima=self.parent()) 1239 1240 def _symbolic_(self, R): /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/calculus/calculus.pyc in symbolic_expression_from_maxima_string(x, equals_sub, maxima) 2153 global _augmented_syms 2154 _augmented_syms = syms -> 2155 return SRM_parser.parse_sequence(s) 2156 finally: 2157 _augmented_syms = {} /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.parse_sequence (build/cythonized/sage/misc/parser.c:5409)() 537 return expr 538 --> 539 cpdef parse_sequence(self, s): 540 """ 541 Parse a (possibly nested) set of lists and tuples. /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.parse_sequence (build/cythonized/sage/misc/parser.c:5276)() 553 """ 554 cdef Tokenizer tokens = Tokenizer(s) --> 555 all = self.p_sequence(tokens) 556 if tokens.next() != EOS: 557 self.parse_error(tokens) /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_sequence (build/cythonized/sage/misc/parser.c:6213)() 626 return all 627 else: --> 628 obj = self.p_eqn(tokens) 629 PyList_Append(all, obj) 630 token = tokens.next() /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_eqn (build/cythonized/sage/misc/parser.c:7123)() 719 cdef int op = tokens.next() 720 if op == '=': --> 721 return lhs == self.p_expr(tokens) 722 elif op == NOT_EQ: 723 return lhs != self.p_expr(tokens) /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_expr (build/cythonized/sage/misc/parser.c:7489)() 756 # Note: this is left-recursive, so we can't just recurse 757 cdef int op --> 758 operand1 = self.p_term(tokens) 759 op = tokens.next() 760 while op == '+' or op == '-': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_term (build/cythonized/sage/misc/parser.c:7769)() 790 # Note: this is left-recursive, so we can't just recurse 791 cdef int op --> 792 operand1 = self.p_factor(tokens) 793 op = tokens.next() 794 if op == NAME and self.implicit_multiplication: /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_factor (build/cythonized/sage/misc/parser.c:8224)() 833 else: 834 tokens.backtrack() --> 835 return self.p_power(tokens) 836 837 # power ::= (atom | atom!) ^ factor | atom | atom! /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_power (build/cythonized/sage/misc/parser.c:8387)() 861 862 """ --> 863 operand1 = self.p_atom(tokens) 864 cdef int token = tokens.next() 865 if token == '^': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_atom (build/cythonized/sage/misc/parser.c:9056)() 916 if token == '(': 917 func = self.callable_constructor(name) --> 918 args, kwds = self.p_args(tokens) 919 token = tokens.next() 920 if token != ')': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_args (build/cythonized/sage/misc/parser.c:9611)() 953 cdef int token = ',' 954 while token == ',': --> 955 arg = self.p_arg(tokens) 956 if isinstance(arg, tuple): 957 name, value = arg /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_arg (build/cythonized/sage/misc/parser.c:10044)() 1003 else: 1004 tokens.backtrack() -> 1005 return self.p_expr(tokens) 1006 1007 cdef parse_error(self, Tokenizer tokens, msg="Malformed expression"): /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_expr (build/cythonized/sage/misc/parser.c:7489)() 756 # Note: this is left-recursive, so we can't just recurse 757 cdef int op --> 758 operand1 = self.p_term(tokens) 759 op = tokens.next() 760 while op == '+' or op == '-': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_term (build/cythonized/sage/misc/parser.c:7769)() 790 # Note: this is left-recursive, so we can't just recurse 791 cdef int op --> 792 operand1 = self.p_factor(tokens) 793 op = tokens.next() 794 if op == NAME and self.implicit_multiplication: /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_factor (build/cythonized/sage/misc/parser.c:8224)() 833 else: 834 tokens.backtrack() --> 835 return self.p_power(tokens) 836 837 # power ::= (atom | atom!) ^ factor | atom | atom! /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_power (build/cythonized/sage/misc/parser.c:8387)() 861 862 """ --> 863 operand1 = self.p_atom(tokens) 864 cdef int token = tokens.next() 865 if token == '^': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_atom (build/cythonized/sage/misc/parser.c:9280)() 925 return self.variable_constructor(name) 926 elif token == '(': --> 927 expr = self.p_expr(tokens) 928 token = tokens.next() 929 if token != ')': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_expr (build/cythonized/sage/misc/parser.c:7489)() 756 # Note: this is left-recursive, so we can't just recurse 757 cdef int op --> 758 operand1 = self.p_term(tokens) 759 op = tokens.next() 760 while op == '+' or op == '-': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_term (build/cythonized/sage/misc/parser.c:7769)() 790 # Note: this is left-recursive, so we can't just recurse 791 cdef int op --> 792 operand1 = self.p_factor(tokens) 793 op = tokens.next() 794 if op == NAME and self.implicit_multiplication: /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_factor (build/cythonized/sage/misc/parser.c:8224)() 833 else: 834 tokens.backtrack() --> 835 return self.p_power(tokens) 836 837 # power ::= (atom | atom!) ^ factor | atom | atom! /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_power (build/cythonized/sage/misc/parser.c:8387)() 861 862 """ --> 863 operand1 = self.p_atom(tokens) 864 cdef int token = tokens.next() 865 if token == '^': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_atom (build/cythonized/sage/misc/parser.c:9280)() 925 return self.variable_constructor(name) 926 elif token == '(': --> 927 expr = self.p_expr(tokens) 928 token = tokens.next() 929 if token != ')': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_expr (build/cythonized/sage/misc/parser.c:7489)() 756 # Note: this is left-recursive, so we can't just recurse 757 cdef int op --> 758 operand1 = self.p_term(tokens) 759 op = tokens.next() 760 while op == '+' or op == '-': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_term (build/cythonized/sage/misc/parser.c:7854)() 796 tokens.backtrack() 797 while op == '' or op == '/': --> 798 operand2 = self.p_factor(tokens) 799 if op == '': 800 operand1 = operand1 * operand2 /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_factor (build/cythonized/sage/misc/parser.c:8224)() 833 else: 834 tokens.backtrack() --> 835 return self.p_power(tokens) 836 837 # power ::= (atom | atom!) ^ factor | atom | atom! /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_power (build/cythonized/sage/misc/parser.c:8387)() 861 862 """ --> 863 operand1 = self.p_atom(tokens) 864 cdef int token = tokens.next() 865 if token == '^': /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.p_atom (build/cythonized/sage/misc/parser.c:9171)() 920 if token != ')': 921 self.parse_error(tokens, "Bad function call") --> 922 return func(args, *kwds) 923 else: 924 tokens.backtrack() /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/calculus/calculus.pyc in dummy_laplace(args) 1871 laplace(f(t), t, s) 1872 """ -> 1873 return _laplace(args[0], var(repr(args[1])), var(repr(args[2]))) 1874 1875 def dummy_inverse_laplace(args): /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/symbolic/ring.pyx in sage.symbolic.ring.var (build/cythonized/sage/symbolic/ring.cpp:14039)() 1297 ValueError: The name "3" is not a valid Python identifier. 1298 """ -> 1299 return SR.var(name, **kwds) 1300 1301 def is_SymbolicVariable(x): /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/symbolic/ring.pyx in sage.symbolic.ring.SymbolicRing.var (build/cythonized/sage/symbolic/ring.cpp:10242)() 840 for s in names_list: 841 if not isidentifier(s): --> 842 raise ValueError('The name "'+s+'" is not a valid Python identifier.') 843 844 formatted_latex_name = None ValueError: The name "+" is not a valid Python identifier. 2018-07-10 00:55:28 +0100 asked a question How to force a matrix display accordingly? I am working with matrix groups in small and large dimensions (>20 or >100). Is there a way to fleece sage to make a matrix display as “ d x d matrix over ” where d>20? It does not do this for any matrix groups like Coxeter/Affine/Weyl/Braid TL Rep. etc. CoxeterGroup([‘A20’]).gens()[0] “21 x 21 matrix over Integer Ring”  2018-07-10 00:49:28 +0100 received badge ● Popular Question (source) 2018-07-07 20:51:39 +0100 received badge ● Editor (source) 2018-07-07 20:51:10 +0100 asked a question Is there a way to have Context Sensitive Morphisms? I be been using WordMorphism and I was wondering if there is a way to have context sensitive substitutions? An example would be b”a”c -> ab so a is replaced iff bac appears. WordMorphism(“bac->ab”)  2017-12-26 21:48:02 +0100 received badge ● Famous Question (source) 2016-07-31 17:37:16 +0100 received badge ● Notable Question (source) 2016-07-31 17:37:16 +0100 received badge ● Popular Question (source) 2015-12-21 10:48:50 +0100 received badge ● Notable Question (source) 2015-12-21 10:48:50 +0100 received badge ● Popular Question (source) 2015-12-21 10:48:50 +0100 received badge ● Famous Question (source) 2015-10-15 19:35:51 +0100 commented question Domain and range, vertical intercept, horizontal asmptote, change factor, percent change I think he might be asking how to do those actions, namely: Domain and range, Horizontal Asymptote(s), Y-intercepts (easy, just do the functions at x=0), I don't know this one... 2015-10-15 03:45:40 +0100 commented question Making the Interactive Shell run by default? Ah well I am on a Windows VM. 2015-10-13 19:53:36 +0100 asked a question Making the Interactive Shell run by default? I know how to access the interactive shell. However, is there a way to set it by default? 2015-10-09 02:58:51 +0100 asked a question How to correct this Error? I was using the Cartesian Product function when it gave me an "unhashable list" error. What does this mean and how would I correct it? As for code, I used the Cards, Values, and Suits from the Combinatorics Comprehensive Module Index. 2015-09-14 00:21:15 +0100 commented question Possible error in Sage yeah the function you first stated is x*(e^(2x-(x^2)/2)) which is not equal to e^x^2, also (according to sage) the integral of your stated function is what you stated and for e^x^2 the integral is -sqrt(pi)i/2 * erf(ix) 2015-09-10 20:56:35 +0100 received badge ● Scholar (source) 2015-09-10 19:15:36 +0100 commented answer How to enter compound units? Thank you that was very helpful! Now I use this for physics! 2015-09-10 15:37:16 +0100 received badge ● Student (source) 2015-09-10 02:47:53 +0100 asked a question How to enter compound units? So I've been using Sagemath for a few days and its an amazing piece of software, the units section is very interesting. However how would I use units like km/h or mph? 2014-09-09 02:46:24 +0100 commented answer How would I Factor Polynomials over complex numbers? okay i got what i wanted now how would i get it as symbolic (like sqrt(-2) instead of 1.4142135...) 2014-08-31 05:20:48 +0100 asked a question How would I Factor Polynomials over complex numbers? Ok, I was in sage attempting some factoring of polynomials: x^2-4 gave: (x-2)(x+2) x^2-2 gave: x^2-2 how would i get this in (x-a)(x+a) for x^2 -a^2 when x,a are complex?