Dear all,
I have the following code to extract the square root of a symmetric second-order tensor. from sympy import symbols, Matrix, mpmathimport numpy as np F11, F12, F13, F21, F22, F23, F31, F32, F33 = symbols('F11, F12, F13, F21, F22, F23, F31, F32, F33', real=True) F = np.array([[F11, F12, F13], [F21, F22, F23], [F31, F32, F33]]) B = F.dot(F.T) mpmath.sqrtm(Matrix(B)) However, it gave me the error: TypeError Traceback (most recent call last)<ipython-input-14-439fed475a57> in <module>() 5 F = np.array([[F11, F12, F13], [F21, F22, F23], [F31, F32, F33]]) 6 B = F.dot(F.T)----> 7 mpmath.sqrtm(Matrix(B)) X:\WinPython3\python-3.4.2.amd64\lib\site-packages\sympy\mpmath\matrices\calculus.py in sqrtm(ctx, A, _may_rotate) 308 309 """ --> 310 A = ctx.matrix(A) 311 # Trivial 312 if A*0 == A: X:\WinPython3\python-3.4.2.amd64\lib\site-packages\sympy\mpmath\matrices\matrices.py in __init__(self, *args, **kwargs) 326 A[i,j] = convert(A[i,j]) 327 elif hasattr(args[0], 'tolist'): --> 328 A = self.ctx.matrix(args[0].tolist()) 329 self.__data = A._matrix__data 330 self.__rows = A._matrix__rows X:\WinPython3\python-3.4.2.amd64\lib\site-packages\sympy\mpmath\matrices\matrices.py in __init__(self, *args, **kwargs) 299 for i, row in enumerate(A): 300 for j, a in enumerate(row): --> 301 self[i, j] = convert(a) 302 else: 303 # interpret list as row vector X:\WinPython3\python-3.4.2.amd64\lib\site-packages\sympy\mpmath\ctx_mp_python.py in convert(ctx, x, strings) 660 if hasattr(x, '_mpmath_'): 661 return ctx.convert(x._mpmath_(prec, rounding)) --> 662 return ctx._convert_fallback(x, strings) 663 664 def isnan(ctx, x): X:\WinPython3\python-3.4.2.amd64\lib\site-packages\sympy\mpmath\ctx_mp.py in _convert_fallback(ctx, x, strings) 612 else: 613 raise ValueError("can only create mpf from zero-width interval") --> 614 raise TypeError("cannot create mpf from " + repr(x)) 615 616 def mpmathify(ctx, *args, **kwargs): TypeError: cannot create mpf from F11**2 + F12**2 + F13**2 May I ask why that is happening? Is this a limitation of sympy or that I am doing something wrong? Thank you! Shawn -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/228b5b46-c2fe-4d90-83f6-4dd96927eddd%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.