﻿功能:化二次型为标准形式

格式:Quadratic(A)
A:为原表达式组合成的方阵变量

说明:设 
f = a(0,0)*x(0)^2 + a(0,1)*x(0)*x(1) + …… + a(0,n)*x(0)*x(n)
  + a(1,0)*x(1)*x(0) + a(1,1)*x(1)^2 + …… + a(1,n)*x(1)*x(n)
  + …… +
  + a(n,0)*x(n)*x(0) + a(n,1)*x(n)*x(1) + …… + a(n,n)*x(n)^2
求f的标准型【即将f表示为 f = b(0)*y(0)^2 + b(1)*y(1)^2 + …… + b(n)*y(n)^2 的形式】,则
A =[ a(0,0)  a(0,1)  a(0,2) …… a(0,n)
     a(1,0)  a(1,1)  a(1,2) …… a(1,n)
     ……
     a(n,0)  a(n,1)  a(n,2) …… a(n,n) ]
执行函数后将得到具体的说明以及返回一个前后变量的变换矩阵

例子:
//已知 f = x(0)*x(1)－8*x(0)*x(2)+17*x(1)*x(2)+5*x(1)^2 ,求 f 的标准型
a = [ 0.00000000000000  1.00000000000000  -8.0000000000000
      0.00000000000000  0.00000000000000  17.0000000000000
      0.00000000000000  0.00000000000000  5.00000000000000  ];

quadratic(a)//回车得到如下结果

二次型格式如下:
x(0)  =  y(0)-0.5*y(1)-17*y(2)
x(1)  =  y(0)+0.5*y(1)+8*y(2)
x(2)  =  y(2)

即:f = y(0)^2-0.25*y(1)^2+141*y(2)^2
ans  =
[ 1.00000000000000  -0.5000000000000  -17.000000000000
  1.00000000000000  0.50000000000000  8.00000000000000
  0.00000000000000  0.00000000000000  1.00000000000000  ]
//注意ans矩阵变量是 x 与 y变量的变换矩阵