用施密特正交法编程序将已知坐标基正交化

Python019

用施密特正交法编程序将已知坐标基正交化,第1张

先用施密特正交化,就是

b1=a1

b2=a2-<a2,b1>b1

...

然后在对所有的b1,b2,...,bn归一化

c1=b1/||b1||

c2=b2/||b2||

...

最后的c1,c2,...,cn就是最后结果

施密特正交化(Schmidt orthogonalization)是求欧氏空间正交基的一种方法。从欧氏空间任意线性无关的向量组α1,α2,……,αm出发,求得正交向量组β1,β2,……,βm,使由α1,α2,……,αm与向量组β1,β2,……,βm等价,再将正交向量组中每个向量经过单位化,就得到一个标准正交向量组,这种方法称为施密特正交化。

正交向量组简介:

正交向量组是一组非零的两两正交(即内积为0)的向量构成的向量组。

几何向量的概念在线性代数中经由抽象化,得到更一般的向量概念。此处向量定义为向量空间的元素,要注意这些抽象意义上的向量不一定以数对表示,大小和方向的概念亦不一定适用。

在三维向量空间中, 两个向量的内积如果是零, 那么就说这两个向量是正交的。正交最早出现于三维空间中的向量分析。 换句话说, 两个向量正交意味着它们是相互垂直的。若向量α与β正交,则记为α⊥β。

[α1,β2]=a1b1+a2b2+a3b3+a4b4,也就是两个向量的内积(点乘),代入相应的向量即可求出,例如求β2的时候,把β1和α2代入上式,运算即可算出。

标准化其实就是单位化,将求出的β1β2β3向量除以他们的范数,也就是根号下b1²+b2²+b3²+b4²。

由于把一个正交向量组中每个向量经过单位化,就得到一个标准正交向量组,所以,上述问题的关键是如何由一个线性无关向量组来构造出一个正交向量组,我们以3个向量组成的线性无关组为例来说明这个方法。

施密特正交化括号里算法:

施密特正交化中单位化中双括号里的东西是指的向量的模长吧, 如果是向量的模长的话,应该是把向量的各个分量先平方再相加,然后再开算数平方根,就是模长了。

而如果施密特正交化中单位化中双括号里的东西是指的向量的内积,那就是把两个向量对应分量相乘再相加,就是内积了。