线性代数中一个很重要的概念就是基,一组基是构成线性空间“最高效的方式“,即若多余这个向量个数会出现冗余,若少于这个向量个数会出现无法构成该向量空间。由一般向量构成的一组基往往不是标准正交的,所以需要进行标准正交化!
线性代数“基“的概念在很多领域都有应用,包括机器人学,图像处理,数据降维等,具体可以参考相关线性代数教材。
本文采用C语言实现了基的标准正交化,正交化方法为格兰姆-施密特正交化(参见相关线性代数教材或维基百科)。程序功能为:询问用户输入向量的维数,用户输入一组基,构成n*n的矩阵(为了符合输入习惯,采用行向量的方式进行输入),然后对矩阵进行转置,将行向量变为列向量(符合线性代数的习惯),在进行判断之前,先判断用户输入的向量能否构成一组基,判断方式在isInverse()这个函数中,采用的是消元法判断矩阵是否可逆,若可逆则进行正交化,若不可逆,输出该矩阵不可逆,退出程序,具体程序如下:
/*==================================================
# Author: Joker@
版权声明:本文为Nolan__Roronoa原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。