已知 α 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
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的一个正交基。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!