非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质

非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质今天遇到一个很奇怪的问题:一个方阵,逆矩阵存在,但不是满秩。问题来源  在实际应用的时候,发现返回值都是0,于是跟踪到这里,发现了这个问题:JtJ不是满秩,因此JtJN保持初始化的零值。matJtJN=zeros(N,N);matResult=zeros(N,1);if(N==rank(JtJ)){JtJN=inv(JtJ);}for…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

今天遇到一个很奇怪的问题:一个方阵,逆矩阵存在,但不是满秩。

  • 问题来源

    在实际应用的时候,发现返回值都是0,于是跟踪到这里,发现了这个问题:JtJ不是满秩,因此JtJN保持初始化的零值。

mat JtJN = zeros(N, N);
mat Result = zeros(N, 1);
if (N == rank(JtJ))
{
    JtJN = inv(JtJ);
}
for (int i = 0; i < N; i++)
{
    Result[i] = 1.96 * sqrt(re * abs(JtJN(i, i)) / M) / (p0[i] + EPS);
}
return Result;

Jetbrains全家桶1年46,售后保障稳定

  • 问题跟踪

    我把JtJ这个数据保存成txt,然后在Matlab里load进去。

1.42564385120145	46664.0071835617	-361.723628266118	1.43453776778475	2.27890158958207	1491.23699249997	2.66016443927362
46664.0071835617	2561658858.23584	-30028903.1298037	47411.4041209533	107097.080643255	129526675.413329	143227.334019439
-361.723628266118	-30028903.1298037	464526.466675988	-373.437398450597	-1274.63678807808	-2315792.08994344	-1969.46141027209
1.43453776778475	47411.4041209533	-373.437398450597	1.44372953400922	2.31104869171119	1551.42174553270	2.71062044898402
2.27890158958207	107097.080643255	-1274.63678807808	2.31104869171119	5.20067695242223	7813.59509020671	7.98532576281474
1491.23699249997	129526675.413329	-2315792.08994344	1551.42174553270	7813.59509020671	25339933.2510429	20655.0780322129
2.66016443927362	143227.334019439	-1969.46141027209	2.71062044898402	7.98532576281474	20655.0780322129	50.0000010000000

    请看以下结果:

非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质

    于是,我跟踪进rank的 源代码,发现引起这个问题的原因可能是精度问题,测试之后果不其然。

非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质

  •  结论

    判断矩阵的逆矩阵是否存在时,一定要特别小心用满秩作为条件来判断,很可能会由于精度原因导致不可预估的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210430.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用instsrv和srvany注册windows系统服务

    使用instsrv和srvany注册windows系统服务1、下载配置instsrv和srvany下载地址:https://dl.pconline.com.cn/download/558946.html根据电脑属性复制文件:32位操作系统:将两个文件放入C:\Windows\System32文件夹下即可64位操作系统:除放入System32文件夹下,还需放入C:\Windows\SysWOW64文件夹下2、jar包和bat运行文件在同一目录下3、追加服务win+r打开运行窗口、输入cmd进入DOS窗口执行命令:instsrvr

    2022年6月14日
    44
  • 前端性能优化的七种方法是_web前端性能

    前端性能优化的七种方法是_web前端性能前端性能优化主要有七种方法,包括减少请求数量、减少资源大小、优化网络连接、优化资源加载、减少重绘回流、使用性能更好的API和构建优化1、减少请求数量1.1图片处理1.1.1雪碧图雪碧图是根据csssprite音译过来的,就是将很多小图标放在一张图片上就称之为雪碧图,可以减少网站http请求数量,但是当整合图片比较大的时候,一次加载比较慢,随着字体图片、svg图片的流行该技术慢慢退出了舞台1.1.2Base64将图片的内容以Base64格式内嵌到HTML中,可以减少http请求数量,但是

    2025年6月24日
    1
  • sscanf的用法「建议收藏」

    sscanf的用法「建议收藏」sscanf的作用:从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。sscanf和scanf的区别:scanf是以键盘作为输入源,sscanf是以字符串作为输入源。sscanf:原型:intsscanf(constchar*str,constchar*format,……);说明:sscanf()会将参数str的…

    2022年10月23日
    0
  • Solidity String转byte32 byte转String

    Solidity String转byte32 byte转String///string类型转化为bytes32型转functionstringToBytes32(stringmemorysource)constantinternalreturns(bytes32result){assembly{result:=mload(add(source,32))}}///bytes32类型转化为string型转functionbytes32ToString(b.

    2022年6月16日
    188
  • 描述性统计的matlab实现

    描述性统计的matlab实现

    2021年11月21日
    74
  • touchstart,touchmove,touchend触摸事件的小小实践心得

    近段时间使用html5开发一个公司内部应用,而触摸事件必然是移动应用中所必须的,刚开始以为移动设备上或许也会支持鼠标事件,原来是不支持的,好在webkit内核的移动浏览器支持touch事件,并且打包成

    2021年12月27日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号