用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)
这是一个被压扁了的单叶双曲面。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:130
阅读量:179
阅读量:31
阅读量:98
阅读量:146