【线性代数】正交投影

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

   1、二维投影


上图表示的是,向量b在向量a上的投影。显然有如下表达式:


其中,P为投影矩阵,由P的表达式可以看出,它具有如下性质:


2、三维投影

       三维投影,就是将一个向量投影到一个平面上。同上面一样,假设是将b向量投影到平面上的p向量,则有表达式:

e是垂直与平面的向量。由于p向量在平面上,则p向量可以由该平面的2个线性无关向量(正如,在xy平面的任何向量都可以由x轴,y轴表示)表示:

由于e垂直平面,则e向量垂直与平面中的任意向量,则有:


将上式化简求得x:


又因为p=Ax,Pb=p,则得到投影矩阵为:


由P的表达式可以看出,它具有如下性质:


上面的投影矩阵是通式,当投影在一维情况时,A即为直线上的任意一个向量a,投影矩阵为:


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

3、举例说明

下面以一个实例来说明:

如上图,假设我们要将向量b投影到水平面上,其投影为p,a1,a2为水平面的两个线性无关向量,它们的参数分别为:


那么A=[a1 a2]即:


由上面我们求得的通式,可得投影矩阵P:


知道投影矩阵P后,我们可以得到b在水平面上的投影p为:


显然,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')

原文:http://blog.csdn.net/tengweitw/article/details/41174555

作者:nineheadedbird




目录
相关文章
|
机器学习/深度学习 算法 Python
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
784 0
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
|
8月前
|
数据采集 存储 前端开发
用Python抓取亚马逊动态加载数据,一文读懂
用Python抓取亚马逊动态加载数据,一文读懂
|
9月前
|
人工智能 新能源 数据安全/隐私保护
销售易CRM 2024年市场表现分析及2025年展望
2024年,腾讯旗下销售易CRM在产品创新、行业应用和客户服务等方面取得显著进展。通过AI赋能推出智能销售助手,优化私有化部署,提升移动端用户体验,并在制造业等重点行业提供定制化解决方案。2025年,销售易将深化AI集成,扩展产品生态,加大新兴行业投入,加强国际化布局。尽管面临市场竞争,销售易将继续优化易用性、数据安全及定价策略,助力企业数字化转型。
|
NoSQL Java 数据库
spring boot + shiro + redis 整合(完整)
spring boot + shiro + redis 整合(完整)
1193 0
|
监控 前端开发 算法
前端性能体系建设与优化思路
Dev Better技术沙龙-前端性能及新技术实践 学习笔记总结
491 0
阿里云注册域名创建信息模板流程及审核时间说明
阿里云注册域名所有者没有信息模板,新创建的信息模板已经提交,审核需要多长时间?着急
506 0
阿里云注册域名创建信息模板流程及审核时间说明
|
存储 移动开发 小程序
家校协同小程序实战教程
家校协同小程序实战教程
家校协同小程序实战教程
基于横向轨迹误差法(Cross-track Error)P 导航二维控制 实现无人机水平面导航控制
首先我们的目的是控制被控对象,靠近目标轨迹并且沿着目标轨迹运行。在实际运行中被控目标可能受外界干扰,与目标轨迹存在一定偏差,运用横向轨迹误差法(Cross-track Error),通过目标轨迹与被控对象当前位置的距离,不断的计算调整被控对象的状态,使其不断的靠近目标轨迹。Cross-track Error的值越大,被控对象偏离原行驶方向的角度就越大,随着Cross-track Erro的减小,被控对象偏离原行驶方向的角度要不断减小,直至轨迹重合。由于 由 Cross-track Error 转换成 调整速度有PID—P控制实现得。所有此算法估且叫为 基于Cross-track Error 的
基于横向轨迹误差法(Cross-track Error)P 导航二维控制   实现无人机水平面导航控制
|
数据可视化 BI Python
快速绘制动态排序图 — Pyecharts 高级组件 Timeline 实现!
之前写过一篇关于Python 制作 动态排序图的教程,里面利用的是 Matplotlib 中的 animation 函数,文章内容可参考动态排序图的详细制作教程,动态排序图的最终部分效果如下:
快速绘制动态排序图 — Pyecharts 高级组件 Timeline 实现!
|
存储 弹性计算 对象存储
阿里云4核8G服务器10M带宽支持在线人数并发量计算
阿里云4核8G服务器支持多少人同时在线?阿里云服务器10M带宽支持多少并发量?阿里云4核8G服务器选择计算型c6还是共享型s6?
561 1
阿里云4核8G服务器10M带宽支持在线人数并发量计算