zoukankan      html  css  js  c++  java
  • 正交投影、格拉姆施密特正交(一)

    数学基础弱,我真是个渣渣
    下面来整理一下2021.10.19学到的知识

    版权声明:本文为CSDN博主「nineheaded_bird」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/tengweitw/article/details/41174555

    一、正交投影
    我们在初中就应该学过投影,那么什么是投影呢?形象点说,就是将你需要投影的东西上的每一点向你要投影的平面作垂线,垂线与平面的交点的集合就是你的投影。注意这里我们的投影是向量的投影,几何的投影(并不一定是垂直投影的)可见度娘百科。同样的,我们从简单的二维投影来开始讨论。

    1、二维投影

    image
    上图表示的是,向量b在向量a上的投影。显然有如下表达式:
    image
    其中,P为投影矩阵,由P的表达式可以看出,它具有如下性质:
    image

    2、三维投影

    三维投影,就是将一个向量投影到一个平面上。同上面一样,假设是将b向量投影到平面上的p向量,则有表达式:
    image
    e是垂直与平面的向量。由于p向量在平面上,则p向量可以由该平面的2个线性无关向量(正如,在xy平面的任何向量都可以由x轴,y轴表示)表示:
    image
    由于e垂直平面,则e向量垂直与平面中的任意向量,则有:
    image
    将上式化简求得x:
    image
    又因为p=Ax,Pb=p,则得到投影矩阵为:
    image
    由P的表达式可以看出,它具有如下性质:
    image
    上面的投影矩阵是通式,当投影在一维情况时,A即为直线上的任意一个向量a,投影矩阵为:
    image

    注意:一个数值的逆是它的倒数。

    3、举例说明

    下面以一个实例来说明:
    image
    如上图,假设我们要将向量b投影到水平面上,其投影为p,a1,a2为水平面的两个线性无关向量,它们的参数分别为:
    image
    那么A=[a1 a2]即:
    image
    由上面我们求得的通式,可得投影矩阵P:
    image
    知道投影矩阵P后,我们可以得到b在水平面上的投影p为:
    image
    显然,p与我们图中所示的结果相同。这里我们是以三维情况进行举例的,更高维情况,我们无法用图像来描述,但是通式也是成立的。
    三维图的matlab程序如下

    clear all
    clc
     
    a1=[1 0 0];
    a2=[0 1 0];
    b=[1 1 1];
    p=[1 1 0];
    e=b-p;
    quiver3(0,0,0,a1(1),a1(2),a1(3),1,'color','r')
    hold on
    quiver3(0,0,0,a2(1),a2(2),a2(3),1,'color','r')
    hold on
    quiver3(0,0,0,b(1),b(2),b(3),1,'color','g')
    hold on
    quiver3(0,0,0,p(1),p(2),p(3),1,'color','g')
    hold on
    quiver3(p(1),p(2),p(3),e(1),e(2),e(3),1,'color','b')
    
  • 相关阅读:
    Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图
    【设计模式】状态模式
    【设计模式】策略模式
    【设计模式】迭代器模式
    【设计模式】观察者模式
    【设计模式】享元模式
    【设计模式】桥接模式
    【设计模式】组合模式
    【设计模式】外观模式
    【设计模式】代理模式
  • 原文地址:https://www.cnblogs.com/sggggr/p/15425042.html
Copyright © 2011-2022 走看看