Day 66:格拉姆-施密特正交化

18年11月1日 · 武汉理工大学-艾勃特 3942 人阅读
格拉姆-施密特正交化法是线性代数中一个用来生成正交基向量的方法,并且这组正交基张成的向量空间和给定的一组向量张成的向量空间是一样的。
如果你已经熟练掌握了线性代数,那么你会觉得今天的算法很好理解。如果你不那么熟悉线性代数,以下给出了一种比较直观的解释。
比方说,现在是正午,且太阳在天穹上的最高点。你面前的一个柱子在地面上投下了阴影,这说明这个柱子和地面不是垂直的(否则不会有影子)。于是你尝试去微调这个柱子,直到柱子的影子消失。
而在线性代数中,以上例子中的事物分别代表:
- 地面——向量空间
- 影子——投影
- 垂直——正交
- 调整柱子的过程——施密特正交化
作者在Github上存放的代码:https://github.com/coells/100days
作者在Microsoft Azure上存放的代码:https://notebooks.azure.com/coells/libraries/100days
算法实现
测试
QR分解法
(原作者:Tomáš Bouda)
Python3Turtle