
【C++】pinv()函数原型以及matlab中的pinv() —— 8
计算 计算 最终伪逆矩阵
发布日期:2021-05-15 02:52:03
浏览次数:22
分类:精选文章
本文共 1068 字,大约阅读时间需要 3 分钟。
Pinv() 函数原型及验证
Pinv() 的原型
函数形式为 pinv(J, G, P)
,其中:
G
是一个正定矩阵。P
是矩阵J
的伪逆矩阵。
核心计算逻辑如下:
Matrix J_temp(2, 2); J_temp = J.transpose() * G * J; P = (J_temp.inverse()) * J.transpose() * G;
详细步骤如下:
J_temp
,结果为 J.transpose() * G * J
。J_temp
的逆矩阵 J_temp.inverse()
。P = J_temp.inverse() * J.transpose() * G
。验证等式成立
通过实例验证,以下两种情况都满足等式:
示例 1
Matrix4d G;G << 5, 0, 0, 0, 5, 0, 0, 0, 5;Matrix3d B;B << 1, 2, 3, 4, 5, 6, 0, 0, 1;pinv(B, G, projection2); // 验证等式cout << "projection2 = " << endl << projection2 << endl;
示例 2
Matrix3d G;Matrix3d G << 50, 0, 0, 0, 50, 0, 0, 0, 50;Matrix3d B;B << 1, 2, 3, 4, 5, 6, 0, 0, 1;pinv(B, G, projection4); // 验证等式cout << "projection4 = " << endl << projection4 << endl;
与 Matlab 的 pinv() 函数比较
比较分析
1. 结果一致性
- 当调用
pinv2
函数(无G
参参)时,与使用pinv
函数(含G
标量)得到的结果相同,无论G
的取值。 - 结果表明,该 pinv 实现与 Matlab 中的 pinv 函数看起来一致。
2. 伪逆与逆矩阵一致性
- 对于可逆矩阵
B
,伪逆矩阵与逆矩阵相同。 - 该性质符合数学理论:当矩阵可逆时,伪逆矩阵等于逆矩阵。
结论
- 我们实现的 pinv() 函数与 Matlab 中的 pinv() 函数行为一致。
- 当矩阵
A
是可逆时,其伪逆矩阵等于逆矩阵。
通过实例验证和理论推导,可以确认该 pinv() 函数的实现正确可靠。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月12日 08时53分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
异常声音检测
2019-03-11
无法打开文件“opencv_world330d.lib”的解决办法
2019-03-11
算法训练 未名湖边的烦恼(递归,递推)
2019-03-11
什么是接口
2019-03-11
记录-基于springboot+vue.js实现的超大文件分片极速上传及流式下载
2019-03-11
JavaScript高级程序设计第四版学习记录-第九章代理与反射
2019-03-11
怎么解决Windows 10文件/文件夹正在使用无法删除
2019-03-11
matlab函数:fix 向0取整
2019-03-11
Allegro中如何消除器件本身Pin间距报错
2019-03-11
Flask--简介
2019-03-11
16 python基础-恺撒密码
2019-03-11
Frame--Api框架
2019-03-11
Boostrap技能点整理之【网格系统】
2019-03-11
新闻发布项目——业务逻辑层(UserService)
2019-03-11
hibernate正向生成数据库表以及配置——hibernate.cfg.xml
2019-03-11
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
2019-03-11
java实现人脸识别源码【含测试效果图】——Dao层(IUserDao)
2019-03-11
使用ueditor实现多图片上传案例——前台数据层(Index.jsp)
2019-03-11