Ask Your Question

Revision history [back]

Hi! I was wondering how to fix this error of Maxima's expression?

I have 10.7 version of Sagemath. When I try to calculate exp(tE) (where E is a matrix) Sage gives me this error: "TypeError: unable to make sense of Maxima expression 'matrixexp(matrix([5_SAGE_VAR_t,9_SAGE_VAR_t],[7_SAGE_VAR_t,3_SAGE_VAR_t]))' in Sage". How to fix it?

My code:

var('t') E=matrix(QQ,[[5,9],[7,3]]) exp(t*E)

Full error text since I can't upload a photo:


TypeError Traceback (most recent call last) File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/symbolic/function.pyx:537, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.c:9991)() 536 try: --> 537 args = [SR.coerce(a) for a in args] 538 except TypeError as err:

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/structure/parent.pyx:1190, in sage.structure.parent.Parent.coerce (build/cythonized/sage/structure/parent.c:15422)() 1189 -> 1190 cpdef coerce(self, x): 1191 """

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/structure/parent.pyx:1220, in sage.structure.parent.Parent.coerce (build/cythonized/sage/structure/parent.c:15265)() 1219 _record_exception() -> 1220 raise TypeError(_LazyString("no canonical coercion from %s to %s", (parent(x), self), {})) 1221 else:

TypeError: no canonical coercion from Full MatrixSpace of 2 by 2 dense matrices over Symbolic Ring to Symbolic Ring

During handling of the above exception, another exception occurred:

SyntaxError Traceback (most recent call last) File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/calculus/calculus.py:2588, in symbolic_expression_from_maxima_string(x, equals_sub, maxima) 2587 SRM_parser._callable_constructor().set_names(function_syms) -> 2588 return SRM_parser.parse_sequence(s) 2589 except SyntaxError:

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:573, in sage.misc.parser.Parser.parse_sequence (build/cythonized/sage/misc/parser.c:8363)() 572 --> 573 cpdef parse_sequence(self, s): 574 """

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:590, in sage.misc.parser.Parser.parse_sequence (build/cythonized/sage/misc/parser.c:8146)() 589 cdef Tokenizer tokens = Tokenizer(s) --> 590 all = self.p_sequence(tokens) 591 if tokens.next() != EOS:

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:663, in sage.misc.parser.Parser.p_sequence (build/cythonized/sage/misc/parser.c:9182)() 662 else: --> 663 obj = self.p_eqn(tokens) 664 PyList_Append(all, obj)

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:754, in sage.misc.parser.Parser.p_eqn (build/cythonized/sage/misc/parser.c:10323)() 753 """ --> 754 lhs = self.p_expr(tokens) 755 cdef int op = tokens.next()

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:795, in sage.misc.parser.Parser.p_expr (build/cythonized/sage/misc/parser.c:10769)() 794 cdef int op --> 795 operand1 = self.p_term(tokens) 796 op = tokens.next()

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:830, in sage.misc.parser.Parser.p_term (build/cythonized/sage/misc/parser.c:11137)() 829 cdef int op --> 830 operand1 = self.p_factor(tokens) 831 op = tokens.next()

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:873, in sage.misc.parser.Parser.p_factor (build/cythonized/sage/misc/parser.c:11670)() 872 tokens.backtrack() --> 873 return self.p_power(tokens) 874

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:901, in sage.misc.parser.Parser.p_power (build/cythonized/sage/misc/parser.c:11921)() 900 """ --> 901 operand1 = self.p_atom(tokens) 902 cdef int token = tokens.next()

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:958, in sage.misc.parser.Parser.p_atom (build/cythonized/sage/misc/parser.c:12566)() 957 func = self.callable_constructor(name) --> 958 args, kwds = self.p_args(tokens) 959 token = tokens.next()

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:995, in sage.misc.parser.Parser.p_args (build/cythonized/sage/misc/parser.c:13179)() 994 while token == c',': --> 995 arg = self.p_arg(tokens) 996 if isinstance(arg, tuple):

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:1044, in sage.misc.parser.Parser.p_arg (build/cythonized/sage/misc/parser.c:13699)() 1043 tokens.backtrack() -> 1044 return self.p_expr(tokens) 1045

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:795, in sage.misc.parser.Parser.p_expr (build/cythonized/sage/misc/parser.c:10769)() 794 cdef int op --> 795 operand1 = self.p_term(tokens) 796 op = tokens.next()

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:830, in sage.misc.parser.Parser.p_term (build/cythonized/sage/misc/parser.c:11137)() 829 cdef int op --> 830 operand1 = self.p_factor(tokens) 831 op = tokens.next()

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:873, in sage.misc.parser.Parser.p_factor (build/cythonized/sage/misc/parser.c:11670)() 872 tokens.backtrack() --> 873 return self.p_power(tokens) 874

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:901, in sage.misc.parser.Parser.p_power (build/cythonized/sage/misc/parser.c:11921)() 900 """ --> 901 operand1 = self.p_atom(tokens) 902 cdef int token = tokens.next()

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:973, in sage.misc.parser.Parser.p_atom (build/cythonized/sage/misc/parser.c:12836)() 972 else: --> 973 self.parse_error(tokens) 974

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/misc/parser.pyx:1047, in sage.misc.parser.Parser.parse_error (build/cythonized/sage/misc/parser.c:13906)() 1046 cdef parse_error(self, Tokenizer tokens, msg="Malformed expression"): -> 1047 raise SyntaxError(msg, tokens.s, tokens.pos) 1048

SyntaxError: Malformed expression

During handling of the above exception, another exception occurred:

TypeError Traceback (most recent call last) Cell In[3], line 3 1 var('t') 2 E=matrix(QQ,[[Integer(5),Integer(9)],[Integer(7),Integer(3)]]) ----> 3 exp(t*E)

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/symbolic/function.pyx:1061, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.c:15911)() 1059 res = self._evalf_try_(*args) 1060 if res is None: -> 1061 res = super().__call__( 1062 *args, coerce=coerce, hold=hold) 1063

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/symbolic/function.pyx:549, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.c:10112)() 547 method = getattr(args[0], self._name, None) 548 if callable(method): --> 549 return method() 550 raise TypeError("cannot coerce arguments: %s" % (err)) 551

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/matrix/matrix_symbolic_dense.pyx:469, in sage.matrix.matrix_symbolic_dense.Matrix_symbolic_dense.exp (build/cythonized/sage/matrix/matrix_symbolic_dense.c:7660)() 467 z = maxima('matrix([%s])' % z.name()) 468 --> 469 return z._sage_() 470 471 def charpoly(self, var='x', algorithm=None):

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/interfaces/maxima_abstract.py:1229, in MaximaAbstractElement._sage_(self) 1176 """ 1177 Attempt to make a native Sage object out of this Maxima object. 1178 This is useful for automatic coercions in addition to other (...) 1226 (True, False) 1227 """ 1228 import sage.calculus.calculus as calculus -> 1229 return calculus.symbolic_expression_from_maxima_string(self.name(), 1230 maxima=self.parent())

File ~/miniforge3/envs/sage/lib/python3.11/site-packages/sage/calculus/calculus.py:2590, in symbolic_expression_from_maxima_string(x, equals_sub, maxima) 2588 return SRM_parser.parse_sequence(s) 2589 except SyntaxError: -> 2590 raise TypeError("unable to make sense of Maxima expression '%s' in Sage" % s) 2591 finally: 2592 is_simplified = False

TypeError: unable to make sense of Maxima expression 'matrixexp(matrix([5_SAGE_VAR_t,9_SAGE_VAR_t],[7_SAGE_VAR_t,3_SAGE_VAR_t]))' in Sage

I would appreciate any advice!