CHS

降本流末,而生万物

0%

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

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

大致解题思路

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

正交变换步骤:

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

  2. 变换二次型:

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

    其中$\Lambda$是$A$的特征值构成的对角矩阵:

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

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

因此,正交变换后的矩阵$P^T A P$会变成一个由特征值$\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)
谢谢大家

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