?

施密特正交化的幾何解釋及代碼實現

2021-10-30 06:47健,龔
黑龍江科學 2021年20期
關鍵詞:三維空間施密特代碼

陳 健,龔 萍

(攀枝花學院,四川 攀枝花 617000)

線性代數中,若要探究高維度線性空間的相關問題,標準正交基必不可少,當成功建立起標準正交基后,當前空間的所有向量都可以利用此標準正交基表達。例如:在解決三維空間中立體幾何問題時,可優先建立空間直角坐標系,這能夠幫助學者簡化諸多復雜問題,在構造所需標準正交基時,則需要使用施密特正交化方法[1],利用向量之間基本關系,以三維空間為例,依據向量間的基本關系和內積定理,演示施密特正交化過程,探討和解釋施密特正交化的幾何意義,并用代碼實現施密特正交化方法計算,幫助學者理解施密特正交化空間幾何意義。

1 施密特正交化幾何意義

施密特正交化的目的是利用向量的基本運算和向量內積的定理對一個線性無關向量組構造出一個等價的正交向量組。將以三維空間為例,依據向量的基本知識演示施密特正交化的步驟,向學者解釋施密特正交化的幾何意義。

1.1 基本向量、內積、線性相關知識的解釋

首先解釋向量的基本運算,內積的定理和向量的線性相關性:

圖1Fig.1

圖2Fig.2

由向量內積的定理:設n維向量a與b,滿足[a,b]=0,則向量a與b正交[3]。

若給定向量組A:a1,a2,…,am,若存在不全為0的數k1,k2,…,km,使得k1a1+k2a2+…+kmam=0成立,則向量組A是線性相關的;從幾何上理解,如:若一組向量線性相關,則它在二維空間中時,任意兩個向量是共線的,而三維空間中,則其中任意三個向量是共面的[4];若k1a1+k2a2+…+kmam=0當且僅當k1,k2,…,km全都為0時成立,稱向量組a1,a2,…,am線性無關,意味著向量組在二維空間中任兩個向量不共線,在三維空間中任三個向量不共面。

1.2 從幾何角度解釋施密特正交化

圖3Fig.3

圖4Fig.4

圖5Fig.5

同理則可以得到施密特正交化的公式:

當前有一組線性無關的n維向量組a1,a2,a3,…ar,則有[6]:

b1=a1

2 利用計算機代碼實現

2.1 代碼內容

根據施密特正交化求等價正交向量組的基本公式和思路,設計了以下代碼來實現計算向量以達到正交化效果[7]。

核心代碼為:

int k=0;

double x=0;//施密特正交化公式中分式的分子

double y2=0;// 施密特正交化公式中分式的分母

double u[100];//正交化后的系數

//取輸入的第一個向量置為正將向量組的第一個向量

for(int i=1;i

{

//從輸入的第二個向量開始正交化

for( k=0;k

{

for(int j=0;j

{

x +=vector[i][j]*vector[i-1-k][j];

y2 +=vector[i-1-k][j]*vector[i-1-k][j];

u[k]=x/y2;

}

for(int j=0;j

{

vector[i][j]=vector[i][j]-x/y2*vector[i-1-k][j];

}

x=0;

y2=0;

}

}

//將得出的正交化向量單位化

for(int i=0;i

{

for(int j=0;j

{

x += vector[i][j]*vector[i][j];

}

u[i]=sqrt(x);

x=0;

}

2.2 運行效果

假設數據為:a1=(1,0,1)T,a2=(1,1,0)T,a3=(0,1,1)T,利用施密特正交化方法,理論得出的值是:

結果:

2.3 結果分析

代碼能夠計算出施密特正交化后正交向量組,但由于計算機的精度與人工計算的精度不同,計算機中存儲數據的方式及計算數據的邏輯先后都契合機器的存儲和計算[8],而人工計算會使用約分等技巧計算,導致某些情況計算機運算的正交化向量與人工計算所得的值不符合,從而產生一定誤差。但因計算機運算的精度會更高,則計算機程序得出的正交向量組更趨近于正確的正交向量組。

猜你喜歡
三維空間施密特代碼
前庭刺激對虛擬環境三維空間定向的影響及與空間能力的相關關系
紅領巾環保走進三維空間——“6·5世界環境日”活動方案
創世代碼
創世代碼
創世代碼
創世代碼
超時空轉換(時空啟蒙篇)
三維空間的二維圖形
帶著GPS去流浪
帶著gps去流浪
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合