线性代数Python计算:正交向量组的扩张

已知 α 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= a11a12a1n ,α2= a21a22a2n ,,αk= ak1ak2akn n ^n n两两正交( k < n kk<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= a11a21ak1a12a22ak2a1na2nakn
解方程组 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= 121 扩展成欧氏空间ℝ 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= 111121 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的一个正交基。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

你可能感兴趣的:(线性代数,线性代数,python,开发语言)