参考代码:
A=[1 0 2.5; 0 2 2.5; 2.5 2.5 3];
syms x1 x2 x3 real
x=[x1 x2 x3].';
f=expand(x'*A*x)
[V,D] = eig(A);
syms y1 y2 y3 real
X=V*[y1;y2;y3];
fy=subs(f,{x1,x2,x3},{X(1),X(2),X(3)});
vpa(simplify(fy),2)
截图:
说明:
本题矩阵A的特征根精确值形式比较复杂,不实用,所以这里使用数值解,由数值误差导致最后的结果仍有交叉项,但很小。