MATLAB中施密特正交化的实现

Posted martin-soaring

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中施密特正交化的实现相关的知识,希望对你有一定的参考价值。

1、施密特正交化的概念

技术分享图片

2、MATLAB程序

 1 function b=Schmidt_orthogonalization(a)
 2 [m,n] = size(a);
 3 if(m<n)
 4     error(行小于列,无法计算,请转置后重新输入);
 5     return
 6 end
 7 b=zeros(m,n);
 8 %正交化
 9 b(:,1)=a(:,1);
10 for i=2:n
11     for j=1:i-1
12         b(:,i)=b(:,i)-dot(a(:,i),b(:,j))/dot(b(:,j),b(:,j))*b(:,j);
13     end
14     b(:,i)=b(:,i)+a(:,i);
15 end
16 
17 %单位化
18 % for k=1:n
19 %     b(:,k)=b(:,k)/norm(b(:,k));
20 % end

 

说明1:如果需要单位化,把单位化后的注释删除即可

说明2:输入a为列向量矩阵,输出b也为列向量矩阵

 

以上是关于MATLAB中施密特正交化的实现的主要内容,如果未能解决你的问题,请参考以下文章

《本科-线性代数笔记-精简汇总》,纯手工!

漫步线性代数十七——正交基和格拉姆-施密特正交化(上)

《Linear Algebra and Its Applications》-chaper6-正交性和最小二乘法- 格拉姆-施密特方法

机器学习|数学基础Mathematics for Machine Learning系列之线性代数(15):向量的内积长度及正交性

机器学习中的矩阵分解LU分解QR分解SVD分解

线性代数笔记