已知
α
1
=
(
a
11
a
12
⋮
a
1
n
)
,
α
2
=
(
a
21
a
22
⋮
a
2
n
)
,
⋯
,
α
k
=
(
a
k
1
a
k
2
⋮
a
k
n
)
∈
\boldsymbol{\alpha}_1=\begin{pmatrix}a_{11}\\a_{12}\\\vdots\\a_{1n}\end{pmatrix},\boldsymbol{\alpha}_2=\begin{pmatrix}a_{21}\\a_{22}\\\vdots\\a_{2n}\end{pmatrix},\cdots,\boldsymbol{\alpha}_k=\begin{pmatrix}a_{k1}\\a_{k2}\\\vdots\\a_{kn}\end{pmatrix}\in
α1=
a11a12⋮a1n
,α2=
a21a22⋮a2n
,⋯,αk=
ak1ak2⋮akn
∈ℝ
n
^n
n两两正交(
k
<
n
k<n
k<n),设矩阵
A
=
(
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
k
1
a
k
2
⋯
a
k
n
)
\boldsymbol{A}=\begin{pmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&\ddots&\vdots\\a_{k1}&a_{k2}&\cdots&a_{kn}\end{pmatrix}
A=
a11a21⋮ak1a12a22⋮ak2⋯⋯⋱⋯a1na2n⋮akn
解方程组
A
x
=
o
\boldsymbol{Ax}=\boldsymbol{o}
Ax=o,取一非零解即可将两两正交组扩展为
α
1
,
⋯
,
α
k
,
α
k
+
1
\boldsymbol{\alpha}_1,\cdots,\boldsymbol{\alpha}_k,\boldsymbol{\alpha}_{k+1}
α1,⋯,αk,αk+1。
例1 用Python将向量组
α
1
=
(
1
1
1
)
,
α
2
=
(
1
−
2
1
)
\boldsymbol{\alpha}_1=\begin{pmatrix}1\\1\\1\end{pmatrix},\boldsymbol{\alpha}_2=\begin{pmatrix}1\\-2\\1\end{pmatrix}
α1=
111
,α2=
1−21
扩展成欧氏空间ℝ
3
^3
3的在一组正交基。
解:这只需调用博文《线性方程组的通解》中定义的mySolve函数解方程组
A
x
=
o
\boldsymbol{Ax}=\boldsymbol{o}
Ax=o,其中
A
=
(
1
1
1
−
2
1
1
)
\boldsymbol{A}=\begin{pmatrix}1&1\\1&-2\\1&1\end{pmatrix}
A=
1111−21
,
o
=
(
0
0
)
\boldsymbol{o}=\begin{pmatrix}0\\0\end{pmatrix}
o=(00)。
import numpy as np #导入numpy
a1=np.array([1,1,1]) #向量a1
a2=np.array([1,-2,1]) #向量a2
A=np.vstack((a1,a2)) #构建矩阵A
o=np.zeros((2,1)) #零向量
X=mySolve(A,o) #解方程组
a3=X[:,1] #非零解
print(a3)
程序的第2、3行设置已知正交向量a1和a2,第4行用a1,a2作为行向量构造矩阵A,第5行调用numpy的zeros函数构造零向量o。第6行调用博文《线性方程组的通解》定义的mySolve函数,计算解集X。第7行将X中的第2列(下标为1),即基础解系中的第1个非零解置为a3。运行程序,输出
[-1. 0. 1.]
即取
α
3
=
(
−
1
0
1
)
\boldsymbol{\alpha}_3=\begin{pmatrix}-1\\0\\1\end{pmatrix}
α3=
−101
,
α
1
,
α
2
,
α
3
\boldsymbol{\alpha}_1,\boldsymbol{\alpha}_2,\boldsymbol{\alpha}_3
α1,α2,α3构成欧氏空间ℝ
3
^3
3的一个正交基。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。