二次型化为标准型 matlab

问题描述:

二次型化为标准型 matlab
f(x1,x2,x3)=x1^2+2x2^2+3x3^2+2x1x3+3x2x3
如何将它化为标准形?matlab的指令是什么.

在Matlab中,我们运用函数eig求出二次型的矩阵A的特征值D和特征向量矩阵P,所求的矩阵D即为系数矩阵A的标准形,矩阵P即为二次型的变换矩阵.
syms y1 y2 y3
A=[1 0 1;
0 2 3/2;
1 3/2 3];
[P,D]= eig(A)
y=[y1;y2;y3];
x=P*y%所求的正交变换
f=[y1 y2 y3]*D*y
x=vpa(x,5)
f=vpa(f,5)
结果:
x =
0.72551*y1 + 0.64255*y2 + 0.24651*y3
0.45326*y1 - 0.71565*y2 + 0.5314*y3
0.2738*y2 - 0.51787*y1 + 0.81046*y3
f =
0.28619*y1^2 + 1.4261*y2^2 + 4.2877*y3^2