matlab练习程序(正交分解)

正交分解可以将多个向量分解为互相正交的多个向量。

可以用QR分解方法或施密特正交化方法,施密特正交化方法一般数值不稳定。

假设有{V1...Vn}向量组,施密特正交化算法原理如下:

结果中{β1...βn}为一组正交基,{η1...ηn}为其标准正交基。

matlab代码如下:

复制代码
clear all;close all;clc;

A=[1 2 3;4 5 6;7 8 9];

%qr正交分解
[Q1, ~] = qr(A);
Q1

%施密特正交分解
[m,n] = size(A);
Q2 = zeros(m,n);
for j = 1:n 
    v = A(:,j); 
    for i = 1:j-1
        R(i,j) = Q2(:,i)'*A(:,j);
        v = v - R(i,j)*Q2(:,i); 
    end
    R(j,j) = norm(v);
    Q2(:,j) = v/R(j,j);
end
Q2
复制代码
posted @   Dsp Tian  阅读(191)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
历史上的今天:
2013-01-13 ubuntu启动/重启/停止apache
2013-01-13 我的vim设置
点击右上角即可分享
微信分享提示