CHS

降本流末,而生万物

0%

实二次型化为标准型的一些思考

最近复习考研数学时,做到有关二次型转标准型的题目,一般题目会要求:正交变换x=Qyx=Qy,求出矩阵Q

大致解题思路

假设 3 阶实对称矩阵AAAA二次型变量表示为(x1,x2,x3)(x_1,x_2,x_3).特征值为λ1,λ2,λ3\lambda_1,\lambda_2,\lambda_3,对应已单位化的特征向量为ξ1,ξ2,ξ3\xi_1,\xi_2,\xi_3.

正交变换步骤:

  1. 构造正交矩阵PP:矩阵P=(ξ1,ξ2,ξ3)P = (\xi_1, \xi_2, \xi_3)是由矩阵AA的单位化特征向量拼成的矩阵,因为AA是实对称矩阵,其特征向量是正交的。

  2. 变换二次型:

    xTAx=yTPTAPyx^T A x = y^T P^T A P y

    由于PP是由特征向量组成的正交矩阵,且 $ P^T P = E ,即,即P$的逆等于其转置,因此有:

    PTAP=ΛP^T A P = \Lambda

    其中Λ\LambdaAA的特征值构成的对角矩阵:

    Λ=(λ1000λ2000λ3)\Lambda = \begin{pmatrix} \lambda_1 & 0 & 0 \\ 0 & \lambda_2 & 0 \\ 0 & 0 & \lambda_3 \end{pmatrix}

  3. 因此,变换后的二次型化为:

    xTAx=yTΛy=λ1y12+λ2y22+λ3y32x^T A x = y^T \Lambda y = \lambda_1 y_1^2 + \lambda_2 y_2^2 + \lambda_3 y_3^2

    这就将原来的二次型xTAxx^T A x化为标准型,标准型是关于新变量y1,y2,y3y_1, y_2, y_3 的平方项线性组合,且系数是对应的特征值λ1,λ2,λ3\lambda_1, \lambda_2, \lambda_3。

因此,正交变换后的矩阵PTAPP^T A P会变成一个由特征值λ1,λ2,λ3\lambda_1, \lambda_2, \lambda_3组成的对角矩阵。

结论:

在以上条件下,我们可以直接将Λ\Lambda作为二次型转化而来的标准型,从而节省时间再去做计算。

Numpy 实现:

在这里可以使用NumPy库来实现一下这类矩阵运算.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import numpy as np

def transform_to_standard_form(A):
"""
将 3x3 实对称矩阵 A 对应的二次型化为标准型
:param A: 3x3 实对称矩阵
:return: 特征值、特征向量、标准型矩阵
"""
# 计算 A 的特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eigh(A)

# 构造正交矩阵 P(特征向量矩阵)
P = eigenvectors

# 计算 P^T * A * P,得到标准型
P_TAP = np.dot(np.dot(P.T, A), P)

# 输出结果
print("输入的实对称矩阵 A:")
print(A)
print("\n特征值:")
print(eigenvalues)
print("\n特征向量矩阵 P:")
print(P)
print("\n标准型矩阵 (P^T * A * P):")
print(P_TAP)

# 示例:你可以在这里自定义输入任意 3x3 实对称矩阵 A
A = np.array([[4, 1, 2],
[1, 2, 0],
[2, 0, 3]])

# 调用函数,输出标准型
transform_to_standard_form(A)
谢谢大家

欢迎关注我的其它发布渠道