Determinant using sympy

10,340

You first need to convert your numpy n-dimensional array to a sympy matrix, and then perform the calculation of the symbolic determinant. What @hildensia said won't work, because H is a numpy object, which won't work with symbolic entities.

>>> M = sp.Matrix(H)
>>> M
Matrix([
[ 0.063*x**2,   0.0314*x*y, -0.0001*x*z],
[ 0.0314*x*y, 96.1659*y**2, -0.0001*y*z],
[-0.0001*x*z,  -0.0001*y*z, 0.0001*z**2]])
>>> M.det()
0.000604784913*x**2*y**2*z**2
Share:
10,340

Related videos on Youtube

Chikorita Rai
Author by

Chikorita Rai

Updated on June 04, 2022

Comments

  • Chikorita Rai
    Chikorita Rai almost 2 years

    The following code generates a 3x3 matrix in terms of x,y,z. I want to generate the determinant of the matrix. But unable to do so.

    import numpy as np
    import sympy as sp
    from sympy import *
    from sympy.matrices import Matrix
    x,y,z =sp.symbols('x,y,z')
    H1=np.array([[x,y,z]])
    H2=np.array([[0.0630,0.0314,-0.0001],[0.0314,96.1659,-0.0001],[-0.0001,-0.0001,0.0001]])
    H3=H1.T
    H=H1*H2*H3
    print H
    

    To find the determinant of the above matrix, I am using the following command.

    H.det()
    

    But it is showing error

    AttributeError: 'numpy.ndarray' object has no attribute 'det' 
    
  • Chikorita Rai
    Chikorita Rai over 9 years
    With the above command, I am getting TypeError: can't convert expression to float
  • Karlo
    Karlo almost 6 years
    I get TypeError: No loop matching the specified signature and casting was found for ufunc det.