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

非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质今天遇到一个很奇怪的问题:一个方阵,逆矩阵存在,但不是满秩。问题来源  在实际应用的时候,发现返回值都是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的 源代码,发现引起这个问题的原因可能是精度问题,测试之后果不其然。

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

  •  结论

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 死磕cglib系列之一 cglib简介与callback解析「建议收藏」

    死磕cglib系列之一 cglib简介与callback解析「建议收藏」简介cglib是一套java动态代理实现框架,cglib被应用到springapp,hibernate等高级业务框架,spring事务在业务实现类未实现接口的情况下也会使用该技术。实际上,cglib基于继承实现,这也就意味着final,private相关的method无法被代理。基于asm框架对class字节码编辑改动,从而达到动态代理的目的,总之,被代理类没有实现接口的情况下cglib为首…

  • pytharm激活码2021.9[最新免费获取]

    (pytharm激活码2021.9)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 背包九讲Java版本

    背包九讲Java版本packagedp;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;/***背包九讲**@ProjectName:algorithm*@Package:dp*@Description:TODO*@Author:bipa*@Date:2022/1/88:00*/publicclassPack{/***01背包(

  • Linux中,常常会用到 vim ,其中 q ,wq wq!的区别,以及 vim -r 的作用[通俗易懂]

    w->表示保存退出wq!->表示强制保存退出,可以保存”readonly”只读文件q->在vim中表示退出q!->表示强制不保存退出,不对文件进行保存wq和wq!的区别如下:有些文件设置了只读,一般不是修改文件的,但是如果你是文件的owner或者root的话,通过wq!还是能保存文件退出如果文件设置为只读了的话,用:wq命令是不能保存并退出的,但是最高权限者可通过wq!来进行文件的保存并退出文件。已设定选项‘readonly’(请加!强制执行)!.

  • 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

    【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置本系列文章由zhmxy555(毛星云)编写,转载请注明出处。   文章链接: http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨)    邮箱: happylifemxy@163.com  写作当前博文时配套使用OpenCV版本:2.4.8因为读研期间的研究方向是图像处理,所以浅墨这段时间闭门研究了很多OpenCV

  • matlab作品_葫芦丝最炫民族风

    matlab作品_葫芦丝最炫民族风%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Mostshiningnationalwind//最炫民族风onMatlab%TheModificationisfrom”canon”,notbymefs=44100;%sampleratedt=1/fs;T16=0.125;t16=[0:dt:T16];[tempk]…

发表回复

您的电子邮箱地址不会被公开。

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