用sympy处理二次型问题
1、x**2 + 4*x*y + y**2 + 2*y*z + z**2的系数矩阵是:M = sp.Matrix([[1,2,0],[2,1,1],[0,1,1]])

2、验证一下,上面的矩阵确实是二次型的系数矩阵:A=sp.Matrix([x,y,z])sp.expand(sp.Matrix(M.dot(A)).dot(A))

3、求M的对角矩阵:P, D = M.diagonalize()

4、验证D是M的对角矩阵:sp.simplify(P*D*P**-1)==M

5、二次型的标准形式:x**2 + y**2*(1 + sqrt(5)) - z**2*(sqrt(5) - 1)这是一个被压扁了的单叶双曲面。
